210 likes | 329 Views
SIECI KOMPUTEROWE WYKŁAD 4a. PAKIET IPX. PROF. CZESŁAW SMUTNICKI czeslaw.smutnicki@pwr.wroc.pl , p.216 C-3 POLITECHNIKA WROCŁAWSKA INSTYTUT INFORMATYKI, AUTOMATYKI I ROBOTYKI www.iiar.pwr.wroc.pl. BUDOWA PAKIETU IPX. nagłówek (30 bajtów) blok danych (maksymalnie do 546 bajtów). nagłówek.
E N D
SIECI KOMPUTEROWEWYKŁAD 4a. PAKIET IPX PROF. CZESŁAW SMUTNICKI czeslaw.smutnicki@pwr.wroc.pl, p.216 C-3 POLITECHNIKA WROCŁAWSKA INSTYTUT INFORMATYKI, AUTOMATYKI I ROBOTYKI www.iiar.pwr.wroc.pl
BUDOWA PAKIETU IPX nagłówek (30 bajtów) blok danych (maksymalnie do 546 bajtów) nagłówek blok danych
Adres źródłowy (12) Adres przeznaczenia (12) Typ pakietu - Packet Type (1) Sterowanie transportem - Transport Control (1) Długość - length(2) Suma kontrolna - checksum (2) BUDOWA PAKIETU IPX. NAGŁÓWEK
BUDOWA PAKIETU IPX. NAGŁÓWEK. SUMA KONTROLNA Pole przeznaczone wg standardu firmy Rank-Xerox do zapisania sumy kontrolnej pól części nagłówkowej pakietu. W sieciach lokalnych pole to na ogół nie jest wykorzystywane i ustawia się je typowo na wartość FFFFh.
BUDOWA PAKIETU IPX. NAGŁÓWEK. DŁUGOŚĆ Liczba bajtów całego pakietu (nagłówek i blok danych). Minimalna wartość może wynosić 30 (pakiet składa się tylko z nagłówka), maksymalna 576. Pole to ustawia IPX po skompletowaniu całej jednostki protokołowej.
BUDOWA PAKIETU IPX. NAGŁÓWEK. STEROWANIE TRANSPORTEM Jednobajtowe pole, ustawiane na zero w momencie tworzenia pakietu, później wykorzystywane przez system operacyjny przy połączeniach międzysieciowych.
BUDOWA PAKIETU IPX. NAGŁÓWEK. TYP PAKIETU Określa rodzaj usługi realizowanej przez dany pakiet. Istnieje kilka typów pakietów, przy czym użytkownikowi IPX zaleca się do wykorzystywania dwa następujące: • 00h - typ niezdefiniowany, • 04h - pakiet wymiany pakietów Inne typy pakietów, to: • 01h - pakiet marszrutyzacji, • 02h - pakiet echo, • 03h - pakiet obsługi błędów, • 05h - pakiet SPX, • 10h ... 1Fh - pakiety eksperymentalne.
Port przeznaczenia - Destination Socket (2) Węzeł przeznaczenia - Destination Node (6) Sieć przeznaczenia - Destination Network (4) BUDOWA PAKIETU IPX. NAGŁÓWEK. ADRES PRZEZNACZENIA I ŹRÓDŁOWY
BUDOWA PAKIETU IPX. NAGŁÓWEK. SIEĆ PRZEZNACZENIA Określa adres (4 bajtowy) instalacji sieciowej, w której znajduje się docelowy węzeł. Każda współpracująca sieć lokalna posiada (zdefiniowany przez administratora) unikatowy numer/adres. Wyzerowanie tego pola oznacza, że węzeł odbiorczy znajduje się fizycznie w obrębie tej samej instalacji, co węzeł nadawczy.
BUDOWA PAKIETU IPX. NAGŁÓWEK. WĘZEŁ PRZEZNACZENIA Określa adres (6 bajtowy) węzła docelowego w ramach sieci przeznaczenia. Adresacja w sieciach Ethernet wymaga podania 6 bajtowego adresu węzła. Jeżeli dla innego standardu sieci adres jest krótszy, to starsze pozycje należy uzupełnić zerami. Wypełnienie wszystkich bajtów wartością FFh spowoduje rozesłanie pakietu do wszystkich węzłów w sieci przeznaczenia.
BUDOWA PAKIETU IPX. NAGŁÓWEK. PORT PRZEZNACZENIA Określa adres logicznego portu w obrębie węzła, do którego ma dotrzeć wysyłany pakiet. Porty związane są z różnymi procesami obsługi w danym węźle.
BUDOWA PAKIETU IPX. NAGŁÓWEK. ZAREZERWOWANE PORTY Rank-Xerox zarezerwował następujące numery portów dla obsługi określonych pakietów: • 0001h - pakiet obsługi marszrutyzacji, • 0002h -obsługa pakietu echo, • 0003h - pakiet obsługi błędu, • 0020h ... 003Fh - obsługa pakietów eksperymentalnych. Dla NetWare przydzielono do określonych zadań porty: • 01C3h - pakiet obsługi pliku, • 01C4h - pakiet informujący o usługach sieci, • 01C5h - pakiet informujący o marszrutyzacji, • 01C7h - pakiet NetBIOS, • 01C8h - pakiet diagnostyczny.
FUNKCJE IPX ORGANIZUJĄCE TRANSFER PAKIETU • Wywołanie funkcji systemowej IPX realizowane jest przez program użytkownika poprzez wygenerowanie przerwania programowego int 7Ah. • Numer funkcji IPX znajduje się w rejestrze BX. • Parametry wejściowe przekazywane są poprzez inne rejestry lub pola bloku ECB (sterowania zdarzeniami)
STRUKTURA BLOKU STEROWANIA ZDARZENIEM (EVENT CONTROL BLOCK, ECB) void far *LinkAddress; void far (* ESRAddress)(); unsigned char InUseFlag; unsigned char CompletionCode; char SocketNumber[2]; unsigned int conection_id; unsigned int IPXWorkspace; unsigned char DriverWorkspace[12]; unsigned char ImmedianteAddres[6]; int FragmentCount; struct { void far *adres; /*adres bufora*/ unsigned int Len ; } Buffers[2];
ZNACZENIE PÓL BLOKU ECB • Adres łącznika (Link Address) - pole umożliwiające łączenie wielu bloków ECB w listę, może być wykorzystywane zarówno przez protokół IPX jak i program użytkowy. • Adres procedury obsługi zdarzenia (ESR Address) - pole to może zawierać (zdefiniowany w programie użytkowym) adres procedury obsługi zdarzenia. Za wywołanie tej procedury odpowiedzialny jest IPX i traktuje to jako przedłużenie domyślnej procedury obsługi przerwania systemowego, zainicjowanego sprzętowo (np. przyjęcie pakietu lub jego fizyczne wysłanie).
WSKAŹNIK WYKORZYSTANIA (IN USE FLAG) Jest to bajt ustawiany przez IPX w momencie zainicjowania obsługi zdarzenia związanego z danym blokiem ECB, sygnalizuje sytuacje występujące zależnie od rodzaju obsługiwanego zdarzenia. Po zakończeniu obsługi zdarzenia jest zerowany. • F8h - usiłowanie wysłania pakietu podczas, gdy IPX jest zajęte obsługą innego zdarzenia. • FAh - dany blok ECB jest aktualnie przetwarzany przez IPX. • FBh - wystąpiło zdarzenie wysłania lub odebrania pakietu, jednak dany blok ECB znajduje się aktualnie w kolejce i oczekuje na przetworzenie. • FEh - IPX oczekuje na nadejście pakietu związanego ze zdarzeniem. • FFh - dany blok ECB jest wykorzystywany do transmisji pakietu.
KOD ZAKOŃCZENIA (COMPLETION CODE) Jest to kod ustawiany przez IPX po zakończeniu przetwarzania zdarzenia (wysłania lub odebrania pakietu, zdarzenia asynchronicznego), sygnalizujący sposób zakończenia tej operacji. Wartość ustawiona w tym polu ma sens dopiero po wyzerowaniu się wskaźnika wykorzystania. Zależnie od rodzaju zdarzenia kod ten może oznaczać:
KOD ZAKOŃCZENIA (COMPLETION CODE). WYSŁANIE PAKIETU • 00h - pomyślne zakończenie operacji wysłania pakietu; nie wiadomo jednak, czy dotarł do miejsca przeznaczenia. • FCh - żądanie wysłania pakietu zostało wycofane. • FDh - niewłaściwy format pakietu na skutek jednego z poniższych błędów:- całkowita długość mniejsza od 30 (pakiet IPX) bajtów,- długość pakietu większa od 576 bajtów,- pierwszy bufor w ECB jest za krótki na nagłówek,- pole liczby buforów w bloku ECB jest wyzerowane. • FEh - pakiet nie dotrze do odbiorcy, gdyż nie istnieje wskazana w pakiecie lokalizacja (adres sieciowy). • FFh - niemożność wysłania pakietu ze względu na uszkodzenie sprzętowe.
KOD ZAKOŃCZENIA (COMPLETION CODE). ODEBRANIE PAKIETU • 00h - pomyślne zakończenie operacji odebrania pakietu. • FCh - żądanie odebrania pakietu zostało wycofane. • FDh - wystąpił nadmiar, tzn. pakiet został odebrany, ale pole licznika buforów w bloku ECB jest wyzerowane lub udostępniono zbyt mało buforów aby zmieścić cały pakiet. • FFh - adres portu (socket), gdzie pakiet miał być skierowany jest niedostępny (port jest zamknięty).
ZNACZENIE PÓL BLOKU ECB Numer (adres) portu (Socket Number) - numer logicznego portu w ramach danego węzła sieci, przydzielonego do obsłużenia danego zdarzenia. Przy żądaniu nadania pakietu oznacza to numer portu wysyłającego, przy odbiorze portu przyjmującego pakiet. Obszar roboczy IPX (IPX Workspace) - pole zarezerwowane dla IPX i używane w trakcie przetwarzania zdarzenia. Obszar roboczy sterownika (Driver Workspace) - pole zarezerwowane dla sterownika sieciowego (karty).
Close socket Open socket Close socket Open socket KOLEJNOŚĆ ZDARZEŃ PODCZAS PRZESYŁANIA PAKIETÓW Wysłanie pakietu Odbiór pakietu Sendpackage Listen for package