Home |
Sockets, IP, and Port Addresses Blocking and Non-Blocking Sockets TCP Windows |
TCP WindowsThe data sent and received is stored in input and output windows which are connected to a socket. Received data is kept in the input window until one of the receive API routines is called by the application to retrieve the data. Data to send is kept in the output window until the remote host acknowledges receipt of the data. When RTIP-32 receives a data packet, it sends a packet to the remote host with an updated window size unless the silly window syndrome algorithm prevents sending the update (see section TCP Silly Window Syndrome). This is done to inform the remote host there is more room in its input window thus allowing the remote host to send more data. RTIP-32 tracks the remote host's input window size to ensure never sending more data than the remote host can save in its input window. RTIP-32's windows consist of a linked list of DCUs (the internal data structure which stores packets). In summary, the output window contains unacknowledged data, some of which has been sent and the rest has not. The data is continually being added to the end and taken off the front; therefore, the window is referred to as a sliding window.
|