SK Moduł 5: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
(Nie pokazano 13 wersji utworzonych przez 2 użytkowników) | |||
Linia 1: | Linia 1: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_pop_Slajd1.png|thumb|500px]] | ||
|valign="top"| | |valign="top"| | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd2_pop.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|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. | ||
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 | 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 | ||
Linia 18: | 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. | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd3.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd3.png|thumb|500px]] | ||
|valign="top"| | |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. | |||
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. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd4_pop.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|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. | ||
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: | Poszczególne pola pakietu mają następujące znaczenie: | ||
Linia 47: | 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 | 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 pola wynosi 0, wtedy pakiet taki jest odrzucany. Zasada ta pozwala na stosowanie 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 | 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 być 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. | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_pop_Slajd5_pop.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|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. | ||
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: | 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. | 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: | Klasa: w polu tym mogą być zapisane następujące wartości: | ||
0 - oznacza kontrolę pakietów lub sieci | 0 - oznacza kontrolę pakietów lub sieci | ||
Linia 76: | Linia 78: | ||
Znaczenie pól poszczególnych opcji zostało podane w tabeli. | Znaczenie pól poszczególnych opcji zostało podane w tabeli. | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd6.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd6.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|W zależności od tego jaki protokół uformował pole danych oraz jaki powinien je przetworzyć w nagłówku pakietu musi być to zaznaczone. Polem odpowiedzialnym za identyfikację właściwego protokołu jest pole „Protokół”. | ||
W zależności od tego jaki protokół uformował pole danych oraz jaki powinien je przetworzyć w nagłówku pakietu musi być to zaznaczone. Polem odpowiedzialnym za identyfikację właściwego protokołu jest pole „Protokół”. | |||
Wartości wpisane w pole „protokół” nagłówka IP mają następujące znaczenie: | Wartości wpisane w pole „protokół” nagłówka IP mają następujące znaczenie: | ||
1 - ICMP (ang. Internet Control Message Protocol) - protokół komunikacyjny sterowania siecią Internet | 1 - ICMP (ang. Internet Control Message Protocol) - protokół komunikacyjny sterowania siecią Internet | ||
Linia 89: | Linia 92: | ||
8 - EGP - (ang. Exterior Gateway Protocol) - zewnętrzny protokół bramowy | 8 - EGP - (ang. Exterior Gateway Protocol) - zewnętrzny protokół bramowy | ||
17 - UDP - (ang. User Datagram Protocol) - protokół datagramów użytkownika | 17 - UDP - (ang. User Datagram Protocol) - protokół datagramów użytkownika | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd7_pop.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|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 wysył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. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd8.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd8.png|thumb|500px]] | ||
|valign="top"| | |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. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd9.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd9.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Najważniejsze dane przesyłane w komunikacie ICMP zawarte są w polach TYP i KOD. Zatem wszystkie wersje komunikatów ICMP musza zawierać pola: Typ, Kod, Suma kontrolna. Znaczenie poszczególnych bajtów jest następujące: | ||
Najważniejsze dane przesyłane w komunikacie ICMP zawarte są w polach TYP i KOD. Zatem wszystkie wersje komunikatów ICMP musza zawierać pola: Typ, Kod, Suma kontrolna. Znaczenie poszczególnych bajtów jest następujące: | |||
Pole Typ: | Pole Typ: | ||
0 - odpowiedź z echem (ang. Echo Reply) | 0 - odpowiedź z echem (ang. Echo Reply) | ||
3 - odbiorca nieosiągalny (ang. Destination Unreachable). | |||
4 - zmniejszenie szybkości nadawania - tłumienie źródła (ang. source quench) | 4 - zmniejszenie szybkości nadawania - tłumienie źródła (ang. source quench) | ||
5 - zmiana trasowania - przekierowanie (ang. redirect). | 5 - zmiana trasowania - przekierowanie (ang. redirect). | ||
8 - prośba o echo (ang. echo request) | |||
9 - rozgłaszanie routera (ang. router advertisement) | 9 - rozgłaszanie routera (ang. router advertisement) | ||
10 - wywołanie routera (ang. router solicitation) | 10 - wywołanie routera (ang. router solicitation) | ||
11 - przekroczenie TTL (ang. Time Exceeded) | 11 - przekroczenie TTL (ang. Time Exceeded) | ||
12 - kłopot z parametrami datagramu | 12 - kłopot z parametrami datagramu | ||
13 - prośba / żądanie o wysłanie znacznika czasu (ang. timestamp request) | |||
14 - odpowiedź na prośbę / żądanie o wysłanie znacznika czasu (ang. timestamp reply) | |||
15 - prośba o informację | |||
16 - odpowiedź z informacją | |||
17 - prośba o maskę adresu | 17 - prośba o maskę adresu | ||
18 - odpowiedź z maską adresu | |||
30 - Traceroute | 30 - Traceroute | ||
31 - błąd konwersji datagramu (ang. Datagram Conversion Error) | 31 - błąd konwersji datagramu (ang. Datagram Conversion Error) | ||
Linia 151: | Linia 156: | ||
W zależności od wartości występującej w polu Typ, wartość pola Kod może zawierać różne liczby. Najczęściej spotykane wartości par Typ, Komunikat zostaną przedstawione na następnych slajdach. | W zależności od wartości występującej w polu Typ, wartość pola Kod może zawierać różne liczby. Najczęściej spotykane wartości par Typ, Komunikat zostaną przedstawione na następnych slajdach. | ||
Następujące wartości pola Typ są zarezerwowane : 1,2,7,19 (zarezerwowane dla bezpieczeństwa), 20-29, 41-255. | Następujące wartości pola Typ są zarezerwowane : 1,2,7,19 (zarezerwowane dla bezpieczeństwa), 20-29, 41-255. | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd10.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd10.png|thumb|500px]] | ||
|valign="top"| | |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ą wykorzystywane przez podstawowe programy testujące, takie jak ping czy traceroute. Przykłady wywołania tych programów zostaną podane na kolejnych slajdach. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd11_pop.png|thumb|500px]] | ||
|valign="top"| | |valign="top"| | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd12_pop.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Przy próbach wysyłania pakietów do miejsca przeznaczenia może wystąpić szereg błędów związanych z np. z uszkodzeniem łącza, błędnym adresem docelowym, 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. | ||
Przy próbach | |||
W zależności od przyczyny błędu w polu „Kod” pojawiają się wartości liczbowe powiązane z następującymi usterkami: | 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 | 0 - sieć niedostępna | ||
1 - | 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 | 10 - komunikacja z hostem docelowym zablokowana przez administratora | ||
11 - sieć niedostępna dla tego typu usługi | 11 - sieć niedostępna dla tego typu usługi | ||
Linia 193: | Linia 202: | ||
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. | 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. | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd13_pop.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Komunikaty ICMP są wykorzystywane przez program narzędziowy ping. Program ten wysyła komunikat ICMP z wartością pola Typ ustawioną na wartość równą 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 równą 0. | ||
Innym powszechnie stosowanym programem narzędziowym jest program traceroute. Przykład efektu wywołania tego programu został przedstawiony na slajdzie. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd14.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd14.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Kolejnym przykładem błędu powodującego wysłanie komunikatu ICMP jest sytuacja, gdy w nagłówku przesyłanego pakietu są błędy. Wysyłany jest wtedy komunikat błędu o postaci takiej jak na slajdzie, z wartością pola Typ równą 12. Błąd ten oznacza, że jest problem związany z parametrem (ang. parameter problem). | ||
Jeśli pole „Kod” ma wartość 0, to wartość w polu „Wskaźnik” wskazuje numer oktetu nagłówka datagramu, w którym występuje błędna wartość parametru. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd15.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd15.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Oprócz komunikatów o błędach, które zostały częściowo omówione na poprzednich slajdach protokół ICMP służy również do przesyłania komunikatów sterujących (stąd część nazwy protokołu: control). Komunikaty te są wysyłane, m.in. w celu efektywniejszego przesyłania pakietów przez IP. | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd16.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd16.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|W przypadku, gdy host nie nadąża z przetworzeniem pakietów to wysyłany jest komunikat ICMP z kodem „Typ” równym 4, oznaczający tłumienie źródła (ang. source quench). Sytuacja taka ma zwykle miejsce, gdy jeden z komputerów otrzymuje pakiety z wielu źródeł. Zwykle w takich przypadkach zmniejszana jest wielkość okna TCP. | ||
W przykładzie na rysunku pokazany jest przypadek wysłania komunikatu tłumienia źródła przez router, który jest połączony z dostawcą Internetu przy pomocy łącza o niewielkiej przepustowości (np. 100 Mb), zaś sieć lokalna pracuje z wyższą prędkością. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd17_pop.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Jednym z komunikatów sterujących ICMP jest komunikat zmiany trasowania / przekierowania. | ||
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: | ||
pakiet przesyłany do routera na jego interfejs jest następnie zawracany i kierowany przez ten sam interfejs do innego routera | - 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: | Żą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 | - 1 - datagramy przekierowania dla hosta | ||
- 2 - datagramy przekierowania dla typu usługi i sieci | - 2 - datagramy przekierowania dla typu usługi i sieci | ||
- 3 - datagramy przekierowania dla typu usługi i hosta | - 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. | 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. | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd18.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd18.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Przy komunikacji poprzez sieci rozległe może istnieć potrzeba synchronizacji zegarów w odległych od siebie lokalizacjach. Ma to istotne znaczenie w przypadku użytkowania aplikacji wymagających zgodności znaczników czasowych. | ||
Przy komunikacji poprzez sieci rozległe może istnieć potrzeba synchronizacji zegarów w odległych od siebie lokalizacjach. Ma to istotne znaczenie w przypadku użytkowania aplikacji wymagających zgodności znaczników czasowych. | |||
W celu synchronizacji zegarów na danym hoście (serwerze) z innym hostem (serwerem) wysyłany jest stosowny komunikat ICMP żądanie / prośba wysłania znacznika czasowego (ang. timestamp request) o wartości pola Typ równej 13. W odpowiedzi na taką prośbę wysyłany jest komunikat odpowiedzi o wartości pola Typ równej 14. Pola kodu w przypadku obu typów komunikatów są równe 0. | W celu synchronizacji zegarów na danym hoście (serwerze) z innym hostem (serwerem) wysyłany jest stosowny komunikat ICMP żądanie / prośba wysłania znacznika czasowego (ang. timestamp request) o wartości pola Typ równej 13. W odpowiedzi na taką prośbę wysyłany jest komunikat odpowiedzi o wartości pola Typ równej 14. Pola kodu w przypadku obu typów komunikatów są równe 0. | ||
Pola, w których będą umieszczane znaczniki czasu są wypełniane czasem podanym w milisekundach liczonych od północy czasu uniwersalnego (UTC). | Pola, w których będą umieszczane znaczniki czasu są wypełniane czasem podanym w milisekundach liczonych od północy czasu uniwersalnego (UTC). | ||
Przed wysłaniem komunikatu wypełniane jest pole „Początkowy znacznik czasu” wartością daty i godziny czasu dla hosta | Przed wysłaniem komunikatu wypełniane jest pole „Początkowy znacznik czasu” wartością daty i godziny czasu dla hosta źródłowego. W polu „Znacznik czasu odbioru” wstawiany jest czas odbioru przez host docelowy komunikatu z żądaniem wysłania znacznika czasu. Następnie, przed wysłaniem komunikatu z odpowiedzią, wypełniany jest aktualny czas do pola „Znacznik czasu wysłania”. | ||
Analiza trzech pól przesłanych w odpowiedzi na prośbę o znacznik czasu umożliwia oszacowanie czasu przesyłania pakietu przez sieć zarówno w jedną jak i drugą stronę. W praktyce zamiast tego typu pomiarów stosuje się protokoły wyższych warstw stosu protokołów TCP/IP, np. protokół NTP (ang. Network Time Protocol). | Analiza trzech pól przesłanych w odpowiedzi na prośbę o znacznik czasu umożliwia oszacowanie czasu przesyłania pakietu przez sieć zarówno w jedną jak i drugą stronę. W praktyce zamiast tego typu pomiarów stosuje się protokoły wyższych warstw stosu protokołów TCP/IP, np. protokół NTP (ang. Network Time Protocol). | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd19.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd19.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Komunikaty żądanie / prośba o przesłanie informacji (ang. information request) oraz odpowiedź na żądanie przesłania informacji (ang. information reply) zostały zaprojektowane z myślą o przesyłaniu numerów IP. W zależności od tego czy jest to prośba o informację, czy też odpowiedź na tę prośbę pole Typ ma wartości: 15 lub 16. W przypadku obu typów komunikatów wartości pola „Kod” wynoszą 0. | ||
W praktyce obecnie nie są wykorzystywane, gdyż informacje takie są przesyłane w sposób bardziej dogodny przez protokoły takie jak BOOTP, RARP czy też DHCP. Protokoły służące uzyskiwaniu adresów zostaną omówione w kolejnym module poświęconym automatycznemu uzyskiwaniu adresów IP. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd20.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd20.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Komunikat ICMP typu żądanie maski adresowej oraz odpowiedź na żądanie maski adresowej mają odpowiednio wartości pól Typ wypełnione liczbami 17 i 18. Komunikaty te służą określeniu przez hosta jego maski adresowej. | ||
W przypadku, gdy host zna adres routera w danej podsieci, komunikat żądanie maski adresowej wysyłany jest na adres tego komputera. W przeciwnym razie komunikat ten wysyłany jest na adres rozgłoszeniowy. W odpowiedzi router wysyła na adres hosta, który wysłał żadanie, netmaskę w odpowiednim polu komunikatu zwrotnego. | |||
Pola „Identyfikator” jak i „Numer sekwencyjny” służą do skojarzenia zapytań i odpowiedzi. Mogą mieć wartość 0. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd21.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd21.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Komunikaty służące do wykrywania routera (ang. router discovery messages) są pomocne w momencie podłączania do sieci hosta, który nie ma wpisanego w sposób statyczny adresu routera. Komunikaty takie są wykorzystywane przez protokół IRDP (ang. ICMP Router Discovery Protocol), który działa w oparciu o protokół ICMP. Pozyskanie takiego adresu, przy pomocy protokołu IRDP, poprzez nowo podłączony host może odbyć się w dwojaki sposób. | ||
Komunikaty służące do wykrywania routera (ang. router discovery messages) są pomocne w momencie podłączania do sieci hosta, który nie ma wpisanego w sposób statyczny adresu routera. Komunikaty takie są wykorzystywane przez protokół IRDP (ang. ICMP Router Discovery Protocol), który działa w oparciu o protokół ICMP. Pozyskanie takiego adresu, przy pomocy protokołu IRDP, poprzez nowo podłączony host może odbyć się w dwojaki sposób. | |||
Jednym z nich jest cykliczne wysyłanie przez router komunikatów rozgłaszania routera (ang. router advertisement), które mogą zostać odebrane przez hosty w sieci lokalnej. Komunikat taki ma w polu Typ wpisaną wartość 9. Komunikaty rozgłaszania routera nie służą do wyboru najlepszego routera do przesyłania pakietów do określonej lokalizacji. Gdy host wybierze router, który nie jest optymalny do przesyłania pakietów do określonej lokalizacji, to powinien zostać o tym poinformowany poprzez komunikat ICMP o przekierowaniu (komunikat ten został omówiony na jednym z wcześniejszych slajdów. | Jednym z nich jest cykliczne wysyłanie przez router komunikatów rozgłaszania routera (ang. router advertisement), które mogą zostać odebrane przez hosty w sieci lokalnej. Komunikat taki ma w polu Typ wpisaną wartość 9. Komunikaty rozgłaszania routera nie służą do wyboru najlepszego routera do przesyłania pakietów do określonej lokalizacji. Gdy host wybierze router, który nie jest optymalny do przesyłania pakietów do określonej lokalizacji, to powinien zostać o tym poinformowany poprzez komunikat ICMP o przekierowaniu (komunikat ten został omówiony na jednym z wcześniejszych slajdów. | ||
Linia 297: | Linia 315: | ||
Wyżej wymienione typy komunikatów zostaną przedstawione na kolejnych slajdach. Należy podkreślić, że ze względu na własności protokołu DHCP (zostanie on omówiony w module poświęconym automatycznemu pozyskiwaniu adresów IP) znaczenie protokołu IRDP jest obecnie niewielkie. | Wyżej wymienione typy komunikatów zostaną przedstawione na kolejnych slajdach. Należy podkreślić, że ze względu na własności protokołu DHCP (zostanie on omówiony w module poświęconym automatycznemu pozyskiwaniu adresów IP) znaczenie protokołu IRDP jest obecnie niewielkie. | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd22.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd22.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Komunikat rozgłaszania routera został przedstawiony na slajdzie. Poszczególne pola mają następujące znaczenie: | ||
Komunikat rozgłaszania routera został przedstawiony na slajdzie. Poszczególne pola mają następujące znaczenie: | |||
Liczba adresów - liczba adresów przesyłana w tym komunikacie | Liczba adresów - liczba adresów przesyłana w tym komunikacie | ||
Rozmiar pozycji adresu - liczba 32 bitowych słów przeznaczonych na pole adresu routera(ów). | Rozmiar pozycji adresu - liczba 32 bitowych słów przeznaczonych na pole adresu routera(ów). | ||
Linia 309: | Linia 328: | ||
Adres routera - adres routera | Adres routera - adres routera | ||
Poziom preferencji - pole umożliwiające oznaczenie przez administratora routera, który jest bardziej predestynowany do danej funkcji. Wartość tego pola waha się w granicach 1 do „Liczby adresów. Czym wyższa wartość tego pola tym wybór tego routera jest bardziej pożądany. | Poziom preferencji - pole umożliwiające oznaczenie przez administratora routera, który jest bardziej predestynowany do danej funkcji. Wartość tego pola waha się w granicach 1 do „Liczby adresów. Czym wyższa wartość tego pola tym wybór tego routera jest bardziej pożądany. | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd23_pop.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|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. | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd24.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd24.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Protokół zarządzania grupami internetowymi IGMP (ang. Internet Group Menagement Protocol) został opracowany z myślą o dogodnej komunikacji urządzeń sieciowych przy pomocy transmisji grupowych. Działanie tego protokołu jest trochę podobne do komunikacji przy pomocy kanałów telewizyjnych lub radiowych, albo jeszcze lepiej krótkofalarskich. Klient decyduje do którego kanału się podłącza (jaki program go interesuje) i tylko te informacje otrzymuje jak również do tego samego kręgu zainteresowanych stacji kieruje swoje komunikaty. Standard tego protokołu został opublikowany w dokumencie RFC 1112 pod koniec lat 90-tych XXw. | ||
Działanie takie jest możliwe, dzięki transmisjom grupowym (ang. multicasting). W tym typie transmisji pakiety wysyłane są na adres grupowy IP. Routery wiedzą, które komputery znajdują się w grupie obsługiwanej przez daną aplikację. Pozwala to na jednokrotne wysłanie określonych danych do wszystkich hostów z danej grupy. Jest to działanie bardziej efektywne niż transmisje kierowane (ang. unicasting), czy też wysyłanie poprzez adres rozgłoszeniowy (ang. broadcasting). | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd25.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd25.png|thumb|500px]] | ||
|valign="top"| | |valign="top"| | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd26.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd26.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Hosty, które chcą się przyłączyć do danej grupy wysyłają komunikat IGMP Host Membership Report. Przyłączenie się klienta do danej grupy składa się z dwóch procesów: | ||
-host powiadamia router o tym, że chce się przyłączyć do danej grupy | |||
-host wiąże w sposób dynamiczny IP z adresem grupowym, który jest zarezerwowany dla danej aplikacji oraz z zarezerwowanym adresem Ethernetowym | |||
Opuszczenie danej grupy odbywa się poprzez wysłanie komunikatu IGMP Explicit Leave. Host powinien powiadomić lokalne routery o zamiarze opuszczenia grupy poprzez wysłanie właśnie takiego komunikatu. | |||
Routery okresowo sprawdzają czy w dalszym ciągu istnieje potrzeba przesyłania pakietów na adres grupowy. Kontrola taka odbywa się poprzez wysłanie zapytania przy użyciu adresu grupowego przeznaczonego dla wszystkich hostów (224.0.0.1). Pakiety które są wysyłane pod ten zarezerwowany numer IP mają ustawione pole TTL na wartość jeden, dzięki temu nie są rozsyłane dalej przez inne routery. W odpowiedzi hosty powinny przesłać pakiet raportu z adresem takim jaki jest zarezerwowany dla tej grupy. Po sprawdzeniu, które z grup jeszcze istnieją routery będą przesyła tylko pakiety dla funkcjonujących grup, natomiast pakiety z adresem grupowym będą odrzucane przez router. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_pop_Slajd27_pop.png|thumb|500px]] | ||
|valign="top"|W nagłówku pakietu IGMP przesyłane są następujące pola: | |valign="top"|W nagłówku pakietu IGMP przesyłane są następujące pola: | ||
Wersja - 4b - wersja pakietu IGMP | Wersja - 4b - wersja pakietu IGMP | ||
Typ - 4b - typ komunikatu. Wartości tam zapisane oznaczają odpowiednio; | |||
1 - zapytanie o przynależność | 1 - zapytanie o przynależność hosta | ||
2 - raport o przynależności hosta | 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 integralności pakietu | |||
Adres grupy - 32b - gdy pakiet jest przesyłany w celu zapytania o przynależność hosta, 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. | |||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_pop_Slajd28.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Protokół IGMP obsługuje rozsyłanie grupowe wewnątrz sieci lokalnych. Przesyłaniem pakietów grupowych pomiędzy routerami zajmują się grupowe protokoły trasowania (ang. Multicast Router Protocol ). | ||
Protokół IGMP obsługuje rozsyłanie grupowe wewnątrz sieci lokalnych. Przesyłaniem pakietów grupowych pomiędzy routerami zajmują się grupowe protokoły trasowania (ang. Multicast Router Protocol ). | |||
Wśród najczęściej spotykanych protokołów rozsyłania grupowego działających pomiędzy routerami sa: | Wśród najczęściej spotykanych protokołów rozsyłania grupowego działających pomiędzy routerami sa: | ||
PIM (ang. Protocol Independent Multicast Protocol) - protokół adresowania grupowego niezależny od protokołów. Standard ten został opisany w dokumencie RFC 2117. | PIM (ang. Protocol Independent Multicast Protocol) - protokół adresowania grupowego niezależny od protokołów. Standard ten został opisany w dokumencie RFC 2117. | ||
MOSPF (ang. Multicast Extensions to OSPF) - rozszerzenie protokołu OSPF o adresowanie grupowe. Protokół ten został opisany w dokumencie RFC 1584 | MOSPF (ang. Multicast Extensions to OSPF) - rozszerzenie protokołu OSPF o adresowanie grupowe. Protokół ten został opisany w dokumencie RFC 1584 | ||
DVMRP (ang. Distance Vector Multicast Routing Protocol) - protokół routingu grupowego na podstawie wektorów odległości. Protokół ten opisano w dokumencie RFC 1075. | |||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd29.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd29.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Protokół IPv4 jest w dalszym ciągu powszechnie wykorzystywany pomimo niedoskonałości tego rozwiązania. Prace nad nowszą wersją protokołu IPv6 trwają od kilku lat. Jednym z ważniejszych argumentów przemawiających za potrzebą migracji do nowszej wersji protokołu jest zapotrzebowanie na dużą liczbę adresów Internetowych. Mechanizmy, o których będzie mowa w module poświęconym adresacji, wymyślone w celu efektywnego gospodarowania dostępną pulą IPv4 były dobre przy założeniu, że sieć komputerowa składała się tylko z typowych hostów i serwerów. Przy obecnych założeniach, że większość nowo dostępnych urządzeń powszechnego użytku będzie miało funkcje komunikacji sieciowej liczba tych adresów jest niewystarczająca. | ||
Protokół IPv4 jest w dalszym ciągu powszechnie wykorzystywany pomimo niedoskonałości tego rozwiązania. Prace nad nowszą wersją protokołu IPv6 trwają od kilku lat. Jednym z ważniejszych argumentów przemawiających za potrzebą migracji do nowszej wersji protokołu jest zapotrzebowanie na dużą liczbę adresów Internetowych. Mechanizmy, o których będzie mowa w module poświęconym adresacji, wymyślone w celu efektywnego gospodarowania dostępną pulą IPv4 były dobre przy założeniu, że sieć komputerowa składała się tylko z typowych hostów i serwerów. Przy obecnych założeniach, że większość nowo dostępnych urządzeń powszechnego użytku będzie miało funkcje komunikacji sieciowej liczba tych adresów jest niewystarczająca. | |||
Innym | Innym powiązanym z poprzednim, wymaganiem jest potrzeba zapewnienia ustalonych parametrów transmisji dla ruchu multimedialnego. Technologie wprowadzane coraz powszechniej: telefonia IP, telewizja cyfrowa, wideo na życzenie itp. wymagają stałych parametrów przesyłania. | ||
Innym, równie istotnym, wymogiem jest kwestia autoryzacji nadawcy, która nie była możliwa w IPv4. | Innym, równie istotnym, wymogiem jest kwestia autoryzacji nadawcy, która nie była możliwa w IPv4. | ||
Linia 388: | Linia 413: | ||
Jedną z podstawowych zalet, chociaż nie najważniejszą, jest liczba dostępnych adresów w nowej wersji protokołu. Ze względu na to, że do zapisania adresu w IPv6 użytych jest 128 bitów, to dostępna pula wynosi ok. 3,4x10^38 adresów. W przeliczeniu na powierzchnię Ziemi daje to ok. 6,7x10^17/mm^2. W ten sposób zapotrzebowanie na pulę adresów dla nowych rozwiązań sieciowych powinno zostać spełnione. Więcej informacji na temat adresacji znajduje się w dedykowanym module. | Jedną z podstawowych zalet, chociaż nie najważniejszą, jest liczba dostępnych adresów w nowej wersji protokołu. Ze względu na to, że do zapisania adresu w IPv6 użytych jest 128 bitów, to dostępna pula wynosi ok. 3,4x10^38 adresów. W przeliczeniu na powierzchnię Ziemi daje to ok. 6,7x10^17/mm^2. W ten sposób zapotrzebowanie na pulę adresów dla nowych rozwiązań sieciowych powinno zostać spełnione. Więcej informacji na temat adresacji znajduje się w dedykowanym module. | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_pop_Slajd30.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Budowa datagramu IPv6 została przedstawiona na rysunku. Znaczenie pól jest zgodne z ich opisem: | ||
Budowa datagramu IPv6 została przedstawiona na rysunku. Znaczenie pól jest zgodne z ich opisem: | |||
Wersja - 4b - wersja protokołu IP, w tym przypadku 6 | Wersja - 4b - wersja protokołu IP, w tym przypadku 6 | ||
Priorytet / Typ ruchu (ang.Traffic Class) - 8b - pole służące do określenia priorytetu przesyłanego pakietu. Jest to szczególnie istotne w przypadku pakietów transmitujących ruch multimedialny, gdzie ważnym aspektem jest zapewnienie wysokiego poziomu obsługi (ang. Quality of service). Pole to jest odpowiednikiem pola Type of Service w IPv4. | Priorytet / Typ ruchu (ang.Traffic Class) - 8b - pole służące do określenia priorytetu przesyłanego pakietu. Jest to szczególnie istotne w przypadku pakietów transmitujących ruch multimedialny, gdzie ważnym aspektem jest zapewnienie wysokiego poziomu obsługi (ang. Quality of service). Pole to jest odpowiednikiem pola Type of Service w IPv4. | ||
Etykieta przepływu (ang. Flow Label) - 20b - pole to zostało zarezerwowane na potrzeby zapewnienia wysokiego poziomu obsługi. Pole to składa się z kilku podpól: pierwsze cztery bity określają wrażliwość na zmiany czasów opóźnień, bity od 8 do 15 wyznaczają priorytet, reszta bitów identyfikuje potok danych. | Etykieta przepływu (ang. Flow Label) - 20b - pole to zostało zarezerwowane na potrzeby zapewnienia wysokiego poziomu obsługi. Pole to składa się z kilku podpól: pierwsze cztery bity określają wrażliwość na zmiany czasów opóźnień, bity od 8 do 15 wyznaczają priorytet, reszta bitów identyfikuje potok danych. | ||
Długość danych (ang. Payload length) - 16b - długość pola danych wyrażona wielokrotnością oktetów. | Długość danych (ang. Payload length) - 16b - długość pola danych wyrażona wielokrotnością oktetów. | ||
Następny nagłówek (ang. Next Header) - 8b - pole z informacją jaki będzie nagłówek rozszerzający. Ważną cechą tego pola, która umożliwia | Następny nagłówek (ang. Next Header) - 8b - pole z informacją jaki będzie nagłówek rozszerzający. Ważną cechą tego pola, która umożliwia szybsze przesyłanie pakietów przez routery jest możliwość dołączania nagłówków rozszerzających. Szczegóły tego rozwiązania zostaną przedstawione na następnym slajdzie. | ||
Limit przeskoków (ang. Hop Limit) - 8b - Liczba przeskoków, czyli liczba routerów, przez które pakiet może być przesłany zanim dotrze do celu. Po każdym przejściu przez router wartość tego pola jest zmniejszana o 1. Po osiągnięciu wartości 0 pakiet taki jest odrzucany. Odpowiednie pole w nagłówku IPv4 miało nazwę TTL. Maksymalna wartość tego pola podobnie jak pola TTL wynosi 255. | Limit przeskoków (ang. Hop Limit) - 8b - Liczba przeskoków, czyli liczba routerów, przez które pakiet może być przesłany zanim dotrze do celu. Po każdym przejściu przez router wartość tego pola jest zmniejszana o 1. Po osiągnięciu wartości 0 pakiet taki jest odrzucany. Odpowiednie pole w nagłówku IPv4 miało nazwę TTL. Maksymalna wartość tego pola podobnie jak pola TTL wynosi 255. | ||
Adres źródłowy (ang. Source Address) - 128b - adres źródłowy | Adres źródłowy (ang. Source Address) - 128b - adres źródłowy | ||
Adres docelowy (ang. Destination Addres) - 128b - adres docelowy | Adres docelowy (ang. Destination Addres) - 128b - adres docelowy | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd31.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd31.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Ważną cechą, która umożliwia szybsze przesyłanie pakietów przez routery jest możliwość dołączania nagłówków rozszerzających. Jest to możliwe, dzięki polu „Następny nagłówek” (ang. Next header). Nagłówek ten jest umieszczany w pakiecie za nagłówkiem podstawowym, a przed nagłówkiem warstwy transportowej. Nagłówki te powinny występować w określonej kolejności natomiast nie ma ograniczenia co do ich liczby. Nagłówki te zastępują pola opcjonalne w IPv4. Dzięki zastosowaniu tego mechanizmu możliwe jest, m.in. uwierzytelnianie pakietów. Dołączanie dodatkowych nagłówków pozwala na rozbudowywanie możliwości IPv6 bez potrzeby zmieniania formatu nagłówka głównego. Dołączenie nowego nagłówka jest sygnalizowane poprzez wpisanie liczby Next Header Value (NHV) w pole „Następny nagłówek”. Dodatkowo każdy z nagłówków rozszerzonych posiada również pole Next Header Value (NHV) przeznaczone na informację o ewentualnym następnym nagłówku.W ostatnim z nagłówków w polu Next Header Value (NHV) znajduje się wartość nagłówka określająca typ protokołu warstwy transportowej. | ||
Ważną cechą, która umożliwia | |||
Wśród zdefiniowanych nagłówków dodatkowych można wymienić: | Wśród zdefiniowanych nagłówków dodatkowych można wymienić: | ||
Hop-by-hop options header | |||
Destinations options header-1 | Destinations options header-1 | ||
Source routing header | Source routing header | ||
Linia 419: | Linia 446: | ||
IPv6 encryption header | IPv6 encryption header | ||
Destination option header-2 | Destination option header-2 | ||
|} | |||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika: | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd32_pop.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|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. | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> |
Aktualna wersja na dzień 22:39, 12 gru 2006
![]() |
![]() |
![]() |