Základy počítačových sítí
13. Úkoly vrstvy datového spoje
Hlavní a zásadní úlohou vrstvy datového spoje je poskytovat vyšším vrstvám přístup k přenosovému médiu. Data, která se při průchodu vrstvami pohybují po zásobníku dolů, musí být v určitém okamžiku doručena na médium, přes které se dostanou do svého cíle, přijímajícího hostitele. To je hlavní funkce vrstvy datového spoje: ukládá data z vyšších vrstev na médium.
Síťová vrstva, o které jsme hovořili v předchozí části tohoto kurzu, zahrnovala segmenty s adresami IP, které byly přijaty z transportní vrstvy během procesu zapouzdření a vytvořily pakety. Tyto pakety přicházejí do vrstvy datového spoje před odesláním cílovému hostiteli a poté procházejí vrstvou datového spoje do přenosového média. Ještě předtím však pakety obdrží další kontrolní informace, tentokrát fyzickou adresu zařízení, 48bitovou adresu MAC.
Z paketů se pak stanou rámce, které vstupují do média a jsou dále přenášeny k cílovému hostiteli. Adresa MAC je přiřazena při výrobě karty a uložena v paměti ROM. Paměť ROM je určena pouze pro čtení, takže není možné měnit přiřazené adresy na úrovni karty nebo hardwaru. Tyto adresy však lze změnit na úrovni systému zařízení, například v operačním systému. Někdy správci provádějí takové změny na úrovni systému, např. když nechtějí znovu konfigurovat síťový hardware, např. když do sítě přijde nový počítač.
Samotná vrstva datového spoje je prostředníkem mezi přenosovým médiem a síťovým softwarem. V případě koncových zařízení, tj. počítačů, serverů nebo telefonů, se jedná o jedinou vrstvu implementovanou nejen v softwarové, ale také v hardwarové oblasti. Fyzickou reprezentací vrstvy datových spojů je síťová karta, kterou instalujeme do počítače. Tyto karty představují rozhraní mezi síťovým softwarem a přenosovým médiem. Protože vrstva datového spoje pracuje na dvou úrovních, na úrovni hardwaru a softwaru, jsou její funkce a úkoly rovněž rozděleny do dvou menších podvrstev:
- LLC (Logical Link Control),
- MAC (Media Access Control).
Podvrstva LLC obsahuje informace o používaném protokolu síťové vrstvy, takže různé protokoly síťové vrstvy, například IPv4, IPv6 nebo IPX, mohou používat stejné přenosové médium a síťovou kartu a její funkce v počítači vykonává ovladač síťové karty. Na druhé straně podvrstva MAC definuje pravidla přístupu k médiu a vykonává adresovací funkce. Metoda MAC byla popsána v prvním díle tohoto seriálu.
Souhrnně lze říci, že vrstva datového spoje:
- přijímat data ze síťové vrstvy,
- vytvářet rámce, které lze přenášet přes médium,
- poskytuje fyzickou adresu rámce,
- Odpovídá za řízení přístupu k médiu.
Tato vrstva je implementována v koncových zařízeních, jako jsou počítače, ale také ve směrovačích a přepínačích.
Rámec a komunikace ve vrstvě datového spoje
Existuje mnoho řešení a mnoho síťových standardů pro implementaci funkcí na vrstvě 2. Máme standardy Ethernetu, máme bezdrátové sítě a nakonec máme mnoho síťových protokolů, které fungují v sítích WAN, jako je Frame Relay. Neexistuje tedy nic takového jako univerzální rámec. Každá síťová norma má svou vlastní strukturu, která je specifická pro konkrétní řešení. Shrneme-li toto téma, můžeme předpokládat, že typický rámec druhé úrovně se skládá ze tří hlavních částí:
Nadpis |
Data |
Zápatí |
Adresy MAC zdroj a cíl signál pro spuštění rámce |
pakety vrstvy síťová/internetová vrstva |
signál konce snímku kontrolní součet |
Nyní sledujme proces komunikace mezi zařízeními se zaměřením na funkce vrstvy datového spoje. Předpokládejme, že náš počítač odešle požadavek na webový server ve vzdálené síti.
Data pro odeslání takového požadavku jsou již zapouzdřena do jednoho paketu s číslem portu aplikace a logickou adresou, tj. IP adresou počítače a serveru.
Před vstupem paketu do přenosového média musí vrstva datového spoje vytvořit rámec s příslušnými adresami MAC odesílatele a příjemce rámce. V případě adresy MAC odesílatele je věc jasná, jedná se pouze o adresu MAC počítače, ale co adresa cílového hostitele? Pokud počítač a webový server nejsou ve stejné síti a nelze určit adresu MAC jeho síťové karty, je to technicky nemožné. Proč? Protože adresy MAC se používají pouze pro komunikaci v rámci sítě a nikdy mimo ni. Proto bude v poli rámce obsahujícím cílovou adresu MAC uložena adresa MAC rozhraní směrovače, ke kterému je náš počítač připojen.
Rámec je odeslán přes přenosové médium do prvního směrovače. Ten po přijetí rámce tento rámec dekapsuluje, aby mohl přečíst IP adresu zařízení, na které paket směřuje. IP adresy nelze číst přímo z rámců 2. vrstvy, proto je nutná dekapsulace. Po přečtení adresy IP z paketu (jakmile je rámec dekapsulován, data se opět stanou paketem) ji porovnejte se záznamem ve směrovací tabulce a najděte položku, která označuje, že síť serveru je směrována přes jiné směrovače.
Poté vytvoří nový rámec, jehož zdrojovou adresou bude adresa MAC rozhraní, které se připojuje k druhému směrovači, a cílovou adresou MAC tohoto směrovače.
Rámec pak projde médiem k druhému směrovači, který jej opět zapouzdří a přečte z paketu IP adresu. Zjistí, že příjemcem dat je zařízení pracující v síti, které je k němu přímo připojeno, takže proces zapouzdření provedený druhým směrovačem proběhne znovu, tentokrát do pole MAC adresa zadá adresu MAC svého druhého směrovače. Jako zdrojová adresa se použije rozhraní a jako cílová adresa MAC adresa adresního serveru.
Takto připravené snímky se přenesou na server, který je rovněž dekapsuluje. Tentokrát se však jedná o zařízení, na které data směřují, takže data kompletně dekapsuluje, tj. dodatečně přečte číslo portu aplikace, aby mohla data odeslat příslušné konkrétní aplikaci, v tomto případě webové službě.
Webová služba poté připraví data odpovědi. Data jdou nejprve do transportní vrstvy, kde je jim přiřazeno číslo portu aplikace, poté do síťové vrstvy, kde vytvoří paket s příslušnou IP adresou, a nakonec do vrstvy datového spoje, kde je z paketu připraven rámec označený adresami MAC serveru a směrovače pro připojený server.
Odpověď je poté předána médiu, které je následně odesláno klientovi. Během tohoto procesu prochází dvěma směrovači, které provádějí dekapsulaci a rekapsulaci, a protože musí přečíst IP adresu, mohou předat odpověď. Odpověď nakonec patří klientovi. Tím se data rozbalí a prohlížeč může zobrazit webovou stránku.