3.1.1.1 Session-Specific Structures

The following structures are required per SMP session. These structures are needed to implement the flow control algorithm and for connection management:

Note The dotted notation of the following list items indicates the structures of a Session object instance. For example, Session.SeqNumForSend refers to the SeqNumForSend variable of the Session object.

  • Session.SeqNumForSend: A 32-bit unsigned integer that monotonically increases for every session DATA packet that is sent.

  • Session.HighWaterForSend: A 32-bit unsigned integer that tracks the peer window that is obtained through the WNDW field in the received packet header.

  • Session.SeqNumForRecv: A 32-bit unsigned integer that tracks the peer session sequence number obtained from the SEQNUM field in the DATA packet header. This number is used for comparison with the received packet.

  • Session.HighWaterForRecv: A 32-bit unsigned integer that tracks the receiver's high-water mark of the receiver buffer window. It is used to set the value of the WNDW field of each sent packet.

  • Session.LastHighWaterForRecv: A 32-bit unsigned integer that tracks the value of the WNDW field of the last sent packet. It is used to implement a selective ACK algorithm and is optional.

  • Session.ReceivePacketQueue: A queue that buffers received packets.