CSMA/CA
Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA) patří v počítačových sítích do třídy protokolů označovaných jako metody s vícenásobným přístupem a nasloucháním nosné (CSMA). Jejich charakteristikou je, že před začátkem vysílání paketu stanice určitý čas poslouchá, zda je přenosové médium volné. Pokud ano, může zahájit vysílání. V opačném případě čeká na konec právě probíhajícího vysílání.
Protokoly skupiny CSMA/CA na rozdíl od CSMA/CD nezjišťují výskyt kolizí (současného vysílání více stanic). Jednotlivé varianty se od sebe mírně odlišují. V CSMA/CA protokolu použitém v síti LocalTalk stanice při volném médiu nejprve ohlásí ostatním, že bude vysílat a médium si tak „zamluví“. Následně odvysílá datový rámec. Bezdrátové sítě standardu 802.11 používají jiný přístup – zde stanice při volném médiu počká náhodně zvolenou dobu a pokud do té doby neobsadí médium někdo jiný, odvysílá datový rámec a následně čeká na jeho potvrzení.
Detaily
CSMA/CA je jednou z modifikací čistého CSMA. Předcházení kolizím slouží ke zvýšení přenosového výkonu, stanice díky němu nejsou tak „hladové“ při přístupu k přenosovému médiu. Pokud před vysíláním zjistí, že je obsazeno, počkají náhodnou dobu a snižují tak pravděpodobnost kolize.
CSMA/CA se používá tam, kde vzhledem k vlastnostem komunikačního kanálu nelze použít CSMA/CD. Uplatnil se například v bezdrátových sítích standardu 802.11 (a, b, g, n), pro nějž je charakteristický poloduplexní režim práce – stanice buď naslouchá, nebo vysílá, a to na tomtéž kanálu, nikoliv obojí naráz. Detekce kolizí zde proto není možná. Navíc by vysílání jedné stanice v některých částech sítě mohlo kolidovat s vysíláním stanice jiné, jejíž vysílání však sama přímo neslyší.
Standard 802.11 předepisuje následující (zjednodušené) chování stanice při vysílání datového rámce:
- Je-li médium volné po určenou dobu, může stanice zahájit vysílání. Pokud je vysílání neúspěšné (druhá strana nepotrvdí příjem), zahájí exponenciální čekání.
- Pokud je médium obsazeno, počká na jeho uvolnění a následně zahájí exponenciální čekání, stejně jako při neúspěšném odvysílání.
- Exponenciální čekání znamená odložený pokus o vysílání. Stanice si náhodně vybere dobu z intervalu, jehož velikost se během opakovaných pokusů zdvojnásobuje. Tuto náhodnou dobu čeká a zároveň sleduje, zda nezačal vysílat někdo jiný. Pokud ano, vrátí se ke kroku 2. Zůstalo-li médium volné, odvysílá rámec. Jestliže vysílání neuspěje, opakuje exponenciální čekání. Náhodný výběr čekací doby z rychle rostoucího intervalu má za cíl snížit pravděpodobnost, že kolidující stanice spolu budou při dalším pokusu kolidovat znovu.
- Je možno využít výměny RTS/CTS (RTS – Request To Send – Dotaz na vysílání, CTS – Clear To Send – Volno k odeslání). To způsobí, že stanice po průchodu testem zjištění volného média odešle na přístupový bod nejprve RTS a pouze po přijetí potvrzení CTS začne odesílat data. Využití RTS/CTS do jisté míry snižuje pravděpodobnost kolize prostřednictvím problému skrytého uzlu.
Použití
CSMA/CA najdete v následujících protokolech: