Subject: Sluggish response to ICMP Host Unreachables - new in 4.4BSD?

From: Greg Earle <[email-masked]>

If I try to reach a host/port that a gateway is filtering (via sending back
ICMP Host Unreachable errors), it takes a long time for NetBSD (at least, on a
NetBSD/SPARC 1.0beta, recent snapshot system) to give up the ghost.

A SunOS 4.1.3 machine gives up right away:

SunOS4:2:181 % date ; echo quit | telnet molnir.brunel.ac.uk. 25 ; date
Fri Sep 16 21:34:18 PDT 1994
Trying 134.83.128.7 ...
telnet: connect: Host is unreachable
telnet>
Fri Sep 16 21:34:18 PDT 1994

21:34:19.26262 sunos4.jpl.nasa.gov -> molnir.brunel.ac.uk SMTP C port=3387 
21:34:19.52642 smds-gw.brunel.ja.net -> sunos4.jpl.nasa.gov ICMP
Destination unreachable (Bad host)

NetBSD seems to demand that it see at least 3 ICMPs come back:

netbsd# date ; telnet molnir.brunel.ac.uk 25 ; date
Fri Sep 16 21:42:45 PDT 1994
Trying 134.83.128.7...
telnet: Unable to connect to remote host: No route to host
Fri Sep 16 21:43:20 PDT 1994

21:42:46.78905 netbsd.jpl.nasa.gov -> molnir.brunel.ac.uk SMTP C port=1058 
21:42:47.14763 smds-gw.brunel.ja.net -> netbsd.jpl.nasa.gov ICMP Destination
unreachable (Bad host)
21:42:52.75032 netbsd.jpl.nasa.gov -> molnir.brunel.ac.uk SMTP C port=1058 
21:42:53.00350 smds-gw.brunel.ja.net -> netbsd.jpl.nasa.gov ICMP Destination
unreachable (Bad host)
21:43:16.75182 netbsd.jpl.nasa.gov -> molnir.brunel.ac.uk SMTP C port=1058 
21:43:17.12144 smds-gw.brunel.ja.net -> netbsd.jpl.nasa.gov ICMP Destination
unreachable (Bad host)

Is this due to some recent 4.4BSD-ism in the TCP (or Telnet) code?  Seems like
a minute and a quarter is a bit long to wait for a connection which is
(seemingly) obviously going to fail ... ?

I don't have access any other 4.4BSD-based hosts to check this out against ...

On the other hand, could be worse; let's have a laugh at Solaris 2.3's expense
shall we?

ss1000:1:37 [/tmp] % uname -a
SunOS ss1000 5.3 Generic_101318-45 sun4d sparc

ss1000:1:34 [/tmp] % date ; telnet molnir.brunel.ac.uk. 25
Fri Sep 16 21:48:26 PDT 1994
Trying 134.83.128.7 ...
telnet: connect: No route to host
telnet> ss1000:1:35 [/tmp] % date
Fri Sep 16 21:53:08 PDT 1994

21:48:26.48104 ss1000.jpl.nasa.gov -> molnir.brunel.ac.uk SMTP C port=34855 
21:48:26.69720 smds-gw.brunel.ja.net -> ss1000.jpl.nasa.gov ICMP Destination
unreachable (Bad host)
21:48:28.16200 ss1000.jpl.nasa.gov -> molnir.brunel.ac.uk SMTP C port=34855 
21:48:28.36542 smds-gw.brunel.ja.net -> ss1000.jpl.nasa.gov ICMP Destination
unreachable (Bad host)
... [6 more sets of Host Unreachables] ...
21:52:5.32172 ss1000.jpl.nasa.gov -> molnir.brunel.ac.uk SMTP C port=34855 
21:52:5.58301 smds-gw.brunel.ja.net -> ss1000.jpl.nasa.gov ICMP Destination
unreachable (Bad host)

Yes folks, 9 sets of ICMPs and 4 minutes 42 seconds before giving up the ghost!

Oh, and can't do the "date ; echo quit | telnet ... ; date" test, either:

ss1000:1:36 [/tmp] % echo quit | telnet
ioctl I_PUSH ttcompat: No such device or address
ss1000:1:37 [/tmp] % 

STREAMS ... gotta love 'em, eh?  :-)

	- Greg