L1 a L2 - Ethernet, WiFi a PPP

Ethernet

Ethernet si s sebou nese dlouhou historii z doby, kdy se používal nad fyzickou sdílenou sběrnicí v podobě koaxiálního kabelu. Strukturovaná kabeláž a huby umožnily emulovat sdílenou sběrnici nad kabeláží hvězdicové topologie. Další evolucí došlo k nahrazení hubu - původního centrálního prvku hvězdicové topolgie, switchem. Tím se z jednotlivých propojů mezi síťovými kartami a switchem staly full-duplexní linky, celková propustnost ethernetové sítě se znásobila a odpadla nutnost řídit přístup k médiu metodou CSMA/CD.

Ethernet bus

Dodnes však Ethernet vytváří segmenty - to co dříve byla jedna sběrnice, může být nyní realizováno množstvím switchů, které jsou spojené do stromové topologie a tvoří souvislou síť, kde mohou stanice mezi sebou volně komunikovat, a kde lze broadcastem oslovit najednou všechny stanice v segmentu.

Hlavní výhodou switchů je, že provádí auto-learning MAC adres, tedy že switch si udržuje tabulku známých MAC adres, kterou postupně vyplňuje ze SRC MAC address políček v etherneových hlavičkách, jak mu přichází provoz od jednotlivých stanic na jednotlivých portech. V okamžiku, kdy má switch doručovat rámec, pokusí se ve své tabulce najít záznam pro DST MAC adresu a pokud ji najde, bude vědět, na jaký port má daný rámec poslat. Pokud záznam nenajde, rozešle rámec na všechny aktivní porty (tomu se říká flooding). Záznamy ve switchovací tabulce se samozřejmě také čistí - dlouho neobnovené záznamy se uklidí po stanovené době. Ta bývá v řádu jednotek minut.

Ethernet, poplatně původní sběrnicové implementaci, předpokládá, že segment má vždy lineární (u sběrnice) nebo stromovou topologii a tedy že neobsahuje žádný kruh. Samo o sobě pro Ethenert znamená zapojení byť jen jediného kruhu mezi dvěma porty switche ve stejném segmentu prakticky okamžité zahlcení celého segmentu v důsledku takzvaného broadcast storm: Jakmile přijde do ethernetového segmentu s kruhem jeden BUM (broadcast nebo unknown unicast) rámec, tedy rámec, který switch rozešle na všechny porty, krom odesílatele, tak se tento rámec přes kruh vrátí do switche, kde je opět rozeslán na všechny porty a tak donekonečna. Kruh tedy funguje jako nekonečný generátor, který opakuje ten samý packet a switch jej rozesílá na všechny porty v daném segmentu.

Packetron

Pochopitelně takto jednoduchá chyba zapojení by neměla vést k zahlcení celé sítě - u hubů a starších switchů tomu tak však opravdu bylo, zapojením kruhové topologie došlo k okamžitému spuštění broadcast storm. Následně vznikl protokol STP (Spanning Tree Protocol), který umožňuje fyzicky zapojit topologii s kruhy a automaticky vypne linky, které by způsobily zakruhování sítě. Tento protokol se masivně užíval k zajištění redundance fyzických propojů, ale má spoustu špatných vlastností, kvůli kterým se od něj ustupuje a to i přesto, že byl několikrát revidován a vznikly novější protokoly RSTP a MSTP i několik proprietárních rozšíření, jako PVST+. K protokolu STP se ještě vrátíme.

Ethernet definuje několik druhů rámců - DIX / Ethernet II je pro nás nejdůležitější, protože to je jediný typ podporovaný linuxovým síťovým stackem. Vedle něj však existuje typ 802.2 LLC, který má využití v konkrétních specifických protokolech. Pro úplnost: Linux dovede komunikovat za specifických podmínek i jinými rámci, než DIX / Ethernet II. Například implementace protokolu STP v linuxovém jádře používá 802.2 LLC a má proto ve zpracování packetů výjimku z pravidla o výhradní podpoře rámců typu Ethernet II.

Odkazy: