Wielodostęp z wykrywaniem nośnej

W protokołach ALOHA użytkownik nie nasłuchuje kanału przed własną transmisją co prowadzi do częstych kolizji pakietów. Przez to sprawność wykorzystania kanału w najlepszym przypadku wynosi 1/e.

Protokoły, w których użytkownik bada stan kanału przed własną transmisją nazywane są protokołami z wykrywaniem nośnej CSMA (ang. Carrier Sense Multiple Access). Poniżej zostaną opisane trzy odmiany protokołu CSMA, różniące się między sobą głównie czynnościami, jakie wykonuje użytkownik z pakietem gotowym do wysłania, po wykryciu stanu kanału.

Protokół CSMA z wymuszaniem transmisji z prawdopodobieństwem 1 (1-persistent)

W protokole 1‑persistent CSMA terminal mający dane do wysłania najpierw nasłuchuje kanał, aby określić czy w danej chwili nie transmitują inne terminale. Jeśli kanał jest zajęty, terminal oczekuje, aż kanał stanie się wolny. Po wykryciu, że kanał stał się wolny, terminal rozpoczyna transmisję swojego pakietu z prawdopodobieństwem równym 1. W razie kolizji terminal odczekuje losowy przedział czasu, po czym rozpoczyna całą procedurę od nowa.

Na sprawność protokołu duży wpływ ma czas propagacji sygnału. Wyobraźmy sobie dwa oddalone od siebie terminale, z których jeden rozpoczyna transmisję pakietu. Dopóki sygnał z tego terminalu nie dotrze do odbiorcy, ten potraktuje kanał jako wolny i również rozpocznie transmisję, co spowoduje kolizję. Im większe jest opóźnienie wynikające z czasu propagacji, tym gorsza jest sprawność protokołu. Jednak kolizje mogą powstawać nawet wówczas, gdy opóźnienie propagacji jest zerowe. Jeśli w czasie transmisji pakietu przez terminal dwa inne terminale staną się gotowe do transmisji, wówczas oczekują one, aż kanał stanie się wolny. Po wykryciu, że stał się wolny, natychmiast równocześnie rozpoczynają transmisję, co kończy się kolizją pakietów.

Pomimo tego, że opisywany protokół nie eliminuje całkowicie kolizji, jak również tego, że jego wydajność w dużym stopniu zależy od czasu propagacji sygnału, dla niedużych wartości tego opóźnienia (w stosunku do czasu transmisji pakietu) sprawność protokołu jest dużo większa niż obu wersji protokołu ALOHA, opisanych w lekcji 3.

Protokół CSMA bez wymuszania transmisji (nonpersistent)

W protokole nonpersistent CSMA terminal nie nasłuchuje kanału w sposób ciągły, po wykryciu jego zajętości. Zamiast tego po wykryciu, że kanał jest zajęty, odczekuje losowy przedział czasu, zanim ponownie sprawdzi status kanału. Podobnie jak w 1‑persistent CSMA, terminal rozpoczyna transmisję natychmiast po wykryciu, że kanał jest wolny. Ponieważ jednak chwile sprawdzania statusu kanału są losowe, to wyeliminowanych zostaje większość kolizji powodowanych równoczesnym rozpoczęciem transmisji przez kilka terminali, po przejściu kanału ze stanu zajętości do stanu wolnego. To prowadzi do dużo większej sprawności niż w 1‑persistent CSMA, przy dużym natężeniu ruchu w systemie. Dla małego natężenia ruchu w systemie wydajność protokołu nonpersistent CSMA jest gorsza niż 1‑persistent CSMA, gdyż w tym przypadku losowy czas oczekiwania nie daje żadnych korzyści.

Protokół CSMA z wymuszaniem transmisji z prawdopodobieństwem p (p‑persistent)

Protokół p‑persistent CSMA przeznaczony jest dla kanałów szczelinowych. Gdy terminal ma pakiet gotowy do wysłania, wówczas sprawdza stan kanału. Gdy wykryje, że kanał jest wolny, rozpoczyna transmisję z prawdopodobieństwem p. Z prawdopodobieństwem q=1-p wstrzymuje się z transmisją do następnej szczeliny, w której ponownie sprawdza status kanału. Jeśli następna szczelina okaże się również wolna, terminal rozpoczyna transmisję z prawdopodobieństwem p lub wstrzymuje się z prawdopodobieństwem q. Ta procedura powtarzana jest tak długo, aż pakiet zostanie wysłany lub kanał stanie się zajęty. Gdy kanał stanie się zajęty, terminal nasłuchuje go w sposób ciągły i gdy wykryje, że stał się wolny, wówczas rozpoczyna opisaną wyżej procedurę od nowa.