Vyšlo v měsíčníku Computer Echo č. 6/93 v roce 1993
Vytištěno z adresy: http://www.earchiv.cz/a93/a306e160.php3

Část 4. - Pilíře vzájemné spolupráce

V předcházejícím dílu této volné série článků na téma Interoperabilita jsme se zabývali obecným schématem vzájemného propojování počítačů v počítačových sítích - síťovými architekturami, vrstvovými modely, protokoly, a v roli příkladů referenčním modelem ISO/OSI a rodinou protokolů TCP/IP. Dnes se podrobněji zaměříme na naplnění nižších vrstev tohoto obecného schématu konkrétními protokoly, metodami a technikami.

Dnešní počítačové sítě používají velmi široký repertoár přenosových technologií - od družicových a mikrovlnných spojů, přes spoje optické až po různé druhy drátových spojů. Všechny tyto přenosové technologie mají svá specifika, vyplývající jak z fyzikálních a obvodových vlastností použité přenosové cesty (např. koaxiálního kabelu, kroucené dvoulinky, telefonní linky či optického vlákna), tak i z konkrétního způsobu jejího využití - například po stejném druhu optického vlákna můžeme alternativně přenášet data rychlostí 10 Mbit/sekundu (u tzv. optického Ethernetu), či rychlostí 100 Mbit/sekundu (v případě FDDI) apod. Stejně tak mohou být tytéž přenosové protokoly provozovány nad různými přenosovými cestami - například sítě typu Ethernet mohou k fyzickému přenosu dat používat buď koaxiální kabely nebo kroucenou dvoulinku a nověji i optická vlákna, zatímco přenosové protokoly FDDI mohou být přenášeny nejen po optických vláknech, ale také po kroucené dvoulince atd.

Jednou z výhod vrstvové koncepce, ze které všechny dnešní sítě vychází, je pak nezávislost vyšších vrstev na používané přenosové technologii - té se musí přizpůsobit jen určitý počet nižších vrstev, zatímco všechny vyšší mohou být řešeny nezávisle na konkrétní přenosové technologii.

V případě sedmivrstvého referenčního modelu ISO/OSI, o kterém jsme se zmiňovali minule, jsou na konkrétní přenosové technologii závislé nejnižší dvě vrstvy, tj. vrstva fyzická a vrstva linková. V případě rodiny protokolů TCP/IP jde o jedinou nejnižší vrstvu (vrstvu síťového rozhraní), která odpovídá oběma nejnižším vrstvám referenčního modelu ISO/OSI, ale kterou síťový model TCP/IP nijak blíže nespecifikuje - očekává totiž, že pro praktickou implementaci této vrstvy budou použita již existující či nově vznikající řešení, vytvářená nezávisle na protokolech TCP/IP. Tvůrci referenčního modelu ISO/OSI naopak předpokládali, že potřebné standardy pro všechny použitelné přenosové technologie vytvoří sami. Teprve později uznali, že velmi životaschopné přenosové technologie mohou vznikat i mimo rámec ISO/OSI, a tak příslušné standardy do referenčního modelu alespoň formálně přejímají.

Linková vrstva se rozpadla

Referenčnímu modelu ISO/OSI je často vyčítáno, že zavádí příliš mnoho vrstev - více, než by bylo skutečně potřeba. Tento názor může být do značné míry opodstatněný u vyšších vrstev, konkrétně u relační a prezentační vrstvy, které toho mají na starosti poměrně málo, a velmi často nebývají implementovány vůbec. Příznačné je i to, že síťový model TCP/IP tyto dvě vrstvy nemá, a docela dobře se bez nich obejde.

Naproti tomu u nižších vrstev referenčního modelu ISO/OSI došlo k jiné zajímavé situaci: linková vrstva se rozpadla na dvě části, označované jako podvrstvy (sublayers).

Pro správné pochopení důvodů, který k tomu vedly, je vhodné si nejprve ujasnit příslušný časový horizont: referenční model ISO/OSI vznikl zhruba ve stejné době jako protokoly TCP/IP, a to na přelomu sedmdesátých a osmdesátých let. V té době ovšem existovaly prakticky jen sítě rozlehlé (sítě WAN, Wide Area Networks), zatímco lokální sítě se prosadily přeci jen o něco později (viz též box: Není Ethernet jako Ethernet).

Rozlehlé sítě ovšem byly (a stále ještě jsou) budovány téměř výlučně na dvoubodových spojích, zatímco lokální sítě používají jak dvoubodové, tak i mnohobodové spoje - tedy takové, ke kterým je fyzicky připojeno více uzlů, než jen dva (jako je tomu u dvoubodového spoje). Zásadní rozdíl je pak v tom, že u dvoubodového spoje nemohou vznikat žádné vážnější konflikty mezi uzly, které chtějí začít vysílat (u tzv. plně duplexního spoje tak mohou činit oba současně, a u tzv. poloduplexního spojení se musí vhodně střídat). Naproti tomu u vícebodového spoje se může stát, že úmysl začít vysílat projeví více uzlů současně - zatímco vyhovět lze jen jednomu z nich. Proto zde musí nastoupit vhodný mechanismus, který mezi všemi zájemci vybere jednoho, a tomu skutečně umožní vysílat. Typickým příkladem může být koaxiální kabel, na který může být přímo připojeno více uzlů, ale na který může v daném okamžiku vysílat nejvýše jeden uzel.

Mechanismy, zajišťující korektní přístup jednotlivých zájemců o vysílání ke společně sdílenému přenosovému médiu, mohou být založeny na velmi odlišných principech a myšlenkách, a používat velmi odlišné mechanismy. Společně jsou pak označovány jako přístupové metody (access methods).

Referenční model ISO/OSI (stejně tak jako TCP/IP) však s existencí přístupových metod nepočítal, a tyto do něj musely být teprve dodatečně začleněny. Ovšem kam, resp. do které vrstvy? Přístupové metody rozhodně patří nad fyzickou vrstvu, protože samy využívají služeb typu "přenes bit/přijmi bit". Současně ale patří pod vrstvu síťovou, která se již stará o správné směrování (tj. volbu trasy, po které mají být celé bloky dat přenášeny), a nikoli již o jejich skutečný přenos mezi dvěma sousedními počítači, který má na starosti vrstva linková.

Přístupové metody je tedy nutné implementovat na úrovni linkové vrstvy. Jednou z možností by jistě bylo vzít všechny konkrétní protokoly linkové vrstvy, a do každého z nich "zabudovat" příslušnou přístupovou metodu. Zde je ovšem třeba si uvědomit, že různé druhy přenosových cest vyžadují použití specifických přístupových metod. To by ale znamenalo, že od každého jednotlivého přenosového protokolu linkové vrstvy by bylo třeba "vyrobit" tolik variant se zabudovanými přístupovými metodami, kolik takovýchto přístupových metod existuje, či bude teprve vytvořeno. A to jistě není rozumné řešení.

Mnohem vhodnější je implementovat přístupovou metodu nezávisle na přenosových protokolech linkové vrstvy. To ovšem znamená vložit mezi fyzickou vrstvu a vrstvu linkovou novou samostatnou vrstvu, a přístupovou metodu pak implementovat v této nové vrstvě. Z koncepčních důvodů ovšem nebylo vhodné tuto novou vrstvu řešit skutečně jako samostatnou a postavit ji na roveň ostatním vrstvám. Místo toho se zvolil kompromis - nově vložená vrstva je koncipována jako podvrstva (sublayer) linkové vrstvy, která se v důsledku toho rozdělila na dvě podvrstvy: vyšší podvrstva, označovaná jako podvrstva LLC (Logical Link Control sublayer, česky nejspíše: podvrstva řízení logického spoje) si ponechala úkoly, které jsme až dosud přisuzovali celé linkové vrstvě - v zásadě tedy přenos celých bloků dat (rámců). Nižší podvrstva, označovaná jako podvrstva MAC (Media Access Sublayer, česky: podvrstva řízení přístupu k přenosovému médiu), naopak dostala za úkol zajišťovat korektní přístup ke sdílenému přenosovému médiu (tedy implementaci příslušné přístupové metody).

U síťového modelu TCP/IP, díky jeho zásadě "co je pod síťovou vrstvou, to jde mimo mne", nemuselo dojít k žádné změně.

Standardy lokálních sítí

Konkrétní přenosové protokoly pro lokální sítě, pokrývající úrovně fyzické vrstvy a obou podvrstev linkové vrstvy, však nebyly vytvořeny ani v rámci rodiny protokolů TCP/IP, ani v rámci organizace ISO pro její referenční model - do něj byly teprve dodatečně začleněny formálním převzetím příslušných standardů jako norem ISO.

802.1 Rozhraní vyšších vrstev
802.2 Řízení logického spoje (podvrstva LLC)
802.3 Sítě s přístupovou metodou CSMA/CD (tj. sítě typu Ethernet)
802.4 Sítě Token Bus
802.5 Sítě Token Ring
802.6 Metropolitní sítě (sítě MAN, Metropolitan Area Networks)
802.7 Sítě s přenosem v přeloženém pásmu (broadband networks)
802.8 Sítě na bázi optických vláken
802.9 Sítě, integrující hlasový a datový přenos
802.10 Otázky bezpečnosti a zabezpečení sítí
802.11 Bedrátové sítě
Tabulka 1: Pracovní podskupiny IEEE, zaměřené na problematiku lokálních sítí

Většina dnes používaných standardů pro lokální sítě pochází od amerického sdružení elektrotechnických a elektronických inženýrů IEEE (Institute of Electrical and Electronic Engineers), přesněji od její pracovní skupiny pro lokální sítě, označované podle data jejího založení (v únoru roku 1980) číslem 802. Tato pracovní skupina se dále dělí na specificky zaměřené podskupiny (viz tabulka 1), od kterých pochází jednotlivé konkrétní standardy. Tyto jsou označovány jako IEEE 802.x, kde x je číslo podskupiny, vyjadřující současně i zaměření standardu. Pokud některá podskupina vypracovává více standardů, tyto jsou označovány ještě jiným způsobem - viz tabulka 2. Do referenčního modelu ISO/OSI byly standardy IEEE 802 převzaty pod označením ISO 8802.x

označení standardu standard schválen v roce co standard definuje
10 Base 5 1985sítě CSMA/CD (Ethernet) s přenosovou rychlostí 10 Mbit/sekundu po tzv. tlustém koaxiálním kabelu, s max. délkou souvislého kabelového segmentu 500 metrů
10 Base 2 (též: 802.3a, "Cheapernet", "Thinnet") 1988 sítě CSMA/CD (Ethernet) s přenosovou rychlostí 10 Mbit/sekundu po tzv. tenkém koaxiálním kabelu, s max. délkou souvislého kabelového segmentu cca 200 metrů (přesně 185 m.)
1 Base 5 (též: 802.3e) 1988 sítě CSMA/CD (Ethernet) s přenosovou rychlostí 1 Mbit/sekundu po tzv. kroucené dvoulince, s max. délkou kabelu 500 m (podle sítě AT&T Starlan)
10 Broad 36 (též: 802.3b) 1988 sítě CSMA/CD (Ethernet) s přenosovou rychlostí 10 Mbit/sekundu po koaxiálním kabelu v tzv. přeloženém pásmu (broadband), s max. délkou souvislého kabelového segmentu 3,6 km
10 Base T 1990 sítě CSMA/CD (Ethernet) s přenosovou rychlostí 10 Mbit/sekundu po tzv. kroucené dvoulince, s max. délkou kabelu 100 m.
Tabulka 2: Alternativní standardy podskupiny IEEE 802.3

Konkrétní způsob začlenění standardů IEEE 802 do sedmivrstvého referenčního modelu ISO/OSI ukazuje obrázek 1. Z něj je také patrné, které vrstvy a podvrstvy jednotlivé standardy pokrývají.

Obrázek 1.
Obr. 1.: Standardy IEEE 802.x vs. referenční model ISO/OSI
Existují ovšem i jiné všeobecně přijímané a v praxi hojně používané standardy pro lokální sítě, které nepochází od sdružení IEEE. Z nich je nejvýznamnější standard FDDI (Fiber Distributed Data Interface) pro sítě na bázi optických vláken s přenosovou rychlostí 100 Mbit/sekundu, který vypracovala americká normotvorná organizace ANSI (American National Standards Institute), konkrétně její pracovní skupina ASC X3T9.5.

Obrázek 2.
Obr.2: Standard FDDI vs. referenční model ISO/OSI
Koncepčně se standard FDDI liší od standardů IEEE 802.x v tom, že kromě linkové vrstvy dělí na dvě podvrstvy i vrstvu fyzickou - viz obrázek 2. Tím vznikají celkem čtyři podvrstvy, a FDDI definuje samostatné dílčí standardy pro tři nejnižší (zatímco pro nejvyšší podvrstvu LLC přejímá příslušný standard IEEE 802.2). Kromě toho definuje v samostatném dílčím standardu i prostředky pro řízení a správu sítě (Station Management), které zasahují až do podvrstvy řízení přístupu ke sdílenému médiu (podvrstvy MAC).

Do referenčního modelu ISO/OSI pak byly všechny čtyři dílčí standardy FDDI opět převzaty, a to pod označením ISO 9314.

Důsledky rozdělení linkové vrstvy

Zamysleme se nyní nad tím, jaké konkrétní důsledky vyplývají z rozdělení linkové vrstvy na dvě podvrstvy.

Když jsme si v minulém dílu popisovali, jakým způsobem prochází přenášená data postupně jednotlivými vrstvami vrstvového modelu, ukázali jsme si, že v každé z nich jsou data "vložena do nové obálky" - neboli jsou k nim připojeny řídící údaje, určené pro partnerskou entitu stejnolehlé vrstvy vzdáleného počítače. Nyní toto platí i pro obě podvrstvy linkové vrstvy - každá z nich vkládá přenášená data do vlastní "obálky", označované v tomto případě jako rámec (frame). Situaci názorně ilustruje obrázek 3.

Obrázek 3.
Obr.3: Vkládání paketů do rámců podvrstvy LLC a MAC
Pro podvrstvu LLC byl standardem IEEE 802.2 původně navržen jednotný rámec (viz obr. 4), který mj. specifikuje přechodové body (body SAP, viz minulý díl) na straně příjemce i odesilatele, skrz které jsou data předávána mezi linkovou a síťovou vrstvou. Tím tyto dva údaje nepřímo určují, kdo je odesilatelem a kdo příjemcem přenášených dat na úrovni síťové vrstvy, a tím současně i přesný význam datové části rámce - tedy to, podle kterého protokolu síťové vrstvy byla datová část rámce sestavena. Později se však ukázalo, že jeden jediný byte, vyhrazený k identifikaci přechodového bodu (a tím i síťového protokolu), by nemusel vždy stačit, a tak se zavedl ještě další druh rámce podvrstvy LLC, označovaný jako IEEE 802.2 SNAP (od: Sub-Network Access Protocol). Ten pak pro identifikaci síťového protokolu používá pět samostatných bytů (viz opět obr. 4), a od původního rámce IEEE 802.2 jej lze rozpoznat díky tomu, že oba původní byty pro identifikaci přechodových bodů má pevně nastaveny na hodnotu AA (hexadecimálně).

Obrázek 4.
Obr.4: Rámce IEEE 802.2 a 802.2 SNAP podvrstvy LLC
Rámce pro podvrstvu MAC jsou pak již specifické pro konkrétní přístupovou metodu, resp. použitou přenosovou cestu - jiné jsou tedy pro sítě typu Ethernet, Token Ring či Token Bus (a také pro FDDI). V našem dalším výkladu se však omezíme jen na sítě typu Ethernet, které jsou u nás zdaleka nejrozšířenější.

V případě sítí typu Ethernet je nepříjemný problém v tom, že pro ně existují dva ne zcela shodné standardy - tzv. Ethernet II a IEEE.802.3. (viz box: Není Ethernet jako Ethernet). Oba definují vlastní rámce na úrovni podvrstvy MAC (viz obr. 5): tyto shodně obsahují Ethernetovou adresu příjemce a odesilatele (každou v rozsahu 48 bitů, tj. šesti bytů), a také závěrečný kontrolní součet (v rozsahu čtyř bytů). Liší se ale v obsahu dvou dalších bytů (konkrétně 13. a 14., viz obrázek 5): v případě Ethernetu II tyto dva byty specifikují, kterému protokolu síťové vrstvy "patří" datový obsah rámce, zatímco v případě rámce IEEE 802.3 tytéž dva byty vyjadřují délku datové části rámce.

Obrázek 5.
Obr.5: Rámce IEEE 802.3 a Ethernet II podvrstvy MAC
Pokud bychom chtěli za tímto rozdílem hledat nějaké racionální jádro, pak je zřejmě následující: standard Ethernet byl vyvinut jako samostatný standard, zasahující jen do úrovně podvrstvy MAC. Nepředpokládá tedy nic o tom, jaké protokoly budou použity na vyšších vrstvách (a hlavně na úrovni podvrstvy LLC), a proto musí sám nabízet možnost, jak identifikovat datový obsah svého rámce. Naproti tomu standard IEEE 802.3 byl vytvořen jako součást širší skupiny standardů. Formát rámce IEEE 802.3 (tj. rámec podvrstvy MAC) proto počítá s tím, že uvnitř jeho datové části bude vždy umístěn rámec IEEE 802.2 (tj. rámec podvrstvy LLC), a ten již obsahuje vše potřebné k identifikaci protokolu, podle kterého jsou sestavena skutečně přenášená data - takže tuto informaci není nutné znovu replikovat i v rámci IEEE 802.3 (tj. v rámci podvrstvy MAC).

Podívejme se nyní, jak je tomu v praxi.

Síťový model TCP/IP nijak blíže nespecifikuje svou nejnižší vrstvu (vrstvu síťového rozhraní), a tudíž ani nijak nepředepisuje, do jakých Ethernetových rámců mají být vkládány datové pakety síťové vrstvy (tj. tzv. IP datagramy). Existují však doporučení, popisující jakým způsobem vkládat IP datagramy do rámců Ethernet II, i do rámců IEEE 802.3 (včetně rámců 802.2 SNAP podvrstvy LLC). Tato doporučení mají formu dokumentů RFC, vydávaných provozovateli sítě Internet. Na Unixovských počítačích se pak lze většinou setkat se všemi možnými variantami, a obvykle i s možností výběru.

Poněkud jiná je situace u tolik oblíbených lokálních sítí NetWare firmy Novell. Tato firma dala jednoznačně přednost rámcům dle standardu IEEE 802.3. Začala je však systematicky používat již v době, kdy ještě nebyl dokončen standard IEEE 802.2 pro podvrstvu LLC. Z tohoto důvodu se v sítích NetWare začaly vkládat síťové pakety (tj. pakety síťového protokolu IPX) přímo do rámců podvrstvy MAC (tj. do rámců IEEE 802.3), a tedy bez rámců podvrstvy LLC (rámců IEEE 802.2) - viz obrázek 5. Tento formát pak firma Novell sama označuje jako "raw" 802.3 (doslova: "holý" rámec 802.3), a podle vlastních slov je jediná, kdo jej používá. Aby však vyšla vstříc potřebám vzájemného propojování sítí a budování heterogenních sítí (tj. takových sítí, ve kterých jednotlivé uzly používají různé různé přenosové protokoly, ale sdílí společné přenosové médium), umožnila firma Novell uživatelům svých sítí NetWare zvolit si jiný způsob vkládání síťových paketů (IPX paketů) do rámců linkové vrstvy. Možnosti, které připadají v úvahu, jsou následující (viz též obr. 6):

Obrázek 6.
Obr.6: Možnosti rozlišení rámců a jejich kombinací
  • "raw" IEEE 802.3 (tj. bez rámců 802.2),
  • Ethernet II,
  • IEEE 802.3 s rámci 802.2
  • IEEE 802.3 s rámci 802.2 SNAP

Pokud uživatel (resp. správce sítě) nestanoví jinak, jsou implicitně používány "raw" rámce IEEE 802.3. V nedávné době (konkrétně od 15. dubna 1993) však firma Novell, vedená snahou maximálně dodržovat všeobecně uznávané standardy, změnila toto implicitní nastavení na rámce IEEE 802.3 s rámci 802.2. Uživatelé však mají nadále možnost explicitně si vybrat jinou možnost.

Zajímavou otázkou, která se v tuto chvíli nabízí, je to, zda je možné všechny čtyři výše uvedené možnosti jednoznačně identifikovat. Odpověď je naštěstí kladná.

Rámce Ethernet II a IEEE 802.3 je možné rozlišit díky jejich maximální možné délce a díky konvenci o přidělování čísel, které v rámcích Ethernet II identifikují jednotlivé protokoly síťové vrstvy - tato čísla jsou vždy větší než 1500, zatímco maximální velikost datové části rámce IEEE 802.3 (uváděná na stejném místě jako číslo protokolu v rámcích Ethernet II) je právě 1500.

Podle hodnoty třináctého a čtrnáctého bytu každého přijatého rámce je tedy možné rozpoznat, zda jde o rámec Ethernet II či o rámec IEEE 802.3. Pokud jde o tuto druhou možnost, tedy o rámec IEEE 802.3, jak postupovat dále a zjistit, zda obsahuje ještě rámec IEEE 802.2 (resp. 802.2 SNAP), či zda jde o "raw" rámec, který již obsahuje přímo paket síťového protokolu IPX? Zde je možné využít konvence, kterou si sama zavedla firma Novell: první dva byty každého paketu IPX, vkládané do "raw" rámce 802.3, jsou vždy nastaveny na hodnotu FFFF (hexadecimálně). Tato hodnota není v současné době používána v polích DSAP a SSAP rámců IEEE 802.2, které identifikují přechodové body mezi linkovou a síťovou vrstvou. Po testu třináctého a čtrnáctého bytu tedy lze otestovat hodnotu dalších dvou bytů. Jsou-li rovny FFFF (hexadecimálně), jde o "raw" rámec IEEE 802.3. Jsou-li rovny AAAA (hexadecimálně), jde o rámec IEEE 802.3 s vloženým rámcem IEEE 802.2 SNAP. Jinak jde o rámec IEEE 802.3 s vloženým rámcem 802.2.

Je ale takovéto složité rozlišování vůbec někdy zapotřebí? Odpověď je opět kladná - jinak by totiž nemohly existovat multiprotokolové páteřní sítě, které pomocí jedné přenosové technologie (na úrovni linkové vrstvy, v našem konkrétním případě Ethernetu) přenáší více různých síťových protokolů současně. Jak by měl postupovat například multiprotokolový směrovač (router), který potřebuje znát přesný typ každého přijatého datové rámce, aby mohl aplikovat jemu příslušná pravidla směrování a dokázal zvolit správný směr, kterým má paket poslat dále?

Potřeba demultiplexu síťových paketů

Potřeba jednoznačně rozlišit druh rámce na úrovni linkové vrstvy však není motivována zdaleka jen potřebami směrování (routing) na úrovni síťové vrstvy, či potřebami přepojování rámců ještě na úrovni linkové vrstvy (anglicky: bridging). Další velkou motivací je i skutečnost, že na uzlových počítačích dnešních sítí je stále častěji provozováno více aplikací souběžně (ve víceúlohovém režimu), a všechny mohou chtít pracovat se sítí, resp. využívat jejích přenosových služeb. Není to přitom již specialita "větších" víceuživatelských počítačů - s dnešní popularitou a všeobecnou dostupností jednouživatelských víceúlohových operačních systémů a nadstaveb (jako MS Windows či OS/2) již není nic neobvyklého, když uživatel provozuje na svém osobním počítači více aplikací, které současně pracují se sítí. Víceúlohové prostředí přitom není nutnou podmínkou - i v jednoúlohovém MS DOSu je možné mít nainstalovány rezidentní programy, které pracují se sítí (např. zpřístupňují soubory na file serveru), zatímco na popředí je provozována jiná aplikace, která také se sítí pracuje.

Ukázkovým příkladem může být bezdisková stanice v síti NetWare, na které uživatel provozuje službu FTP (z rodiny protokolů TCP/IP), a jejím prostřednictvím přenáší soubor ze vzdáleného Unixovského počítače na svůj síťový disk na file serveru sítě Novell. Každý "kus" takto přenášeného souboru je nejprve přenesen z Unixovského počítač na pracovní stanici uživatele, a z ní je pak přenesen na file server sítě NetWare.

Jednoúlohovost operačního systému v tomto případě není překážkou (protože připojení síťových disků z file serveru je zajišťováno rezidentními programy, zatímco služba FTP je provozována na popředí). Velmi podstatné je ovšem to, že v daném případě na jednom počítači vedle sebe existují dvě sestavy protokolů (protocol stacks), které se musí dokázat podělit o jeden technický prostředek, zajišťující fyzický přenos dat po síti - v našem případě o síťovou kartu. V obecném případě může být takovýchto sestav protokolů vedle sebe více, a potenciálních příjemců dat může být dokonce ještě více - některé aplikace totiž mohou příslušné sestavy protokolů či jejich části sdílet.

Při odesílání dat principiální problémy nenastávají. Při příjmu je ale situace poněkud složitější. Všechna přijímaná data vstupují do uzlového počítače jedním vstupním bodem (jsou přijímána jednou síťovou kartou), ale potenciálních konečných příjemců může být více. Podle čeho a jak má být správný příjemce vyhledán? Na které úrovni a jak má být jeho výběr proveden? Jak prakticky zajistit to, aby se příslušná data dostala až k takto vybranému příjemci?

Odpověď na tyto otázky není jednoduchá. Rozdělování přijatých dat mezi různé příjemce nemůže být realizováno již na úrovni fyzické vrstvy, neboť ta pouze přijímá jednotlivé bity, ale nijak je neinterpretuje. Proto ani nemůže rozpoznávat, komu jsou určeny, a musí je všechny předávat jedinému příjemci - jedné konkrétní entitě na úrovni linkové vrstvy.

Tato entita je první instancí, na které je možné přicházející data rozdělovat - více entitám na úrovni síťové vrstvy. K tomu však entita linkové vrstvy potřebuje správně rozpoznat datový obsah každého přijatého rámce, a z něj si pak odvodit, které entitě na úrovni síťové vrstvy jej má předat.

Ukažme si to na konkrétním příkladu sítí typu Ethernet, kterým jsme se až dosud zabývali. Zjistí-li přijímající entita na úrovni linkové vrstvy, že jde o tzv. "raw" rámec IEEE 802.3, pak si z toho může odvodit, že jeho datový obsah má předat do síťové vrstvy té entitě, která implementuje přenosový protokol IPX sítí NetWare. Jde-li o rámec Ethernet II, dozví se z něj, kterému přenosovému protokolu síťové vrstvy datový obsah rámce "patří". Pak si musí zjistit, přes který přechodový bod (bod SAP, Service Access Point) se dostane na entitu, implementující příslušný protokol v síťové vrstvě, a přes takto zjištěný přechodový bod pak data skutečně předá. Jde-li o rámec IEEE 802.3 s vloženým rámcem 802.2, má entita linkové vrstvy k dispozici ještě podrobnější informaci - dozví se totiž explicitně, přes který přechodový bod má data předat do síťové vrstvy. Díky tomu je pak možné již na úrovni linkové vrstvy rozlišit více instancí téhož síťového protokolu, což v předchozím případě nebylo možné. Obdobně pak pro rámec 802.3 s vloženým rámcem 802.2 SNAP.

Další "rozvětvování" pak samozřejmě může probíhat i na úrovni síťové vrstvy i vrstev vyšších, ovšem již podle specifických pravidel konkrétních protokolů těchto vrstev.


Není Ethernet jako Ethernet

Když v devatenáctém století skotský fyzik James Clerk Maxwell vytvořil matematickou teorii elektromagnetických polí, dospěl přitom k závěru, že elektromagnetické záření se šíří prostorem na vlnovém principu, tedy obdobně, jako například zvukové vlny vzduchem. Vědcům ovšem poněkud nešlo do hlavy, jak se mohou tyto vlny šířit i ve vakuu, kde vlastně vůbec nic není. A tak si vymysleli éter, neboli hypotetickou substanci, která prostupuje úplně všechno (včetně vakua), a umožňuje šíření vln prostorem. Vcelku brzy se ale ukázalo, že tomu tak být nemůže. Poprvé to prokázal již slavný Michelson-Morleyův pokus v roce 1871, ale definitivní tečku za všemi úvahami o existenci éteru udělal se svou teorií relativity až Albert Einstein.

Úvahy o existenci éteru však neupadly zcela v zapomnění - v roce 1972 si na éter vzpomněl pan Robert Metcalfe, když měl napsat výzkumnou zprávu pro svého zaměstnavatele, a v ní nějak vhodně vystihnout základní princip fungování lokální počítačové sítě, kterou skupina odborníků pod jeho vedením vyvíjela. A tak poprvé použil jméno Ethernet. Historické prameny uvádí, že se tak stalo 22. května 1973, a to ve výzkumném středisku PARC (Palo Alto Research Center) firmy Xerox, kde se na vývoji této nové lokální sítě pracovalo.

První Ethernet ovšem pracoval s přenosovou rychlostí 3 Mbity za sekundu (přesně: 2,94), a byl využíván pro vzájemné propojení počítačů Alto firmy Xerox v jejím výzkumném středisku PARC.

Původní síť Ethernet firmy Xerox se ukázala natolik životaschopnou, že přilákala pozornost dalších firem. Proto byl v roce 1979 ve středisku PARC zahájen společný projekt firem Xerox, DEC a Intel, který má za cíl zdokonalit původní Ethernet, a ze spíše experimentální sítě učinit komerčně orientovaný produkt, vhodný pro masové nasazení. Základní myšlenky Ethernetu se příliš nezměnily (zejména pokud jde o přístupovou metodu CSMA/CD), ale praktická implementace doznala výraznějších změn - změnil se například tvar přenášených elektrických signálů, typ používaných kabelů a konektorů, formáty rámců, časování, zabezpečení přenášených dat atd. Největší změny pak doznala přenosová rychlost, která byla zvýšena na 10 Mbit/sekundu. První formální specifikace Ethernetu (neboli verze 1.0), označované také jako Blue Book, byly vydány v září roku 1980.

Ještě v únoru roku 1980 však byla v rámci americké společnosti elektrotechnických a elektronických inženýrů (IEEE, Institute of Electrical and Electronic Engineers) ustavena pracovní skupina, zabývající se přípravou standardů pro lokální sítě. Ta pak záhy vytvořila specificky zaměřené podskupiny, které se věnují konkrétním oblastem (viz hlavní text).

Specifikace Ethernetu verze 1.0 byly příslušné podskupině v rámci IEEE předloženy, a tato je v principu převzala, provedla v nich některé dílčí změny, a vydala jako svůj standard IEEE 802.3. Jeho konečná verze byla formálně schválena až v roce 1985, ale již mnohem dříve (v roce 1982) se objevuje druhá verze Ethernetu ze střediska PARC (tj. od firem DEC, Intel a Xerox), ve které jsou zapracovány některé změny, provedené pracovní skupinou v rámci IEEE. Tato druhá verze Ethernetu, označovaná dnes jako DIX Ethernet či Ethernet II, však stále obsahuje významné odlišnosti oproti standardu IEEE - především ve významu dvou bytů v rámci podvrstvy MAC, viz hlavní text.

Zajímavé je na celé věci také to, že standard IEEE 802.3 vůbec nepoužívá jméno Ethernet (které je jeho původními autory patentováno). Místo toho používá označení "sítě s přístupovou metodou CSMA/CD". V praxi se ovšem i tento standard označuje jako Ethernet.

Další podstatný rozdíl mezi standardem IEEE 802.3 a skutečným Ethernetem (DIX Ethernetem, Ethernetem II) je pak i v jejich dalším vývoji. Zatímco skutečný Ethernet se již dále příliš nevyvíjí, pracovní skupiny a podskupiny v rámci IEEE pracují stále, a upravují své standardy pro nově se objevující přenosové technologie. Jestliže tedy skutečný Ethernet počítá pouze s použitím koaxiálního kabelu o průměru půl palce a impedanci 50 Ohmů (známého též jako tzv. tlustý kabel), standard IEEE 802.3 postupně získal několik dalších alternativ, které dovolují používat mj. i tenčí koaxiální kabel (o průměru 0,2 palce, tzv. tenký kabel) či nestíněnou kroucenou dvoulinku.