[ntp:questions] Re: server's address in ntp payload?

David Schwartz davids at webmaster.com
Wed Nov 23 22:35:51 UTC 2005

"Brian Utterback" <brian.utterback at sun.removeme.com> wrote in message 
news:4384D261.4080107 at sun.removeme.com...

> David Schwartz wrote:

>> "Brian Utterback" <brian.utterback at sun.removeme.com> wrote in message 
>> news:4384C69A.7090003 at sun.removeme.com...
>>> David Schwartz wrote:

>>     I am saying the default presumption is that it must be that way but 
>> that particular protocols can override it. That's effectively what SHOULD 
>> means in a general description -- done that way unless the specifics of 
>> some particular case justify doing otherwise.

> Oh? Do you know of any OS that does this?

    Sure, I do. All of Linux's kernel request/response UDP protocols work 
this way, including NFS-over-UDP.

> Given a multi-homed system, the OS will respond with the same IP address 
> in the source address that
> was used as the destination address in the request, without application
> support when using UDP, no matter which of the possibly many destination
> addresses were used? I know Solaris doesn't, and truthfully, I don't
> see how it could possibly be done.

    If the OS implements a UDP request/response protocol, it should ensure 
the source address of the reply is the destination address of the request 
unless the protocol specifies otherwise. Most OS implementations of UDP 
request/reply protocols *DO* do this.

    You are asking about both OSes and applications in a confusing way that 
seems to be based on the misunderstanding that I'm saying the kernel should 
somehow make an application do the right thing. I'm saying whatever 
implements the request/response protocol over UDP should do the right thing, 
which in most cases is the application, not the kernel.

> The application can do it, if it can determine the destination address.

    Which it can, unless the OS is broken. Do we agree that an OS that makes 
it difficult or impossible for an application to determine the destination 
address of a received UDP datagram is broken?

> As I pointed out, only Bootps, SNMP and NTP are doing this, at least on
> Solaris.

    What do you think the OS has to do with what the applications that 
provide these services do?

> Linux, Solaris and other OS's now have a way to get the
> destination address via the socket, but that is a very new feature, and
> not generally used. Of course, now that it is available, more might use
> it, and it would have been unreasonable had the UDP standard demanded it, 
> but it did not, and as such UDP protocols have traditionally included 
> methods to work around it.

    I'm not sure I understand what you think the point of this is. Is it 
that bad design in the past somehow justifies bad design now? The source and 
destination IP addresses are not internal protocol details -- they're always 
already visible at the application level.


More information about the questions mailing list