Carrier Sense Multiple Access with Collision Detection CSMA/CD) je protokol pro přístup k přenosovému médiu v počítačových sítích. Patří do třídy s názvem CSMA, tedy metod s vícenásobným kolizním přístupem a nasloucháním nosné.

Na rozdíl od čistého CSMA u CSMA/CD stanice při svém vysílání současně kontroluje přenosové médium, zda nezachytí jiné vysílání, které koliduje s jejím. Z této vlastnosti je odvozena přípona „s detekcí kolizí“ (with Collision Detection) v názvu metody. Pokud stanice zjistí kolizi, zastaví vysílání, počká náhodnou dobu a opakuje svůj pokus znovu. CSMA/CD je proto efektivnější než samotné CSMA či CSMA/CA – v nich se kolize nezjišťují a dojde-li k nim, zbytečně se odvysílá celý datový rámec, který bude beztak nutno opakovat znovu.

CSMA/CD v Ethernetu editovat

Nejrozšířenějším představitelem CSMA/CD je klasický Ethernet. Ten byl postaven na sběrnicové topologii a algoritmus CSMA/CD v něm řídí přístup stanic ke sdílené sběrnici představované koaxiálním kabelem. Stanice, která chce odeslat datový rámec, se podle jeho pravidel chová následovně:

  1. Naslouchá, zda je médium volné. Dokud není, čeká na jeho uvolnění.
  2. Zahájí vysílání. Současně s odesíláním rámce naslouchá, zda nepřichází signál od jiné stanice. Pokud ano, došlo ke kolizi. Stanice ukončí vysílání, odešle signál umožňující rozpoznat kolizi také ostatním (jam signal) a přejde k opakování pokusu podle bodu 3.
  3. Stanice vybere náhodné číslo z intervalu od 0 do 2k - 1, kde k je pořadové číslo pokusu (od 10. pokusu se interval již nezvětšuje a horní hranice zůstává 210 - 1, tedy 1023). Náhodné číslo určuje délku čekací doby, po jejímž uplynutí stanice opakuje pokus o odeslání od bodu 1. Maximální počet pokusů je 16, poté je pokus o odeslání považován za neúspěšný.

Modernější varianty Ethernetu však opouštějí sdílené přenosové médium, používají přepínače s plně duplexním režimem provozu a metoda CSMA/CD u nich není nadále uplatňována.

Kolizní okénko editovat

Vzhledem k tomu, že stanice před zahájením vysílání kontroluje, zda je médium volné, může ke kolizi dojít jen pokud dvě či více stanic zahájí vysílání téměř současně. Jakmile se stanici podaří obsadit svým signálem celé médium, ostatní už zjistí probíhající vysílání a počkají dle bodu 1 výše na jeho ukončení. Doba, která uplyne od okamžiku začátku vysílání stanice do okamžiku, kdy se její signál rozšíří do celého média, je označována jako kolizní okénko. Pouze během této doby může dojít ke kolizi.

Signál se šíří (téměř) rychlostí světla, velikost kolizního okénka je proto dána délkou média a zpožděním signálu v aktivních prvcích (opakovačích) na cestě. Aby metoda CSMA/CD fungovala dobře, musí být kolizní okénko menší než doba vysílání minimálního rámce. Jedině tak je zajištěno, že signál obsadí celé médium dříve, než stanice ukončí vysílání rámce. Jinak by mohlo docházet k nezjištěným kolizím.

Dodržení uvedené nerovnosti má významné důsledky:

  • Rámec nesmí být příliš krátký. Proto má datová část ethernetového rámce minimální délku 46 B, což společně s hlavičkami představuje minimální rámec velikosti 64 B.
  • Maximální délka média a počet opakovačů na trase jsou omezeny.
  • Komplikuje se zvýšení přenosové rychlosti. Vede ke zkrácení doby vysílání minimálního rámce, která vynucuje příslušné zkrácení kolizního okénka (zpravidla zkrácením média).

Externí odkazy editovat