Co to są protokoły korekcji błędów modemu?

Protokoły korekcji błędów modemu to metody wykrywania i korygowania błędów transmisji danych. Istnieją zarówno protokoły sprzętowe, jak i programowe, które często są stosowane razem. Pojedynczy modem zazwyczaj używa wbudowanego protokołu sprzętowego w celu kompensacji szumów łącza komunikacyjnego. Systemy na obu końcach łącza często używają protokołów opartych na oprogramowaniu, aby radzić sobie z problemami poza kontrolą modemu.

Korekcja błędów transmisji jest zazwyczaj procesem wieloetapowym. Zanim każdy pakiet danych zostanie wysłany przez łącze, transmitujący modem oblicza jego sumę kontrolną i umieszcza ją w pakiecie. Algorytm cyklicznej kontroli nadmiarowej (CRC) jest często stosowany do określenia sumy kontrolnej. Po nadejściu pakietu modem odbierający oblicza również sumę kontrolną danych i porównuje ją z tą już w pakiecie. Jeśli te dwa nie pasują, odbiornik powiadamia nadajnik, że musi ponownie wysłać uszkodzony pakiet danych.

W latach 1980. firma Microcom, Inc. wprowadziła rodzinę protokołów sprzętowych do korekcji błędów modemów. Nazywany Microcom Networking Protocol (MNP), składa się z dziesięciu ponumerowanych klas, które z czasem poprawiły wydajność. MNP Class 3 eliminuje na przykład niepotrzebne bity ramek z poszczególnych bajtów danych. MNP Class 5 kompresuje dane przed ich wysłaniem, opierając się na ulepszeniach w klasach od 1 do 4. MNP Class 6 zmienia przepustowość danych, faworyzując jeden kierunek względem drugiego w razie potrzeby i skraca czas uruchamiania połączenia.

MNP został powszechnie przyjęty i jest wbudowany w większość modemów telefonicznych. Jeden z bardziej zaawansowanych sprzętowych protokołów korekcji błędów modemu został wprowadzony na początku lat 1990. XX wieku. Standard Sektora Normalizacji Telekomunikacji (ITU-T) V.42 Międzynarodowego Związku Telekomunikacyjnego został szybko wprowadzony do modemów wraz z MNP. Jego Link Access Procedure for Modems (LAPM) obejmuje lepszą kompresję danych w porównaniu do MNP. Dodaje również mniej narzutu do przesyłanych danych i ma lepszą obsługę kontroli przepływu i transmisji synchronicznej.

Sprzętowe protokoły korekcji błędów modemu mogą być bardzo dobre w zapewnianiu, że każdy pakiet danych dotrze w nienaruszonym stanie. Wiele transferów plików można jednak obsłużyć bardziej efektywnie, używając jednocześnie protokołów programowych i sprzętowych. Jeśli połączenie zostanie utracone podczas wysyłania bardzo dużego pliku, wiele systemów wymaga rozpoczęcia od początku pliku. W przeciwieństwie do tego, niektóre protokoły korekcji błędów oparte na oprogramowaniu zapamiętują, gdzie transmisja została przerwana i będzie kontynuowana od tego momentu. Protokoły programowe mogą również lepiej zarządzać kontrolą przepływu w systemie poza samym połączeniem modemowym.

XMODEM był jednym z wczesnych protokołów korekcji błędów modemów opartych na oprogramowaniu, stworzonych pod koniec lat 1970. XX wieku. To było bardzo proste, zawierało numer bloku, prymitywną sumę kontrolną i kilka bajtów znacznika w każdym pakiecie. Jego algorytm sumy kontrolnej był problematyczny i wiele osób wkrótce zaimplementowało wariacje z dodatkowymi funkcjami. Obejmowały one większe rozmiary bloków, transfery wielu plików i rozpoczęcie nowego pakietu przed zweryfikowaniem poprzedniego. YMODEM, który był następcą XMODEM-a w połowie lat 1980., wymieniał wiele z nich jako opcjonalne rozszerzenia.
ZMODEM i jego warianty to znacznie ulepszone protokoły korekcji błędów modemów oparte na oprogramowaniu. Opracowany w 1986 roku przez autora YMODEM, ZMODEM zawiera znacznie lepszy algorytm CRC wykorzystujący 32 bity. Może przejść do następnego pakietu bez czekania na potwierdzenie bieżącego, poprawiając przepustowość lub dostarczanie wiadomości. ZMODEM może również ponownie uruchomić transfer dużych plików od miejsca, w którym został przerwany, jeśli połączenie zostanie zerwane. Późniejsze odmiany obejmowały jeszcze większe rozmiary bloków i automatyczną kompresję danych pakietowych.