Copyright (C) 1983 by Xerox Corporation. All rights reserved. The following program was created in 1983 but has not been published within the meaning of the copyright law, is furnished under license, and may not be used, copied and/or disclosed except in accordance with the terms of said license.
TCPReceiving.mesa
Last Edited by: Nichols, August 22, 1983 10:14 pm
Last Edited by: Taft, January 4, 1984 11:13 am
John Larson, April 14, 1986 11:20:09 pm PST
DIRECTORY
IPDefs USING [Datagram];
TCPReceiving: CEDAR DEFINITIONS
~ BEGIN
ProcessRcvdSegment: PROC [rcvdDatagram: IPDefs.Datagram];
This procedure does the processing of a datagram received from the network:
It checks the checksum and if it is bad disposes of the packet received.
It checks for a matching TCB and if none is found, it sends a reset and disposes of the packet received.
It checks the sequence number and if it is outside the window,
it sends an ack and disposes of the packet received.
It processes resets; if the packet contains a reset, processing is finished.
It processes acks.
It processes urgents.
It queues the segment on the TCB FromNet queue in sequence number order.
It processes packets on the FromNet Queue until the next expected sequence number is not present:
It processes SYNs.
It processes data and sends it to the user.
It processes FINs.
END.