Re: Questions on MIL-STD-1778 (TCP).

Jonathan P. Biggar (jonab@CAM.UNISYS.COM)
Wed, 27 Jan 88 09:04:04 PST

> I found that the decision table is switched with the "net deliver"
>table in the close wait state. Assuming I am using the right table now,
>what should happen when; seq num status is valid, rst is on, sec prec
>match is yes, syn in window is no, and ack status test2 is none? Does
>this mean only data is being delivered? If so, why does the standard
>say "no action"? Or, does this mean the only way data gets accepted is
>if the segment contains an "ack"?

You are right about the tables being switched.

For your second question, I am assuming that you really mean rst is off.
(If you do mean rst is on, then the last line of the table should be
used and the connection should be reset and closed.) In this case
what is happening is that the connection is probably receiving an old
duplicate SYN packet from the other end. The only packets that do not
have ACK set are an SYN packet generated from an active open request, or
a RST packet in reponse to a SYN-ACK packet received on a closed connection.
Since RST is not on, the only valid packet that can be received here is
a duplicate SYN. Note that even though this packet may contains a SYN, the
SYN is not in the window because the 'sv.rcv_next' variable was already
incremented past the SYN sequence number by the action procedure record_syn.
The proper response to a packet containing a duplicate SYN is just to ignore

By the way, I have just completed a CRAD contract from DCA to develop
MIL-STD implementations of TCP and IP in Ada. The code has been tested
for conformance to MIL_STD 1777 and 1778. I believe that the code
is available for free from DCA. If you are interested in it, let me know
and I will find out how you can acquire it.

Jon Biggar

Distributed Architectures Branch
Unisys Defense Systems
Camarillo, CA

This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:40:41 GMT