Transmission Control Protocol (TCP) Data Flow Lesson 14 Transmission Control Protocol (TCP) Data Flow
Transmission Control Protocol (TCP) Data Flow Basic TCP data flow behavior TCP acknowledgments TCP send window TCP receive window Small segments Sender-side flow control
Basic TCP Data Flow Behavior Acknowledgments Sliding send and receive windows Avoidance of small segments Sender-side flow control
TCP Acknowledgments Delayed acknowledgments Cumulative for contiguous data Selective for noncontiguous data
TCP Cumulative Acknowledgments Implied acknowledgment of all bytes from ISN+1 to Acknowledgment Number-1 . . . Byte stream ISN+1 Acknowledgment Number
TCP Selective Acknowledgments Selective acknowledgment of non-contiguous blocks of received data Implied acknowledgment of all bytes from ISN+1 to Acknowledgment Number-1 SACK block 1 SACK block 2 ISN+1 Acknowledgment Number
TCP Send Window Window Sent/ACKed Sent/UnACKed Unsent/Inside Unsent/Outside ISN+1 Ack-1 SND.NXT Ack+Window Ack SND.NXT -1 Ack+Window-1
Sliding the Send Window Opening the window Closing the window Sent/ACKed Sent/unACKed Unsent/Inside Unsent/Outside Window
TCP Receive Window Maximum Receive Window Current receive window ISN+1 Rcvd/ACKed/Retr Rcvd/ACKed/NotRetr Rcvd/UnACKed NotRcvd/Inside NotRcvd/Outside ISN+1 RCV.USER Ack-1 RCV.NEXT Ack+Window RCV.USER -1 Ack RCV.NXT-1 Ack+Window-1
Sliding the Receive Window Maximum Receive Window Shrinking the window Closing the window Opening the window Current receive window Rcvd/ACKed/Retr Rcvd/ACKed/NotRetr Rcvd/unACKed NotRcv/Inside NotRecv/Outside
Small Segments A TCP segment that is smaller than the MSS The Nagle algorithm Small segments are inefficient TCP can send only a single unacknowledged small segment Silly window syndrome A steady pattern of small segments when applications retrieve a single byte at a time
Receiver-Side SWS Avoidance Maximum receive window Current receive window Maximum receive window Current receive window n bytes n bytes
Sender-Side Flow Control Sender can overwhelm network using initial advertised receive window Slow start algorithm Increases the actual send window for each ACK segment received that acknowledges new data Congestion avoidance algorithm Increases the actual send window for each round-trip time
Review Basic TCP data flow behavior TCP acknowledgments TCP send window TCP receive window Small segments Sender-side flow control