Re: Question about ICMP behaviour with UDP

braden@isi.edu Mon, 08 May 1995 16:10 UTC

Received: from ietf.nri.reston.va.us by IETF.CNRI.Reston.VA.US id aa05882; 8 May 95 12:10 EDT
Received: from CNRI.Reston.VA.US by IETF.CNRI.Reston.VA.US id aa05876; 8 May 95 12:10 EDT
Received: from venera.isi.edu by CNRI.Reston.VA.US id aa09632; 8 May 95 12:09 EDT
Received: from can.isi.edu by venera.isi.edu (5.65c/5.61+local-21) id <AA00371>; Mon, 8 May 1995 08:55:34 -0700
Date: Mon, 08 May 1995 08:56:41 -0700
Sender: ietf-archive-request@IETF.CNRI.Reston.VA.US
From: braden@isi.edu
Posted-Date: Mon, 8 May 1995 08:56:41 -0700
Message-Id: <199505081556.AA15204@can.isi.edu>
Received: by can.isi.edu (5.65c/4.0.3-4) id <AA15204>; Mon, 8 May 1995 08:56:41 -0700
To: braden@isi.edu, mycroft@ai.mit.edu
Subject: Re: Question about ICMP behaviour with UDP
Cc: ietf-hosts@isi.edu

  *> From mycroft@gnu.ai.mit.edu Sat May  6 01:25:01 1995
  *> Date: Sat, 6 May 1995 04:24:56 -0400
  *> From: "Charles M. Hannum" <mycroft@ai.mit.edu>
  *> To: braden@ISI.EDU
  *> Subject: Question about ICMP behaviour with UDP
  *> Content-Length: 727
  *> X-Lines: 20
  *> 
  *> 
  *> Someone has claimed that the BSD algorithm of only reporting
  *> ICMP-induced errors to UDP sockets when they are bound violates RFC
  *> 1122 section 4.1.3.3.
  *> 
  *> It is my impression that the wording:
  *> 
  *> 							    A UDP-based
  *>                  application that wants to receive ICMP error messages
  *>                  is responsible for maintaining the state necessary to
  *>                  demultiplex these messages when they arrive; for
  *>                  example, the application may keep a pending receive
  *>                  operation for this purpose.
  *> 
  *> specifically allows the BSD implementation, by recognizing that the
  *> application may need to take some explicit action in order to receive
  *> the errors.
  *> 
  *> What is your interpretation of this?
  *> 
  *> 

Charles,

I don't recall the details of the BSD mechanism, and perhaps there is
some way in which it is not optimal.  Nevertheless, as the words you
quote from RFC-1122 seem to say pretty well ( :-) ), some such mechanism
is necessary.  How could the kernel know what application to deliver an
ICMP message to, if the application has not in some way registered it
network identity??  In BSD, that mechanism would seem to be bind().

So, I would say the words allow the BSD implementation, modulo some
possible unnecessary dumbness.

Bob Braden