863 views
2 votes
2 votes
Why icmp packet is generated only for the first fragment of ip datagram but not for all fragments of ipdatagram

1 Answer

2 votes
2 votes

I could find no proof of the reason, however I can come up with a logical answer. 

IP is a best effort delivery protocol that comes with no guarantees of packet delivery. IP in conjunction with ICMP can be somewhat made reliable to certain extent, but only limited to notifying that there was a problem in delivery of certain packet.

But, in the interest of the network bandwidth preservation, and in the interest of making IP generic, it is not advisable to waste the bandwidth of network just to notify the failure of each and every message. (That is why transmission of ICMP is optional, which means the interweaving nodes may drop ICMP packets in their own interest)

So, they (RFC) made a standard that ICMP be sent for fragment zero of the packet, otherwise, since fragments may be sent via different routes, how would the routers know that other router has already indicated the loss of the packet (all fragments belong to some packet) has already been reported.

If there are N routers receiving N fragments of same packet, and say each is dropped, then if each router will un-necessary report the loss of fragments and this would in turn congest the network. This would however provide better (reliable) delivery, but that anways is not the aim of IP.

Related questions

0 votes
0 votes
0 answers
3
eyeamgj asked Dec 4, 2018
687 views
https://gateoverflow.in/3613/gate2006-it-69what i know is that tcp has its error control mechanism so it does not depends on icmp but udp does not have any error control...