Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site wdl1.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!qantel!hplabs!hpda!fortune!wdl1!jbn From: jbn@wdl1.UUCP Newsgroups: net.bugs.4bsd Subject: Re: Problems with 4.2 BSD TCP and half-o Message-ID: <500@wdl1.UUCP> Date: Tue, 16-Jul-85 01:22:28 EDT Article-I.D.: wdl1.500 Posted: Tue Jul 16 01:22:28 1985 Date-Received: Thu, 18-Jul-85 06:45:41 EDT Sender: notes@wdl1.UUCP Organization: Ford Aerospace, Western Development Laboratories Lines: 16 Nf-ID: #R:uthub:-21900:wdl1:64100001:000:819 Nf-From: wdl1!jbn Jul 15 21:22:00 1985 This looks sound by my copy of MIL-STD-1778. The TCP concept here is that when A is in a synchronized state and gets a segment outside the window, it sends a current ACK (i.e. a duplicate of A's last ACK). See table XII, row 1, noting that in some copies of MIL-STD-1778 tables XII and XIV were switched; the proper XII is the longer one. This provides B with current sequence information. So, if B is in SYN SENT state, and gets an ACK that is not the one expected, because it's talking to a half-dead connection at A, it sends an RST, per table VIII, row 8. Receipt of this RST by A will kill the connection at A. B will then retransmit its SYN, which will now establish a new connection. This is the famous ``three way handshake'' in action. John Nagle Ford Aerospace and Communications Corp.