MEGAlink
Protokół komunikacyjny | |
Zamiar | Protokół Przesyłania Plików |
---|---|
Deweloperzy | Paweł Meiners |
Wstęp | 1987 |
Oparte na | XMODEM |
Sprzęt komputerowy | modemy |
MEGAlink to protokół przesyłania plików dla mikrokomputerów wyposażonych w modem , napisany przez Paula Meinersa w 1987 roku. Podobnie jak wiele protokołów tamtej epoki, MEGAlink jest rozszerzoną wersją przełomowego XMODEM . Chociaż był to stosunkowo prosty i wydajny system, pozostaje stosunkowo mało znany, ponieważ został przyćmiony przez ZMODEM , który został wydany rok wcześniej i szybko się rozpowszechnił.
Historia
XMODEM został wprowadzony w 1977 roku jako coś, co jego autor opisał jako „szybki hack”. Miał szereg dość oczywistych problemów, które stały się bardziej irytujące, gdy prędkość modemu wzrosła we wczesnych latach osiemdziesiątych. W tym okresie pojawiło się wiele nowych protokołów przesyłania plików dla użytkowników BBS, aby rozwiązać problemy z oryginalnym XMODEM. Wiele z nich miało własne drobne problemy lub było ograniczonych do pewnych aplikacji, co ograniczało ich użycie. XMODEM pozostawał niezwykle popularny przez cały ten okres, ponieważ był jednym z niewielu powszechnie obsługiwanych protokołów.
W 1986 roku Chuck Forsberg wypuścił ZMODEM , radykalnie ulepszony protokół przesyłania plików, który oferował wiele nowych funkcji, wysoką wydajność i działał w usługach, które uszkodziły transfery XMODEM. Jedynym minusem ZMODEM było to, że był bardzo złożony, co utrudniało lub uniemożliwiało wdrożenie na niektórych komputerach, zwłaszcza na dużej zainstalowanej bazie systemów, takich jak Commodore 64 .
MEGAlink został wprowadzony jako część emulatora terminala GT PowerComm firmy Meiners , aby rozwiązać ten problem. Oferował wysoką wydajność, zbliżoną do ZMODEM, a jednocześnie był znacznie prostszy w implementacji. Pomimo tej atrakcyjnej kombinacji funkcji MEGAlink nigdy nie stał się popularny i wydaje się, że kilka innych emulatorów terminali ma dodatkową obsługę - artykuł przeglądowy z 1988 roku pokazuje tylko PowerComm i jeden inny program obsługujący go.
Przejście z komputerów 8-bitowych na 16-bitowe miało miejsce w tym samym czasie, gdy wprowadzano MEGAlink, a pod koniec lat 80. dyskutowano o jakichkolwiek korzyściach w zakresie prostoty. ZMODEM stał się niemal uniwersalny.
Opis
XMODEM
XMODEM jest prostym protokołem i to jest główny powód jego popularności.
Plik do wysłania jest dzielony na 128-bajtowe fragmenty, które tworzą dane użyteczne jego pakietów . 3-bajtowy nagłówek składający się ze SOH i dwóch 8-bitowych liczb całkowitych jest dodawany przed danymi i 1-bajtową sumą kontrolną na końcu, dzięki czemu całkowity pakiet ma długość 132 bajtów. Protokół jest wyzwalany przez odbiorcę, który wysyła NAK , aby rozpocząć transmisję, czeka na pakiet w odpowiedzi, a następnie wysyła ACK , jeśli pakiet został odebrany poprawnie lub NAK , jeśli nie.
Ponieważ system telefoniczny ma pewne opóźnienie , powrót ACK lub NAK przez linie i wysłanie następnego pakietu zajmuje trochę czasu . Przy 300 bitach/s oznacza to krótki czas w porównaniu z czasem potrzebnym do wysłania pakietu danych, więc można to zignorować. Przy 2400 bitach/s typowe opóźnienia oznaczają, że aż 50% dostępnego czasu jest marnowane na oczekiwanie na odpowiedzi.
Aby rozwiązać ten problem, zaproponowano wiele różnych rozwiązań. Jednym z nich jest zwiększenie rozmiaru pakietu, tak aby opóźnienie stanowiło mniejszą część czasu potrzebnego do wysłania pakietu. Zostało to wykorzystane w wielu protokołach, zwłaszcza YMODEM . Innym rozwiązaniem jest użycie przesuwanego okna , które umożliwia wysyłanie wielu pakietów bez konieczności potwierdzania każdego z nich, jak to jest stosowane w WXMODEM i innych.
MEGAlink
MEGAlink jest zasadniczo połączeniem funkcji z wcześniejszych prób poprawy wydajności XMODEM. Najbardziej podstawową zmianą było zwiększenie rozmiaru pakietu ze 128 bajtów do 512. To nie tylko zmniejsza względne skutki opóźnień, ale także zwiększa ilość danych w porównaniu do informacji zewnętrznych, takich jak bajty nagłówka i stopki, poprawiając wydajność kanału .
w ogóle potrzebę wysyłania ACK . Nadawca po prostu kontynuowałby wysyłanie pakietów, dopóki, jeśli w ogóle, nie zostałby odebrany NAK . NAK został wysłany z dwoma kolejnymi bajtami, z których pierwszy zawierał numer pakietu, w którym wystąpił błąd, a drugi jako uzupełnienie do dwóch tego numeru. Nadawca ponownie uruchomiłby transfer od tego momentu.
Aby szybko ponownie wysłać dane w razie potrzeby, nadawca musiał utrzymywać bufor danych pliku, aby mógł on szybko przewinąć do tego punktu. Maszyny tamtej epoki miały niewielką ilość pamięci, 64 kB nie było rzadkością, więc duże bufory nie były łatwe do zorganizowania. Aby poradzić sobie z faktem, że nadawca może nie mieć wystarczającej ilości pamięci do wysyłania bardzo długich strumieni, MEGAlink umożliwił nadawcy zażądanie potwierdzenia ACK w dowolnym momencie, co umożliwiłoby mu wyczyszczenie bufora w razie potrzeby.
W tym celu nadawca wysłał znak ASCII RS (Record Separator). Jeśli odbiorca zobaczy RS zamiast oczekiwanego SOH na początku następnego pakietu, natychmiast wysyła odpowiedź składającą się z ACK i numeru pakietu i odwrotnie, jak w przypadku NAK . Nadawca może następnie usunąć ze swojego bufora wszelkie dane poprzedzające ten pakiet. Na przykład GT PowerComm używał bufora wystarczająco dużego na 32 pakiety i wysyłał żądanie RS mniej więcej co 16 pakietów.
Inne zmiany w protokole są mniej istotne. Aby umożliwić działanie w niektórych sieciach, takich jak PC Pursuit , znaki XON i XOFF były zmieniane za pomocą DLE , a następnie XORowane za pomocą 64. Wymagało to zmiany znaczenia każdego DLE w oryginalnych danych w ten sam sposób.
32-bitowe CRC
Oryginalna wersja MEGAlink wykorzystywała 16-bitową cykliczną kontrolę redundancji (CRC), podobnie jak w przypadku wielu innych odgałęzień XMODEM. Podobnie jak te wersje, odbiornik wskazywał, że jest w stanie odbierać CRC, wysyłając początkowe C zamiast NAK , aby rozpocząć przesyłanie. MEGAlink został później zmodyfikowany, aby obsługiwał również 32-bitowe CRC, co zrobił, uruchamiając pakiety z EM zamiast SOH . „Pakiet zerowy”, zawierający informacje o pliku, był zawsze wysyłany ze standardowym SOH i 16-bitowym CRC, tylko następujące pakiety danych wykorzystywały formacie EM .
Notatki
Cytaty
Bibliografia
- Bigley, Tom; Tapamila, Glen (7 grudnia 1987). „Kieszonkowy przewodnik po protokołach przesyłania plików” . InfoŚwiat .
- Christensen, Ward (1 stycznia 1982). Omówienie protokołu XMODEM (raport techniczny).
- Forsberg, Chuck (10 października 1985). Odniesienie do protokołu XMODEM / YMODEM autorstwa Chucka Forsberga (raport techniczny).
- Meiners, Paul (9 sierpnia 1987). MEGAlink: protokół przesyłania plików (raport techniczny).
- „Najlepsze programy komunikacyjne Shareware” . Przegląd izby rozliczeniowej . kwiecień 1988. s. 1326.