Protokół ICMP


 
  Strona główna
  Inf. podstawowe
  Budowa pakietu
  Szczegóły działania
    ICMPv4
    ICMPv6
  Typy komunikatów  
    ICMPv4
    ICMPv6
  Opcje ICMPv6
  Przykłady działania
    Polecenie ping
    Polecenie traceroute
    Redirect
  Kod źródłowy
 

Przekroczenie czasu - Time Exceeded (ICMPv4)

Typ komunikatu: 11

Kody:

  • 0 - upłynął czas na przesłanie datagramu do hosta docelowego (time to live exceeded in transit)
  • 1 - upłynął czas na skompletowanie datagramu na hoscie docelowym (fragment reassembly time exceeded)

Format wiadomości:

  • nieużywane - 32 bity
  • nagłówek IP oraz pierwsze 8 bajtów datagramu

Komunikat ten jest wysyłany podczas gdy upływa czas dostarczenia datagramu. Są dwa przypadki jego wysyłania. Wiadomość o kodzie 0 może zostać wysłana tylko przez router natomiast o kodzie 1 tylko przez urządzenie docelowe.
Podczas przesyłania każdego pakietu przez router, pole TTL (Time To Live) w nagłówku IP zostaje zmniejszone conajmniej o 1. Gdy pole osiągnie wartość 0 router musi porzucić pakiet oraz wysyła komunikat Time Exceeded o kodzie 0 do hosta, z którego pochodził pakiet. Odebranie takiej wiadomości przez urządzenie oznacza, że pakiet trafił na pętlę podczas routingu lub posiadał zbyt małą wartość TTL aby dotrzeć do adresata.
Datagramy podczas przesyłania przez sieć dzielone są na małe pakiety. Urządzenia podczas odbierania pakietów muszą je połączyć aby uzyskać całą wiadomość. Konieczne jest ustalenie maksymalnego czasu w jakim wszystkie porcje powinny dotrzeć do adresata aby nie zapchać pamięci niekompletnymi wiadomościami. Gdy w dowolnym urządzeniu dla któregoś datagramu czas ten upłynie, musi on usunąć wszystkie pakiety z pamięci i poinformować o tym host, z którego były wysyłane. Do tego celu służy komunikat Time Exceeded o kodzie 1. Wysłanie tej wiadomości może się jednak odbyć tylko wtedy gdy dostarczony został pierwszy pakiet odbieranego datagramu.
Przykład działania tego komunikatu opisany jest tutaj.


Autorzy: Dariusz Obidowski
Marek Wardziński

22.01.2003r.