When I try to ping a directly connected router with a "size" ot 2000, I see two fragments. The 1st fragment is 1500 bytes and the 2nd fragment is 520 byes. Some "googling" revealed that the IPv4 header is 20 bytes while an ICMP header is 8 bytes and starts after the IPv4 header which makes the total header size = 28 bytes.
Thus the total bytes sent should be = 2000 data + (2 x 28) headers = 2056 but actually the total bytes sent is 2020(2 fragments) which makes me think of the below reasons
1. the "size" option in the ping includes the associated header size AND
the second fragment has only the IPv4 header, ICMP header is not replicated on it as this is not necessary.
Both packets have settings to indicate they are fragments (DF bit is set) and first fragment has the M ( more fragments to follow ) bit set.
Both packets share an identification field and have a specific Fragment Offset field to indicate their position in the original packet.
All the flag bits DF, M and the identification field and fragment offset are enough to allow packet reassembly at final destination so for this reason the ICMP header is not replicated on the second fragment.
Thank you for your reply. I had a clear picture of the flag bits in my mind but was confused about the ICMP header in the two fragments.Thus I did a packet capture which revealed that the ICMP header is only added to the last fragment and not all fragments.
This is actually a pretty cool feature, i didn't even know it existed until I was looking for a solution to advertise a subnet (prefix in BGP talk), only if a certain condition existed. This is exactly what conditional advertisements does
j ai une question j ai achete un routeur cisco 887VA-k9 , je le configuré avec la configuration ci- dessous
si je le lier avec mon pc portable sur l un de ses ports directement ça marche toute est bien ( la connexion internet + m...
Attached policy provides CLI access to the Cisco 4G router over text messaging. Two files are in the attached .tar file:
2. PDF with instructions on how to load and use the .tcl file.