\"/
\"/ \"/    

Komunikace a počítače (1)

Ivo Černohlávek, Jiří Novotný, ÚVT MU
Ročník VI - číslo 1, září 1995
Citace: I. Černohlávek, J. Novotný. Komunikace a počítače (1). Zpravodaj ÚVT MU. ISSN 1212-0901, 1995, roč. VI, č. 1, s. 12-16.
Tematické zařazení: Počítačové sítě obecně
Článek je součástí seriálu Komunikace a počítače
 předchozí článek | následující článek 

Svět komunikací mezi počítači představuje složitý celek. V tomto přehledovém článku a jeho budoucích pokračováních se zaměříme na dvě oblasti z tohoto světa - na počítačové sítě s důrazem na protokoly používané v síti Internet a na přenos dat po sériových linkách.

Část Internetworking napsal Ivo Černohlávek nedlouho před letošními prázdninami, kdy tragicky zahynul. Touto poslední prací určenou k publikování se předčasně uzavírá série článků zaměřených na počítačové sítě, kterými do Zpravodaje pravidelně přispíval.

1  OSI model

Vzhledem k potřebě vzájemné komunikace počítačů (a obecně komunikujících zařízení) různě technicky a softwarově vybavených je potřeba definovat jistá obecná pravidla. Pro jednodušší popis těchto pravidel byl vytvořen hierarchický OSI model. Ne všechny počítačové sítě striktně oddělují (a používají) všechny níže popsané vrstvy, ale pro základní orientaci je tento model velmi užitečný (aplikace OSI modelu bude použita v části zabývající se Internetem).

OSI model je složen z následujících sedmi vrstev:

7/ Aplikační vrstva (applications)
obsahuje služby zvenku viditelné uživatelem, jako je elektronická pošta, vzdálený terminálový přístup, přenos souborů...
6/ Prezentační vrstva (presentation)
převádí jednotlivá data do standardních síťových formátů, provádí kompresi dat, kódování atd.
5/ Relační vrstva (session)
řídí tok dat mezi aplikačními procesy.
4/ Transportní vrstva (transport)
zajišťuje spojení mezi vstupními body jednotlivých komunikačních subsystémů.
3/ Síťová vrstva (network)
zajišťuje směrování dat mezi body komunikačních subsystémů.
2/ Linková vrstva (data link)
řídí tok dat na přenosovém médiu (sériová linka, ethernet, FDDI atd.).
1/ Fyzická vrstva (physical)
zajišťuje vlastní fyzické propojení.

2  Technologie pro přenos dat

V následujícím popisu naznačíme hlavní principy technologií používaných pro přenos dat.1

2.1  Přenosy po sériových linkách

Hlavním znakem sérivých přenosů je dvoubodové (point to point) propojení komunikujících zařízení. Podrobný rozbor přenosů po sériových linkách je uveden v části 3.

2.2  Ethernet

Základní topologií ethernetu je sběrnice, na kterou jsou připojena jednotlivá komunikující zařízení. V současné době se používají čtyři fyzická provedení sítě typu ethernet:

Základním principem přenosu dat na ethernetu je sdílení média, soupeření o sběrniciřešení kolizí dat. Rychlost přenosu dat na ethernetu je 10Mb/s. V současné době se začíná pro zvýšení propustnosti ethernetu používat tzv. přepínaný ethernet a ethernet s rychlostí 100Mb/s.

2.3  FDDI

Základní topologií je dvojitý kruh fyzicky tvořený buď optickými vlákny nebo v poslední době i metalickými spoji. Při běžném přenosu se používá pouze primární okruh, sekundární slouží jako záložní. Při přenosu dat se používá pešek (token), který obíhá všechny stanice a opravňuje je k vysílání dat. Rychlost přenosu dat je 100Mb/s.

2.4  ATM

Tato technologie přenosu dat je v současné době nejmodernější. Jednotlivé stanice jsou propojeny navzájem pomocí přepínačů (ATM switch). Data jsou přenášena v krátkých buňkách 53 bytů dlouhých (5 bytů hlavička, 48bytů data). ATM technologie umožňuje zřizování virtuálních okruhů a lze ji použít i na přenos audio, video a dalších druhů informace.

Přenos dat po sériových linkách

3.1  Fyzická vrstva

Signály pro přenos dat

Ve většině počítačů (a obecně i elektronických zařízení, jako jsou modemy, telekomunikační zařízení, zařízení spotřební elektroniky, ...) jsou data reprezentována elektrickým napětím. Nejčastěji používanou reprezentací je logika TTL: napětí v úrovni 0-0.8V (voltu) představuje logickou nulu a napětí 2.4-5V představuje logickou jedničku. Napětí mezi 0.8 a 2.4V je zakázaná oblast, která by se ve správně fungujícím elektronickém zařízení neměla vyskytnout a slouží ke zvýšení bezpečnosti (jistoty) při identifikaci logické jedničky a nuly.

Mimo logiku TTL existuje i mnoho dalších (CMOS, 3-voltová logika a pochopitelně i logiky založené na jiných fyzikálních principech, např. svítí-nesvítí), jejichž rozbor značně přesahuje rozsah tohoto článku.

Logika TTL je výhodná pro přenos dat uvnitř elektronického zařízení, ale kvůli poměrně nízké odolnosti proti rušení se příliš nehodí pro přenos dat na větší vzdálenost. Maximální vzdálenost, na kterou je použitelná, je podle normy 30 cm. Pochopitelně existují i výjimky, např. připojení tiskárny přes rozhraní CENTRONICS pomocí logiky TTL - v tomto případě ovšem výkonově upravené speciálními zesilovači.

Pro přenos dat mezi elektronickými zařízeními se používají jiné logiky, které umožňují přenos dat na podstatně větší vzdálenosti. Nejznámější a nejpoužívanější je logika určená normou V.28, která definuje logickou jedničku jako menší než -3V a logickou nulu jako větší než +3V v případě přenosu dat. Pro časové a řídící signaly je definováno ON jako více než +3V, OFF jako méně než -3V. Tato logika je velmi oblíbená pro svou jednoduchost, vyžaduje malý počet vodičů, ale hodí se pouze pro nízké rychlosti do 64Kbitů, v málo zarušeném prostředí a na krátké vzdálenosti. Maximální povolená vzdálenost je asi 15 m, v praxi se však velmi často překračuje.

Pro přenos větších rychlostí a zejména na větší vzdálenosti se používají takzvané diferenciální logiky, kdy logická jednička a logická nula jsou tvořeny rozdílem napětí na nízkém odporu. Znamená to přenos dat pomocí většího výkonu a tím i menší možnost rušení. Další výhodou je, že se informace přenáší po dvou vodičích blízko sebe, takže rušivá napětí se indukují do obou vodičů souhlasně a při vyhodnocení se odečtou, kdežto užitečná informace je v každém vodiči rozdílná. Nevýhodou je nutnost použít větší počet vodičů. Typickým představitelem je logika definovaná normou V.10 a V.11. Přenosová rychlost u této logiky může dosahovat i několik megabitů a vzdálenosti stovek metrů (bohužel nikoli obojí dohromady).

Rozhraní pro přenos dat

V oblasti počítačů a telekomunikací se můžeme setkat s řadami norem, které se značně překrývají, takže je mnoho pojmů definováno vícenásobně a pod různými názvy, což je značně nepřehledné. V evropských podmínkách se setkáváme s řadou norem CCITT, které jsou definovány velkým písmenem a pořadovým číslem, např V.24. Severoamerické normy ANSI jsou určeny symboly RS a číslem normy, např. RS232. Mnoho čtenářů jistě ví, že V.24 a RS232 jsou normy, které definují v podstatě totéž. My se budeme odkazovat na CCITT normy a u nejznámějších uvedeme i ANSI ekvivalent.

Pro přenos dat se jednotlivé signály sdružují do rozhraní. Rozhraní na straně počítače nazýváme DTE (Data Terminal Equipment), na straně modemu (komunikačního zařízení) DCE (Data Communication Equipment). Rozhraní DCE a DTE se propojují přímým kabelem 1:1. Z toho vyplývá, že špičky, které mají stejné číselné označení a stejný název, jsou na straně DTE vysílače a na straně DCE přijímače a naopak. Pokud chceme propojit dvě zařízení s rozhraním DTE, musíme použít tzv. nulový modem, což je kabel, kde se příslušné signály kříží. Příkladem rozhraní V.24 je křížení datových signálů na špičce 2 a 3.

Nejznámějším rozhraním je V.24 (RS232), jehož signály jsou definovány podle normy V.28. Toto rozhraní je v poněkud omezené formě u každého počítače typu IBM PC. V normě je definováno na 25-špičkovém konektoru Canon, v praxi je také velmi užíváno na 9-špičkovém konektoru. Toto rozhraní se používá pro připojení různých periferií k PC (myš, plotter, tablet aj.) a je možné je použít i ke komunikaci mezi počítači navzájem, a to buď přímo nebo pomocí dalších zařízení, např. modemu. Bohužel, jak je u počítačů třídy IBM PC zvykem, je toto rozhraní oproti normě značně omezené a nedovoluje řádně využít všech možností.

Dalším typem rozhraní je X.21, které je definováno na 15-špičkovém konektoru Canon a jehož signály jsou v normě V.11. Dříve velmi používané rozhraní V.35 je definováno na velmi rozměrném a drahém konektoru, a proto je někteří výrobci nahrazují nějakou modifikací na konektoru Canon a zvláštním převodním kabelem. U rozhraní V.35 je jedna zvláštnost, která omezuje počet potřebných vodičů. Datové a rychle se měnící signály jsou v normě V.11, ostatní v normě V.28. Dalším typem je rozhraní V.36, nahrazující V.35.

Normy začínající písmenem V.xx se zaměřují spíše na vrstvy blíže hardwaru, normy X.xx se zaměřují na vyšší vrstvy. Toto členění však neplatí vždy - např. norma X.21 patří mezi normy popisující právě hardwarové rozhraní.

Význam některých signálů rozhraní V.24

V tomto odstavečku je uveden popis některých signálů rozhraní V.24. V žádném případě se nejedná o úplný výčet, ale pouze o nejdůležitější signály, se kterými se můžeme setkat. U ostatních rozhraní je popis signálů velmi podobný a jen v závislosti na zvolené normě signálu je tvořen jedním nebo dvěma vodiči.

Nejdůležitějšími signály rozhraní V.24 jsou

     2 - TxD, vysílaná data
3 - RxD, přijímaná data
7 - GND, signálová zem

a u synchronního přenosu také

     15 - RxC, hodiny pro vysílaná data
17 - TxC, hodiny pro přijímaná data
24 - CLK, vysílané hodiny

Význam dalších signálů rozhraní je bohužel velmi často podceňován, přestože mohou do značné míry zjednodušit softwarovou obsluhu:

     4 -  RTSvýzva k vysílání (request to send)
5 -  CTS, vysílání povoleno (clear to send)
6 -  DSR, pohotovost strany DCE (data set receive)
8 -  DCD, detekce nosné2 (data carrier detect)
20 -  DTR, pohotovost strany DTE (data terminal ready)

Jiným velmi často podceňovaným signálem je

     1 - přístrojová zem

Pro přenos asynchronním protokolem stačí pouze 3 vodiče: RxD, TxD a GND. Toho se často v praxi využívá, protože jde o spojení velmi levné, které vystačí s malým počtem vodičů. Hardwarová jednoduchost takového propojení klade značné nároky na software.

Při synchronním přenosu je třeba používat i hodinové signály a lze použít i propojení, které ze tří definovaných hodinových signálů využívá pouze jeden. Rozborem asynchronního a synchronního přenosu se budeme zabývat dále.

Hodiny na špičkách 15 a 17 jsou hodiny, které jsou rozhraním DTE přijímány. Na špičce 15 jsou hodiny pro vysílaná data, na špičce 17 pro přijímaná. Některá DCE zařízení dodávají na obou těchto špičkách stejný signál, ale není to pravidlem. Na špičce 24 jsou hodiny vysílané DTE rozhraním. Tyto hodiny mají mimo jiné význam i při propojení dvou synchronních DTE rozhraní pomocí null modemu. V tomto případě jedno DTE zařízení musí generovat hodiny a druhé je přijímá. V null modemu jsou potom propojeny špičky 15,17 na jedné straně se špičkou 24 na straně druhé.

Z dalších signálů slouží RTS a CTS k hardwarovému handshaku. Signálem RTS informuje počítač protější stranu, zda je schopen přijímat další data. Pokud počítač převede signál RTS do neaktivní úrovně, musí přestat protější strana s vysíláním dat. Naopak protější strana signalizuje totéž signálem CTS. Tyto signály mají značný význam při spojení počítačů pomocí modemů, které jsou vybaveny opravou chyb a kompresí. U takovýchto modemů nemusí být rychlost, kterou jsou přenášena data po telefonní lince, stejná jako rychlost přenosu dat mezi modemem a počítačem. Handshake RTS/CTS je mechanismus, kterým je možno vzájemně přizpůsobit různé rychlosti. Kromě hardwarového handshaku (RTS/CTS) existuje softwarový handshake pomocí vybraných znaků, které se jinak v datech nesmějí vyskytnout. Nejčastěji se pro tento typ handshaku využívá znaků ^S pro stop a ^Q pro start. Tento typ handshaku se také nazývá XON/XOFF. Při přenosu textů v ASCII formátu vyčlenění dvou znaků nevadí, horší situace je při přenosu binárních dat, kdy je buď nutno znaky ^Q^S kódovat, nebo je nutno handshake na úrovni znaků vypnout a řešit jej na úrovni přenášených bloků dat.

Signál DTR informuje protější zařízení (modem atd.), že počítač je v provozu a je schopen navázat komunikaci. Signál DSR signalizuje totéž počítači o protějším zařízení. Signál DCD má velký význam při propojení pomocí modemu. DCD indikuje, že modemy navázaly mezi sebou spojení. V praxi se velmi často stává, že se význam signálů DSR a DCD směšuje, případně se jeden z nich vůbec nepřenáší. Signál DCD má velký význam u počítačů s operačními systémy UNIX, VMS, VM aj., které slouží jako servery a na které se můžeme automaticky přihlásit. Právě signál DCD informuje operační systém, že modem navázal spojení s protější stanicí a je nutno spustit příslušný obslužný program. Signálem DTR informuje počítač modem, že spojení skončilo (např. vydáním příkazu exit), aby modem mohl rozpojit telefonní spojení. Naopak modem informuje signálem DCD počítač, že telefonní spojení bylo přerušeno.

Logika signálu DCD je velmi jednoduchá: signál je OFF - počítač čeká na navázání spojení, DCD je ON - spojení je navázáno. Bohužel v praxi je situace složitější. Kromě běžného přenosu dat, kdy uvedená logika vyhovuje, je nutno občas modem nastavit, případně mu předat nějaký příkaz. V tomto případě je ovšem signál DCD OFF (není navázáno spojení s protější stanicí), takže operační systém není schopen s modemem komunikovat. U novějších verzí Unixu se tato nepříjemnost řeší různě. Například má seriová linka přiřazena dvě logická zařízení (většinou se jejich minor number liší o 128) tak, že přes jedno zařízení Unix komunikuje s modemem na základě signálu DCD (normální přenos dat) a přes druhé je signál DCD ignorován (nastavování modemu). Další možností je použití hardwarové finesy u moderních modemů - modem po ukončení spojení vygeneruje pouze krátký puls signálem DCD, čímž informuje počítač o rozpojení přenosové linky, a přejde opět do aktivního stavu, takže operační systém s ním může komunikovat.

(... pokračování)
setting
1 Podrobněji se na nejaktuálnější z nich, zejména ATM, zaměříme v některém z příštích Zpravodajů - pozn. red.
... zpět do textu
2 Existence nosné (techn. termín) znamená, že modemy mají navázáno spojení.
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011