Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!uwm.edu!rpi!dali.cs.montana.edu!milton!Tomobiki-Cho!mrc From: mrc@Tomobiki-Cho.CAC.Washington.EDU (Mark Crispin) Newsgroups: comp.dcom.sys.cisco Subject: Re: Access restrictions give host unreachable... Message-ID: <5684@milton.u.washington.edu> Date: 29 Jul 90 02:43:15 GMT References: <1990Jul28.234310.27064@mel.dit.csiro.au> Sender: news@milton.u.washington.edu Organization: Mendou Zaibatsu, Tomobiki-Cho, Butsumetsu-Shi Lines: 34 In article <1990Jul28.234310.27064@mel.dit.csiro.au> smart@manta.mel.dit.csiro.au (Robert Smart) writes: >and my login to the remote machine got blown away! Obviously the returning >"host unreachable" caused telnet (or maybe it was rlogin) to drop the >connection. This is a bug in your system's Unix kernel. It afflicts many BSD-based Unix systems. At some time in the writing of BSD TCP, someone got the idea that ICMP Unreachables were so important that it should cause all pending read() or write() system calls on a TCP socket for that host to fail. The claim is that the user program should check the error code, realize it is not fatal, give a message to the user, and continue. The fact that no Unix user programs actually do this escaped this person, as did the real-world situation where ICMP Unreachables happen for transient conditions. I'll leave aside the issue of whether issuing a warning message (Milnet TAC's do this) is really a good idea in this day and age of file transfers and display editors. The fix is to make ICMP Unreachables only nuke open() calls, and let TCP (or the user's own impatience) deal with lost connections on a read() or write(). Nag your vendor to do this; I managed to get NeXT to do so and it was a big improvement! There are a couple of patches floating around on the network that disable ICMP Unreachable processing entirely. _____ | ____ ___|___ /__ Mark Crispin, 206 842-2385, R90/6 pilot, DoD#0105 _|_|_ -|- || __|__ / / 6158 Lariat Loop NE "Gaijin! Gaijin!" |_|_|_| |\-++- |===| / / Bainbridge Island, WA "Gaijin ha doko ka?" --|-- /| |||| |___| /\ USA 98110-2098 "Niichan ha gaijin." /|\ | |/\| _______ / \ "Chigau. Gaijin ja nai. Omae ha gaijin darou" / | \ | |__| / \ / \"Iie, boku ha nihonjin." "Souka. Yappari gaijin!" Hee, dakedo UNIX nanka wo tsukatte, umaku ikanaku temo shiranai yo.