SPX

SPX ( Sequenced Packet Exchange ) jest prostym protokołem warstwy transportowej, zapewniającym niezawodne przesyłanie danych w trybie połączeniowym.Został on opracowany na wzór pakietu XNS ( Xenox NEtwork Sysem) SPP ( Sequenced Packet Exchange). Połączenie z drugą stroną jest tutaj ustanawione przed wysyłaniem danych, a dostarczenie wymaga potwierdzenia

8 bitów

8 bitów

16 bitów

Kontrola połaczenia

Typ strumienia danych

Identyfikator połączenia żródłowego

Identyfikator połączenia docelowego

Numer sekwencyjny

Numer potwierdzający

Numer alokacyjny

Negocjowany rozmiar

 

Kontrola połączenia

Bit kontrolny

Opis

XHD

Używany przez SPX II do oznaczenia rozszerzonego nagłówka

RES1

Zarezerwowany

NEG

Używany do negocjacji żadania-odpowiedzi SPX II

SPX II

Ustawiany do oznaczenia typu pakietu - SPX II

EOM

Używany przez klienta do oznaczania końca wiadomości

ATN

Używany przez SPX II do wskazania uwagi

ACK

Żądanie potwierdzenia pakietu

8-bitowy typ strumienia danych określa typ pakietu danych. Szesnastkowe FE jest żądaniem zakończenia połączenia. Szesnastkowe FF potwierdza zakonczenie połączenia. Szesnastkowe 80 lub FD jest zarezerwowane dla połączeń protokołu SPX II , a pozostałe od 00 do 7f są definiowane przez aplikację

16-bitowy identyfikator połączenia docelowego jest określany przez stację odpowiadającą na żądane polecenia SPX.

16-bitowy numer sekwencji , określający następny pakiet , którego oczekuje druga strona połaczenia. Na przykład , jeśli stacja A wysyła pakiet SPX do stacji B z numerem sekwencyjnym 487 oraz ustawionym bitem ACK , yo oczekuje od stacji B potwierdzenia z numerem 488

Numer alokacyjny jest numerem sekwencyjnym określającym iloś©ć dostępnych buforów ( liczba potwierdzająca - numer alokacyjny +1 ). Jeżli liczba alokacyjna jest niższa miż liczba potwierdzająca , yo oznacza , że stacja nie posiada wolnych buforów odbierających i wysyłający będzie musiał poczeka©ć na następny pakiet ACK.

Ostatnie pole jest dostępne tylko w rozszerzonym nagłówku SPX II na negocjowanie wielkości pakietu podczas ustanawiania połączenia.

W orginalnym protokole SPX istnieje kilka krytycznych uproszczeń. SPX niepotrafi określać maksymalnego rozmiaru pakietu dozwolonego w połączeniu pomiędzy dwoma stacjami, więc maksymalny rozmiar pakietu dozwolonego IPX przenoszącego informację SPX wynosi 576 bajtów. Odjęcie 30 bajtów na nagłówek IPX i 12 na nagłówek SPX daje tylko 534 bajty na dane.

PO drugie , każdy pakiet SPX musi być potwierdzany z osobna.

SPX II przełamuje wiele ograniczeń protokołu SPX. Dane nie są ograniczone do MTU IPX o długości 576 bajtów. Domyślnie rozmiar okna SPX II jest ustawiany na 8 , co pozwala na przesłanie 8 pakietów danych przed koniecznością potwierdzenia.SPX II posiada też obsługę błędów

 

SPX i SPX II używają różnych zegarów , włączając w to czas nasłuchiwania , czas potwierdzania oraz czas zaniechania. Wartości tych liczników są oparte na orginalnym zegarze RTC komputera PC i zliczają co 55 milisekund( czyli 18,2 razy na sekundę).

Czas nasłuchiwania jest podobny do czasu życia połączenia ( ang. jeep-alive-timer). Jeżeli połaczenie SPX nie wysyła danych , to co jakiś czas wysyła pakiet wymagający potwierdzenia. Domyślnie zegar ustawiony jest na 108 razy 55 milisekund , czyli ok 6 sekund. Z tego powodu jeśli połączenie SPX nie będzie wymieniało danych , to będzie wysyłało pakiety utrzymujące połączenia

by Krzysztof Pietrzak 2004

[4.Warstwa transportowa] [TCP] [UDP] [SPX]