Menu Zavrieť

5.10. Viacnásobný prístup k spoju

Na spojenie počítačov v rámci jednej siete je možné použiť buď drôtový alebo bezdrôtový spoj. V závislosti od toho, či chceme, aby na danom spoji komunikovali iba dve zariadenia alebo viac zariadení, rozdeľujeme spoje na typy bod-bod (point-to-point) a na zdieľané spoje.

Spoje typu bod-bod sú vo všeobecnosti realizovateľné jednoduchšími metódami, poskytujú komunikáciu na väčšie vzdialenosti a niekedy aj vyššie prenosové rýchlosti. Príkladom takého protokolu môže byť PPP (point-to-point protocol), ktorý sa používa pre dial-up pripojenia. Často sa však aj na spojoch typu bod-bod používajú metódy vyvinuté pre zdieľané spoje. Napríklad na spojenie uzlu so switchom v sieti Ethernet, alebo na komunikáciu dvoch smerových mikrovlnných antén cez Wi-Fi.

To, kedy môže ktorá stanica v zdieľanom spoji vysielať, určuje prístupová metóda k zdieľanému spoju. Všetky prístupové metódy s viacnásobným prístupom predpokladajú, že dva alebo viac uzlov zdieľa spoločné komunikačné médium. Naviac, ak sa používajú aj rovnaké vysielacie frekvenčné pásma, tak pri súčasnom vysielaní ľubovoľných dvoch uzlov dochádza k interferencii ich vysielaní, čím sa obe vysielané správy navzájom znehodnotia. V takom prípade hovoríme o kolízii. Všetky prístupové metódy s viacnásobným prístupom sa musia s kolíziami nejako vysporiadať, nakoľko základná podmienka na úspešný prenos paketu je, aby počas celej doby vysielania nedošlo ku kolízii.

5.10.1  Ideálna prístupová metóda s viacnásobným prístupom

V ideálnom prípade by sme chceli používať takú prístupovú metódu, že využívame celú šírku frekvenčného pásma danú spojom na dátové prenosy (aby sme dosahovali najvyššie možné prenosové rýchlosti). Povedzme, že máme šírku pásma, ktorá umožňuje maximálnu prenosovú rýchlosť R (bitov za sekundu). Potom by prístupová metóda mala mať nasledovné vlastnosti:

  1. Ak chce vysielať iba jeden uzol zo všetkých uzlov, ktoré sú napojené na zdieľaný spoj, mal by vysielať plnou rýchlosťou v celej šírke prenosového pásma rýchlosťou R.
  2. Ak chce súčasne vysielať M uzlov, tak každý z nich by mal vysielať rovnakou rýchlosťou R/M.
  3. Toto riešenie by malo byť plne decentralizované bez prítomnosti riadiaceho uzla a bez potreby synchronizácie uzlov. Riadiaci uzol je potenciálny bod zlyhania, ktorý by znefunkčnil celú sieť. Synchronizácia si obvykle vyžaduje dodatočné synchronizačné pakety, ktorých prítomnosť znižuje rýchlosť prenosu dátových paketov.
  4. Je jednoduchá na implementáciu (ideálne hardvérovú).

Takáto prístupová metóda zatiaľ nebola vymyslená. Reálne metódy sú navrhované tak, aby sa k nej čo najviac približovali.

5.10.2  Delený kanál

Prístupové metódy s delením kanála fungujú na rozdelení prenosového pásma na toľko častí, koľko staníc sa na danom spoji nachádza. Delenie kanála môže byť uskutočnené rozdelením frekvenčného pásma na menšie, alebo delením času, v ktorom sa môže vysielať.

TDMA: time division multiple access je realizované tak, že sa rozdelí kanál v čase. Najprv sa určí nejaký časový úsek, kolo, počas ktorého sa vystriedajú všetky stanice v prístupe k plnej šírke prenosového kanála. V rámci jedného kola dostane každá stanica nejaký časový úsek, počas ktorého môže vysielať. Tieto časové úseky môžu byť rovnaké, ale je možné určiť stanice, ktoré majú časové úseky dlhšie, či kratšie ako ostatné.

FDMA: frequency division multiple access delí frekvenčné pásmo na menšie frekvenčné pásma. Každé z týchto menších frekvenčných pásiem je priradené inému uzlu. Uzly môžu vysielať kedykoľvek, každý však iba takou rýchlosťou, akú mu umožňuje jemu pridelené frekvenčné pásmo.

Oba tieto spôsoby využívajú prenosové pásmo ideálne v prípade, že všetky uzly niečo vysielajú. Ak bolo delenie nastavené rovnomerne, tak každý uzol využíva rovnakú šírku pásma. Ak však niektoré uzly nevysielajú, im pridelený čas alebo frekvencia sú nevyužité a ostatné uzly nevedia tieto uvoľnené prostriedky využiť.

Výhodou tohto prístupu je absencia kolízií aj akýchkoľvek riadiacich paketov.

Na princípe delenia kanála fungujú napríklad telefónne mobilné siete alebo ISDN.

5.10.3  Prístupové metódy pre zdieľaný prístup k spoju

Prístupové metódy pre zdieľaný prístup poskytujú stanici vždy plný prístup k celému prenosovému pásmu, avšak bez riadenia toho, kto môže kedy vysielať. Ak dve alebo viac staníc vysiela súčasne celou šírkou spoločného prenosového pásma, dochádza ku kolíziám. Ako sme si povedali, kolízie spôsobujú, že vysielané rámce sú znehodnotené. Tieto prístupové metódy majú teda dva hlavné problémy: ako odhaliť kolíziu a ako sa zotaviť z toho, ak kolízia nastane.

ALOHA

Sieť ALOHAnet vznikla v roku 1970 na univerzite na Havaji na realizáciu lacnej bezdrôtovej siete. Základné myšlienky prístupovej metódy ALOHA boli neskôr použité pri vytváraní prístupových metód Ethernetu (CSMA/CD a CSMA/CA).

Prístupová metóda ALOHA predpokladá, že všetky rámce majú rovnakú veľkosť. Pravidlá toho, kedy vysielať, sú jednoduché:

  1. ak máš čo vysielať, vysielaj
  2. ak zistíš, že došlo ku kolízii, počkaj náhodný čas a skús vyslať datagram znova

Tento algoritmus je skutočne jednoduchý. V prípade, že iba jeden uzol potrebuje vysielať, môže využívať celú šírku pásma po celý čas vysielania. Ak však už chce vysielať viac uzlov, môže dochádzať ku kolíziám. Vyslaný rámec môže mať kolíziu s nejakým rámcom, ktorý je už práve vysielaný alebo s rámcom, ktorý začal byť vysielaný počas svojho vysielania. Ak čas potrebný na vyslanie 1 rámca je T a rámec sme začali vysielať v čase t, tak kolízia nastáva s rámcami, ktorých vysielanie začalo niekedy v čase (tTt+T).

Na výpočet efektivity využitia pásma predpokladáme, že máme N uzlov, ktoré chcú neustále vysielať. Efektivita vyjadruje pomer úspešných prenosov k neúspešným pri optimálnej pravdepodobnosti začatia vysielania po kolízii vzhľadom na počet uzlov N. Ak sa N blíži k nekonečnu, tak efektivita ALOHY je 1/(2*e) čo je iba zhruba 18,4 %. To znamená, že iba takéto percento rámcov sa úspešne prenesie bez kolízie.

Úseková ALOHA

Vylepšením originálnej ALOHY je úseková ALOHA (slotted ALOHA). Pri tejto prístupovej metóde sa jednotlivé uzly musia synchronizovať a určiť si časové okamihy, v ktorých môžu začať vysielať. Čas je teda rozdelený na úseky. Algoritmus je skoro rovnaký:

  1. ak máš čo vysielať, začni to vysielať na začiatku ďalšieho úseku
  2. ak zistíš, že došlo ku kolízii, počkaj náhodný počet úsekov a skús vyslať datagram znova v ďalšom úseku.

Kolízia teda môže nastať iba s tými rámcami, ktoré boli vyslané v tom istom časovom úseku. Efektivita sa vďaka tomuto vylepšeniu zvýšila na 36,8%.

V tom čase to bola prelomová technológia. Hlbšou analýzou sa však dajú nájsť negatíva tohto prístupu. Okrem nutnej synchronizácie, sú to aj výskyty nevyužitých úsekov aj vtedy, keď stanice majú čo vysielať (lebo náhodou všetky práve čakajú náhodný počet úsekov), a aj to, že kolízie by sa mohli dať zistiť už pred doposielaním celého rámca (načo ešte posielať zvyšok rámca, keď sa aj tak zahodí).

CSMA

CSMA je skratka od carrier sense multiple access teda zdieľaný prístup s vnímaním prenosu. Táto metóda je vylepšením pôvodnej metódy ALOHA takým spôsobom, že uzol nezačne vysielať, ak na spoji registruje vysielanie niektorého iného uzla. To znamená, že nezačne vysielať, keď je evidentné, že by spôsobil kolíziu. Kolízie však môžu naďalej nastávať. Dôvodom je to, že signál vysielaný jedným uzlom sa šíri spojom „iba“ takmer svetelnou rýchlosťou a pokiaľ dôjde k iným uzlom, ubehne nejaký čas, počas ktorého môžu tieto uzly začať vysielať, neuvedomujúc si, že spôsobia kolíziu, keďže zatiaľ neregistrujú vysielanie iného uzla.

V CSMA, ak aj nastane kolízia, stanice odošlú celý paket aj tak. Počas svojho vysielania totiž už nevnímajú, čo sa deje v spoji.

CSMA/CD

CSMA je skratka od carrier sense multiple access and collision detection teda zdieľaný prístup s vnímaním prenosu a detekciou kolízií. Je vylepšením prístupovej metódy CSMA v tom, že ak počas vysielania nastane kolízia, je okamžite prerušené vysielanie. Bez detekcie kolízií totiž obsadzujeme spoj, aj keď je jasné, že sa odosielaný rámec zahodí.

Odhalenie kolízie počas vysielania je jednoducho realizovateľné v drôtových spojoch. Väčšie problémy už spôsobuje odhalenie kolízie pri bezdrôtových spojeniach, kedy energia vysielania je obvykle mnohokrát väčšia ako energia prijímaných signálov vyslaných z iných uzlov. Preto sa pri bezdrôtových spojoch CSMA/CD nepoužíva. Namiesto toho sa pri bezdrôtových spojoch používajú iné metódy napríklad CSMA/CA alebo prístupová metóda technológie WiMAX.

Samotný algoritmus CSMA/CD funguje nasledovne:

  1. Ak máš čo vysielať, a na spoji neregistruješ žiadne vysielanie, začni vysielať svoj rámec.
  2. Ak máš čo vysielať a na spoji registruješ cudzie vysielanie, začni vysielať, až keď ho prestaneš registrovať.
  3. Ak vysielanie celého rámca prebehlo bez toho, aby bolo počas vysielania registrované aj cudzie vysielanie, považuj rámec za úspešne odoslaný.
  4. Ak počas vysielania zistíš, že vysiela aj niekto iný, ukonči vysielanie rámca a vyšli JAM signál. JAM signál je signál takej intenzity, aby určite všetky uzly na spoji zaregistrovali, že došlo ku kolízii. Tento JAM signál sa vysiela po dobu 48 bitových intervalov. Bitový interval je čas, ktorý je potrebný na vyslanie jedného bitu v danom spoji. Napríklad, ak je prenosová rýchlosť spoja 1 Mb/s, tak bitový interval je 1/1 000 000 sekundy teda 1 mikrosekunda.
  5. Po prerušení a prijatí JAM signálu začnú všetky stanice, ktoré chcú vysielať, fázu súperenia: Po m-tej kolízii v poradí si vyber náhodné číslo K z intervalu <0, min{2m-1; 1023}>. Potom čakaj K*slot_time bitových intervalov a potom začni algoritmus CSMA/CD odznova (len s iným m). Ak m-té kolo vyberie úspešne prvého odosielateľa bez vzniku kolízie, fáza súperenia končí. Slot_time predstavuje čas potrebný na vyslanie rámca minimálnej dĺžky, určenom použitou technológiou. Slot_time v 100 Mbit/s Ethernete je čas potrebný na vyslanie 512 bitov.

Fáza súperenia má za úlohu prispôsobiť čas opätovného odoslania rámca vzhľadom na aktuálne požiadavky na vysielanie v danom spoji distribuovaným spôsobom. Ak je potenciálnych vysielateľov málo, stačí im výber z malej množiny možností, aby s veľkou pravdepodobnosťou bol iba jeden z nich taký, ktorý si vyberie najmenšie z vybraných hodnôt K. Ak je potenciálnych vysielateľov veľa, tak je potrebný väčší interval možností, aby si s dostatočne vysokou pravdepodobnosťou dvaja nevybrali rovnaké najmenšie K (najmenšie z tých, čo si stanice vybrali) a nespôsobili tak ďalšiu kolíziu. Keďže to, koľko je potenciálnych vysielateľov, jednotlivé uzly nevedia, tak sa používa tento spôsob postupného zväčšovania intervalu.

Minimálna dĺžka rámca je definovaná preto, aby sa dali definovať rozumné maximálne vzdialenosti dvoch uzlov na jednom spoji. Predstavme si, že chceme prevádzkovať protokol CSMA/CD na spoji s rýchlosťou 100 Mbit/s. To znamená, že na odoslanie jedného bitu potrebuje 10-8 sekúnd. Signál sa v medenom kábli šíri rýchlosťou približne 200 000 km/s t. j. 2*108 m/s. Keď to dáme dokopy, tak pokiaľ uzol vyšle 1 bit, signál prejde vzdialenosť 2 metre. Pri odoslaní posledného bitu minimálneho rámca sa prvý bit tohto rámca už dostal do vzdialenosti 1024 metrov. Teraz si predstavme situáciu, že uzol na druhom konci kábla začne vysielať tesne pred príchodom prvého bitu tohto rámca. Na to, aby náš prvý odosielateľ zistil, že jeho rámec bude v kolízii, musí sa o tejto kolízii dozvedieť ešte pred odoslaním posledného bitu svojho rámca. Z toho vyplýva, že by druhá stanica mala byť teoreticky vzdialená maximálne 512 metrov, aby aj signál od nej stihol prísť k prvej stanici pred tým, ako doposiela svoj rámec. Norma 100Base-TX hovorí o povolenej vzdialenosti iba 100 metrov pri priamom napojení alebo maximálne 200 metrov v prípade hub‑u/repeatera (rozbočovača/opakovača) uprostred medzi stanicami (pre istotu, aby bolo odhalenie kolízie v každom hardvérovom prevedení naozaj úspešné, t.j. aby sa detekcia kolízie naozaj stihla). V prípade použitia optických vlákien, kde rýchlosť šírenia je skoro 300 000 km/s, sa používa norma 100Base-FX, ktorá určuje maximálnu vzdialenosť uzlov na spoji na 412 metrov.

Pri spojoch s väčšou prenosovou rýchlosťou, 1 Gb/s a viac, je potrebné buď výrazne skrátiť maximálnu vzdialenosť, alebo zväčšiť minimálnu veľkosť rámca. Podľa normy 1000Base-T (t.j. v medenom kábli) je minimálna veľkosť rámca zhruba 8 krát väčšia, konkrétne 520 bajtov a maximálna vzdialenosť ostáva na 100 metroch bez hub‑u/repeatera a 200 s hub‑om/repeater-om. Pre optické vlákna podľa normy 1000-Base-SX je maximálna vzdialenosť až do 550 metrov.

Pre väčšie vzdialenosti je už potrebné mať prístupové metódy bez zdieľaného spoja, to znamená spojenie typu bod-bod bez kolízií – full duplex. Full duplex znamená, že si môžu vysielať dáta oba uzly daným spojom súčasne bez vzniku kolízie.

Efektivita prístupovej metódy CSMA/CD závisí okrem počtu staníc, ktoré chcú vysielať, aj od vzdialenosti uzlov a prenosovej rýchlosti. Pri malých vzdialenostiach a veľkých rámcoch sa efektivita blíži k 100%.

5.10.4  Prístupové metódy so štafetovým prístupom

Prístupové metódy so zdieľaným prístupom sú 100% efektívne v prípade, že chce vysielať iba jeden uzol na zdieľanom spoji, ale s pribúdajúcimi odosielateľmi sa efektivita znižuje. Pri delení kanála je 100% využitie spoja, ak vysielajú všetky uzly a efektivita klesá pri menšom počte vysielajúcich uzlov.

Prístupové metódy so štafetovým prístupom sa snažia zachovať pozitíva oboch. Základom týchto prístupových metód je token, teda akýsi štafetový kolík. Ten, kto práve vlastní token, môže vysielať svoj rámec, kto token nemá, vysielať nesmie. To okrem iného znamená, že sa úplne eliminujú kolízie na zdieľanom spoji.

Token môže byť doručovaný rôznym spôsobom. Jedným zo spôsobov je, že existuje nejaký hlavný uzol, ktorý riadi celú komunikáciu na spoji a prideľuje token postupne všetkým uzlom na zdieľanom spoji. Tým sa samozrejme sieť vystavuje riziku, že ak vypadne hlavný uzol, ostatné uzly si budú musieť medzi sebou zvoliť nový hlavný uzol. Uzly dostávajú token spravidla cyklicky, aby sa na každého dostalo.

Druhý spôsob je ten, že uzly vedia, aké je poradie, v akom majú jednotlivé uzly dostávať tokeny a tak vždy predchádzajúci uzol pošle „svoj“ token ďalšiemu uzlu v poradí. Toto riešenie je na prvý pohľad riešenie bez hlavného uzla. No aj v tomto prípade je potrebné riešiť prípady, že niektoré uzly sa vypínajú a zapínajú. Ak sa náhodou vypne uzol, ktorý práve mal token, nebude už žiaden zapnutý uzol, ktorý by mal token. To znamená, že musí byť vybraný uzol, ktorý pri zistenej strate tokenu generuje nový token. Pri pripojení nového uzla do siete musí existovať mechanizmus, ako sa tento uzol môže zaradiť do kruhu uzlov, ktoré dostávajú token a pri odpojení zasa mechanizmus na vypustenie uzla z kruhu. Príkladom technológií s takýmito prístupovými metódami sú IBM token ring a Token ring IEEE 802.5.

Vo všeobecnosti platí pravidlo, že uzol, ktorý má čo vysielať, vysiela, až keď dostane token. Po odoslaní nejakej danej časti dát pošle token ďalej. Ak uzol nemá čo vysielať, pošle token ďalej ihneď. Tým pádom je efektivita dosť vysoká, aj keď 100% efektivita nie je možná, lebo nejakú časť prenosov treba rátať na posielanie tokenu.

Na princípe tokenov je založených niekoľko technológií pre zbernicové, hviezdové aj kruhové topológie. Napriek mnohým výhodám sa predsa len presadila technológia Ethernetu (prístupová metóda CSMA/CD), najmä kvôli lacnejšiemu hardvéru. Pri štafetovom prístupe totiž treba riešiť vyššie spomenuté problémy spojené so zapínaním a vypínaním zariadení, takže sú potrebné múdrejšie a teda aj drahšie zariadenia.