CSMA/CD (Carrier Sense Multiple Access/Collision Detection) to metoda kontroli dostępu do mediów, która była szeroko stosowana we wczesnej technologii Ethernet/sieciach LAN, gdy istniała współdzielona topologia magistrali, a każdy węzeł (komputery) był połączony kablami koncentrycznymi. Obecnie Ethernet dzienny pracuje w trybie pełnego dupleksu, a topologia to gwiazda (połączenie za pośrednictwem przełącznika lub routera) lub punkt-punkt (połączenie bezpośrednie). Dlatego CSMA/CD nie jest używane, ale nadal są obsługiwane.
Rozważmy scenariusz, w którym na łączu znajduje się „n” stacji i wszystkie czekają na przesłanie danych tym kanałem. W tym przypadku wszystkie stacje „n” będą chciały uzyskać dostęp do łącza/kanału w celu przesłania własnych danych. Problem pojawia się, gdy w danej chwili dane przesyła więcej niż jedna stacja. W takim przypadku wystąpią kolizje danych z różnych stacji.
CSMA/CD to jedna z takich technik, w której różne stacje korzystające z tego protokołu uzgadniają pewne warunki i środki wykrywania kolizji w celu zapewnienia skutecznej transmisji. Protokół ten decyduje, która stacja będzie transmitować kiedy, dzięki czemu dane dotrą do miejsca docelowego bez uszkodzeń.
Jak działa CSMA/CD?
- Krok 1: Sprawdź, czy nadawca jest gotowy do przesyłania pakietów danych. Krok 2: Sprawdź, czy łącze transmisyjne jest wolne.
Nadawca musi na bieżąco sprawdzać, czy łącze/medium transmisyjne jest wolne. W tym celu stale wykrywa transmisje z innych węzłów. Nadawca wysyła fałszywe dane na łączu. Jeśli nie otrzyma żadnego sygnału o kolizji, oznacza to, że łącze jest w danej chwili wolne. Jeśli wyczuje, że nośnik jest wolny i nie ma kolizji, wysyła dane. W przeciwnym razie wstrzymuje się od przesyłania danych. Krok 3: Prześlij dane i sprawdź, czy nie ma kolizji.
Nadawca przesyła swoje dane łączem. CSMA/CD nie korzysta z systemu „potwierdzeń”. Sprawdza pomyślne i nieudane transmisje poprzez sygnały kolizyjne. W trakcie transmisji, jeśli węzeł odbierze sygnał kolizji, transmisja zostanie zatrzymana. Następnie stacja wysyła sygnał zakłócający na łącze i czeka w losowych odstępach czasu, zanim ponownie wyśle ramkę. Po pewnym czasie ponownie próbuje przesłać dane i powtarza powyższy proces. Krok 4: Jeśli podczas propagacji nie wykryto kolizji, nadawca kończy transmisję ramki i resetuje liczniki.
Skąd stacja wie, czy jej dane kolidują ze sobą?
Rozważ powyższą sytuację. Dwie stacje A i B.
Czas propagacji: Tp = 1 godz. (Przejście sygnału z A do B zajmuje 1 godz.)
At time t=0, A transmits its data. t= 30 mins : Collision occurs.>
Po wystąpieniu kolizji generowany jest sygnał kolizji, który jest wysyłany do obu stacji A i B w celu poinformowania stacji o kolizji. Ponieważ kolizja miała miejsce w połowie drogi, sygnał kolizji również potrzebuje 30 minut, aby dotrzeć do punktów A i B.
Therefore, t=1 hr: A & B receive collision signals.>
Ten sygnał kolizji jest odbierany przez wszystkie stacje na tym łączu. Następnie,
Jak mieć pewność, że zderzyły się dane naszej stacji?
W tym celu czas transmisji (Tt)> czas propagacji (Tp) [przybliżone ograniczenie]
Dzieje się tak dlatego, że chcemy, aby zanim wyślemy z naszej stacji ostatni bit naszych danych, mieliśmy przynajmniej pewność, że część bitów dotarła już do celu. Dzięki temu łącze nie będzie zajęte i nie wystąpią kolizje.
Ale powyżej jest luźna granica. Nie wykorzystaliśmy czasu, jakiego potrzebował sygnał kolizji, aby do nas wrócić. W tym celu należy rozważyć najgorszy scenariusz.
Rozważmy jeszcze raz powyższy system.

At time t=0, A transmits its data. t= 59:59 mins : Collision occurs>
Ta kolizja ma miejsce tuż przed dotarciem danych do B. Teraz sygnał kolizji potrzebuje ponownie 59:59 minut, aby dotrzeć do A. Zatem A otrzymuje informację o kolizji w przybliżeniu po 2 godzinach, to znaczy po 2 * Tp.
Hence, to ensure tighter bound, to detect the collision completely, Tt>>= 2 * Miasto>
Jest to maksymalny czas kolizji, jaki może zająć system, aby wykryć, czy kolizja dotyczyła jego własnych danych.
Jaka powinna być minimalna długość przesyłanego pakietu?
Transmission Time = Tt = Length of the packet/ Bandwidth of the link [Number of bits transmitted by sender per second] Substituting above, we get, Length of the packet/ Bandwidth of the link>= 2 * Miasto>
Length of the packet>= 2 * Tp * Szerokość pasma>
Dopełnienie pomaga w przypadkach gdy nie dysponujemy tak długimi pakietami. Aby spełnić powyższy warunek, możemy dopełnić dodatkowe znaki na końcu naszych danych.
Wykrywanie kolizji w CSMA/CD obejmuje następujące funkcje:
- Wykrywanie nośnika: Przed transmisją danych urządzenie nasłuchuje sieci, aby sprawdzić, czy medium transmisyjne jest wolne. Jeśli nośnik jest zajęty, urządzenie czeka, aż zwolni się, zanim zacznie przesyłać dane. Dostęp wielokrotny: W sieci CSMA/CD wiele urządzeń korzysta z tego samego medium transmisyjnego. Każde urządzenie ma równy dostęp do nośnika i każde urządzenie może przesyłać dane, gdy nośnik jest wolny. Wykrywanie kolizji: Jeśli dwa lub więcej urządzeń przesyła dane jednocześnie, następuje kolizja. Gdy urządzenie wykryje kolizję, natychmiast przestaje nadawać i wysyła sygnał zakłócający, aby poinformować wszystkie inne urządzenia w sieci o kolizji. Następnie urządzenia czekają przez losowy czas przed ponowną próbą transmisji, aby zmniejszyć ryzyko kolejnej kolizji. Algorytm wycofywania: w CSMA/CD algorytm wycofywania służy do określenia, kiedy urządzenie może ponownie przesłać dane po kolizji. Algorytm wykorzystuje losowe opóźnienie przed retransmisją danych przez urządzenie, aby zmniejszyć prawdopodobieństwo wystąpienia kolejnej kolizji. Minimalny rozmiar ramki: CSMA/CD wymaga minimalnego rozmiaru ramki, aby zapewnić wszystkim urządzeniom wystarczająco dużo czasu na wykrycie kolizji przed zakończeniem transmisji. Jeśli ramka jest za krótka, urządzenie może nie wykryć kolizji i kontynuować transmisję, co prowadzi do uszkodzenia danych w sieci.
Zalety CSMA/CD:
- Prosty i szeroko stosowany: CSMA/CD jest szeroko stosowanym protokołem w sieciach Ethernet, a jego prostota ułatwia jego wdrożenie i użytkowanie.
Uczciwość: W sieci CSMA/CD wszystkie urządzenia mają równy dostęp do medium transmisyjnego, co zapewnia uczciwość transmisji danych.
Efektywność: CSMA/CD pozwala na efektywne wykorzystanie medium transmisyjnego, zapobiegając niepotrzebnym kolizjom i zmniejszając przeciążenia sieci.
Wady CSMA/CD:
- Ograniczona skalowalność: CSMA/CD ma ograniczenia pod względem skalowalności i może nie być odpowiedni dla dużych sieci z dużą liczbą urządzeń.
Podatność na kolizje: Chociaż CSMA/CD może wykryć kolizje, nie może im zapobiec. Kolizje mogą prowadzić do uszkodzenia danych, opóźnień w retransmisji i zmniejszenia wydajności sieci.
Nieefektywne wykorzystanie przepustowości: CSMA/CD wykorzystuje losowy algorytm wycofywania, który może skutkować nieefektywnym wykorzystaniem przepustowości sieci, jeśli na urządzeniu stale występują kolizje.
Podatność na ataki bezpieczeństwa: CSMA/CD nie zapewnia żadnych funkcji bezpieczeństwa, a protokół jest podatny na ataki bezpieczeństwa, takie jak podsłuchiwanie pakietów i fałszowanie.
Czytaj dalej – Wydajność CSMA/CD