DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ INTERNET PROTOCOL (IP) INTERNET CONTROL MESSAGE PROTOCOL (ICMP) WSTĘP DO SIECI INTERNET Kraków, dn. 7 listopada 2016 r.
PLAN IPv4: schemat nagłówka ICMP: informacje ogólne typy komunikatów Wykorzystanie: ping traceroute
PYTANIE W podsieci z PC będzie w sumie 6 komputerów Podaj maksymalną długość maski sieciowej wystarczającą do zaadresowania tej podsieci Ruter PC
PROTOKÓŁ IPV4
NAGŁÓWEK PROTOKOŁU IPV4 0 31 Wersja Długość nagł. Typ usługi Całkowita długość Identyfikacja Flagi Przesunięcie Czas życia Protokół Suma kontrolna Adres źródła Adres przeznaczenia Opcje
NAGŁÓWEK PROTOKOŁU IPV4 dane nagłówek 0 15 16 31 Wersja IHL Typ usługi Całkowita długość Identyfikacja Flagi Przesunięcie Czas życia Protokół Suma kontrolna Adres źródła Adres przeznaczenia Opcje dane
NAGŁÓWEK PROTOKOŁU IPV4 Wersja IHL Typ usługi Identyfikacja Czas życia Całkowita długość Przesunięcie Flagi Protokół Suma kontrolna Adres źródła Adres przeznaczenia Opcje Wersja wersja protokołu IP; wartość: 0100
NAGŁÓWEK PROTOKOŁU IPV4 Wersja IHL Typ usługi Identyfikacja Czas życia Całkowita długość Flagi Protokół Przesunięcie Suma kontrolna Adres źródła Adres przeznaczenia Opcje IHL (ang. Internet Header Length) długość nagłówka w paczkach 32-bitowych; dopuszczalne wartości: 5-15
NAGŁÓWEK PROTOKOŁU IPV4 Wersja IHL Typ usługi Identyfikacja Czas życia Całkowita długość Flagi Protokół Przesunięcie Suma kontrolna Adres źródła Adres przeznaczenia Opcje Typ usługi (ang. Type of Service) Obecnie to pole jest znane jako DSCP (Differentiated Services Code-Point)!
NAGŁÓWEK PROTOKOŁU IPV4 Wersja IHL Typ usługi Identyfikacja Czas życia Całkowita długość Przesunięcie Flagi Protokół Suma kontrolna Adres źródła Adres przeznaczenia Opcje Całkowita długość długość całego pakietu (dane + nagłówek), max. wartość to 65535 bajtów; w praktyce konieczna jest fragmentacja
FRAGMENTACJA MTU = 1500 MTU = 1000 MTU = 1500 3000 B Maximum Transmission Unit (MTU) rozmiar największego datagramu (w bajtach), który można przekazać przez warstwę protokołu komunikacyjnego.
FRAGMENTACJA MTU = 1500 MTU = 1000 MTU = 1500 2x 1500 B Maximum Transmission Unit (MTU) rozmiar największego datagramu (w bajtach), który można przekazać przez warstwę protokołu komunikacyjnego.
FRAGMENTACJA MTU = 1500 MTU = 1000 MTU = 1500 1000 B + 500 B Maximum Transmission Unit (MTU) rozmiar największego datagramu (w bajtach), który można przekazać przez warstwę protokołu komunikacyjnego.
NAGŁÓWEK PROTOKOŁU IPV4 Wersja IHL Typ usługi Identyfikacja Czas życia Całkowita długość Flagi Protokół Przesunięcie Suma kontrolna Adres źródła Adres przeznaczenia Opcje Identyfikacja unikalny numer identyfikujący pakiet w sieci Wszystkie fragmentowane pakiety posiadają ten sam numer identyfikacyjny
NAGŁÓWEK PROTOKOŁU IPV4 Wersja IHL Typ usługi Identyfikacja Czas życia Całkowita długość Flagi Protokół Przesunięcie Suma kontrolna Adres źródła Adres przeznaczenia Opcje Flagi 3-bitowe pole dot. fragmentacji pakietów R (Reserved) zarezerwowany bit (nieużywany) DF (Do not Fragment) zabrania fragmentacji MF (More Fragments) 0 oznacza ostatni fragment
NAGŁÓWEK PROTOKOŁU IPV4 Wersja IHL Typ usługi Identyfikacja Czas życia Całkowita długość Flagi Protokół Przesunięcie Suma kontrolna Adres źródła Adres przeznaczenia Opcje Fragment offset zawiera informację, w którym miejscu datagramu umiejscowione są informacje przesyłane w tym kawałku wyrażone w paczkach 8-bajtowych
NAGŁÓWEK PROTOKOŁU IPV4 Wersja IHL Typ usługi Identyfikacja Czas życia Całkowita długość Flagi Protokół Przesunięcie Suma kontrolna Adres źródła Adres przeznaczenia Opcje TTL (ang. Time to Live) wartość dekrementowana przez każdy węzeł sieciowy; gdy osiągnie 0, pakiet jest kasowany i wysyłany jest komunikat ICMP do nadawcy
RFC 1812 Note in particular that a router MUST NOT check the TTL of a packet except when forwarding it. A router MUST NOT originate or forward a datagram with a Time-to-Live (TTL) value of zero. A router MUST NOT discard a datagram just because it was received with TTL equal to zero or one; if it is to the router and otherwise valid, the router MUST attempt to receive it.
NAGŁÓWEK PROTOKOŁU IPV4 Wersja IHL Typ usługi Identyfikacja Czas życia Całkowita długość Flagi Protokół Przesunięcie Suma kontrolna Adres źródła Adres przeznaczenia Opcje Protokół oznacza protokół którego dane przenosi ten pakiet; może to być np. TCP, UDP, ICMP np. ICMP 1, TCP - 6
NAGŁÓWEK PROTOKOŁU IPV4 Wersja IHL Typ usługi Identyfikacja Czas życia Całkowita długość Przesunięcie Flagi Protokół Suma kontrolna Adres źródła Adres przeznaczenia Opcje Suma kontrolna zabezpieczenie danych; dotyczy tylko nagłówka
PROTOKÓŁ ICMP
ICMP Internet Control Message Protocol (ICMP) jest integralną częścią IP używa IP do przenoszenia informacji protokół IP jest zawodny -> ICMP tego nie zmienia Główny cel ICMP: dostarczenie informacji o problemach w sieci
KOMUNIKATY ICMP Nagłówek IP (20 bajtów) Typ (8 bitów) Kod (8 bitów) Suma kontrolna (16 bitów) Pozostała część nagłówka (32 bity) Typ typ komunikatu ICMP Kod podtyp dodatkowa informacja Suma kontrolna do sprawdzenia poprawności Pozostała część zależy od typu wiadomości
POPULARNE KOMUNIKATY ICMP Typ Kod Opis 0 Echo Reply 3 Destination unreachable 0 Odpowiedź na zapytanie Echo Request 0 Destination network unreachable 1 Destination host unreachable 2 Destination protocol unreachable 3 Destination port unreachable 4 Fragmentation required, and DF flag set 8 Echo Request 0 Zapytanie o dostępność 11 Time Exceeded 0 TTL expired in transit 1 Fragment reassembly time exceeded
ZASTOSOWANIE ICMP
PING program komputerowy wykorzystujący protokół ICMP wysyła pakiety ICMP Echo Request odbiera pakiety ICMP Echo Reply
PING - PRZYKŁAD C:> ping www.onet.pl Badanie www.onet.pl [213.180.141.140] z 32 bajtami danych: Odpowiedź z 213.180.141.140: bajtów=32 czas=2ms TTL=57 Odpowiedź z 213.180.141.140: bajtów=32 czas=2ms TTL=57 Odpowiedź z 213.180.141.140: bajtów=32 czas=3ms TTL=57 Odpowiedź z 213.180.141.140: bajtów=32 czas=2ms TTL=57 Statystyka badania ping dla 213.180.141.140: Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0 (0% straty), Szacunkowy czas błądzenia pakietów w millisekundach: Minimum = 2 ms, Maksimum = 3 ms, Czas średni = 2 ms
PING PARAMETRY DODATKOWE Możliwe parametry komendy ping ping man ping W szczególności przydaje się parametr ping t <IP>
TRACEROUTE program komputerowy wykorzystujący protokół ICMP służy do wyznaczenia trasy, którą podróżują pakiety w systemie Windows tracert <IP> w systemie unix/linux traceroute <IP>
TRACEROUTE ZASADA DZIAŁANIA wysyła pakiety do hosta docelowego pierwszy pakiet ma TTL = 1 każdy kolejny pakiet ma zwiększony TTL o 1 wartość TTL jest zmniejszana przy przechodzeniu przez kolejne routery na trasie jeżeli pole TTL osiągnie wartość 0, pakiet jest odrzucany router wysyła wtedy informację zwrotną w postaci komunikatu ICMP typu "Time Exceeded w ten sposób komputer źródłowy uzyskuje adres IP konkretnego routera na trasie.
TRACEROUTE ZASADA DZIAŁANIA #2 Jeżeli pakiet dotrze w końcu do hosta docelowego, to zostanie odesłany jakiś komunikat ICMP Echo reply w Windows Port Unreachable najczęściej w UNIX
TRACEROUTE - PRZYKŁAD C:\> tracert www.onet.pl Śledzenie trasy do www.onet.pl [213.180.141.140] z maksymalną liczbą 30 przeskoków: 1 1 ms <1 ms <1 ms ktrtr.kt.agh.edu.pl [149.156.203.249] 2 1 ms 1 ms 1 ms b6rtr.agh.edu.pl [149.156.119.17] 3 <1 ms <1 ms <1 ms 149.156.6.222 4 1 ms <1 ms 1 ms um-mpk.cyfro.net [195.150.0.102] 5 1 ms 1 ms 1 ms z-cyfronetu.onet.pl [195.150.96.2] 6 4 ms 2 ms 1 ms sdr1.m11r2.z.ruc-br2.net.onet.pl [213.180.151.131] 7 1 ms 1 ms 1 ms sg1.any.onet.pl [213.180.141.140] Śledzenie zakończone.
TRACEROUTE PARAMETRY DODATKOWE Możliwe parametry komendy traceroute tracert man traceroute
PODSUMOWANIE Znaczenie pól nagłówka w protokole IPv4 Proces fragmentacji pakietów IP Zastosowanie protokołu ICMP Typy komunikatów ICMP Aplikacje wykorzystujące protokół ICMP
Dziękuję za uwagę Kontakt: robert.wojcik@kt.agh.edu.pl