Co to są protokoły korekcji błędów modemu?
Modemowe protokoły korekcji błędów 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. Indywidualny modem zwykle wykorzystuje wbudowany protokół sprzętowy do kompensacji szumów łącza komunikacyjnego. Systemy na obu końcach łącza często używają protokołów programowych, aby radzić sobie z problemami niezależnymi od modemu.
Korekcja błędów transmisji jest zasadniczo procesem wieloetapowym. Przed wysłaniem każdego pakietu danych przez łącze modem nadawczy oblicza sumę kontrolną i dołącza ją do pakietu. Algorytm cyklicznej kontroli nadmiarowej (CRC) jest często stosowany do ustalenia sumy kontrolnej. Kiedy pakiet przybywa, modem odbierający oblicza również sumę kontrolną danych i porównuje ją z wartością już znajdującą się w pakiecie. Jeśli dwa nie pasują, odbiornik powiadamia nadajnik, że musi ponownie wysłać zły pakiet danych.
W latach 80. firma Microcom, Inc. wprowadziła rodzinę protokołów sprzętowych modemów korygujących błędy. Nazywany Microcom Networking Protocol (MNP), składa się z dziesięciu ponumerowanych klas, które z czasem poprawiły wydajność. Na przykład MNP klasy 3 eliminuje niepotrzebne bity ramkowania z poszczególnych bajtów danych. Klasa MNP 5 kompresuje dane przed wysłaniem, bazując na ulepszeniach klas od 1 do 4. Klasa MNP 6 zmienia przepustowość danych, w razie potrzeby preferując jeden kierunek nad drugim, 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 dziewięćdziesiątych. Standard V.42 Międzynarodowego Związku Telekomunikacyjnego (ITU-T) V.42 został szybko włączony do modemów obok MNP. Procedura dostępu do łącza dla modemów (LAPM) obejmuje lepszą kompresję danych w porównaniu do MNP. Dodaje również mniejszy nakład na przesyłane dane i ma lepszą obsługę kontroli przepływu i transmisji synchronicznej.
Sprzętowe protokoły korekcji błędów modemu mogą bardzo dobrze zapewnić, że każdy pakiet danych dotrze nienaruszony. Jednak wiele transferów plików można wykonać bardziej efektywnie, używając jednocześnie zarówno oprogramowania, jak i protokołów sprzętowych. Jeśli połączenie zostanie utracone podczas wysyłania bardzo dużego pliku, wiele systemów wymaga ponownego uruchomienia od początku pliku. Natomiast niektóre oparte na oprogramowaniu protokoły korekcji błędów zapamiętują, gdzie transmisja została przerwana, i kontynuują 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 pierwszych opartych na oprogramowaniu protokołów korygujących błędy modemów, stworzonych pod koniec lat siedemdziesiątych. To było bardzo proste, w tym numer bloku, prymitywna suma kontrolna i kilka bajtów znaczników w każdym pakiecie. Algorytm sumy kontrolnej był problematyczny i wiele osób wkrótce wdrożyło wariacje z dodatkowymi funkcjami. Obejmowały one większe rozmiary bloków, przesyłanie wielu plików i uruchamianie nowego pakietu przed zweryfikowaniem poprzedniego. YMODEM, który był następcą XMODEM w połowie lat 80. XX wieku, wymienił wiele z nich jako opcjonalne ulepszenia.
ZMODEM i jego warianty to znacznie ulepszone protokoły programowe korygujące błędy modemu. 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 oczekiwania na potwierdzenie bieżącego, poprawiając przepustowość lub dostarczając wiadomość. ZMODEM może również zrestartować przesyłanie dużych plików od miejsca, w którym zostało przerwane, jeśli połączenie zostanie zerwane. Późniejsze wersje obejmowały nawet większe rozmiary bloków i automatyczną kompresję danych pakietowych.