Chapter Contents11.1 Introduction11.2 The Need For Reliable Service11.3 Properties Of The Reliable Delivery Service11.4 Reliability: Acknowledgements And Retransmission11.5 The Sliding Window Paradigm11.6 The Transmission Control Protocol11.7 Layering, Ports, Connections, And Endpoints11.8 Passive And Active Opens11.9 Segments, Streams, And Sequence Numbers11.10 Variable Window Size And Flow Control11.11 TCP Segment Format11.12 Out Of Band Data11.13 TCP Options11.13.1 Maximum Segment Size Option
11.13.2 Window Scaling Option11.13.3 Timestamp Option11.14 TCP Checksum Computation11.15 Acknowledgements, Retransmission, And Timeouts11.16 Accurate Measurement Of Round Trip Samples11.17 Karn's Algorithm And Timer Backoff11.18 Responding To High Variance In Delay11.19 Response To Congestion11.20 Fast Recovery And Other Response Modifications11.21 Explicit Feedback Mechanisms (SACK and ECN)11.21.1 Selective Acknowledgement (SACK)11.21.2 Explicit Congestion Notification11.22 Congestion, Tail Drop, And TCP11.23 Random Early Detection (RED)11.24 Establishing A TCP Connection11.25 Initial Sequence Numbers11.26 Closing a TCP Connection11.27 TCP Connection Reset11.28 TCP State Machine11.29 Forcing Data Delivery11.30 Reserved TCP Port Numbers11.31 Silly Window Syndrome And Small Packets11.32 Avoiding Silly Window Syndrome11.32.1 Receive-Side Silly Window Avoidance11.32.2 Delayed Acknowledgements11.32.3 Send-Side Silly Window Avoidance11.33 Buffer Bloat And Its Effect On Latency11.34 SummaryExercises