#include <FreeRTOS_TCP_WIN.h>
Every TCP connection owns a TCP window for the administration of all packets It owns two sets of segment descriptors, incoming and outgoing
uint32_t TCPWindow_t::bHasInit |
The window structure has been initialised
uint32_t TCPWindow_t::bSendFullSize |
May only send packets with a size equal to MSS (for optimisation)
uint32_t TCPWindow_t::bTimeStamps |
Socket is supposed to use TCP time-stamps. This depends on the
struct { ... } TCPWindow_t::bits |
party which opens the connection
union { ... } TCPWindow_t::u |
Use a union to store the 32-bit flag field and the breakdown at the same place.
TCPWinSize_t TCPWindow_t::xSize |
Size of the TCP window.
uint32_t TCPWindow_t::ulFirstSequenceNumber |
Logging & debug: the first segment received/sent in this connection for Tx: initial send sequence number (ISS) for Rx: initial receive sequence number (IRS)
uint32_t TCPWindow_t::ulCurrentSequenceNumber |
Tx/Rx: the oldest sequence number not yet confirmed, also SND.UNA / RCV.NXT In other words: the sequence number of the left side of the sliding window
uint32_t TCPWindow_t::ulFINSequenceNumber |
The sequence number which carried the FIN flag
uint32_t TCPWindow_t::ulHighestSequenceNumber |
Sequence number of the right-most byte + 1
struct { ... } TCPWindow_t::rx |
Structure for the receiver for TCP.
struct { ... } TCPWindow_t::tx |
Structure for the transmitter for TCP.
uint32_t TCPWindow_t::ulOurSequenceNumber |
The SEQ number we're sending out
uint32_t TCPWindow_t::ulUserDataLength |
Number of bytes in Rx buffer which may be passed to the user, after having received a 'missing packet'
uint32_t TCPWindow_t::ulNextTxSequenceNumber |
The sequence number given to the next byte to be added for transmission
int32_t TCPWindow_t::lSRTT |
Smoothed Round Trip Time, it may increment quickly and it decrements slower
uint8_t TCPWindow_t::ucOptionLength |
Number of valid bytes in ulOptionsData[]
List_t TCPWindow_t::xPriorityQueue |
Priority queue: segments which must be sent immediately
List_t TCPWindow_t::xTxQueue |
Transmit queue: segments queued for transmission
List_t TCPWindow_t::xWaitQueue |
Waiting queue: outstanding segments
TCPSegment_t* TCPWindow_t::pxHeadSegment |
points to a segment which has not been transmitted and it's size is still growing (user data being added)
uint32_t TCPWindow_t::ulOptionsData[ipSIZE_TCP_OPTIONS/sizeof(uint32_t)] |
Contains the options we send out
List_t TCPWindow_t::xTxSegments |
A linked list of all transmission segments, sorted on sequence number
List_t TCPWindow_t::xRxSegments |
A linked list of reception segments, order depends on sequence of arrival
uint16_t TCPWindow_t::usOurPortNumber |
Mostly for debugging/logging: our TCP port number
uint16_t TCPWindow_t::usPeerPortNumber |
debugging/logging: the peer's TCP port number
uint16_t TCPWindow_t::usMSS |
Current accepted MSS
uint16_t TCPWindow_t::usMSSInit |
MSS as configured by the socket owner