V predchádzajúcej časti sme sa zoznámili s transportnou a sieťovou vrstvou, predstavili si hlavne protokoly TCP, UDP, IP a povedali si niečo o IP adresách. Dnes sa pozrieme na zúbok predposlednej vrstve OSI modelu, ktorou je linková vrstva. V súvislosti s ňou sa nedá nespomenúť technológia Ethernet, ktorá je najrozšírenejšia LAN technológia v súčasnosti.
Linková vrstva (L2)
Úlohou tejto vrstvy je umožniť komunikáciu dvoch alebo viacerých prepojených sieťových rozhraní toho istého typu nad spoločným médiom. PDU tejto vrstvy je frame (rámec). Okrem toho má táto vrstva aj iné úlohy, ktorými sú adresovanie uzlov, riadenie prístupu k médiu, prenos dát, kontrola správnosti prenosu.
Rámce, ktoré putujú cestou k cieľu môžu prechádzať viacerými typmi linkovej technológie. Hranice týchto rôznych technológii bývajú na smerovačoch prípadne na bridgoch (mostoch). Určite mnoho z vás doma používa Wi-Fi, ktorú vysiela router. Z neho však už potom dáta do Internetu idú po kábli. Pakety tak prechádzajú rôznymi linkovými technológiami, pričom PDU paketov a PDU vyšších vrstiev sa nemení. Čo sa však mení je frame. Každé zariadenie, ktoré ma preposlať frame ho príjme, dekapsuluje, a znovu enkapsuluje do nového rámca podľa použitej linkovej technológie.
Linková vrstva sa zvykne deliť na 2 podvrstvy: LLC (Logical Link Control, vyššia podvrstva) a MAC (Media Access Control, nižšia podvrstva).
Úlohou LLC je najmä rozlíšiť rôzne L3 protokoly prenášané tou istou linkovou technológiou. Dodatočne môže vykonávať ešte číslovanie či potvrdzovanie.
MAC vrstva ma za úlohu adresáciu uzlov a riadenie prístupu k médiu. V súvislosti s MAC vrstvou Vám možno napadol pojem MAC adresa. Práve pomocou nej sa na úrovni linkovej vrstvy vykonáva adresovanie.
Už sme povedali, že úlohou linkovej vrstvy je riadiť prístup k médiu a to tak, aby nedochádzalo ku kolíziám. Poďme si vysvetliť pojem kolízia. Kolízia nastáva vtedy, keď viaceré stanice vysielajú naraz nad spoločným médiom a dochádza k poškodeniu framov. Priestor siete, v ktorom môže dôjsť ku kolízii nazývame kolízna doména. Typicky ide o staršie typy sieti tvorené hubmi, ale týka sa to aj dnešných Wi-Fi sietí. V takomto priestor smie vysielať iba jedna stanica naraz. Prechádzaniu kolízií sa budem viac venovať v časti Ethernet.
Spomeňme ešte pojem duplex. Rozlišujeme half-duplex a full-duplex.
Half-duplex znamená, že obojsmerná komunikácia síce je možná, ale nie naraz. Stanica môže buď prijímať alebo vysielať dáta. Príkladom je Wi-Fi.
Full-duplex znamená, že je možné naraz prijímať i vysielať dáta. Ak zariadenia pracujú v režime full-duplex potom nie je možné, aby nastala kolízia.
Teraz pár slov k rámcom. Hovorili sme, že pri prechode rôznymi linkovými technológiami sa zakaždým pakety enkapsulujú do nového rámca. Z toho vyplýva, že rámcov bude viac typov. To je pravda, avšak ich základný formát je mnoho krát veľmi podobný. V hlavičke rámca nájdeme adresné informácie (cieľovú a zdrojovú MAC adresu), typ rámca, druh prenášaných dát či prípadne dĺžku rámca.
V päte býva hlavne kontrolný súčet pre identifikáciu chýb.
V rámci môže byť ešte aj iné polia ktoré slúžia napríklad pre synchronizáciu komunikujúcich zariadení. Na obrázku nižšie sú vyobrazené 2 typy rámcov. Vidieť môžete aj frame typu Ethernet avšak ešte aj samotný Ethernet používa 3 typy rámcov. O tom však už viac v časti...
Ethernet 802.3
Ide o v súčasnosti najpoužívanejšiu LAN technológiu s rýchlosťami až do 100Gbit/s. Používa celú škálu médií od metalických krížených káblov, cez optické až po bezdrôtové varianty. Medzi iné linkové technológie patrí Wi-Fi, PPP (Point-to-Point protokol), HDLC, Frame Relay. Všetky tieto technológie sa používajú vo WAN prostredí a slúžia teda na prepájanie s inými sieťami alebo do Internetu.
Najdôležitejšie ethernetové štandardy sú 802.2 LLC a 802.3 MAC. LLC sa tu stará o komunikáciu s vyššími L3 protokolmi, o zapuzdrovanie a správne označovanie paketov v rámcoch.
Úlohou MAC podvrstvy je tu riadenie prístupu k médiu, zotavovanie z kolízii, rozpoznávanie rámcov, detekcia chýba a samozrejme adresovanie uzlov.
Adresovanie sa deje na základe MAC adresy, ktorá je pridelená výrobcom a je jedinečná pre každú sieťovú kartu a celosvetovo unikátna. Je to 6-bajtové číslo, kde prvé 3 bajty sú OUI (Organizationally Unique Identifier), ktoré jednoznačne identifikuje výrobcu. Ostatné 3 bajty sú sériové číslo karty.
MAC adresu vašej sieťovej karty si môžete pozrieť príkazov ipconfig /all.
Ethernet na prechádzanie kolízií, používa techniku CSMA/CD (Carrier Sense Multiple Access Collision Detect). Postup je nasledovný. Ako prvé sa zisťuje, či niekto vysiela. Ak nie, stanica môže začať vysielať. Ak áno, počká náhodne dlhý čas a začne zisťovať znovu. Potom nasleduje kontrola, či počas vysielania vznikla kolízia. Ak nie, stanice bude pokračovať v odosielaní, kým sa neodošle celý rámec. Ak áno, treba kolíziu riešiť. Kolízia sa rieši tak, že sa odošle tzv. jam signál (veľkosť 4B), ktorý odosielajú iba stanice, ktoré vysielali a spôsobili kolíziu. Stanice sa odmlčia na náhodné dlhý čas a potom začne celý proces odznova. Cieľom je samozrejme kolíznym doménam predchádzať. V súčasnosti, kde sú siete vystavané pomocou prepínačov a cez full-duplex tu nie je až taký problém. Problém kolízií je však stále aktuálny pre Wi-Fi, kde sa používa technika CSMA/CA (Collision Avoidance). Viac o nej v dieli o Wi-Fi.
Formát Ethernetového rámca je vyobrazený na obrázku. Pole Preamble slúži pre informovanie uzlov, že sa začína prenos. Polia Destination a Source sú zrejme jasné – ide o cieľovú a zdrojovú MAC adresu. Type identifikuje typ Ethernetového rámca, alebo jeho dĺžku. Data nesú samotné dáta (tzv. payload). FCS (Frame Check Sequence) obsahuje kontrolný súčet (CRC), na základe ktorého sa overuje, či došiel frame v poriadku. Rámce s nesprávnou FCS sa zahadzujú.
Len pre informáciu, Ethernet využíva 3 typy rámcov, avšak tie si nevyžadujú špeciálne sieťové karty. Najpoužívanejší je Ethernet II.
Protokol ARP
Teraz si povieme niečo o protokole ARP (Address Resolution Protocol). Je pomerne jednoduchý no často používaný. Jeho účelom je zistenie neznámej MAC adresy zariadenia k známej IP adrese. Ak majú totiž stanice medzi sebou komunikovať v sieti potrebujú vedieť okrem IP adresy aj MAC adresu.
Na to slúži ARP, ktorý sa posiela ako broadcast. Ak je príjemca v tej istej sieti ako ten čo sa pýta, je možné priamo zistiť MAC adresu. Ak je však v inej sieti, stanica vie, že paket musí prejsť cez bránu (broadcast totižto štandardne routre nepreposielajú ďalej). Na to potrebuje stanica vedieť MAC adresu brány. Čo sa použije? Správne, znovu ARP. Obsah vašej ARP tabuľky si môžete pozrieť z príkazového riadka príkazom arp –a. ARP záznam ostáva v systémoch Windows 2 minúty. Ak je počas tejto doby použitý, predlží sa jeho životnosť o 10 minút.
Povedzme, že chcem vidieť stránku www.pc.zoznam.sk, ktorá je umiestnená na určitom servery kdesi v hlbinách Internetu. Na to, aby som si vyžiadal túto stránku potrebuje táto požiadavka najskôr prejsť mojou bránou (typicky router). Na adresovanie smerovača však potrebujem vedieť jeho MAC adresu (rámce sú doručované na základe MAC adries). Ukážeme si, ako si počítač pomocou protokolu ARP zistí MAC adresu smerovača. Na túto demonštráciu vymažeme ARP záznamy pomocou príkazu arp -d (na tento úkon je potrebné mať zapnutý príkazový riadok ako správca). Niekedy sa záznamy nevymažú po prvom zadaní príkazu (v sieti niekto vysiela a tak sa počítač rýchlo naučí MAC adresy) a tak je nutné príkaz arp -d opakovať viac krát.
Po úspešnom vymazaní a overení pomocou príkazu arp -a vidíme hlášku „No ARP Entries Found“. Zisťovanie MAC adresy routra môže začať. Na to, aby sme odpozorovali prácu ARP je nutné pracovať rýchlo nakoľko ARP tabuľka nezostane v PC dlho nezaplnená. Analyzátorom sieťovej prevádzky, ktorým je napríklad voľne dostupný program Wireshark, uvidíme princíp činnosti ARP. Po vymazaní ARP tabuľky nemá počítač žiadne znalosti o iných uzloch v sieti. Na prístup do Internetu potrebuje teda zistiť MAC adresu routra a aj router musí vedieť MAC adresu počítača.
V prvom odchytenom rámci sa môj počítač pýta broadcastom kto je 192.168.1.1. Odpovie ten, komu prislúcha táto IP adresa, čo je router, a uvedie svoju MAC adresu. Následne sa aj router opýta kto je 192.168.1.3 a odpovie môj notebook a uvedie svoju MAC adresu. Hotovo, celá veda. ARP cache sa postupne takto naplní a uzly môžu korektne komunikovať.
Pár slov a prepínači (switch)
Ako poslednú vec si predstavíme v súčasnosti asi najpoužívanejšie L2 zariadenie. Je ním switch (prepínač). Kedysi sa zvykol používať rozbočovač (hub), ktorý však dnes už vidieť iba zriedkavo pri výstavbe sietí. Je to preto, že hub zväčšoval kolízne domény a dostupná prenosová rýchlosť sa delila medzi všetky pripojené stanice. Ak by sme teda mali hub s rýchlosťou portov 100Mb/s a k nemu pripojených 8 staníc, každá by mala k dispozícii rýchlosť iba 12,5Mb/s. Hub je navyše pomerne hlúpe zariadenie, ktoré neskúma dátovú časť rámcov. Prijaté rámce teda iba rozpošle všetkými portami von (broadcast) čo zaťažuje zbytočne linky (rámec sa síce dostane aj k skutočnému adresátovi, ale zároveň aj k iným počítačom, ktoré rámce zahodia).
Popis práce rozbočovača nám poslúži pre pochopenie toho, aké sú prepínače inteligentné. Prepínače zvyčajne majú viac portov (napr. v porovnaní so smerovačmi, ale týka sa to najmä premysleného využitia, nie SOHO zariadení). Switch prepína rámce na základne cieľovej MAC adresy a nie "naslepo" ako hub. Ako sa však MAC adresy naučí? Ak príjme rámec s nejakou zdrojovou MAC adresou zapíše si ju to tabuľky a k nej priradí port na ktorom rámec prijal. Ak v MAC tabuľke taký záznam už má, iba aktualizuje časovač. Keď potom príjme rámec s cieľovou MAC adresou, ktorú už ma switch priradenú k portu v tabuľke, pošle prepínač rámec týmto výstupným rozhraním.
Ak však príjme rámec s cieľovou MAC adresou, ktorej zázname ešte nemá, rozpošle rámec všetkými portami okrem toho, na ktorom ho prijal. Ak je cieľová MAC adresa priradená tomu istému portu, ktorým rámec prišiel, rámec zahodí. Broadcast switch taktiež rozposiela von všetkými portami okrem toho, na ktorom broadcast prijal. Switch si štandardne udržuje záznam v MAC tabuľke 5 minút.
Switch rozdeľuje kolíznu doménu na menšiu pretože neprenáša dáta okamžite ako hub, ale dokáže si uchovať rámce v buffri (zásobníku), kým nie je výstupný port voľný. Každé zariadenie pripojené na port prepínača má k dispozícii jeho plnú rýchlosť (100Mb/s napríklad).
Jednoduchý prepínač s 5 Ethernetovými portami s rýchlosťou 100Mb/s
Ďalšou veľmi vítanou funkciou prepínačov je možnosť vytvoriť VLANy (virtuálne LAN siete, 802.1Q). Každá VLAN je samostatnou broadcastovou doménou a umožňuje logické členenie staníc podľa príslušnosti do jednotlivej VLAN siete. Každý rámec pri použití VLAN nesie 12-bitovú značku VLAN ID, podľa ktorej prepínač vie, do ktorej VLAN rámec zaradiť.
Komplexné siete s použitím prepínačov by pravdepodobne veľmi rýchlo "padli" nebyť protokolu STP (Spanning Tree Protokol, 802.1D) respektíve jeho odrodám Rapid STP(802.1w). O tomto protokole iba poviem, že slúži na predchádzanie slučkám na úrovni linkovej vrstvy tým, že v topológii sa niektoré porty prepínačov zablokujú a neprijímajú ani nevysielajú žiadne dáta. Bez tejto techniky by sa v sieti mohlo stať, že rámce by krúžili v sieti čím by ju zahltili. V reálnej prevádzke by takéto zahltenie mohlo sieť položiť sieť na lopatky behom sekúnd (zariadenia nezvládnu nápor dát a zlyhajú).
Toľko v skratke k linkovej vrstve a jej najrozšírenejšej technológii Ethernet. V pokračovaní nášho seriálu sa pozrieme na fyzickú vrstvu a tým ukončíme rozbor OSI vrstiev.
Hrochy
Broslowski
Vladys
passco