SMODEM

Plik jest przesyłany w obu kierunkach jednocześnie podczas rozmowy z SModem v1.0.

Smodem odnosi się do dwukierunkowego protokołu do przesyłania plików używanego między modemami a programem DOS , w którym protokół jest zaimplementowany, z których oba zostały opracowane przez fińską firmę o nazwie Arisoft . Był używany głównie w systemach tablic ogłoszeń , ponieważ mógł przesyłać pliki w obu kierunkach w tym samym czasie i umożliwiał użytkownikom czatowanie ze sobą za pomocą oprogramowania GroupChat firmy AriSoft . Inne popularne protokoły dwukierunkowe, takie jak BiModem , HS/Link a HydraCom oferował również opcję czatu z operatorem, ale nie z innymi użytkownikami systemu.

Omówienie protokołu Smodem

W przeciwieństwie do ZMODEM i innych starszych protokołów, SMODEM ma oddzielną warstwę przesyłania multipleksowanego niskiego poziomu (MSLP) i warstwę przesyłania plików wysokiego poziomu. Upraszcza to konstrukcję protokołu i zapewnia bardzo wysoką wydajność 99,5%. Multipleksowanie umożliwia wysyłanie jednego lub więcej plików w ciągłym strumieniu bez żadnych przerw między plikami, znacznie zwiększając przepustowość podczas przesyłania wielu plików.

Multipleksowanie umożliwiło również [ wymagane wyjaśnienie ] dodanie pełnoekranowego emulatora terminala ANSI z lokalnym, w pełni funkcjonalnym edytorem linii i kolorowym buforem przewijania wstecz o „nieograniczonym” rozmiarze. Lokalnie buforowana emulacja terminala umożliwiała użytkownikom czatowanie podczas dwukierunkowego przesyłania plików z pełną prędkością.

Protokół jest symetryczny i może łączyć się sam ze sobą w trybie pętli zwrotnej . Pliki mogą być jednocześnie przesyłane i odbierane bez zauważalnej utraty wydajności.

SMODEM wykrywa DESQview i DPMI ( Windows , OS/2 ) i uwalnia całą niewykorzystaną pojemność procesora do systemu hosta. Jest napisany w języku C i skompilowany za pomocą kompilatora Microsoft Visual C++ v1.0 , zoptymalizowanego dla procesora 80286 . Potrzebuje co najmniej 200 kB wolnej pamięci do prawidłowego działania i więcej, aby umożliwić łuskanie z programu. Pliki nie mogą być przesyłane, gdy używana jest powłoka.

Multipleksowany protokół łącza szeregowego (MSLP)

MSLP ma możliwość jednoczesnego zarządzania 32 niezależnymi kanałami. Każdy pojedynczy kanał wykorzystuje tradycyjny, dwufazowy protokół podrzędny typu ACK/NAK . Maksymalną wydajność uzyskuje się przez jednoczesne użycie wielu równoległych kanałów, aby utrzymać zajętość nadajnika.

Maksymalny rozmiar pakietu wynosi od 16 do 1024 bajtów. Błędy przesyłania zmniejszają rozmiar pakietu w zależności od częstotliwości błędów. Rozmiar okna nadajnika (całkowity rozmiar przesyłanych pakietów oczekujących na potwierdzenie) można ograniczyć, aby uzyskać szybszą odpowiedź.

Ramka pakietu zawiera jeden bajt na numer kanału i dwa bajty na 16-bitowy CCITT(ITU)-CRC, przy użyciu tego samego algorytmu, co w modemach z korekcją błędów. Potwierdzenia i zapytania są w razie potrzeby umieszczane w ramce pakietu.

Separatory pakietów zawierają dwa bajty, które jeśli zostaną znalezione w przesłanych danych, to wstawiany jest jeden dodatkowy bajt w celu enkapsulacji danych sterujących. Prawdopodobieństwo pojawienia się sekwencji separatorów pakietów w losowych danych jest tak małe, że nie wpływa to na wydajność protokołu, tak jak robią to stare jednobajtowe separatory.

Maksymalna wydajność jednokierunkowych bezbłędnych transferów będzie wynosić:

Jeśli rozmiar pakietu jest ograniczony do 256 bajtów, wydajność wynosi 98,1%, co i tak jest lepsze niż w przypadku oryginalnego Zmodemu .

Jeśli łącze danych nie może przesłać niektórych znaków specjalnych, można aktywować tradycyjny tryb enkapsulacji znaków. W tym trybie wybrane kody znaków są enkapsulowane, co zmniejsza wydajność o około 0,4% + dodatkowe 0,4% za każdy wybrany kod znaku.

W przypadku, gdy łącze danych jest ograniczone do siedmiu bitów danych, można aktywować specjalny tryb zbierania bitów. Najwyższe bity na każde siedem bajtów są zbierane do jednego bajtu (czyli ośmiu bitów w normalnych warunkach). Ta kolekcja zmniejsza wydajność o około 12,4% i podwaja pojemność enkapsulacji znaków.

Tryb maksymalnej korekcji linii przesyłowej MSLP wykorzystuje pięć znaków do przesyłania czterech znaków, które używają tylko drukowalnych 7-bitowych kodów ASCII ( Ascii85 ). Ten tryb powinien działać na prawie każdej nieprzezroczystej linii transmisyjnej. Tryb maksymalnej korekcji zmniejsza wydajność o 20%. Powinien być używany tylko do celów testowych, jeśli ustawienia domyślne nie działają lub jeśli ograniczenia linii przesyłowej są nieznane lub zbyt skomplikowane, aby można je było obsłużyć za pomocą oddzielnych korekt.

Linki zewnętrzne