SEAlink

SEAlink jest protokołem transferu plików , który jest wstecznie kompatybilny z XMODEM , ale posiada system okien przesuwnych dla lepszej przepustowości . SEAlink został napisany w 1986 roku jako część SEAdog FidoNet napisanej przez System Enhancement Associates, twórców słynnego ARC program. Był licencjonowany z prostym wymogiem „podaj kredyt”, ale mimo to nie był zbyt szeroko stosowany, z wyjątkiem przesyłek pocztowych FidoNet. SEAlink i większość innych ulepszeń XMODEM została szybko zastąpiona po wprowadzeniu ZMODEM .

Opis

XMODEM dzieli plik do wysłania na numerowane serie pakietów po 128 bajtów każdy. Pakiety są wysyłane pojedynczo do odbiorcy, który albo potwierdza prawidłowy odbiór, wysyłając znak ACK , albo żąda ponownego wysłania, wysyłając zamiast tego znak NAK . Następnie transfer jest kontynuowany z kolejnym pakietem.

Chociaż czas potrzebny do wysłania potwierdzenia ACK lub NAK jest bliski zeru, opóźnienie propagacji samego systemu telefonicznego wprowadza opóźnienie . Opóźnienie wynoszące 0,1 sekundy nie jest wcale rzadkością i może być znacznie dłuższe w przypadku łączy zagranicznych. Oznacza to, że maksymalna szybkość transmisji XMODEM jest funkcją systemu telefonicznego bardziej niż prędkość modemów . Przy 300 bitach/s nie jest to poważny problem, ponieważ wysłanie pakietu zajmie około 3,5 sekundy, a opóźnienie 0,1 jest nieistotne. Jednak przy szybkości 9600 bitów/s wysłanie pakietu zajmuje tylko około 0,1 sekundy, co oznacza, że ​​co najmniej połowa potencjalnej przepustowości jest tracona, gdy nadawca czeka na nadejście potwierdzenia ACK lub NAK .

SEAlink rozwiązuje ten problem za pomocą „ przesuwnego okna ”. W tym przypadku nadawca nie czeka na ACK lub NAK , a zamiast tego po prostu wysyła swoje pakiety w ciągłym strumieniu. Odbiorca nadal musi potwierdzać lub potwierdzać pakiety, ale robi to, dołączając do każdego z nich numer pakietu, co pozwala nadawcy zidentyfikować, które pakiety zadziałały, a które nie. „Okno” odnosi się do liczby pakietów, które można wysłać przed potwierdzeniem ACK lub NAK jest wymagane. W przypadku SEAlink okno to składało się z sześciu pakietów, co pozwalało na jednoczesne przesłanie do 768 bajtów danych.

SEAlink został zaprojektowany tak, aby był całkowicie wstecznie kompatybilny z istniejącymi implementacjami XMODEM. Po stronie odbiornika wystarczyło, aby odbiornik odesłał numer pakietu (zawarty we wszystkich pakietach XMODEM) wraz ze zwykłym ACK lub NAK . Po odebraniu pierwszego potwierdzenia ACK lub NAK nadawca SEAlink „zauważy” numer pakietu i będzie kontynuował korzystanie z systemu Windows. Jeśli brakowało numeru pakietu, zakładano, że wysyłany jest do XMODEM innego niż SEAlink, i ustaw rozmiar okna na jeden.

Inne funkcje

SEAlink zawierał również szereg funkcji zawartych w innych pochodnych XMODEM. Godne uwagi było użycie „pakietu zerowego”, który został wprowadzony w TeLink związanym z FidoNet w celu wysyłania informacji o pliku i obsługi przesyłania plików wsadowych.

SEAlink dokonał jednej drobnej modyfikacji tego „standardu”, dodając bajt na pozycji 40 pakietu, aby wskazać, czy używać „overdrive”, czy nie. Po włączeniu, poprzez umieszczenie dowolnej liczby niezerowej w bajcie 40, odbiornik nie oczekiwał już komunikatów ACK , a jedynie wiadomości NAK . Miało to na celu zmniejszenie przepustowości wymaganej od odbiornika z powrotem do nadawcy, co było ważnym czynnikiem w przypadku wielu wczesnych szybkich modemów, które charakteryzowały się bardzo wolnym kanałem zwrotnym ( na przykład 75 bitów / s w modemach Telebit ) .

Późniejszym dodatkiem była „RESYNC”, umożliwiająca ponowne rozpoczęcie przesyłania plików od miejsca, w którym zostało przerwane. RESYNC dodał kolejny wskaźnik w pakiecie zerowym, bajt 42, aby wskazać, że nadawca obsługuje tę funkcję. W takim przypadku odbiorca zawsze sprawdza, czy plik o identycznej nazwie istnieje lokalnie, a jeśli tak, wysyła SYN zamiast normalnego ACK lub NAK . Po SYN następuje numer pakietu, od którego należy ponownie uruchomić.