Ping wychodzi w swiat, NAT zmienia moj prywatny IP na IP zewnetrzny routera i puszcza to w kabel... TTL za niski, dostajemy zwrotke z odpowiednim komunikatem...
Pakiet ICMP response zawierajacy informacje 'TTL exceeded' zostal wygenerowany przez innego hosta niz maszyna docelowa - zawiera jako adres nadawcy adres routera ktory nie przekazal juz dalej pakietu (za niski TTL) a nie adres maszyny do ktorej wyslano pinga - co widac na zalaczonym obrazku.
Warstwa 2 w ogole nas nie interesuje bo nie ma znaczenia tutaj. Caly czas jestesmy na warstwie 3 czyli IP.
Mamy wiec wracajacy pakiet co ma w sobie IP->ICMP->komunikat_bledu[TTL exceeded] + dane_echo_request'a[naglowek_IP + pola_ICMP]
Dlaczego tak zapisalem? Bo IP zawiera ICMP a to dalej zawiera naglowek IP z oryginalnego echo request'a ktory ja wyslalem a ktory nie dotarl do celu oraz dane z naglowka ICMP z oryginalnego echo request'a.
Mowiac to najprosciej jak sie da - jak wraca 'TTL exceeded' to dostajesz zupelnie nowy pakiet ICMP response ktory jest ma swoj poprawny adres zrodlowy oraz kod odpowiedzi a w polu gdzie normalnie sa dane ma podstawowe dane pakietu echo request na ktory odpowiada... i dlatego masz tam naglowek IP i pola ICMP z echo requesta.
Nie wiem czy jest to jasne ale jasniej chyba nie potrafie.