Skip to main content

2. Definitions

This section provides the definition of several terms that will be used throughout the remainder of this document.

SEGMENT

A segment is ANY TCP/IP data or acknowledgment packet (or both).

SENDER MAXIMUM SEGMENT SIZE (SMSS)

The SMSS is the size of the largest segment that the sender can transmit. This value can be based on:

  • The maximum transmission unit of the network
  • The path MTU discovery [RFC1191, RFC4821] algorithm
  • RMSS (see next item)
  • Other factors

The size does not include the TCP/IP headers and options.

RECEIVER MAXIMUM SEGMENT SIZE (RMSS)

The RMSS is the size of the largest segment the receiver is willing to accept. This is the value specified in the MSS option sent by the receiver during connection startup. Or, if the MSS option is not used, it is 536 bytes [RFC1122]. The size does not include the TCP/IP headers and options.

FULL-SIZED SEGMENT

A segment that contains the maximum number of data bytes permitted (i.e., a segment containing SMSS bytes of data).

RECEIVER WINDOW (rwnd)

The most recently advertised receiver window.

CONGESTION WINDOW (cwnd)

A TCP state variable that limits the amount of data a TCP can send. At any given time, a TCP MUST NOT send data with a sequence number higher than the sum of the highest acknowledged sequence number and the minimum of cwnd and rwnd.

INITIAL WINDOW (IW)

The initial window is the size of the sender's congestion window after the three-way handshake is completed.

LOSS WINDOW (LW)

The loss window is the size of the congestion window after a TCP sender detects loss using its retransmission timer.

RESTART WINDOW (RW)

The restart window is the size of the congestion window after a TCP restarts transmission after an idle period (if the slow start algorithm is used; see section 4.1 for more discussion).

FLIGHT SIZE

The amount of data that has been sent but not yet cumulatively acknowledged.

DUPLICATE ACKNOWLEDGMENT

An acknowledgment is considered a "duplicate" in the following algorithms when:

(a) the receiver of the ACK has outstanding data,
(b) the incoming acknowledgment carries no data,
(c) the SYN and FIN bits are both off,
(d) the acknowledgment number is equal to the greatest acknowledgment received on the given connection (TCP.UNA from [RFC793]) and
(e) the advertised window in the incoming acknowledgment equals the advertised window in the last incoming acknowledgment.

Alternatively, a TCP that utilizes selective acknowledgments (SACKs) [RFC2018, RFC2883] can leverage the SACK information to determine when an incoming ACK is a "duplicate" (e.g., if the ACK contains previously unknown SACK information).