TCP Selective ACK options Patrick Hamilton Aaron Sproul 1 Introduction Context TCP is in Layer 4, the Transport Layer, of the OSI model. TCP is responsible for: Flow control Congestion control Reliability Sequenced delivery TCP Selective Acknowledgement (SACK) builds on TCP Reno by adding SACK options to the TCP header options. 2 Introduction Problem solved overview Multiple dropped packets has a catastrophic effect on TCP throughput in a cumulative ACK environment. Solution overview TCP SACK reduces congestion/overhead due to multiple dropped packets. Results overview The benefits of TCP SACK are most noticeable in a lossy high delay internet path. 3 Background and Motivation Background Builds on existing TCP Reno. Motivation To reduce retransmission congestion and overhead in the network. Substantiating arguments/results In a low loss environment TCP SACK creates overhead. Processing strain is put on the receiver rather than the sender. 4 The Problem Statement Problem description TCP Reno has a cumulative ACK, which means that a sender can only learn about a single lost packet per RTT. Large overhead due to multiple packet losses. Packet loss due to delay from media, faulty media, or from a high throughput to a low throughput network. 5 Data Sender Behavior Algorithm When a SACK option is received, the sender should record for future reference. Does SACK implement any additional congestion control over standard TCP? NO! Details One implementation is to use a flag bit “SACKed”. 6 Data Receiver Behavior Algorithm A SACK-Permitted option is negotiated with the 3-way handshake. Every ACK which isn’t the highest sequence number in the receiver’s queue receives SACK options. The receiver transmits the most recent segments in its buffer queue in the first SACK block. The TCP option space can hold at most 4 SACK blocks. Does the order that segments are reported in the SACK block matter? NO! Maximum available option space is not always large enough to report all blocks in the receivers queue. 7 Data Receiver Behavior Theory If the highest sequence number is reported to the sender, the sender knows the most recent changes to the receiver's buffer queue. Will reduce overhead and congestion on the network over a standard TCP implementation. 8 Examples of TCP SACK Assume the left window edge is 5000 and that the data transmitter sends a burst of 8 segments, each containing 500 data bytes. The first 4 segments are received but the last 4 are dropped. What type of ACK and ACK sequence number will the receiver return? A. The data receiver will return a normal TCP ACK segment acknowledging sequence number 7000, with no SACK option. 9 Examples of TCP SACK Assume the left window edge is 5000 and that the data transmitter sends a burst of 8 segments, each containing 500 data bytes. The first segment is dropped but the remaining 7 are received. ACK Left Edge Right Edge *lost* 5000 5500 6000 5000 5500 6500 5000 5500 7000 5000 5500 7500 5000 5500 8000 5000 5500 8500 5000 5500 9000 10 Performance Evaluation Model Simulations/experiments/analysis Recent simulation studies demonstrate the strength of TCP with SACK over the non-SACK Tahoe and Reno TCP implementations. Efficiency and Worst Case Behavior Worst case exists when only one or consecutive packets are lost and TCP SACK increases the overhead. If the return path carrying ACKs and SACK options were lossless, one block per SACK option packet would always be sufficient. 11 Related Work What applications can SACK be used in? Modification of TCP for a wireless or satellite environment. Why can SACK be used in that environment? Packet loss is not necessarily an indication of congestion. 12 Critique Limitations of solutions Hard to implement, because all end users must support the same options as the receiver. Dependence on the receiver. 13 Summary and Conclusions TCP SACK is best utilized in a multi-packet loss environment. TCP SACK helps to relieve congestion in networks with multiple packet loss, by resending only lost packets and not every packet after the first loss. 14
© Copyright 2026 Paperzz