SK Moduł 5: Różnice pomiędzy wersjami
mNie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd1.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd1.png|thumb|500px]] | ||
|valign="top"| | |valign="top"| | ||
|} | |} | ||
Linia 8: | Linia 8: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd2.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd2.png|thumb|500px]] | ||
|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. | |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. | ||
Linia 24: | Linia 24: | ||
{| 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"|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. | ||
Linia 36: | Linia 36: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd4.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd4.png|thumb|500px]] | ||
|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. | |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. | ||
Linia 67: | Linia 67: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd5.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd5.png|thumb|500px]] | ||
|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. | |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. | ||
Wartości pól kodu opcji mają następujące znaczenie: | Wartości pól kodu opcji mają następujące znaczenie: | ||
Linia 84: | Linia 84: | ||
{| 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"|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ół”. | |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ół”. | ||
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: | ||
Linia 98: | Linia 98: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd7.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd7.png|thumb|500px]] | ||
|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. | |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. | ||
Linia 114: | Linia 114: | ||
{| 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"|Przy przesyłaniu komunikaty ICMP są poddawane enkapsulacji i 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. | |valign="top"|Przy przesyłaniu komunikaty ICMP są poddawane enkapsulacji i 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. | ||
Linia 124: | Linia 124: | ||
{| 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"|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: | |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: | ||
Pole Typ: | Pole Typ: | ||
Linia 163: | Linia 163: | ||
{| 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"|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 Komunikat 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. | |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 Komunikat 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. | ||
Linia 173: | Linia 173: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd11.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd11.png|thumb|500px]] | ||
|valign="top"| | |valign="top"| | ||
|} | |} | ||
Linia 181: | Linia 181: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd12.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd12.png|thumb|500px]] | ||
|valign="top"|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. | |valign="top"|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. | ||
Linia 208: | Linia 208: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd13.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd13.png|thumb|500px]] | ||
|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ść 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. | |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ść 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. | ||
Linia 218: | Linia 218: | ||
{| 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"|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). | |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). | ||
Linia 228: | Linia 228: | ||
{| 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"|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. | |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. | ||
|} | |} | ||
Linia 236: | Linia 236: | ||
{| 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"|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ódel. Zwykle w takich przypadkach zmniejszana jest wielkość okna TCP. | |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ódel. Zwykle w takich przypadkach zmniejszana jest wielkość okna TCP. | ||
Linia 246: | Linia 246: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd17.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd17.png|thumb|500px]] | ||
|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. | ||
Linia 270: | Linia 270: | ||
{| 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"|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. | |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. | ||
Linia 284: | Linia 284: | ||
{| 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"|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 i 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. | |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 i 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. | ||
Linia 294: | Linia 294: | ||
{| 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"|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. | |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. | ||
Linia 306: | Linia 306: | ||
{| 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"|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. | |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. | ||
Linia 321: | Linia 321: | ||
{| 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"|Komunikat rozgłaszania routera został przedstawiony na slajdzie. Poszczególne pola mają następujące znaczenie: | |valign="top"|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 | ||
Linia 334: | Linia 334: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd23.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd23.png|thumb|500px]] | ||
|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. | |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. | ||
|} | |} | ||
Linia 342: | Linia 342: | ||
{| 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"|Protokół zarządzania grupami internetowymi IGMP (ang. Internet Group Menagement Protocol) został opracowany z myślą o dogodnej komunikacji urządzeń sieciowym 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 po koniec lat 90-tych XXw. | |valign="top"|Protokół zarządzania grupami internetowymi IGMP (ang. Internet Group Menagement Protocol) został opracowany z myślą o dogodnej komunikacji urządzeń sieciowym 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 po koniec lat 90-tych XXw. | ||
Linia 352: | Linia 352: | ||
{| 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"| | ||
|} | |} | ||
Linia 360: | Linia 360: | ||
{| 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"|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: | |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 powiadamia router o tym, że chce się przyłączyć do danej grupy. | ||
Linia 374: | Linia 374: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd27.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd27.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 | ||
Linia 389: | Linia 389: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd28.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd28.png|thumb|500px]] | ||
|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 ). | |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 ). | ||
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: | ||
Linia 401: | Linia 401: | ||
{| 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"|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. | |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. | ||
Linia 419: | Linia 419: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd30.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd30.png|thumb|500px]] | ||
|valign="top"|Budowa datagramu IPv6 została przedstawiona na rysunku. Znaczenie pól jest zgodne z ich opisem: | |valign="top"|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 | ||
Linia 435: | Linia 435: | ||
{| 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"|Ważną cechą, która umożliwia szybszą 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 ew. następnym nagłówku. Ostatni z nagłówków w polu Next Header Value (NHV) znajduje się wartość nagłówka określającą typ protokołu warstwy transportowej. | |valign="top"|Ważną cechą, która umożliwia szybszą 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 ew. następnym nagłówku. Ostatni z nagłówków w polu Next Header Value (NHV) znajduje się wartość nagłówka określającą typ protokołu warstwy transportowej. | ||
Linia 452: | Linia 452: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M5_Slajd32.png]] | |valign="top" width="500px"|[[Grafika:SK_M5_Slajd32.png|thumb|500px]] | ||
|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. | |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. | ||
|} | |} |
Wersja z 11:03, 21 wrz 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 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. |
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 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. |