Vyšlo v týdeníku CHIPweek č. 17/97, 22. dubna 1997
Vytištěno z adresy: http://www.earchiv.cz/a97/a717k150.php3

Přístupová metoda Ethernetu

Za svou velkou životaschopnost vděčí Ethernet mnoha věcem, včetně vhodného načasování přesně do doby rozvoje lokálních počítačových sítí. Snad nejvíce se ale na úspěchu Ethernetu podepsala samotná jeho koncepce, která je v mnoha ohledech velmi zajímavá. Pojďme si ji nastínit.

Kořeny Ethernetu je třeba hledat v jedné velmi atraktivní části světa - na Havajských ostrovech. Zdejší přírodní krása a existence mnoha malých ostrovů však velmi ztížila práci těm, kteří dostali za úkol vybudovat zde fungující počítačovou síť, která by tyto ostrovy propojovala. Místo náročného kladení podmořských kabelů nakonec došlo na myšlenku využít přenosy „éterem", konkrétně soustavou pozemních rádiových vysílačů. Hlavním problémem, který zde bylo nutné vyřešit, byla otázka koordinace vysílání: kdo má kdy získat právo vysílat „do éteru"? Bude-li vysílat více uzlů najednou, bude se jejich vysílání vzájemně rušit - takže mají se potenciální zájemci o vysílání mezi sebou nějakým způsobem koordinovat, a pokud ano, jak? Autoři nakonec zvolili poněkud netradiční řešení: každý nechť vysílá tehdy, kdy to považuje za potřebné (ve smyslu: ať se vůbec neohlíží na ostatní). Takovýto zcela nekoordinovaný přístup samozřejmě může vést ke kolizím, kdy se v éteru sejde více přenosů a vzájemně se negativně ovlivní - proto byl důraz položen i na zpětné potvrzování. Uzel, který odeslal nějaká data, si počkal na potvrzení o tom, že jeho data došla v pořádku. Pokud takovéto potvrzení v určitém předem stanoveném čase nedošlo, vysílání opakoval. No a právě to jsou hlavní myšlenky sítě, která dostala příznačné jméno Aloha.

Koncepce sítě Aloha se na první pohled může zdát poněkud zvláštní a neefektivní. Na druhé straně má ale i své přednosti (kromě toho, že jiné řešení tehdy moc nepřipadalo v úvahu): je například velmi jednoduchá na implementaci. Při velmi malé zátěži (jednotky procent teoretické využitelnosti „éteru") je pak i docela efektivní - pravděpodobnost kolizí je zde velmi malá, a velmi příznivě se naopak projevuje to, že samotná přístupová metoda sítě Aloha nevykazuje žádnou vlastní režii (zájemce o vysílání jednoduše začne ihned vysílat).

Jinak tomu ale bude v případě vyšší zátěže - jakmile intenzita požadavků na přenosy dosáhne určité hladiny (a ta je „posazena" poměrně nízko, pod dvaceti procenty teoretické využitelnosti), začne se Aloha chovat nevýhodně - roste počet kolizí i následný počet opakovaných vysílání, a celková efektivní propustnost sítě dokonce začne klesat.

Metody CSMA

Jedním z důležitých momentů celé koncepce sítě Aloha bylo to, že se jednotlivé uzly nesnaží monitorovat, zda právě neprobíhá nějaké vysílání (tak aby případně „neskákaly do řeči" jiným uzlům). V reálné praxi takováto možnost může, ale také nemusí existovat - například u družicových přenosů, kde zpoždění mezi odesláním a příjmem dosahuje hodnoty stovek milisekund, by snaha o „příposlech" byla zbytečná - jednotlivé uzly by dostupnost či obsazenost přenosového kanálu zjistily až s příslovečným „křížkem po funuse", v době kdy už faktická situace bude úplně jiná. U nejrůznějších „pozemních" přenosových cest však přenosové zpoždění není zdaleka tak velké, a „příposlech" u nich připadá v úvahu. Samozřejmě ale záleží na tzv. přístupové metodě (tj. metodě, která reguluje přístup jednotlivých uzlů ke společně sdílenému přenosovému médiu), zda tuto možnost využije. Přístupová metoda Aloha ji nevyužívala.

Existuje ovšem celá škála přístupových metod, které možnost „příposlechu" využívají, a dosahují lepších výsledků než jednodušší metoda Aloha. Obecně se takovéto metody označují jako „metody CSMA", kde CS znamená právě Carrier Sense, neboli možnost „příposlechu nosné". Další dvě písmena, MA, od Multiple Access, pak vyjadřují celkový charakter přenosového média, které je sdílené a přístup k němu mají všechny uzly současně (a je tedy možné, byť nežádoucí, i současné vysílání více uzlů).

Zajímavou otázkou ale je, jak se u metod CSMA má zachovat uzel, který díky příposlechu nosné zjistí že „éter" je právě obsazený. Možností je několik - jednou z nich je ta, že si zájemce o vysílání počká na skončení právě probíhajícího přenosu, a ihned poté začne vysílat sám. Ovšem s rizikem, že v době kdy čeká na konec probíhajícího přenosu, pojme stejný úmysl i jiný uzel, resp. jiné uzly, a také ony začnou čekat na konec - pak ovšem s největší pravděpodobností dojde ke kolizi, bezprostředně po skončení právě probíhajícího přenosu.

Alternativou je to, aby uzel, který detekuje právě probíhající vysílání, nebyl ve svém snažení až tak moc vytrvalý (či: naléhavý, angl.: persistent), v tom smyslu aby vytrvale čekal na konec vysílání a pak okamžitě uplatnil svůj požadavek na přenos. Místo toho příslušný uzel může i se svým požadavkem chvilku posečkat (odmlčet se, na vhodně zvolenou dobu), a pak postupovat znovu od začátku, tj. znovu zjišťovat jestli je „éter" volný nebo nikoliv. Tím se sice výrazně omezí počet kolizí „souběžných čekatelů", ale na druhé straně se tím nepříjemně prodlouží průměrná doba, kterou zabere čekání jednotlivých uzlů na možnost něco skutečně odvysílat. Naštěstí existují i různé kompromisní metody, při kterých zájemci o právo vysílat v případě obsazenosti přenosového kanálu s určitou pravděpodobností p vytrvají a počkají si na skončení právě probíhajícího přenosu, a s opačnou pravděpodobností (tj. 1-p) to vzdají a odmlčí se (a pak začínají uplatňovat svůj požadavek od začátku).

Obrázek 1.
Srovnání variant metody CSMA s různou "persistentností"
O žádné z krajních ani kompromisních variant nelze říci, že by byla jednoznačně nejvýhodnější - každá má v něčem své přednosti a v něčem své nevýhody. Zajímavé je například statistické chování jednotlivých metod při rostoucí zátěži, které ukazuje dnešní obrázek (číselná hodnota v názvu metody zde odpovídá hodnotě pravděpodobnosti p ve smyslu předchozího odstavce). Ani toto chování však neposkytuje ucelený obrázek o praktické výhodnosti, protože například 0,01-persistentní metoda CSMA, která v tomto ohledu vychází nejlépe, vykazuje zase neúnosně dlouhou průměrnou dobu od vzniku požadavku do jeho uskutečnění.

Ethernet je 1-persistentní

Autoři Ethernetu, inspirovaní praktickým úspěchem sítě Aloha, se zřejmě rozhodovali mezi jednotlivými variantami metod CSMA, a nakonec zvolili 1-persistentní metodu CSMA. Důvodem zřejmě nebyla pouhá „výtěžnost" metody při rostoucí zátěži (kde právě 1-persistentní metoda vychází dle obrázku poměrně špatně), ale jistě také její vlastnosti při menší zátěži. Zde je naopak 1-persistentní metoda nejvýhodnější v tom, že díky své vytrvalosti dává zájemci o vysílání šanci uplatnit svůj požadavek co možná nejdříve. Pokud je totiž provoz v síti relativně malý, je šance že zájemce o vysílání narazí na právě probíhající přenos také poměrně malá. A pokud se tak stane, je opět relativně malá pravděpodobnost, že při jeho čekání na konec přenosu dojde k souběhu s obdobným požadavkem jiného uzlu.

Důležité je znovu si zdůraznit, že celá tato strategie je zaměřena na „malé" vytížení Ethernetu (v řádu jednotek až několika málo desítek procent), a v takovéto situaci je také vcelku optimální. Jakmile ale začne stoupat intenzita požadavků jednotlivých uzlů na vysílání, začne se mnohem markantněji uplatňovat vliv negativních faktorů - začne růst počet kolizí, a objevuje se dokonce i nebezpečí „řetězových" (zavlečených) kolizí. Z dnešního obrázku je dokonce zřejmé i to, že při překročení určité limitní hodnoty (intenzity požadavků na přenos) vliv negativních vlastností 1-persistentní metody CSMA přeroste nad jejími klady, a s dalším zvyšováním intenzity požadavků se chování metody začne dokonce zhoršovat.

Varianta metody CSMA, použitá v Ethernetu, se samozřejmě snaží posunout zmíněný „zlomový bod" co možná nejdále (resp. nejvýše). Využívá k tomu i skutečnosti, že kromě „příposlechu nosné" je možné rozpoznat i jednotlivé kolize, a toho pak využít k nasazení dalších opatření snižujících negativní důsledky kolizí. Však také tomu vděčí konkrétní varianta přístupové metody Ethernetu za poslední dvě písmenka ve svém názvu: jde o metodu CSMA/CD, kde CD znamená „Collision Detection" (detekce kolize).

Ovšem jakým konkrétním způsobem se možnost detekce kolize v Ethernetu využívá, si musíme nechat až do příštího dílu.