Część 2

Protokoły IP, ARP i ICMP


Tematy

W tej części mowa będzie o:

Zadanie

Mapa symulatora zawiera pojedynczy segment ethernetu, do którego jest dołączonych pięć węzłów. Ich interfejsy nie mają jeszcze przypisanego adresu IP.
  1. Poniżej przedstawiono dziesięć zestawów po pięć adresów. Większość z nich nie nadaje się do użycia. Wybierz zestaw zawierający prawidłowe adresy umożliwiające komunikację węzłom symulacji i uzasadnij swój wybór:
    1) 0.1.1.1; 0.1.1.2; 0.1.2.2; 0.1.0.1; 0.2.1.2;
    2) 10.0.0.255; 10.255.0.255; 10.255.255.0; 10.10.10.10; 10.0.0.0;
    3) 127.13.1.1; 127.9.2.1; 127.1.1.1; 127.34.21.1; 127.255.25.3;
    4) 128.12.1.1; 128.12.255.255; 128.12.1.1; 128.13.45.21; 128.14.28.2;
    5) 148.12.0.1; 148.12.1.0 148.12.1.1; 128.12.0.3; 148.12.1.255;
    6) 190.43.23.1; 190.43.23.2; 190.48.23.3; 190.43.23.4; 190.48.23.5;
    7) 192.44.0.1; 192.44.0.255; 192.44.7.1; 192.44.7.1; 192.44.7.155;
    8) 201.0.0.1; 201.0.0.2; 201.0.0.3; 201.0.0.4; 201.0.0.5;
    9) 223.0.255.0; 223.0.255.25; 223.0.255.55; 223.0.255.52; 223.0.255.254;
    10) 224.2.244.1; 224.2.244.2; 224.2.244.5; 224.2.244.9; 224.2.244.250;
    Prawidłowy wybór ułatwią ci wskazówki.
  2. Zaznacz interfejs, któremu chcesz przypisać adres i wybierz odpowiednią pozycję z menu "Edycja". Po pojawieniu się okienka wpisz adres i naciśnij klawisz [ENTER]. Dolne pole - maska podsieci - zostanie wypełnione automatycznie. Nie zmieniaj go - maski podsieci są omówione w części czwartej. Aby zatwierdzić ustawienie naciśnij przycisk "OK".
  3. Po wpisaniu adresów przetestuj ping'iem komunikację pomiędzy skrajnymi węzłami. Dlaczego odpowiedź na pierwszy pakiet ICMP echo trwa dłużej niż na następne?
  4. Aby prześledzić mechanizm tłumaczenia adresów przez ARP otwórz okna podglądu i tablice ARP dla interfejsów dwu wybranych węzłów (Uwaga! powodzenie ćwiczenia wymaga, by miały one puste tablice ARP), a także okno podglądu dla sieci. Uruchom test ping między wybranymi węzłami. Regularnie naciskaj przycisk "Odśwież" w oknach zawierających tabele. Zwróć uwagę na pole TTL.
  5. Uruchom ping'a pod adres, który nie należy do żadego z węzłów w sieci. Obserwuj uważnie tablicę ARP. Ile razy zostanie wysłane pytanie? Ile razy zostanie wysłane pytanie jeżeli uruchomi się jednocześnie drugi test ping z identycznymi parametrami? Dlaczego?
  6. Jakimi rodzajami pakietów posługuje się test ping?
  7. Nadaj adresy należące do 6. zestawu. Czy możliwa jest komunikacja pomiędzy wszystkimi węzłami? Prześledź, które węzły mogą się komunikować ze sobą, a które nie. Kiedy uruchamiany jest protokół ARP, a kiedy nie?

Mapa

Powyżej powinien pojawić się przycisk
Jeśli go nie ma, to Twoja przeglądarka nie wspiera Javy.

Najważniejsze informacje o protokołach

IP

IP jest protokołem zapewniającym przesyłanie datagramów przez heterogeniczną intersieć. W tym celu IP realizuje dwie podstawowe funkcje: IP jest protokołem bezpołączeniowym. Każdy datagram jest niezależną jednostką transportu danych przesyłaną niezależnie od innych, bez gwarancji dostarczenia. Zapewnienie niezawodnej komunikacji połączeniowej jest zadaniem wyższej warstwy - protokołu TCP (ang. Transmission Control Protocol).

Adresacja IP

Adres IP jest 32-bitowym identyfikatorem, unikalnym w całej intersieci, który jest przyznawany administracyjnie. Adres IP dzieli się na dwie części:

Numer sieci pełni podobną rolę co numer kierunkowy w sieciach telefonicznych. Pozwala ustalić, czy dany adres jest osiągalny bezpośrednio w sieci lokalnej, czy za pośrednictwem rutera. Numer sieci jest związany z konkretnym łączem umożliwiającym bezpośrednią komunikację pomiędzy węzłami. Może być to segment ethernetu, albo łącze modemowe. Z tego powodu komputer musi mieć tyle adresów IP, do ilu sieci jest przyłączony, gdyż adres IP nie identyfikuje tak naprawdę węzła, lecz jego dołączenie do sieci.

Cała przestrzeń adresowa jest podzielona na pięć klas. Klasę adresu określają jego najstarsze bity. Klasa adresu decyduje o długości numeru sieci i węzła. Klasy A, B i C są wykorzystywane do zwykłej adresacji węzłów:


Klasa A posiada jednobajtowy numer sieci i trzy bajty przeznaczone na numer węzła. Najstarszym bitem adresu należącego do klasy A jest 0.

Klasa B przeznacza po dwa bajty na numer węzła i sieci. Dwa pierwsze bity adresu z klasy B to '10'.

Klasa C używa 24 bitów na numer sieci i ośmiu na numer węzła. Najwyższe bity adresu klasy C to '110'.

Klasa D jest używana do adresacji węzłów uczestniczących w komunikacji grupowej (ang. multicasting). Każdy adres z klasy D identyfikuje inną grupę węzłów i rozpoczyna się bitami '1110'. Adres z klasy D jest dynamicznie przypisywany za pomocą IGMP (ang. Internet Group Management Protocol) węzłom zgłaszającym akces do danej grupy. Symulator nie obsługuje rozsyłania grupowego oraz adresów klasy D.

Klasa E jest przeznaczona do badań i eksperymentów. Pakiety zawierające adresy, które rozpoczynają się bitami '1111' nie powinny być przetwarzane przez zwykłe węzły.

Porównanie klas adresowych zawiera poniższa tabela:
Klasa Najwyższe bity Liczba sieci w klasie Maks. liczba
węzłów w sieci
Zakres adresów
A 0 126 16 777 214 1 - 126
B 10 16384 65 534 128.0 - 191.255
C 110 2 097 152 254 192.0.0 - 223.255.255
D 1110 nie dotyczy nie dotyczy 224.0.0.0 - 239.255.255.255
E 1111 nie dotyczy nie dotyczy 240.0.0.0 - 254.255.255.255

Adresy specjalne

Wśrod adresów należących do klas A, B i C są adresy o specjalnym znaczeniu, którymi nie wolno adresować węzłów. Poniżej opisano je używając następującej konwencji do symbolizowania adresu IP:

<numer sieci, numer węzła>

w miejscu numeru sieci i węzła są używane: Poniżej wyliczono adresy specjalne i omówiono ich znaczenie:
<127, *> pętla wewnętrzna. Pakiet z takim adresem nie powinien pojawić się w sieci;
<0, 0> dowolny węzeł w dowolnej sieci. Używany jako adres nadawcy przez węzły, które nie znają własnego adresu;
<*, 0> dowolny adres w pewnej sieci. Może być użyty jako adres nadawcy;
<-1, -1> adres rozgłoszeniowy o zasięgu lokalnym. Nie powinien być przekazywany przez rutery;
<*, -1> ukierunkowany adres rozgłoszeniowy - może być używany jako adres odbiorcy i oznacza wszystkie węzły w sieci o podanym numerze.

Nagłówek datagramu IP

Nagłówek datagramu IP ma conajmniej 20 bajtów i może zostać przedłużony przez opcje. Opcje IP mają bardzo ograniczone zastosowanie i nie będą tu omawiane.

0 4 8 16 19 31
Wersja IHL Rodzaj obsługi Długość całkowita
Identyfikator Flagi Przesunięcie fragmentu
Czas życia (TTL) Protokół Suma kontrolna
Adres nadawcy
Adres odbiorcy
Objaśnienie pól
IHL (ang. Internet Header Length) długość nagłówka w 32-bitowych słowach (jaka jest maksymalna długość nagłówka?);
Rodzaj obsługi pole służy do oznaczenia sposobu obsługi datagramu. Każdy bit oznacza inny rodzaj wymagań, np: małe opóźnienie, duża przepustowość, niezawodność;
Długość całkowita długość całego datagramu razem z nagłówkiem wyrażona w bajtach (jaka jest maksymalna długość pakietu IP?);
Identyfikator identyfikator pakietu służący do składania pakietu z fragmentów. Wszystkie fragmenty datagramu dziedziczą jego identyfikator;
Flagi

3 bity dotyczące fragmentacji:

  • pierwszy jest nie używany i musi być zerem;
  • jeśli drugi jest ustawiony, to pakiet nie może ulec fragmentacji;
  • jeśli ustawiony jest trzeci oznacza to, że pakiet jest ostatnim fragmentem pewnego datagramu;

Przesunięcie fragmentu określa położenie fragmentu względem początku oryginalnego pakietu;
Czas życia - TTL
(ang. Time To Live)
oznacza liczbę etapów, które pakiet może jeszcze przejść. Pole jest zmniejszane przez każdy ruter przesyłający pakiet. Jeśli po zmniejszeniu wartość pola osiągnie zero, pakiet jest usuwany;
Protokół identyfikator protokołu przenoszonego przez IP;
Suma kontrolna suma kontrolna nagłówka IP;
Adres nadawcy adres IP pierwotnego nadawcy datagramu;
Adres odbiorcy adres IP ostatecznego odbiorcy datagramu.

Jak wspomniano powyżej, IP jest bezpołączeniowy. Może się więc zdażyć, że pakiety tworzące jeden strumień (np. kolejne części przesyłanego pliku) będą przesyłane różnymi drogami przez sieć. Każdy pakiet musi więc posiadać dokładny adres swego źródła i celu. Adres celu służy do wyznaczania trasy pakietu, a adres źródła - jako informacja, gdzie wysłać odpowiedź lub komunikat o spowodowanym przez pakiet błędzie.

Wskazówki