Sieci komputerowe — ćwiczenia 8


Temat zajęć: Analiza nagłówków IP, TCP i UDP. Przebieg sesji TCP. Fragmentacja IP.

Strona domowa Wireshark: www.wireshark.org


Format nagłówka IP

Struktura nagłówka IP v. 4 (UWAGA: bity numerowane są od 0). Dodatkowe informacje np. na www.daemon.org/ip.html.

Struktura nagłówka IP

Znaczenie poszczególnych pól:

 Format nagłówka TCP

Struktura nagłówka TCP (UWAGA: bity numerowane są od 0). Dodatkowe informacje np. na www.daemon.org/tcp.html.

Struktura nagłówka TCP

Znaczenie poszczególnych pól:

 Format nagłówka UDP

Struktura nagłówka UDP (UWAGA: bity numerowane są od 0). Dodatkowe informacje np. na www.networksorcery.com/enp/protocol/udp.htm.

Struktura nagłówka UDP

Znaczenie poszczególnych pól:

 Format nagłówka Ethernet II

Struktura nagłówka warstwy fizycznej typu Ethernet II. Bity numerowane są od 0.

Struktura nagłówka Ethernet II

Znaczenie poszczególnych pól:

 Analiza protokołów w Wireshark — wstęp

Wireshark służy do analizy danych wychwyconych z sieci. Jeśli użytkownik posiada odpowiednie uprawnienia, umożliwia także samo przechwytywanie. W przeciwnym przypadku możliwa jest analiza off-line, danych przechwyconych wcześniej i zapisanych w pliku. Na zajęciach będziemy stosować ten drugi model postępowania.

Okno aplikacji Wireshark (przedstawione poniżej) podzielone jest na kilka sekcji.

Okno Wireshark

Pod paskiem menu i paskiem narzędzi znajduje się pole filtru. Filtry służą do odsiewania danych, którymi nie jesteśmy zainteresowani (składnię filtrów poznamy na kolejnych zajęciach). Dalej mamy okno danych podzielone na trzy obszary. Pierwszy (od góry) zawiera listę wszystkich ramek sieciowych, jakie zostały przechwycone lub znajdują się w załadowanym pliku. Zrzut ekranu u góry pokazuje ramki generowane przez ping. Kolumny (od lewej) zawierają:
W drugim obszarze znajdują się kolejne warstwy enkapsulacji protokołów dla wybranej ramki. Na pokazanym wyżej zrzucie mamy najpierw całą ramkę nr 5. Wewnątrz niej znajduje się ramka Ethernet typu II, z odpowiednim adresem MAC źródła i odbiorcy. Wewnątrz ramki Ethernet znajduje się pakiet IP, z odpowiednimi adresami nadawcy i odbiorcy. Pakiet ten zawiera komunikat ICMP, który (po rozwinięciu odpowiedniej gałęzi drzewa) okazuje się pakietem typu "Echo (ping) request".
Trzeci obszar pokazuje surowe dane ramki (bajt po bajcie i jako kody ASCII). Klikając na danej warstwie w obszarze drugim automatycznie podświetlany jest odpowiadający jej ciąg bajtów w obszarze trzecim. Poszczególne warstwy w obszarze drugim można "rozwijać", oglądając składowe nagłówków poszczególnych protokołów (odpowiednie dane są zawsze podświetlane w obszarze trzecim).

W celu analizy zrzutów z przykładów poniżej należy najpierw zapisać plik, do którego odnośnik znajduje się w przykładzie, na dysku lokalnym, a następnie w Wireshark wybrać File|Open i wskazać zapisany plik.

 Przykład 1

Zrzut wykonany na hoście 150.254.76.10, domyślna brama 150.254.76.1, serwer DNS 150.254.78.2. Plik zawiera wynik działania polecenia
ping -c 1 -s 0 atos.wmid.amu.edu.pl
POBIERZ PLIK

 Przykład 2

Zrzut wykonany na hoście 150.254.76.10, domyślna brama 150.254.76.1, serwer DNS 150.254.78.2. Plik zawiera wynik działania polecenia
traceroute -n ttomek.et.pl
POBIERZ PLIK

Dla porównania rezultat wykonania polecenia, jaki pojawił się na konsoli:
 1  150.254.79.193  0.262 ms  0.177 ms  0.174 ms
2 150.254.115.57 1.921 ms 0.675 ms 0.695 ms
3 150.254.71.18 0.517 ms 0.477 ms 0.476 ms
4 150.254.64.5 0.925 ms 1.319 ms 0.878 ms
5 212.191.224.17 16.694 ms 1.423 ms 1.022 ms
6 213.248.77.213 11.896 ms 12.311 ms 11.641 ms
7 213.248.65.177 12.736 ms 11.827 ms 11.527 ms
8 213.248.64.42 26.277 ms 26.257 ms 26.289 ms
9 213.248.64.62 26.855 ms 28.064 ms 28.106 ms
10 80.81.192.16 27.268 ms 26.601 ms 26.750 ms
11 62.242.145.74 27.273 ms 26.992 ms 28.696 ms
12 213.241.1.53 52.759 ms 27.377 ms 27.942 ms
13 81.210.126.114 26.974 ms 28.250 ms 27.841 ms
14 213.241.21.9 28.679 ms 29.154 ms 29.178 ms
15 213.241.121.126 43.928 ms 40.850 ms 38.074 ms
16 62.244.138.65 37.794 ms 37.402 ms 36.915 ms
17 62.244.138.134 36.871 ms 39.542 ms 42.072 ms

 Przykład 3

Klient na 192.168.1.6 wysyła do serwera na 192.168.1.200 10000 bajtów protokołem TCP. Następuje fragmentacja (segmentacja) na poziomie TCP. Przeanalizować numery sekwencji i potwierdzeń oraz flagi.

POBIERZ PLIK

 Przykład 4

Klient na 192.168.1.6 wysyła do serwera na 192.168.1.200 1000 bajtów protokołem TCP. Brak fragmentacji. Przeanalizować numery sekwencji i potwierdzeń oraz flagi.

POBIERZ PLIK

 Przykład 5

Klient na 192.168.1.6 wysyła do serwera na 192.168.1.200 10000 bajtów protokołem UDP. Następuje fragmentacja na poziomie protokołu IP. Przeanalizować offsety fragmentów oraz flagi.

POBIERZ PLIK

 Przykład 6

Klient na 192.168.1.6 wysyła do serwera na 192.168.1.200 1000 bajtów protokołem UDP. Brak fragmentacji.

POBIERZ PLIK

 Przykład 7

Klient na 150.254.76.10 otwiera połączenie TCP do serwera na 150.254.78.2, po czym zamyka je nie wysyłając żadnych danych. Serwer również zamyka połączenie natychmiast po accept, nie wykonując żadnego recv. Proszę sprawdzić numery potwierdzeń i sekwencji.

POBIERZ PLIK

 Przykład 8

Klient na 150.254.76.10 otwiera połączenie TCP do serwera na 150.254.78.2, po czym zamyka je nie wysyłając żadnych danych. Serwer po accept wykonuje jeden raz recv, który się nie powiedzie (zwraca -1), ponieważ klient zamyka połączenie nie wysyłając danych. Proszę sprawdzić numery potwierdzeń i sekwencji.

POBIERZ PLIK

 Przykład 7

Klient na 150.254.76.10 otwiera połączenie TCP do serwera na 150.254.78.2 na port 7245, jednak na tym porcie nie nasłuchuje żadna aplikacja.

POBIERZ PLIK

 Zadanie 1

Porównując zrzuty z przykładu 4 i przykładu 6 proszę sprawdzić, ile faktycznie bajtów (wliczając w to nagłówki i komunikaty kontrolne wszystkich protokołów) zostaje przesłanych w przypadku transmisji 1000 bajtów za pomocą TCP i za pomocą UDP.

 Zadanie 2

Klient na 150.254.76.10 wysyła do serwera na 150.254.78.2 łącznie 4000 bajtów protokołem TCP. Proszę na podstawie analizy zrzutu z tej sesji domyślić się ile razy klient wywołał funkcję send.

POBIERZ PLIK

 Zadanie 3

W pliku znajduje się wynik działania ping -c 10 -s 20 192.168.1.200, uruchomionego na 192.168.1.6. Proszę poszukać w zasobach Internetu formatu nagłówka ICMP i porównać z analizą w Wireshark (wskazówka: wpisać w google "ICMP header format").

POBIERZ PLIK