SK Moduł 5
![]() |
Informacje przedstawione w poprzednich modułach pozwalały na zbudowanie fizycznej infrastruktury sieciowej. Odpowiada to standardom opisanym w warstwach pierwszej i drugiej modelu ISO/OSI. Urządzenia sieciowe połączone przy pomocy mediów transmisyjnych wymagają jednak protokołów sieciowych, które umożliwiają komunikację. Może to zostać zrealizowane przy pomocy protokołów warstw wyższych modelu ISO/OSI. W szczególności za komunikację sieciową odpowiada protokół IP, który wraz z innymi protokołami zastosowanymi w stosie protokołów TCP/IP stanowi podstawę działania współczesnych sieci komputerowych.
Protokół IP nie posiada mechanizmów sygnalizujących błędy oraz mechanizmów umożliwiających kontrolowanie przepływu pakietów. Z tego względu zgłaszaniem problemów z przesyłaniem datagramów oraz sterowaniem zajmuje się protokół ICMP Innym protokołem, który umożliwia bardziej efektywne rozsyłanie pakietów jest protokół IGMP. Protokół ten działa w oparciu o adresy rozsyłania grupowego. Powszechnie stosowaną wersją protokołu IP jest wersja 4. Jednak ze względu na ograniczenia dotyczące adresowania logicznego spowodowane niedostateczną, w stosunku do potrzeb, liczbą bitów przeznaczonych na adres IP protokół ten będzie zastąpiony nowszą wersją IPv6. Szczegóły dotyczące adresacji w obu tych protokołach zostaną przedstawione w następnym module. W module tym zostaną pokrótce omówione ww protokoły. |
Jak już zostało to wcześniej wspomniane pakiet IP składa się z nagłówka oraz danych. Ze względów technicznych pakiet ten został przedstawiony w formie tabelarycznej, po 32 bity (4 bajty) w rzędzie. Natomiast w rzeczywistości należy go sobie wyobrazić jako jednolity strumień bitów przedstawionych w sposób ciągły.
Poszczególne pola pakietu mają następujące znaczenie: - wersja (VERS) - pole 4-bitowe określające typ protokołu IP. Jeśli jest tam wpisana wartość 4 oznacza to wersję czwartą protokołu. Jeśli jest tam wartość 6 oznacza to IPv6. Rozróżnianie pomiędzy pakietami wersji 4 i 6 jest przeprowadzane już przy analizowaniu ramki warstwy drugiej poprzez badanie pola typu protokołu. długość nagłówka (HLEN) - pole 4 bitowe określające długość datagramu wyrażoną jako wielokrotność słów 32 bitowych. typ usługi (TOS ang. Type-of-Service) - 8-bitowe pole określające poziom ważności jaki został nadany przez protokół wyższej warstwy. Znaczenie poszczególnych bitów tego pola jest następujące: pierwsze 3 bity: wartość 0 - stopień normalny, wartość 7 - sterowanie siecią czwarty bit - O - prośba o krótkie czasy oczekiwania piąty bit - S - prośba o przesyłanie danych szybkimi łączami szósty bit P - prośba o dużą pewność przesyłania danych bity 6, 7 nieużywane całkowita długość - pole 16-bitowe. Długość całego pakietu wyrażona w bajtach. W celu uzyskania długości pola danych należy odjąć d długości całkowitej długość nagłówka. Wartość minimalna wynosi 576 oktetów ząś maksymalna 65535 oktetów, tzn. 64 kB Identyfikacja - 16 bitowe pole używane do określania numeru sekwencyjnego bieżącego datagramu. Znaczniki - 3 bitowe pole. Pierwszy najbardziej znaczący ma zawsze wartość 0. Kolejny znaczący bity sterują fragmentacją (0- oznacza, czy pakiet może zostać podzielony na fragmenty, 1 - nie może być podzielony). Trzecii bit oznacza: ostatni pakiet powstały w wyniku podzielenia (jjeśli ma wartość 1) lub pakiet ze środka 0. Przesunięcie fragmentu - 13-bitowe pole służące do składania fragmentów datagramu Czas życia (TTL, ang. Time To Live) - 8-bitowe pole określające liczbę routerów (przeskoków), przez które może być przesłany pakiet. Wartość tego pola jest zmniejszana przy przejście przez każdy router na ścieżce. Gdy wartość tego ola wynosi 0, wtedy pakiet taki jest odrzucany. Zasada ta pozwala na stosowaniu mechanizmów zapobiegających zapętlaniu się tras routingu. Protokół - 8-bitowe pole określające, który z protokołów warstwy wyższej odpowiada za przetworzenie pola Dane. Możliwe opcje tego pola zostały przedstawione na następnych slajdach. Suma kontrolna nagłówka - 16-bitowe pole z sumą kontrolną nagłówka pozwalającą stwierdzić, czy nie nastąpiło naruszenie integralności nagłówka. Ze względu na fakt, że każdy router dokonuje zmian w nagłówku musi ona byc przeliczona na każdym z routerów. Adres IP nadawcy - 32-bitowe pole z adresem IP nadawcy pakietu Adres IP odbiorcy - 32-bitowe pole z adresem IP odbiorcy pakietu Opcje - pole to nie występuje we wszystkich pakietach. Szczegółowe wartości tego pola zostaną omówione na następnym slajdzie. Uzupełnienie (Wypełnienie) - pole to jest wypełnione 0 i jest potrzebne, żeby długość nagłówka była wielokrotnością 32 bitów (patrz-> Długość nagłówka) Dane - pole od długości do 64kB zawierające dane pochodzące z wyższych warstw. |
Na niniejszym slajdzie zostało przedstawione pole opcji nagłówka pakietu IP. Pole opcji składa się z jednego bajtu kodu opcji. Po kodzie opcji może się pojawić jeden bajt długości (opis w tabelce). Po nim następują dane wskazanej opcji.
Wartości pól kodu opcji mają następujące znaczenie: Kopiuj: ma znaczenie przy fragmentacji pakietu. Gdy jest tam wartość 0, to oznacza, że opcje odnoszą się tylko do pierwszego fragmentu. Gdy jest tam wartość 1, to opcje te odnoszą się do wszystkich fragmentów podzielonego wcześniej pakietu. Klasa: w polu tym mogą być zapisane następujące wartości: 0 - oznacza kontrolę pakietów lub sieci 1 - zostało zarezerwowane do przyszłego użytku 2 - poprawianie błędów i pomiary 3 - zarezerwowane do przyszłego użytku Znaczenie pól poszczególnych opcji zostało podane w tabeli. |
Tak jak już zostało to wcześniej wspomniane sam protokół IP nie sprawdza, czy dane dotarły do adresata. Z tego punktu widzenia jest określany jako protokół zawodny. Rolę sprawdzania, czy pakiety docierają do adresata pełnią protokoły wyższych warstw.
W ramach warstwy sieciowej sprawdzaniem dostępności sieci docelowej zajmuje się protokół ICMP (ang. Internet Control Message Protocol). Jego zadaniem nie jest rozwiązywanie problemów z zawodnością IP, ale zgłaszanie braku łączności. Protokół ten został zdefiniowany w dokumencie RFC 792. Komunikaty ICMP wysyłają zwykle bramy lub hosty. Najczęstsze powody wysłania tych komunikatów to: zbytnie obciążenie router lub hosta - wysyłany jest komunikat ICMP, że należy zwolnić prędkość przesyłania komunikatów, bo host nie nadąża je przetwarzać router lub host znajduje lepszą trasę - może wysłać do źródła komunikat o lepszej trasie host docelowy jest nieosiągalny - wtedy ostatnia brama wysyła komunikat ICMP o niedostępności adresata i przesyła go do hosta źródłowgo pole TTL pakietu jest równe 0 - wtedy router może wysłać komunikat ICMP do źródłą i odrzuca pakiet. |
Przy próbach wysłanie pakietów do miejsca przeznaczenie może wystąpić szereg błędów związanych z np. z uszkodzeniem łącza, błędnym adresem docelowy, nieznaną lokalizacją, itd. W takich przypadkach router, który wykryje problem wysyła komunikat o niedostępnym adresacie (ang. destination unreachable) w postaci przedstawionej na rysunku.
W zależności od przyczyny błędu w polu „Kod” pojawiają się wartości liczbowe powiązane z następującymi usterkami: 0 - sieć niedostępna 1 - host niedostępny 2 - protokół niedostępny 3 - port niedostępny 4 - niezbędna fragmentacja, ustawiona wartość DF 5 - nie powiodło się określenie trasy przez nadawcę (ang. source route) 6 - nieznana sieć docelowa 7 - nieznany host docelowy 8 - host źródłowy odizolowany 9 - komunikacja z siecią docelową zablokowana przez administratora 10 - komunikacja z hostem docelowym zablokowana przez administratora 11 - sieć niedostępna dla tego typu usługi 12 - host niedostępny dla tego typu usługi Komunikat o niedostępnym adresie wysyłany jest również w przypadku, gdy przesyłany pakiet musi zostać podzielony na mniejsze datagramy, np. przy przesyłaniu z sieci typu Token Ring do sieci Ethernet, a znacznik w nagłówku pakietu nie pozwala na taką fragmentację. Wysyłany jest wtedy kod błędu o wartości 4. W przypadku zablokowania przez administratora określonych usług sieciowych, takich jak np. www, również nie można przesłać pakietów z żądaniem wyświetlenia strony. Generowany jest wtedy komunikat o niedostępnym adresacie ze stosowną wartością kodu błędu. |
Komunikaty ICMP są wykorzystywane przez program narzędziowy ping. Program ten wysyła komunikat ICMP z wartością pola Typ ustawioną na wartość 8 = prośba o wysłanie komunikatu echo (ang. echo request). W odpowiedzi na ten komunikat host, do którego jest adresowany ten komunikat może odpowiedzieć komunikatem ICMP o wartości pola Typ = 0.
Innym powszechnie stosowanym programem narzędziowym jest program traceroute. Przykład efektu wywołania tego programu został przedstawiony na slajdzie. |
Jednym z komunikatów sterujących ICMP jest komunikat zmiany trasowania / przekierowania.
W przykładzie zamieszczonym na rysunku host H1 o numerze IP 192.168.1.10/24 chce przesłać pakiet do hosta H2 o numerze IP 10.1.2.10/8. Host H1 ma ustawioną bramę domyślną o adresie 192.168.1.1/24 i do niej mógłby wysyłać pakiety skierowane do hosta H2. Jednak pakiety te wysłane na interfejs E0 routera A będą przez ten router kierowane na ten sam interfejs i wysyłane do routera B, który następnie będzie przesyłał dalej do hosta H2. Aby uniknąć niepotrzebnego przesyłania pakietów przez router A urządzenie to prześle komunikat ICMP do hosta H1, żeby przyszłe pakiety do hosta H1 oraz sieci 10.1.2.0/8, wysyłał na adres routera B (192.168.1.2/24).. I tak w przypadku wykrycia lepszej trasy dla pakietów wysyłany jest komunikat o wartości pola Typ równej 5. Oznacza on zmianę trasowania / przekierowanie (ang. redirect). Za wysłanie takiego komunikatu odpowiada host będący domyślną bramą, żeby komunikat taki został wysłany muszą być jednak spełnione następujące warunki: pakiet przesyłany do routera na jego interfejs jest następnie zawracany i kierowany przez ten sam interfejs do innego routera adres sieci IP nadawcy jest taki sam jak routera następnego przeskoku routowanego pakietu trasa pakietu nie jest określona przez nadawcę trasa określona po przekierowaniu nie jest trasą domyślną lub kolejnym przekierowaniem ICMP router jest skonfigurowany do wysyłania żądań przekierowania pakietów. Żądanie przekierowania pakietów w zależności od wartości pola Kod może dotyczyć zarówno sieci jak i hostów: 0 - datagramy przekierowania dla sieci - 1 - datagramy przekierowania dla hosta - 2 - datagramy przekierowania dla typu usługi i sieci - 3 - datagramy przekierowania dla typu usługi i hosta W polu „adres internetowy routera” (ang. Router Internet Address) wskazywany jest adres urządzenia, które będzie pełniło bramę dla pakietów przesyłanych do sieci, dla których zostało wygenerowane żądanie przekierowania. |
Jeśli host nie ma ustawionej domyślnej bramy to wysyła komunikat wywołania routera (ang. router solicitation). Komunikat ten jest wysyłany na adres grupowy 224.0.0.2. Jeśli komunikat ten zostanie odebrany przez router z działającą procedurą wykrywania routera, to odpowie komunikatem przedstawionym na poprzednim slajdzie. |
![]() |
W nagłówku pakietu IGMP przesyłane są następujące pola:
Wersja - 4b - wersja pakietu IGMP Typ - 4b - typ komunikatu. Wartości tam zapisane oznaczają odpowiednio; 1 - zapytanie o przynależność host 2 - raport o przynależności hosta. Nie używane - 8b - pole nie wykorzystywane Suma kontrolna - 16b - pole wykorzystywane do przesyłania liczby umożliwiającej sprawdzenie integralnosci pakietu Adres grupy - 32b - gdy pakiet jest przesyłany w celu zapytania o przynależność host, to pole to jest puste. Gdy host odpowiada raportem o przynależność do grupy, to w polu tym przesyłany jest adres rozsyłania grupowego konkretnej grupy. |
W module tym zostały przedstawione podstawowe protokoły warstwy Internetowej stosu protokołów TCP/IP. Protokół IP w wersjach 4 i 6 odpowiedzialny jest za dostarczenie pakietów do miejsca przeznaczenia. Ze względu na brak wbudowanych mechanizmów kontroli poprawności przesyłanych datagramów protokół IP posiłkuje się protokołem ICMP. Protokół IGMP wykorzystuje zalety rozsyłania grupowego do efektywnego przesyłania pakietów. |