Connected: An Internet Encyclopedia
RFC 1072 - 3.4 SACK Option Examples

Top: Connected: An Internet Encyclopedia
Up: Requests For Comments
Up: RFC 1072
Up: 3. TCP SELECTIVE ACKNOWLEDGMENT OPTIONS
Prev: 3.3 SACK with Window Scaling
Next: 3.5 Generating the SACK Option

### 3.4 SACK Option Examples

Assume the left window edge is 5000 and that the data transmitter sends a burst of 8 segments, each containing 500 data bytes. Unless specified otherwise, we assume that the scale factor S = 1.

Case 1: The first 4 segments are received but the last 4 are dropped.

  The data receiver will return a normal TCP ACK segment acknowledging sequence number 7000, with no SACK option.

Case 2: The first segment is dropped but the remaining 7 are received.

  The data receiver will return a TCP ACK segment that acknowledges sequence number 5000 and contains a SACK option specifying one block of queued data:

                         Relative Origin = 500;  Block Size = 3500

Case 3: The 2nd, 4th, 6th, and 8th (last) segments are dropped.

  The data receiver will return a TCP ACK segment that acknowledges sequence number 5500 and contains a SACK option specifying the 3 blocks:

                         Relative Origin =  500;  Block Size = 500
                         Relative Origin = 1500;  Block Size = 500
                         Relative Origin = 2500;  Block Size = 500

Case 4: Same as Case 3, except Scale Factor S = 16.

  The SACK option would specify the 3 scaled blocks:

                         Relative Origin =   32;  Block Size = 30
                         Relative Origin =   94;  Block Size = 31
                         Relative Origin =  157;  Block Size = 30

  These three reported blocks have sequence numbers 512 through 991, 1504 through 1999, and 2512 through 2992, respectively.

Next: 3.5 Generating the SACK Option

Connected: An Internet Encyclopedia
RFC 1072 - 3.4 SACK Option Examples