Communication Specification
Receive TEP Operations
A receive TEP shall not send DATA or CONTROL packets. It may only send ACK packets.
Sliding Window
The receive TEP shall maintain a sliding window, which is a range of consecutive sequence numbers that is used to determine whether each received DATA packet will be accepted or discarded. The size of the sliding window shall be as agreed between the transmit and receive TEPs.
Sliding Window Size
The sliding window size must be a power of 2 and the maximum sliding window size shall be 256.
Sliding Window Range
The receive window range shall start with the sequence number of the next DATA packet expected to be delivered and end with sequence number equal to the start plus Window Size minus 1.
Window Advance
The receive window shall be advanced by 1 upon receipt of a packet containing the next expected sequence number.
Note: If packets with successively adjacent sequence numbers have already been received out of order, the start of the receive window will be advanced by more than 1, plus the number of successively adjacent “early” packets.
Packet Acknowledgement
All DATA and CONTROL packets received without error shall be acknowledged except as indicated in section 6.5.7 below.
Packets with Errors
Any packet received with detectable errors shall be discarded and not acknowledged.
Out of Window Sequence Number
A DATA packet that is received with a sequence number that is not within the receive window shall be acknowledged, but discarded.
Duplicate Sequence Number
A DATA packet received with a sequence number within the receive window that is a duplicate of a packet pending delivery to the host shall be acknowledged, but discarded.
URGENT Acknowledgement (If Implemented)
URGENT packets shall not be acknowledged.
URGENT Delivery Order (If Implemented)
URGENT packets shall be delivered to the host in the order received.
URGENT Delivery Priority (If Implemented)
URGENT packets shall be delivered to the host before any DATA packets pending delivery.
CONTROL Packet Sequence Number
A CONTROL packet that does not have a sequence number of zero shall be treated as an error packet and discarded.
OPEN/RESET Command Processing
When an OPEN/RESET packet is received, the receive window start shall be set to 1.
CLOSE Command Processing
When a CLOSE packet is received the packet shall be acknowledged and the TEP shall transition to the CLOSING state. After expiration of a program specified timer, the TEP shall transition to the CLOSED state.
Packets Pending Delivery
When a CONTROL packet is received all packets pending delivery to the host shall be discarded. Buffer fragmentation and reassembly operations, if active, shall be reset.
OPEN/RESET Command Report
Receipt of an OPEN/RESET packet after a channel is opened indicates an error on the channel and shall be reported to the next higher level, i.e. communications layer or application. The error report shall include the channel number that was reset.
CLOSE Command Report
Receipt of a CLOSE packet after a channel is opened shall be reported to the next higher level, i.e. communications layer or application. The report shall include the channel number that was closed.
Internal_Standard
"Internal Standards developed by Sandia National Laboratories". Experience Base, Sandia National Laboratories, Albuquerque, NM, 0000.