[comp.protocols.tcp-ip] ICMP Time Exceeded sent on non-initial fragments?

ciarfella@shug.enet.dec.com (Paul Ciarfella) (12/01/90)

	RFC 1122 says that ICMP messages must not be generated as a
	result of receiving non-initial fragments of a datagram.

	But, what happens if reassembly of a datagram times out 
	and the initial fragment was never received.  Does this
	mean that I cannot send an ICMP Time Exceeded given that
	I don't have the initial fragment?

	Thanks,

	Paul C

  ---------------------------------------------------------------------------
    Paul Ciarfella        Digital Equipment Corporation      Littleton, MA
  ---------------------------------------------------------------------------
  Disclaimer : My opinions are my own.   |  When in doubt, mumble.
  Address    : ciarfella@shug.dec.com
  ---------------------------------------------------------------------------

barmar@think.com (Barry Margolin) (12/01/90)

In article <17727@shlump.nac.dec.com> ciarfella@shug.enet.dec.com (Paul Ciarfella) writes:
>	RFC 1122 says that ICMP messages must not be generated as a
>	result of receiving non-initial fragments of a datagram.
>	But, what happens if reassembly of a datagram times out 
>	and the initial fragment was never received.  Does this
>	mean that I cannot send an ICMP Time Exceeded given that
>	I don't have the initial fragment?

Correct.  ICMP error messages are supposed to contain the first N data
octets from the IP datagram that caused the error.  This allows the
recipient of the ICMP error to determine which higher-level protocols got
the error, and report the error back to the appropriate entities.  If you
haven't received the first fragment then you can't have the first N data
octets, so you won't be able to construct a useful error datagram.

If you don't receive the initial fragment then the sender will simply
behave as if no fragments made it to you, presumably timing out and perhaps
retransmitting.
--
Barry Margolin, Thinking Machines Corp.

barmar@think.com
{uunet,harvard}!think!barmar