DCN - kontrola łącza danych i protokoły
Warstwa łącza danych jest odpowiedzialna za implementację przepływu punkt-punkt i mechanizm kontroli błędów.
Kontrola przepływu
Gdy ramka danych (dane warstwy 2) jest przesyłana z jednego hosta do drugiego na jednym nośniku, wymagane jest, aby nadawca i odbiorca pracowali z tą samą prędkością. Oznacza to, że nadawca wysyła z prędkością, z jaką odbiorca może przetwarzać i akceptować dane. Co się stanie, jeśli prędkość (sprzęt / oprogramowanie) nadawcy lub odbiorcy różni się? Jeśli nadawca wysyła zbyt szybko, odbiornik może być przeciążony, (zapchany) i dane mogą zostać utracone.
Do kontroli przepływu można zastosować dwa rodzaje mechanizmów:
Stop and WaitTen mechanizm kontroli przepływu wymusza na nadawcy po przesłaniu ramki danych zatrzymanie się i czekanie, aż zostanie odebrane potwierdzenie wysłania ramki danych.
Sliding Window
W tym mechanizmie kontroli przepływu zarówno nadawca, jak i odbiorca uzgadniają liczbę ramek danych, po których powinno zostać wysłane potwierdzenie. Jak się dowiedzieliśmy, mechanizm kontroli przepływu zatrzymywania i czekania marnuje zasoby, protokół ten stara się maksymalnie wykorzystać zasoby bazowe.
Kontrola błędów
Kiedy ramka danych jest transmitowana, istnieje prawdopodobieństwo, że ramka danych może zostać utracona podczas przesyłania lub odebrana jest uszkodzona. W obu przypadkach odbiorca nie otrzymuje prawidłowej ramki danych, a nadawca nie wie nic o jakiejkolwiek utracie, w takim przypadku zarówno nadawca, jak i odbiorca są wyposażeni w protokoły, które pomagają im wykryć błędy przesyłu, takie jak utrata danych. rama. Stąd albo nadawca retransmituje ramkę danych, albo odbiorca może zażądać ponownego wysłania poprzedniej ramki danych.
Wymagania dotyczące mechanizmu kontroli błędów:
Error detection - Nadawca i odbiorca, obaj lub ktokolwiek, muszą upewnić się, że wystąpił jakiś błąd podczas przesyłania.
Positive ACK - Gdy odbiornik otrzyma poprawną ramkę, powinien to potwierdzić.
Negative ACK - Gdy odbiorca otrzyma uszkodzoną ramkę lub zduplikowaną ramkę, wysyła NACK z powrotem do nadawcy, a nadawca musi ponownie przesłać prawidłową ramkę.
Retransmission: Nadawca utrzymuje zegar i ustawia limit czasu. Jeżeli potwierdzenie przesłanej wcześniej ramki danych nie nadejdzie przed upływem limitu czasu, nadawca ponownie przesyła ramkę, myśląc, że ramka lub jej potwierdzenie zostały utracone podczas przesyłania.
Istnieją trzy typy dostępnych technik, które warstwa łącza danych może wdrożyć w celu kontrolowania błędów za pomocą automatycznych żądań powtórzeń (ARQ):
Zatrzymaj i czekaj ARQ
W ARQ Stop-and-Wait może wystąpić następujące przejście:
- Nadawca utrzymuje licznik czasu.
- Po wysłaniu ramki nadawca uruchamia licznik czasu.
- Jeśli potwierdzenie ramki nadejdzie na czas, nadawca przesyła następną ramkę w kolejce.
- Jeśli potwierdzenie nie nadejdzie na czas, nadawca zakłada, że ramka lub jej potwierdzenie zostały utracone podczas przesyłania. Nadawca ponownie przesyła ramkę i uruchamia licznik czasu.
- Jeśli otrzymane zostanie negatywne potwierdzenie, nadawca ponownie przesyła ramkę.
Go-Back-N ARQ
Zatrzymaj i czekaj Mechanizm ARQ nie wykorzystuje zasobów w pełni. Po otrzymaniu potwierdzenia nadawca pozostaje bezczynny i nic nie robi. W metodzie Go-Back-N ARQ zarówno nadawca, jak i odbiorca utrzymują okno.
Rozmiar okna wysyłającego umożliwia nadawcy wysyłanie wielu ramek bez otrzymywania potwierdzenia poprzednich. Okno odbiorcze umożliwia odbiornikowi odbieranie wielu ramek i potwierdzanie ich. Odbiornik śledzi numer sekwencji przychodzącej ramki.
Kiedy nadawca wysyła wszystkie ramki w oknie, sprawdza, do jakiego numeru sekwencyjnego otrzymał pozytywne potwierdzenie. Jeśli wszystkie ramki zostaną pozytywnie potwierdzone, nadawca wysyła następny zestaw ramek. Jeśli nadawca stwierdzi, że otrzymał NACK lub nie otrzymał żadnego potwierdzenia ACK dla określonej ramki, przesyła ponownie wszystkie ramki, po których nie otrzymuje żadnego pozytywnego potwierdzenia.
Selektywne powtarzanie ARQ
W Go-back-N ARQ zakłada się, że odbiornik nie ma żadnego miejsca w buforze dla swojego rozmiaru okna i musi przetwarzać każdą ramkę tak, jak jest. Wymusza to na nadawcy retransmisję wszystkich ramek, które nie zostały potwierdzone.
W ARQ z selektywnym powtarzaniem, odbiornik śledząc numery sekwencji, buforuje ramki w pamięci i wysyła NACK tylko dla ramki, której brakuje lub jest uszkodzona.
W tym przypadku nadawca wysyła tylko te pakiety, dla których otrzymał NACK.