Báječný svět počítačových sítí

1. 12. 2006

Sdílet

Část XX: Příběh Ethernetu Snad žádná jiná přenosová technologie linkové vrstvy neměla v praxi takový úsp...


Část XX: Příběh Ethernetu


Snad žádná jiná přenosová technologie linkové vrstvy neměla v praxi takový úspěch a nedočkala se takového nasazení jako Ethernet. Vděčí za to kombinaci několika faktorů, včetně své jednoduchosti a přímočarosti, a také rozumnému přístupu původních autorů, včasné standardizaci a brzkému "otevření". Dnes už Ethernet přerostl z prostředí lokálních sítí až do sítí metropolitních i do sítí rozlehlých. Přitom také podstatně zrychlil, z původních deseti megabitů za sekundu nejnověji na tisícinásobek, na deset gigabitů.
thernet je technologií, která z pohledu sedmivrstvého referenčního modelu ISO/OSI patří na linkovou vrstvu, neboť se zabývá přenosem rámců mezi uzly, které spolu přímo sousedí. Zasahuje ale i do vrstvy fyzické, neboť má své vlastní představy o tom, jak se mají přenášet jednotlivé bity. V rámci rodiny protokolů TCP/IP je zařazení Ethernetu ještě jednodušší, protože zde je pro "vše pod síťovou vrstvou" vyhrazena jen jedna vrstva, a to vrstva síťového rozhraní.
Ethernet přitom dokáže velmi dobře spolupracovat právě s protokoly TCP/IP. Vyznává totiž velmi podobnou filozofii jako protokol IP, který se v rámci protokolů TCP/IP používá na síťové vrstvě a je právě tím síťovým protokolem, který je asi nejčastěji vkládán do ethernetových rámců. Oba protokoly, tedy jak Ethernet, tak IP, jsou totiž záměrně koncipovány jako jednoduché a přímočaré protokoly, soustředěné "na svůj hlavní byznys". Ten vykonávají velmi efektivně a už si příliš nelámou hlavu s tím, co se má stát v různých "mezních situacích".
U Ethernetu je to třeba situace, kdy je více uzlů připojeno k jednomu společně sdílenému segmentu (viz obrázek) a dva či více uzlů by chtěly začít vysílat a odesílat své rámce. To ale nejde, a tak se Ethernet pokouší mezi nimi vybrat jednoho, který by vysílal (a ostatní by počkali). Dělá to ale v zásadě tak, že si jakoby hodí kostkou (neboli: použije náhodný faktor), a podle výsledku vybírá. Je to jednoduché, rychlé a snadno implementovatelné, navíc to v drtivé většině situací bohatě postačuje a funguje zcela bez problémů. Ale z pohledu jednotlivých uzlů použití náhody (nedeterminismu) znamená, že chování Ethernetu není přesně predikovatelné a jednotlivé uzly nemají žádnou jistotu, že se vůbec dostanou "ke slovu" (tedy že budou moci odeslat svůj rámec). Mohou počítat pouze s pravděpodobností, která se tím více blíží jistotě, čím menší je v daném segmentu provoz. Ale nikdy nejde o skutečnou jistotu.
Právě naznačený nedeterminismus (použití náhodného prvku) je v Ethernetu hluboce zakořeněn a dodnes jej činí nezpůsobilým pro využití tam, kde je požadována garantovaná odezva v reálném čase (jako například při řízení výroby). Na druhou stranu pro drtivou většinu ostatních aplikací, jako třeba pro "kancelářské", "domácí" či "školní" využití vyhovuje více než dobře a dokáže zde uplatnit již zmiňované přednosti (jednoduchost, přímočarost, rychlost i snadnost implementace, dále pak s ní spojenou nízkou cenu). Podobně síťový protokol IP také ve většině případů "stíhá" přenášet síťové pakety, ale pokud zátěž přeroste jeho možnosti, příliš si s tím hlavu neláme. "Přebývající" pakety zahazuje a pokračuje dál.
Určitá podobnost mezi Ethernetem a protokolem IP z rodiny protokolů TCP/IP přitom není úplně náhodná. Mezi autory obou řešení totiž existuje vazba v osobě Roberta Metcalfa, o kterém jsme se v tomto seriálu již jednou zmiňovali (v 17. dílu, v souvislosti s tzv. Metcalfovým zákonem). Právě Robert Metcalfe totiž vedl skupinu, která "vynalezla" Ethernet a současně byl členem skupiny, která pod vedením Vintona Cerfa navrhovala samotné protokoly TCP/IP. Snad i proto Ethernet tak báječně "pasuje" k protokolu IP.

Jak se zrodil Ethernet?

Pojďme tedy k historii Ethernetu jako takového. Ta se začala psát počátkem sedmdesátých let minulého století ve vědeckovýzkumném středisku PARC (Palo Alto Research Center) v Kalifornii v USA, který patřil společnosti Xerox. Zde se zrodila celá řada vynikajících nápadů a inovací, jako třeba grafické uživatelské rozhraní (GUI), režim WYSIWYG (What You See Is What You Get) či objektově orientované programování (OOP), RAID či laserový tisk apod. A také se zde zrodily první pracovní stanice, příznačně pojmenované Alto, které byly jakýmsi předstupněm pro pozdější osobní počítače standardu IBM PC. Už tyto pracovní stanice totiž měly značně "osobní" charakter a mohly být vyhrazeny jednotlivým uživatelům.
Právě pracovním stanicím Alto pak vděčí Ethernet za svůj vznik. Ve středisku PARC jich vyrobili větší počet, proto vznikla potřeba propojit je mezi sebou. Ale vzhledem k jejich počtu to už nešlo udělat tak, jak bylo tehdy zvykem pro rozlehlé sítě s několika málo počítači pomocí dvoubodových spojů, víceméně ad hoc způsobem. A tak vzniklo nové zadání: vyvinout vhodnou technologii, která by jednoduchým a systematickým způsobem propojila větší počet uzlů, nacházejících se velmi blízko sebe, typicky v jedné budově.
Do řešení tohoto úkolu se nakonec pustila skupinka inženýrů, soustředěná kolem Roberta Metcalfa. Navrhla propojit pracovní stanice Alto stylem "do sběrnice", přes jeden segment koaxiálního kabelu, sdílený všemi stanicemi. Mělo to výhodu v tom, že pokud jeden uzel něco vysílal do tohoto společně sdíleného přenosového média, "slyšely" to současně všechny ostatní uzly a mohly jeho vysílání přijímat. Právě kvůli této vlastnosti kvůli tomu, že vysílání jednoho uzlu "pronikalo všude", ke všem uzlům pak Ethernet dostal také své jméno (podrobněji viz samostatný rámeček).

DIX Ethernet

První verze Ethernetu, která spatřila světlo světa ve středisku PARC a skutečně propojovala pracovní stanice Alto, pracovala s přenosovou rychlostí 2,94 Mbit/s, odvozenou od rychlosti procesorů stanic Alto.
Ale to ještě zdaleka nebyla verze Ethernetu, která doslova dobyla svět. Na té museli ve středisku PARC ještě trochu zapracovat, hlavně ji zrychlit na rovných 10 megabitů za sekundu. Ale to už se do vývojových přípravných prací zapojily i další subjekty, respektive jejich odborníci.
Kromě samotné firmy Xerox se tak na vývoji Ethernetu podílely společnosti Intel a DEC (Digital Equipment Corporation). Seřazeno podle abecedy je to trojice DEC, Intel a Xerox, zkratkou DIX. Proto se také o prvních verzích Ethernetu mluvilo a mluví jako o "DIX Ethernetu".

Otevření a standardizace

Všechny tři společnosti, které se na vývoji Ethernetu podílely, si mohly výsledné řešení "nechat pro sebe" jako své vlastní a proprietární a proti případnému okopírování jej chránit například patentováním.
Pravdou je, že ještě než byly "přizvány do hry" i společnosti DEC a Intel, nechal si Xerox vznikající Ethernet patentovat, navíc si zaregistroval samotné jméno Ethernet jako svou chráněnou známku. Patent na "vícebodový komunikační systém s detekcí kolizí" (multipoint data communication system with collision detection) podal Xerox 31. března 1975.
Ovšem ještě než byl tento patent přijat (13. 12. 1977, US Patent #4,063,220), podařilo se Robertu Metcalfovi přesvědčit společnost Xerox, aby vznikající Ethernet neuzavírala a nedělala z něj proprietární technologii, kterou by mohla vyrábět a prodávat právě a pouze ona a nikdo jiný. Pravdou je, že takto by se Ethernet téměř jistě nedočkal takového rozšíření, jaké známe dnes. Místo toho Xerox souhlasil jak s tím, že "vezme do hry" další subjekty (DEC a Intel), tak i s tím, že celé vznikající řešení "otevře", zveřejní, a dokonce nechá standardizovat, tedy vydat jako standard.
Jen pro srovnání: Ethernet nebyl jedinou technologií svého druhu, která v uvedené době vznikala s cílem propojit systematickým způsobem a na malou vzdálenost větší počty uzlů. Jiným příkladem byla technologie Token Ring, kterou vyvíjela společnost IBM. Ta ji ale tak dlouho držela "pod pokličkou", chránila jako své proprietární řešení a odmítala ji náležitě otevřít, až bylo příliš pozdě a Ethernet konkurenční Token Ring jednoznačně převálcoval.

Ethernet II vs. IEEE 802.3

Vývoj Ethernetu probíhal prakticky celá sedmdesátá léta. Teprve s blížícím se rokem 1980 usoudili vývojáři ve středisku PARC, že jejich dílo je dostatečně připravené a vyzrálé na to, aby se specifikace Ethernetu mohly předat ke standardizaci. K té si vybrali organizaci IEEE (Institute of Electrical and Electronics Engineers), která se právě počátkem roku 1980 začala zabývat standardizací v oblasti lokálních sítí (sítí LAN). Za tímto účelem rovněž IEEE zřídila pracovní skupinu, kterou označila číslem 802 (kde "80" reprezentovalo poslední dvě číslice roku založení, zbývající číslice "2" odpovídala měsíci únoru).
Pracovní skupina IEEE 802 kvůli projednání návrhu na standardizaci Ethernetu vytvořila zvláštní podskupinu, dodnes označovanou jako IEEE 802.3. Ta začala návrh DIX Ethernetu skutečně posuzovat, ale měla k němu určité připomínky, vyžádala si provedení určitých změn v celém návrhu a s tím návrh vrátila autorům.
Některé z připomínek byly spíše kosmetické, ale jiné už nikoli a autoři DIX Ethernetu akceptovali ze vznesených připomínek jen některé. Vznikla tak druhá verze DIX Ethernetu, dodnes označovaná jako Ethernet II.
Jenže tato nová verze (Ethernet II) stále nesplňovala všechny představy standardizační pracovní skupiny IEEE 802.3, a ta nakonec (v roce 1983) vydala jako standard něco opět jiného, upraveného podle vlastních představ. A tak se stalo, že náhle existovaly dvě různé verze Ethernetu.
Verze, která byla nakonec vydána jako standard (IEEE 802.3), navíc formálně ani nemohla být pojmenována jako Ethernet. To kvůli tomu, že v té době již měla jméno Ethernet registrované jako svou chráněnou značku společnost Xerox. Proto standardy IEEE 802.3 používají poněkud krkolomné označení sítí "na bázi CSMA/CD" podle označení přístupové metody, který je pro Ethernet tak charakteristická.

Další vývoj Ethernetu

Další vývoj Ethernetu se již odehrával výlučně "po linii" standardizované verze IEEE 802.3, zatímco paralelní DIX Ethernet (resp. Ethernet II) se již dále nevyvíjel. Neznamená to ale, že by Ethernet II byl dnes úplně mrtvý a už jsme se s ním již nemohli nikde setkat. Alespoň něco se z něj totiž stále ještě používá, a to v podobě formátu linkových rámců (viz samostatný rámeček). Je oblíbený zejména na unixových platformách.
Pro verze Ethernetu, standardizované v rámci IEEE 802.3 (tedy vlastně pro sítě "na bázi CSMA/CD") se záhy začalo také používat jiné označení. Například první standardizovaná verze je dodnes známá jako "10Base5", kde číslo 10 znamená rychlost (šlo již o 10 Mbit/s), číslice 5 značí dosah (ve stovkách metrů). Slůvko "Base" uprostřed celého označení pak říkalo, že jde o přenos tzv. v základním pásmu (baseband), což fakticky znamenalo, že jde o přenos, který není modulován (tedy nepoužívá nějakou nosnou harmonickou frekvenci, jejíž modulací by se vyjadřovala přenášená data).
Pravdou je, že se časem objevila i verze 10Broad36, která dosahovala stejné rychlosti 10 Mbit/s, dokonce na vzdálenost 3,6 kilometru, ale po "televizním" koaxiálním kabelu a právě díky použití modulovaného přenosu. Ovšem tato verze je, i přes určité pozdější snahy o její vzkříšení, dnes úplně mrtvá.

Koaxiální Ethernet

Vraťme se tedy k verzi 10Broad5, která měla dosah až 500 metrů. Využívala přitom tzv. tlustý koaxiální kabel s průměrem 1 cm. Ten měl často žlutou barvu (jakoby podle původního Metcalfova obrázku, viz výše), a tak se mu někdy říkalo i "Yellowcable" (doslova: žlutý kabel).
Tlustý koaxiální kabel byl ale poměrně drahý a také velmi málo ohebný. Ohnout jej do pravého úhlu, například kolem nějakého rohu stěny, nebylo možné. Naštěstí ale tento kabel nemusel vést k samotným uzlům, protože se na něm daly dělat odbočky prostřednictvím tzv. transceiverů. Koncové uzly se pak připojovaly až k tzv. drop kabelům, které mohly být až 50 metrů dlouhé, viz další obrázek.
Nevýhody první verze Ethernetu částečně odstranila verze další, označovaná jako 10Base2. Používala již tenčí koaxiální kabel (o polovičním průměru), číslice 2 odpovídala tomu, že jeho dosah činil jen 200 metrů. Vlastně až po zaokrouhlení, protože přesně to bylo jen 185 metrů. Navíc reálný dosah byl ještě nižší, protože u této verze se na kabelu nedělaly odbočky, ale musel se "dotáhnout" až k síťové kartě, kde byl teprve rozbočen prostřednictvím speciálního konektoru ve tvaru písmene T. Vše naznačuje obrázek.

Ethernet na kroucené dvoulince

Koaxiální kabel byl přenosovým médiem, na kterém Ethernet doslova "vyrostl" a podle něhož se také zformovala jeho celková koncepce. Zejména sdílený charakter koaxiálního kabelu jako přenosového média na dlouho předznamenal jeho vlastnosti i chování jeho přístupové metody. Jenže ani koaxiální kabel nevydržel Ethernetu navždy.
Alternativou, která časem koaxiální kabel úplně nahradila, byla tzv. kroucená dvoulinka (anglicky: twisted pair, zkráceně "twist"). Tedy dvojice souběžně vedených vodičů, které jsou pravidelně zkrouceny kvůli tomu, aby se minimalizovalo jejich vyzařování i citlivost na vnější elektromagnetického pole (tedy efekt antény).
Důvod, proč Ethernet přešel na kroucenou dvoulinku, úzce souvisí s tím, jak se v USA budovaly nejrůznější objekty. Předem se v nich instalovaly rozvody pro potřeby telefonie a ty se obvykle značně předimenzovaly. Když se pak měly někde instalovat ještě další (koaxiální) kabelové rozvody pro potřeby Ethernetu, lidi zákonitě napadlo: nemohl by Ethernet místo koaxiálních kabelů používat právě kroucenou dvoulinku, která "už je vlastně natažená"?
Chvíli to trvalo a znamenalo to určitou práci, ale nakonec se vše podařilo: na světě byl standard, který umožňoval fungování Ethernetu po (telefonní) kroucené dvoulince. Příslušné řešení se dodnes označuje jako 10BaseT a na jeho konci už není číslice, ale písmenko T, znamenající "twist". Možná je tomu tak proto, aby nemusela být na konci jen malá jednička. Dosah se totiž také zkrátil, a to na pouhých 100 metrů.
Navíc kroucená dvoulinka je v jednom ohledu principiálně odlišná od koaxiálního kabelu: nejdou na ní dělat žádné odbočky, a tak ji lze použít jen pro dvoubodové spoje (jen pro vzájemné propojení dvou uzlů). Jenže na to Ethenret nebyl zvyklý a předpokládal naopak sdílené propojení více uzlů stylem "do sběrnice" (viz výše). A tak se místo odboček na kabelu muselo použít rozvětvení pomocí elektronických obvodů, soustředěných do "krabičky", označované příznačně jako rozbočovač (anglicky: hub).
Ani desetimegabitový Ethernet na kroucené dvoulince (10BaseT) však nebyl zdaleka ze strany Ethernetu posledním slovem. Ten se postupem času dočkal dalších podstatných inovací. Například postupného zrychlování, nejprve na 100 Mbit/s, pak na 1 Gbit/s, nově i na 10 Gbit/s. Stále častěji se přitom začalo přecházet z kroucené dvoulinky na optická vlákna, jež skýtala podstatně větší přenosový potenciál.
Jenže brzdou ve zvětšování dosahu Ethernetu byla jeho přístupová metoda (CSMA/CD), jejíž fungování neumožňovalo dosahovat větších vzdáleností ani na optických vláknech. A tak časem vzala za své i tato přístupová metoda, pro Ethernet dříve tak charakteristická. U gigabitového Ethernetu ještě nebyla odstraněna úplně (zde stále existuje varianta, kde se využívá), ale u desetigigabitového Ethernetu už definitivně dostala vale.
Bez ní sice Ethernet může fungovat jen na dvoubodových spojích, bez opakovačů a jen plně duplexně (neboli tak, aby obě strany mohly vysílat "proti sobě" a souběžně). Ale na oplátku může Ethernet v této podobě dosáhnout na podstatně větší vzdálenosti, třeba i desítky kilometrů. Vlastně ztratil nějaké principiální omezení dosahu, ten je už dán jen fyzikálními vlastnostmi použitého přenosového média (hlavně jeho útlumem).
Před Ethernetem se tak doslova otevřel zcela nový svět. Původně totiž vznikl jako technologie pouze pro lokální sítě (sítě LAN), umožňující propojení jen na krátké vzdálenosti. Ale když postupem času přišel o omezení dosahu, mohl náhle vstoupit do sítí metropolitních a dokonce i do sítí rozlehlých. Najednou se pak začalo hovořit i o "metropolitním Ethernetu", o "Ethernetu pro operátory" a o dalších mutacích a variantách.

Ale to je vše stále jen část celého báječného a velmi úspěšného příběhu Ethernetu, jehož další pokračování si zase necháme na příští díl tohoto seriálu.6 0495/ZAJ o

Proč se Ethernet jmenuje Ethernet?

Když v 19. století položil James Clerk Maxwell základy teorie elektromagnetického pole, fyzikům přišlo divné, jak se mohou elektromagnetické vlny šířit i vakuem, kde vlastně "nic není". A tak přišli s pracovní hypotézou, která říkala, že i ve vakuu přeci jen "něco je". Jakási vše prostupující substance, kterou nazvali "éter" a přes kterou by se elektromagnetické vlny mohly šířit i ve vakuu.
Poměrně záhy ale sami fyzikové tuto hypotézu sami vyvrátili. Známý Michelson-Morleyův pokus dokázal, že "vše prostupující éter" nemůže existovat. A tak se s ním ve fyzice přestalo počítat. Nicméně samotné slůvko "éter" jakoby přežilo a dodnes se neformálně používá pro označení toho, přes co se šíří bezdrátové vysílání. Hovoří se například o "vysílání éterem" či o "zaplněném éteru" apod.
Stejně tak si na původní éter vzpomněl i Robert Metcalfe, když měl v roce 1974 nějak pojmenovat to, co vznikalo pod jeho vedením. Stará a záhy vyvrácená hypotéza o éteru ho inspirovala hlavně kvůli všesměrovému způsobu šíření signálu v rámci sběrnicové topologie, jejíž pomocí on a jeho lidé propojili pracovní stanice Alto. A tak se zrodilo jméno Ethernet, označení jakési "éterové sítě". Dokonce se z této doby zachoval i Metcalfův pracovní náčrtek, na němž je sdílené médium (konkrétně koaxiální kabel) explicitně označeno jako "éter".

Rozdíl je v rámcích

Rozdílů mezi Ethernetem II a standardem IEEE 802.3 ("síť na bázi CSMA/CD") je více, nejvýznamnější je asi odlišný formát linkových rámců u obou verzí.
Obě verze mají v prvních 12 bytech dvě 48bitové (ethernetové) adresy, patřící odesilateli a příjemci daného rámce. V tomto se tedy neliší. Rozdíl se objeví až v dalších dvou bytech. V případě Ethernetu II je zde specifikace toho, co je "v nákladové části" rámce. Jde o údaj, kterému se říká "EtherType" a jeho (používané) hodnoty jsou vyšší než 1 500. Podle Ethertypu pak příjemce, který "vybaluje" obsah přijatého rámce, pozná, komu tento obsah patří. Například pro protokol IP, jehož pakety jsou do ethernetových rámců vkládány asi nejčastěji, je Ethertype roven 0800 (hexadecimálně), resp. 2048 dekadicky.
Naproti tomu verze IEEE 802.3 má ve stejných dvou bytech jiný údaj, a to velikost rámce, počítanou v bytech. Přesněji: velikost nákladové části rámce, bez započítání hlavičky rámce a jeho patičky se zabezpečovacím údajem (tzv. CRC).
Zajímavou otázkou určitě je, zda oba druhy ethernetových rámců mohou vedle sebe koexistovat. Tedy zda příjemce může vždy spolehlivě poznat, jestli právě přijal jeden či druhý typ rámce.
Odpověď na tuto otázku je naštěstí kladná, a to díky tomu, že velikost ethernetových rámců nepřesahuje 1 500 bytů "užitečného nákladu". Lze se tedy orientovat podle hodnoty obsažené v příslušných dvou bytech: pokud je větší než 1 500, jde o rámec Ethernet II. Jinak se jedná o rámec IEEE 802.3, viz obrázek.
Oba typy rámců se přitom používají dodnes. Dokonce se používaly ještě dva další typy ethernetových linkových rámců, a to "raw 802.3" a "802.3 SNAP". I ty bylo a stále je možné rozlišit, podle konkrétních hodnot v jejich hlavičce (viz další obrázek).