Formal specification and verification of safety and performance of TCP selective acknowledgment

  • Authors:
  • Mark A. Smith;K. K. Ramakrishnan

  • Affiliations:
  • Bell Labs, Murray Hill, NJ;TeraOptic Networks, Inc., Sunnyvale, CA

  • Venue:
  • IEEE/ACM Transactions on Networking (TON)
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a formal specification of the selective acknowledgment (SACK) mechanism that is being proposed as a new standard option for TCP. The formal specification allows one to reason about the SACK protocol; thus, we are able to formally prove that the SACK mechanism does not violate the safety properties (reliable, at most once, and in order message delivery) of the acknowledgment (ACK) mechanism that is currently used with TCP. The new mechanism is being proposed to improve the performance of TCP when multiple packets are lost from one window of data. The proposed mechanism for implementing the SACK option for TCP is sufficiently complicated that it is not obvious that it is indeed safe, so we think it is important to formally verify its safety properties.In addition to safety, we are also able to show that SACK can improve the time it takes for the sender to recover from multiple packet losses. With the additional information available at a SACK sender, the round-trip time that a cumulative ACK sender waits before retransmitting each subsequent packet lost after the very first loss can be saved. We also show that SACK can improve performance even with window sizes as small as four packets and in situations where acknowledgment packets are lost.