>Can someone verify my belief that if an active TCP/IP connection should
>receive an ICMP Host Unreachable, the connection will be dropped?
>
>Or is this hidden from the application layer and ignored?
From "TCP/IP Illustrated, Volume 1, The Protocols", by W. Richard Stevens,
Addison-Wesley, 1994:
"The ICMP 'Host Unreachable' error message is sent by a router when it
receives an IP datagram that it cannot deliver or forward."
For TCP, "a received host unreachable or network unreachable is effectively
ignored, since these two errors are considered transient. It could be that
an intermediate router has gone down and it can take the routing protocols a
few minutes to stabilize on an alternative route. During this period either
of these two ICMP errors can occur, but they must not abort the connection.
Instead, TCP keeps trying to send the data that caused the error, although
it may eventually time out."
Later if the connection does timeout, then the error message will be changed
to reflect the presence of these ICMP errors.
Good question - logic suggested the solution above, but I've seen little on
the mechanisms used. Also don't confuse the program Ping with viewing TCP
protocols - it is pure ICMP! The problem is more pronounced though if the
failure occurs at *your* primary gateway!
Coincidently, I had the very same problem yesterday setting up an NT
Advanced Server to act as a router between LAN and WAN (PPP). And
surprisingly (:^), Microsoft included incorrect instructions in their help
file, omitting a parameter to be manually added with RegEdit32.
Cheers.
----
Jim "seMPEr" Wowchuk
Vanguard Computer Services Internet: [log in to unmask]
_--_|\ Compu$erve: 100036,106
/ \ Post: PO Box 18, North Ryde, NSW 2113
\.--.__/ <---Sydney NSW Phone: +61 (2) 888-9688
v Australia Fax: +61 (2) 888-3056
|