SK Moduł 5: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 17: | Linia 17: | ||
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. | 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 | W module tym zostaną pokrótce omówione protokoły: IPv4, IPv6, ICMP, IGMP. | ||
|} | |} | ||
Linia 25: | Linia 25: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd3.png|thumb|500px]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd3.png|thumb|500px]] | ||
|valign="top"|Protokół IPv4 został szczegółowo opisany w dokumencie RFC 791. Sam protokół IP został opracowany do działania w sytuacjach ekstremalnych, np. w trakcie wojny. W normalnych warunkach jego funkcja sprowadza się do wyboru optymalnej trasy i przesyłania nią pakietów. W przypadku wystąpienia awarii, na którymś z połączeń protokół będzie próbował dostarczyć pakiety trasami alternatywnymi (nie zawsze optymalnymi. Protokół IP jest podstawowym protokołem przesyłania pakietów w Internecie. | |valign="top"|Protokół IPv4 został szczegółowo opisany w dokumencie RFC 791. Sam protokół IP został opracowany do działania w sytuacjach ekstremalnych, np. w trakcie wojny. W normalnych warunkach jego funkcja sprowadza się do wyboru optymalnej trasy i przesyłania nią pakietów. W przypadku wystąpienia awarii, na którymś z połączeń protokół będzie próbował dostarczyć pakiety trasami alternatywnymi (nie zawsze optymalnymi). Protokół IP jest podstawowym protokołem przesyłania pakietów w Internecie. | ||
Protokół IP jest protokołem bezpołączeniowym. Oznacza to, że w celu przesłania pakietów nie jest nawiązywane połączenie z hostem docelowym. Pakiety mogą być przesyłane różnymi trasami do miejsca przeznaczenia, gdzie są następnie składane w całość. Podobna zasada działa przy przesyłaniu listów tradycyjnym systemem pocztowym. Tutaj również w momencie wysyłania listu adresat nie musi potwierdzać, że przesyłkę odbierze. | Protokół IP jest protokołem bezpołączeniowym. Oznacza to, że w celu przesłania pakietów nie jest nawiązywane połączenie z hostem docelowym. Pakiety mogą być przesyłane różnymi trasami do miejsca przeznaczenia, gdzie są następnie składane w całość. Podobna zasada działa przy przesyłaniu listów tradycyjnym systemem pocztowym. Tutaj również w momencie wysyłania listu adresat nie musi potwierdzać, że przesyłkę odbierze. | ||
Do przesyłania danych protokół IP używa specjalnego formatu pakietu. Pakiet ten składa się z nagłówka pakietu oraz danych do przesłania. Zgodnie z zasadą przesyłania strumieniowego dane protokołu IP są danymi pochodzącymi z wyższych warstw modelu ISO. Dane te są następnie enkapsulowane do postaci pakietu IP. Przy przejściu do warstwy łącza danych pakiet IP jest enkapsulowany do postaci ramki Ethernetowej. | Do przesyłania danych protokół IP używa specjalnego formatu pakietu. Pakiet ten składa się z nagłówka pakietu oraz danych do przesłania. Zgodnie z zasadą przesyłania strumieniowego dane protokołu IP są danymi pochodzącymi z wyższych warstw modelu ISO/OSI. Dane te są następnie enkapsulowane do postaci pakietu IP. Przy przejściu do warstwy łącza danych pakiet IP jest enkapsulowany do postaci ramki Ethernetowej. | ||
|} | |} | ||
Linia 48: | Linia 48: | ||
szósty bit P - prośba o dużą pewność przesyłania danych | szósty bit P - prośba o dużą pewność przesyłania danych | ||
bity 6, 7 nieużywane | 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ąć | 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ąć od długości całkowitej długość nagłówka. Wartość minimalna wynosi 576 oktetów zaś maksymalna 65535 oktetów, tzn. 64 kB | ||
Identyfikacja - 16 bitowe pole używane do określania numeru sekwencyjnego bieżącego datagramu. | 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. | Znaczniki - 3 bitowe pole. Pierwszy najbardziej znaczący ma zawsze wartość 0. Kolejne znaczące bity sterują fragmentacją (0- oznacza, czy pakiet może zostać podzielony na fragmenty, 1 - nie może być podzielony). Trzeci bit oznacza: ostatni pakiet powstały w wyniku podzielenia (jeśli ma wartość 1) lub pakiet ze środka 0. | ||
Przesunięcie fragmentu - 13-bitowe pole służące do składania fragmentów datagramu | 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. | 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. | 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. | 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 nadawcy - 32-bitowe pole z adresem IP nadawcy pakietu | ||
Adres IP odbiorcy - 32-bitowe pole z adresem IP odbiorcy 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. | 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 | Uzupełnienie (Wypełnienie) - pole to jest wypełnione zerami 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. | Dane - pole od długości do 64kB zawierające dane pochodzące z wyższych warstw. | ||
|} | |} | ||
Linia 104: | Linia 104: | ||
Komunikaty ICMP wysyłają zwykle bramy lub hosty. Najczęstsze powody wysłania tych komunikatów to: | Komunikaty ICMP wysyłają zwykle bramy lub hosty. Najczęstsze powody wysłania tych komunikatów to: | ||
zbytnie obciążenie | zbytnie obciążenie routera 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 | router lub host znajduje lepszą trasę - może wtedy 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 | 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łowego | ||
pole TTL pakietu jest równe 0 - wtedy router może wysłać komunikat ICMP do | pole TTL pakietu jest równe 0 - wtedy router może wysłać komunikat ICMP do źródła i odrzuca pakiet. | ||
|} | |} | ||
Linia 115: | Linia 115: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd8.png|thumb|500px]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd8.png|thumb|500px]] | ||
|valign="top"|Przy przesyłaniu komunikaty ICMP są poddawane enkapsulacji | |valign="top"|Przy przesyłaniu komunikaty ICMP są poddawane enkapsulacji do postaci pakietów IP, a następnie do postaci ramki warstwy drugiej. Pod tym względem stanowią one integralną część danych pakietu IP. Jak zostało to pokazane na rysunku, sam komunikat ICMP jest przesyłany w datagramie IP. Komunikat ICMP składa się z nagłówka ICMP oraz danych ICMP. Warto przy tym zauważyć, że ze względu na zawodny charakter protokołu IP w momencie zaginięcia datagramu przenoszącego komunikat ICMP nie zostanie to zdiagnozowane. Wysyłanie komunikatów o błędach powodowałoby występowanie znacznego ruchu w sieci. | ||
Struktura datagramu ICMP jest odmienna od struktury datagramu IP. Wspólny jest tylko sposób adresacji. | Struktura datagramu ICMP jest odmienna od struktury datagramu IP. Wspólny jest tylko sposób adresacji. | ||
Linia 164: | Linia 164: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd10.png|thumb|500px]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd10.png|thumb|500px]] | ||
|valign="top"|W przypadku komunikatu ICMP typu żądanie echa (ang. echo request) i odpowiedzi z echem (ang. echo reply) wartości pola typ wynoszą odpowiednio 8 albo 0. Wartość pola | |valign="top"|W przypadku komunikatu ICMP typu żądanie echa (ang. echo request) i odpowiedzi z echem (ang. echo reply) wartości pola typ wynoszą odpowiednio 8 albo 0. Wartość pola Kod w obu przypadkach wynosi 0. Dodatkowo w celu połączenia zapytań i odpowiedzi pola Identyfikator i Numer sekwencyjny muszą mieć wartości unikalne. W polu danych mogą być przenoszone dodatkowe informacje potrzebne do zapytania i/lub odpowiedzi. | ||
Tego typu komunikaty ICMP są wykorzystane przez podstawowe programy testujące, takie jak ping czy traceroute. Przykłady wywołania tych programów zostaną podane na kolejnych slajdach. | Tego typu komunikaty ICMP są wykorzystane przez podstawowe programy testujące, takie jak ping czy traceroute. Przykłady wywołania tych programów zostaną podane na kolejnych slajdach. | ||
Linia 249: | Linia 249: | ||
|valign="top"|Jednym z komunikatów sterujących ICMP jest komunikat zmiany trasowania / przekierowania. | |valign="top"|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).. | 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: | 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: |
Wersja z 20:47, 3 gru 2006
![]() |
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 protokoły: IPv4, IPv6, ICMP, IGMP. |
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ąć od długości całkowitej długość nagłówka. Wartość minimalna wynosi 576 oktetów zaś 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. Kolejne znaczące bity sterują fragmentacją (0- oznacza, czy pakiet może zostać podzielony na fragmenty, 1 - nie może być podzielony). Trzeci bit oznacza: ostatni pakiet powstały w wyniku podzielenia (jeś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 zerami 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 routera 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 wtedy 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łowego pole TTL pakietu jest równe 0 - wtedy router może wysłać komunikat ICMP do źródła 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. |