TCP Control Block Interdependence
RFC 2140

Document Type RFC - Informational (April 1997; No errata)
Was draft-touch-tcp-interdep (individual)
Last updated 2013-03-02
Stream Legacy
Formats plain text pdf html bibtex
Stream Legacy state (None)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state RFC 2140 (Informational)
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                           J. Touch
Request for Comments: 2140                                           ISI
Category: Informational                                       April 1997

                   TCP Control Block Interdependence

Status of this Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.


   This memo makes the case for interdependent TCP control blocks, where
   part of the TCP state is shared among similar concurrent connections,
   or across similar connection instances. TCP state includes a
   combination of parameters, such as connection state, current round-
   trip time estimates, congestion control information, and process
   information.  This state is currently maintained on a per-connection
   basis in the TCP control block, but should be shared across
   connections to the same host. The goal is to improve transient
   transport performance, while maintaining backward-compatibility with
   existing implementations.

   This document is a product of the LSAM project at ISI.


   TCP is a connection-oriented reliable transport protocol layered over
   IP [9]. Each TCP connection maintains state, usually in a data
   structure called the TCP Control Block (TCB). The TCB contains
   information about the connection state, its associated local process,
   and feedback parameters about the connection's transmission
   properties. As originally specified and usually implemented, the TCB
   is maintained on a per-connection basis. This document discusses the
   implications of that decision, and argues for an alternate
   implementation that shares some of this state across similar
   connection instances and among similar simultaneous connections. The
   resulting implementation can have better transient performance,
   especially for numerous short-lived and simultaneous connections, as
   often used in the World-Wide Web [1]. These changes affect only the
   TCB initialization, and so have no effect on the long-term behavior
   of TCP after a connection has been established.

Touch                        Informational                      [Page 1]
RFC 2140           TCP Control Block Interdependence          April 1997

The TCP Control Block (TCB)

   A TCB is associated with each connection, i.e., with each association
   of a pair of applications across the network. The TCB can be
   summarized as containing [9]:

        Local process state

            pointers to send and receive buffers
            pointers to retransmission queue and current segment
            pointers to Internet Protocol (IP) PCB

        Per-connection shared state


                connection state
                local and remote host numbers and ports


                send and receive window state (size*, current number)
                round-trip time and variance
                cong. window size*
                cong. window size threshold*
                max windows seen*
                round-trip time and variance#

   The per-connection information is shown as split into macro-state and
   micro-state, terminology borrowed from [5]. Macro-state describes the
   finite state machine; we include the endpoint numbers and components
   (timers, flags) used to help maintain that state. This includes the
   protocol for establishing and maintaining shared state about the
   connection. Micro-state describes the protocol after a connection has
   been established, to maintain the reliability and congestion control
   of the data transferred in the connection.

   We further distinguish two other classes of shared micro-state that
   are associated more with host-pairs than with application pairs. One
   class is clearly host-pair dependent (#, e.g., MSS, RTT), and the
   other is host-pair dependent in its aggregate (*, e.g., cong. window
   info., curr. window sizes).

Touch                        Informational                      [Page 2]
RFC 2140           TCP Control Block Interdependence          April 1997

TCB Interdependence

   The observation that some TCB state is host-pair specific rather than
   application-pair dependent is not new, and is a common engineering
   decision in layered protocol implementations. A discussion of sharing
   RTT information among protocols layered over IP, including UDP and
   TCP, occurred in [8]. T/TCP uses caches to maintain TCB information
   across instances, e.g., smoothed RTT, RTT variance, congestion
   avoidance threshold, and MSS [3].  These values are in addition to
   connection counts used by T/TCP to accelerate data delivery prior to
   the full three-way handshake during an OPEN. The goal is to aggregate
   TCB components where they reflect one association - that of the
Show full document text