North American Network Operators Group

Date Prev | Date Next | Date Index | Thread Index | Author Index | Historical

Re: other network problems with hosts at internic.net (was:was i asleep when the gtld servers had the worse problem today? )

  • From: Marc Slemko
  • Date: Fri Nov 13 15:51:18 1998

On Fri, 13 Nov 1998, Greg A. Woods wrote:

> Just to add a little fuel to the fire:
> 
> I've been experiencing TCP related connection failures from most/all
> hosts at internic.net, with at least whois and http (though not SMTP).
> 
> For example when I attempt to do a whois I'll normally only get back the
> first two lines of output (i.e. "\nRegistrant:\n").  Then the connection
> hangs and times out.  From my point of view it seems that the connection

This same thing is happening to me, but in my case it is a bug in the
InterNIC's whois server that must have just been introduced recently.

AFAIK, the whois protocol is supposed to consist of a request terminated
by a '\n'.  However, the InterNIC's server is sending a response as soon
as it gets the first packet, even if there is no \n termination.

There is at least one common whois replacement client that sends the \n in
a separate packet.  What happens is the first packet with the request but
without the \n arrives at the InterNIC, then they send a response and
close the socket.  In the meantime, the second packet from the client with
the \n in arrives after the socket is closed for reading, prompting a RST
from the server.  Even though the full response is either in socket
buffers at the InterNIC or on the wire or even in socket buffers on the
client, once the RST arrives that response will be (correctly) thrown away
if it hasn't been actually read() by the client.

The reason you see part of it is that the whois server is sending separate
packets for the "\nRegistrant:\n" part and the rest of the response.

The fix is for the InterNIC to fix their whois server to conform to the
"protocol" and/or do a lingering close so it doesn't send a RST.  Simply
waiting for the end of the line should be enough and should be correct,
although if they really want to do a lingering close then see the
lingering_close() function in Apache for an example.

Note that I'm not sending this to the InterNIC, because I don't have time
to wade through and try to find a contact address that isn't ignored and
which is appropriate.  I would hope someone from the InterNIC is reading
this list and will fix it.