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.