tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Gloss.     Arch.     IMS     UICC    |    Misc.    |    search     info

RFC 7414

 
 
 

A Roadmap for Transmission Control Protocol (TCP) Specification Documents

Part 3 of 3, p. 40 to 57
Prev RFC Part

 


prevText      Top      Up      ToC       Page 40 
8.  Undocumented TCP Features

   There are a few important implementation tactics for the TCP that
   have not yet been described in any RFC.  Although this roadmap is
   primarily concerned with mapping the TCP RFCs, this section is
   included because an implementer needs to be aware of these important
   issues.

   Header Prediction

      Header prediction is a trick to speed up the processing of
      segments.  Van Jacobson and Mike Karels developed the technique in
      the late 1980s.  The basic idea is that some processing time can
      be saved when most of a segment's fields can be predicted from
      previous segments.  A good description of this was sent to the
      TCP-IP mailing list by Van Jacobson on March 9, 1988 (see
      [Jacobson] for the full message):

         Quite a bit of the speedup comes from an algorithm that we
         ('we' refers to collaborator Mike Karels and myself) are
         calling "header prediction".  The idea is that if you're in the
         middle of a bulk data transfer and have just seen a packet, you
         know what the next packet is going to look like: It will look
         just like the current packet with either the sequence number or
         ack number updated (depending on whether you're the sender or
         receiver).  Combining this with the "Use hints" epigram from
         Butler Lampson's classic "Epigrams for System Designers", you
         start to think of the tcp state (rcv.nxt, snd.una, etc.) as
         "hints" about what the next packet should look like.

         If you arrange those "hints" so they match the layout of a tcp
         packet header, it takes a single 14-byte compare to see if your
         prediction is correct (3 longword compares to pick up the send
         & ack sequence numbers, header length, flags and window, plus a
         short compare on the length).  If the prediction is correct,
         there's a single test on the length to see if you're the sender
         or receiver followed by the appropriate processing.  E.g., if
         the length is non-zero (you're the receiver), checksum and
         append the data to the socket buffer then wake any process
         that's sleeping on the buffer.  Update rcv.nxt by the length of
         this packet (this updates your "prediction" of the next
         packet).  Check if you can handle another packet the same size
         as the current one.  If not, set one of the unused flag bits in
         your header prediction to guarantee that the prediction will
         fail on the next packet and force you to go through full
         protocol processing.  Otherwise, you're done with this packet.
         So, the *total* tcp protocol processing, exclusive of
         checksumming, is on the order of 6 compares and an add.

Top      Up      ToC       Page 41 
   Forward Acknowledgement (FACK)

      FACK [MM96] includes an alternate algorithm for triggering fast
      retransmit [RFC5681], based on the extent of the SACK scoreboard.
      Its goal is to trigger fast retransmit as soon as the receiver's
      reassembly queue is larger than the duplicate ACK threshold, as
      indicated by the difference between the forward most SACK block
      edge and SND.UNA.  This algorithm quickly and reliably triggers
      fast retransmit in the presence of burst losses -- often on the
      first SACK following such a loss.  Such a threshold-based
      algorithm also triggers fast retransmit immediately in the
      presence of any reordering with extent greater than the duplicate
      ACK threshold.  FACK is implemented in Linux and turned on per
      default.

   Congestion Control for High Rate Flows

      In the last decade significant research effort has been put into
      experimental TCP congestion control modifications for obtaining
      high throughput with reduced startup and recovery times.  Only a
      few RFCs have been published on some of these modifications,
      including HighSpeed TCP [RFC3649], Limited Slow-Start [RFC3742],
      and Quick-Start [RFC4782] (see Section 4.3 of this document for
      more information on each), but high-rate congestion control
      mechanisms are still considered an open issue in congestion
      control research.  Some other schemes have been published as
      Internet-Drafts, e.g.  CUBIC [CUBIC] (the standard TCP congestion
      control algorithm in Linux), Compound TCP [CTCP], and H-TCP [HTCP]
      or have been discussed a little by the IETF, but much of the work
      in this area has not been adopted within the IETF yet, so the
      majority of this work is outside the RFC series and may be
      discussed in other products of the IRTF Internet Congestion
      Control Research Group (ICCRG).

9.  Security Considerations

   This document introduces no new security considerations.  Each RFC
   listed in this document attempts to address the security
   considerations of the specification it contains.

Top      Up      ToC       Page 42 
10.  References

10.1.  Normative References

   [RFC675]   Cerf, V., Dalal, Y., and C. Sunshine, "Specification of
              Internet Transmission Control Program", RFC 675, December
              1974, <http://www.rfc-editor.org/info/rfc675>.

   [RFC700]   Mader, E., Plummer, W., and R. Tomlinson, "Protocol
              experiment", RFC 700, August 1974,
              <http://www.rfc-editor.org/info/rfc700>.

   [RFC721]   Garlick, L., "Out-of-Band Control Signals in a Host-to-
              Host Protocol", RFC 721, September 1976,
              <http://www.rfc-editor.org/info/rfc721>.

   [RFC761]   Postel, J., "DoD standard Transmission Control Protocol",
              RFC 761, January 1980,
              <http://www.rfc-editor.org/info/rfc761>.

   [RFC793]   Postel, J., "Transmission Control Protocol", STD 7, RFC
              793, September 1981,
              <http://www.rfc-editor.org/info/rfc793>.

   [RFC794]   Cerf, V., "Pre-emption", RFC 794, September 1981,
              <http://www.rfc-editor.org/info/rfc794>.

   [RFC813]   Clark, D., "Window and Acknowledgement Strategy in TCP",
              RFC 813, July 1982,
              <http://www.rfc-editor.org/info/rfc813>.

   [RFC814]   Clark, D., "Name, addresses, ports, and routes", RFC 814,
              July 1982, <http://www.rfc-editor.org/info/rfc814>.

   [RFC816]   Clark, D., "Fault isolation and recovery", RFC 816, July
              1982, <http://www.rfc-editor.org/info/rfc816>.

   [RFC817]   Clark, D., "Modularity and efficiency in protocol
              implementation", RFC 817, July 1982,
              <http://www.rfc-editor.org/info/rfc817>.

   [RFC872]   Padlipsky, M., "TCP-on-a-LAN", RFC 872, September 1982,
              <http://www.rfc-editor.org/info/rfc872>.

   [RFC879]   Postel, J., "TCP maximum segment size and related topics",
              RFC 879, November 1983,
              <http://www.rfc-editor.org/info/rfc879>.

Top      Up      ToC       Page 43 
   [RFC889]   Mills, D., "Internet delay experiments", RFC 889, December
              1983, <http://www.rfc-editor.org/info/rfc889>.

   [RFC896]   Nagle, J., "Congestion control in IP/TCP internetworks",
              RFC 896, January 1984,
              <http://www.rfc-editor.org/info/rfc896>.

   [RFC964]   Sidhu, D. and T. Blumer, "Some problems with the
              specification of the Military Standard Transmission
              Control Protocol", RFC 964, November 1985,
              <http://www.rfc-editor.org/info/rfc964>.

   [RFC1071]  Braden, R., Borman, D., Partridge, C., and W. Plummer,
              "Computing the Internet checksum", RFC 1071, September
              1988, <http://www.rfc-editor.org/info/rfc1071>.

   [RFC1078]  Lottor, M., "TCP port service Multiplexer (TCPMUX)", RFC
              1078, November 1988,
              <http://www.rfc-editor.org/info/rfc1078>.

   [RFC1106]  Fox, R., "TCP big window and NAK options", RFC 1106, June
              1989, <http://www.rfc-editor.org/info/rfc1106>.

   [RFC1110]  McKenzie, A., "Problem with the TCP big window option",
              RFC 1110, August 1989,
              <http://www.rfc-editor.org/info/rfc1110>.

   [RFC1122]  Braden, R., "Requirements for Internet Hosts -
              Communication Layers", STD 3, RFC 1122, October 1989,
              <http://www.rfc-editor.org/info/rfc1122>.

   [RFC1144]  Jacobson, V., "Compressing TCP/IP headers for low-speed
              serial links", RFC 1144, February 1990,
              <http://www.rfc-editor.org/info/rfc1144>.

   [RFC1146]  Zweig, J. and C. Partridge, "TCP alternate checksum
              options", RFC 1146, March 1990,
              <http://www.rfc-editor.org/info/rfc1146>.

   [RFC1156]  McCloghrie, K. and M. Rose, "Management Information Base
              for network management of TCP/IP-based internets", RFC
              1156, May 1990, <http://www.rfc-editor.org/info/rfc1156>.

   [RFC1180]  Socolofsky, T. and C. Kale, "TCP/IP tutorial", RFC 1180,
              January 1991, <http://www.rfc-editor.org/info/rfc1180>.

   [RFC1191]  Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191,
              November 1990, <http://www.rfc-editor.org/info/rfc1191>.

Top      Up      ToC       Page 44 
   [RFC1213]  McCloghrie, K. and M. Rose, "Management Information Base
              for Network Management of TCP/IP-based internets:MIB-II",
              STD 17, RFC 1213, March 1991,
              <http://www.rfc-editor.org/info/rfc1213>.

   [RFC1263]  O'Malley, S. and L. Peterson, "TCP Extensions Considered
              Harmful", RFC 1263, October 1991,
              <http://www.rfc-editor.org/info/rfc1263>.

   [RFC1337]  Braden, B., "TIME-WAIT Assassination Hazards in TCP", RFC
              1337, May 1992, <http://www.rfc-editor.org/info/rfc1337>.

   [RFC1379]  Braden, B., "Extending TCP for Transactions -- Concepts",
              RFC 1379, November 1992,
              <http://www.rfc-editor.org/info/rfc1379>.

   [RFC1470]  Enger, R. and J. Reynolds, "FYI on a Network Management
              Tool Catalog: Tools for Monitoring and Debugging TCP/IP
              Internets and Interconnected Devices", RFC 1470, June
              1993, <http://www.rfc-editor.org/info/rfc1470>.

   [RFC1624]  Rijsinghani, A., "Computation of the Internet Checksum via
              Incremental Update", RFC 1624, May 1994,
              <http://www.rfc-editor.org/info/rfc1624>.

   [RFC1644]  Braden, B., "T/TCP -- TCP Extensions for Transactions
              Functional Specification", RFC 1644, July 1994,
              <http://www.rfc-editor.org/info/rfc1644>.

   [RFC1693]  Connolly, T., Amer, P., and P. Conrad, "An Extension to
              TCP : Partial Order Service", RFC 1693, November 1994,
              <http://www.rfc-editor.org/info/rfc1693>.

   [RFC1705]  Carlson, R. and D. Ficarella, "Six Virtual Inches to the
              Left: The Problem with IPng", RFC 1705, October 1994,
              <http://www.rfc-editor.org/info/rfc1705>.

   [RFC1936]  Touch, J. and B. Parham, "Implementing the Internet
              Checksum in Hardware", RFC 1936, April 1996,
              <http://www.rfc-editor.org/info/rfc1936>.

   [RFC1958]  Carpenter, B., "Architectural Principles of the Internet",
              RFC 1958, June 1996,
              <http://www.rfc-editor.org/info/rfc1958>.

   [RFC1981]  McCann, J., Deering, S., and J. Mogul, "Path MTU Discovery
              for IP version 6", RFC 1981, August 1996,
              <http://www.rfc-editor.org/info/rfc1981>.

Top      Up      ToC       Page 45 
   [RFC2012]  McCloghrie, K., "SNMPv2 Management Information Base for
              the Transmission Control Protocol using SMIv2", RFC 2012,
              November 1996, <http://www.rfc-editor.org/info/rfc2012>.

   [RFC2018]  Mathis, M., Mahdavi, J., Floyd, S., and A. Romanow, "TCP
              Selective Acknowledgment Options", RFC 2018, October 1996,
              <http://www.rfc-editor.org/info/rfc2018>.

   [RFC2140]  Touch, J., "TCP Control Block Interdependence", RFC 2140,
              April 1997, <http://www.rfc-editor.org/info/rfc2140>.

   [RFC2398]  Parker, S. and C. Schmechel, "Some Testing Tools for TCP
              Implementors", RFC 2398, August 1998,
              <http://www.rfc-editor.org/info/rfc2398>.

   [RFC2415]  Poduri, K., "Simulation Studies of Increased Initial TCP
              Window Size", RFC 2415, September 1998,
              <http://www.rfc-editor.org/info/rfc2415>.

   [RFC2416]  Shepard, T. and C. Partridge, "When TCP Starts Up With
              Four Packets Into Only Three Buffers", RFC 2416, September
              1998, <http://www.rfc-editor.org/info/rfc2416>.

   [RFC2452]  Daniele, M., "IP Version 6 Management Information Base for
              the Transmission Control Protocol", RFC 2452, December
              1998, <http://www.rfc-editor.org/info/rfc2452>.

   [RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", RFC 2460, December 1998,
              <http://www.rfc-editor.org/info/rfc2460>.

   [RFC2488]  Allman, M., Glover, D., and L. Sanchez, "Enhancing TCP
              Over Satellite Channels using Standard Mechanisms", BCP
              28, RFC 2488, January 1999,
              <http://www.rfc-editor.org/info/rfc2488>.

   [RFC2525]  Paxson, V., Dawson, S., Fenner, W., Griner, J., Heavens,
              I., Lahey, K., Semke, J., and B. Volz, "Known TCP
              Implementation Problems", RFC 2525, March 1999,
              <http://www.rfc-editor.org/info/rfc2525>.

   [RFC2675]  Borman, D., Deering, S., and R. Hinden, "IPv6 Jumbograms",
              RFC 2675, August 1999,
              <http://www.rfc-editor.org/info/rfc2675>.

   [RFC2757]  Montenegro, G., Dawkins, S., Kojo, M., Magret, V., and N.
              Vaidya, "Long Thin Networks", RFC 2757, January 2000,
              <http://www.rfc-editor.org/info/rfc2757>.

Top      Up      ToC       Page 46 
   [RFC2760]  Allman, M., Dawkins, S., Glover, D., Griner, J., Tran, D.,
              Henderson, T., Heidemann, J., Touch, J., Kruse, H.,
              Ostermann, S., Scott, K., and J. Semke, "Ongoing TCP
              Research Related to Satellites", RFC 2760, February 2000,
              <http://www.rfc-editor.org/info/rfc2760>.

   [RFC2780]  Bradner, S. and V. Paxson, "IANA Allocation Guidelines For
              Values In the Internet Protocol and Related Headers", BCP
              37, RFC 2780, March 2000,
              <http://www.rfc-editor.org/info/rfc2780>.

   [RFC2861]  Handley, M., Padhye, J., and S. Floyd, "TCP Congestion
              Window Validation", RFC 2861, June 2000,
              <http://www.rfc-editor.org/info/rfc2861>.

   [RFC2873]  Xiao, X., Hannan, A., Paxson, V., and E. Crabbe, "TCP
              Processing of the IPv4 Precedence Field", RFC 2873, June
              2000, <http://www.rfc-editor.org/info/rfc2873>.

   [RFC2883]  Floyd, S., Mahdavi, J., Mathis, M., and M. Podolsky, "An
              Extension to the Selective Acknowledgement (SACK) Option
              for TCP", RFC 2883, July 2000,
              <http://www.rfc-editor.org/info/rfc2883>.

   [RFC2884]  Hadi Salim, J. and U. Ahmed, "Performance Evaluation of
              Explicit Congestion Notification (ECN) in IP Networks",
              RFC 2884, July 2000,
              <http://www.rfc-editor.org/info/rfc2884>.

   [RFC2914]  Floyd, S., "Congestion Control Principles", BCP 41, RFC
              2914, September 2000,
              <http://www.rfc-editor.org/info/rfc2914>.

   [RFC2923]  Lahey, K., "TCP Problems with Path MTU Discovery", RFC
              2923, September 2000,
              <http://www.rfc-editor.org/info/rfc2923>.

   [RFC3042]  Allman, M., Balakrishnan, H., and S. Floyd, "Enhancing
              TCP's Loss Recovery Using Limited Transmit", RFC 3042,
              January 2001, <http://www.rfc-editor.org/info/rfc3042>.

   [RFC3124]  Balakrishnan, H. and S. Seshan, "The Congestion Manager",
              RFC 3124, June 2001,
              <http://www.rfc-editor.org/info/rfc3124>.

Top      Up      ToC       Page 47 
   [RFC3135]  Border, J., Kojo, M., Griner, J., Montenegro, G., and Z.
              Shelby, "Performance Enhancing Proxies Intended to
              Mitigate Link-Related Degradations", RFC 3135, June 2001,
              <http://www.rfc-editor.org/info/rfc3135>.

   [RFC3150]  Dawkins, S., Montenegro, G., Kojo, M., and V. Magret,
              "End-to-end Performance Implications of Slow Links", BCP
              48, RFC 3150, July 2001,
              <http://www.rfc-editor.org/info/rfc3150>.

   [RFC3155]  Dawkins, S., Montenegro, G., Kojo, M., Magret, V., and N.
              Vaidya, "End-to-end Performance Implications of Links with
              Errors", BCP 50, RFC 3155, August 2001,
              <http://www.rfc-editor.org/info/rfc3155>.

   [RFC3168]  Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
              of Explicit Congestion Notification (ECN) to IP", RFC
              3168, September 2001,
              <http://www.rfc-editor.org/info/rfc3168>.

   [RFC3360]  Floyd, S., "Inappropriate TCP Resets Considered Harmful",
              BCP 60, RFC 3360, August 2002,
              <http://www.rfc-editor.org/info/rfc3360>.

   [RFC3366]  Fairhurst, G. and L. Wood, "Advice to link designers on
              link Automatic Repeat reQuest (ARQ)", BCP 62, RFC 3366,
              August 2002, <http://www.rfc-editor.org/info/rfc3366>.

   [RFC3390]  Allman, M., Floyd, S., and C. Partridge, "Increasing TCP's
              Initial Window", RFC 3390, October 2002,
              <http://www.rfc-editor.org/info/rfc3390>.

   [RFC3439]  Bush, R. and D. Meyer, "Some Internet Architectural
              Guidelines and Philosophy", RFC 3439, December 2002,
              <http://www.rfc-editor.org/info/rfc3439>.

   [RFC3449]  Balakrishnan, H., Padmanabhan, V., Fairhurst, G., and M.
              Sooriyabandara, "TCP Performance Implications of Network
              Path Asymmetry", BCP 69, RFC 3449, December 2002,
              <http://www.rfc-editor.org/info/rfc3449>.

   [RFC3465]  Allman, M., "TCP Congestion Control with Appropriate Byte
              Counting (ABC)", RFC 3465, February 2003,
              <http://www.rfc-editor.org/info/rfc3465>.

Top      Up      ToC       Page 48 
   [RFC3481]  Inamura, H., Montenegro, G., Ludwig, R., Gurtov, A., and
              F. Khafizov, "TCP over Second (2.5G) and Third (3G)
              Generation Wireless Networks", BCP 71, RFC 3481, February
              2003, <http://www.rfc-editor.org/info/rfc3481>.

   [RFC3493]  Gilligan, R., Thomson, S., Bound, J., McCann, J., and W.
              Stevens, "Basic Socket Interface Extensions for IPv6", RFC
              3493, February 2003,
              <http://www.rfc-editor.org/info/rfc3493>.

   [RFC3522]  Ludwig, R. and M. Meyer, "The Eifel Detection Algorithm
              for TCP", RFC 3522, April 2003,
              <http://www.rfc-editor.org/info/rfc3522>.

   [RFC3540]  Spring, N., Wetherall, D., and D. Ely, "Robust Explicit
              Congestion Notification (ECN) Signaling with Nonces", RFC
              3540, June 2003, <http://www.rfc-editor.org/info/rfc3540>.

   [RFC3649]  Floyd, S., "HighSpeed TCP for Large Congestion Windows",
              RFC 3649, December 2003,
              <http://www.rfc-editor.org/info/rfc3649>.

   [RFC3708]  Blanton, E. and M. Allman, "Using TCP Duplicate Selective
              Acknowledgement (DSACKs) and Stream Control Transmission
              Protocol (SCTP) Duplicate Transmission Sequence Numbers
              (TSNs) to Detect Spurious Retransmissions", RFC 3708,
              February 2004, <http://www.rfc-editor.org/info/rfc3708>.

   [RFC3742]  Floyd, S., "Limited Slow-Start for TCP with Large
              Congestion Windows", RFC 3742, March 2004,
              <http://www.rfc-editor.org/info/rfc3742>.

   [RFC3819]  Karn, P., Bormann, C., Fairhurst, G., Grossman, D.,
              Ludwig, R., Mahdavi, J., Montenegro, G., Touch, J., and L.
              Wood, "Advice for Internet Subnetwork Designers", BCP 89,
              RFC 3819, July 2004,
              <http://www.rfc-editor.org/info/rfc3819>.

   [RFC4015]  Ludwig, R. and A. Gurtov, "The Eifel Response Algorithm
              for TCP", RFC 4015, February 2005,
              <http://www.rfc-editor.org/info/rfc4015>.

   [RFC4022]  Raghunarayan, R., "Management Information Base for the
              Transmission Control Protocol (TCP)", RFC 4022, March
              2005, <http://www.rfc-editor.org/info/rfc4022>.

Top      Up      ToC       Page 49 
   [RFC4653]  Bhandarkar, S., Reddy, A., Allman, M., and E. Blanton,
              "Improving the Robustness of TCP to Non-Congestion
              Events", RFC 4653, August 2006,
              <http://www.rfc-editor.org/info/rfc4653>.

   [RFC4727]  Fenner, B., "Experimental Values In IPv4, IPv6, ICMPv4,
              ICMPv6, UDP, and TCP Headers", RFC 4727, November 2006,
              <http://www.rfc-editor.org/info/rfc4727>.

   [RFC4774]  Floyd, S., "Specifying Alternate Semantics for the
              Explicit Congestion Notification (ECN) Field", BCP 124,
              RFC 4774, November 2006,
              <http://www.rfc-editor.org/info/rfc4774>.

   [RFC4782]  Floyd, S., Allman, M., Jain, A., and P. Sarolahti, "Quick-
              Start for TCP and IP", RFC 4782, January 2007,
              <http://www.rfc-editor.org/info/rfc4782>.

   [RFC4821]  Mathis, M. and J. Heffner, "Packetization Layer Path MTU
              Discovery", RFC 4821, March 2007,
              <http://www.rfc-editor.org/info/rfc4821>.

   [RFC4898]  Mathis, M., Heffner, J., and R. Raghunarayan, "TCP
              Extended Statistics MIB", RFC 4898, May 2007,
              <http://www.rfc-editor.org/info/rfc4898>.

   [RFC4953]  Touch, J., "Defending TCP Against Spoofing Attacks", RFC
              4953, July 2007, <http://www.rfc-editor.org/info/rfc4953>.

   [RFC4987]  Eddy, W., "TCP SYN Flooding Attacks and Common
              Mitigations", RFC 4987, August 2007,
              <http://www.rfc-editor.org/info/rfc4987>.

   [RFC5033]  Floyd, S. and M. Allman, "Specifying New Congestion
              Control Algorithms", BCP 133, RFC 5033, August 2007,
              <http://www.rfc-editor.org/info/rfc5033>.

   [RFC5166]  Floyd, S., "Metrics for the Evaluation of Congestion
              Control Mechanisms", RFC 5166, March 2008,
              <http://www.rfc-editor.org/info/rfc5166>.

   [RFC5461]  Gont, F., "TCP's Reaction to Soft Errors", RFC 5461,
              February 2009, <http://www.rfc-editor.org/info/rfc5461>.

   [RFC5482]  Eggert, L. and F. Gont, "TCP User Timeout Option", RFC
              5482, March 2009,
              <http://www.rfc-editor.org/info/rfc5482>.

Top      Up      ToC       Page 50 
   [RFC5562]  Kuzmanovic, A., Mondal, A., Floyd, S., and K.
              Ramakrishnan, "Adding Explicit Congestion Notification
              (ECN) Capability to TCP's SYN/ACK Packets", RFC 5562, June
              2009, <http://www.rfc-editor.org/info/rfc5562>.

   [RFC5681]  Allman, M., Paxson, V., and E. Blanton, "TCP Congestion
              Control", RFC 5681, September 2009,
              <http://www.rfc-editor.org/info/rfc5681>.

   [RFC5682]  Sarolahti, P., Kojo, M., Yamamoto, K., and M. Hata,
              "Forward RTO-Recovery (F-RTO): An Algorithm for Detecting
              Spurious Retransmission Timeouts with TCP", RFC 5682,
              September 2009, <http://www.rfc-editor.org/info/rfc5682>.

   [RFC5690]  Floyd, S., Arcia, A., Ros, D., and J. Iyengar, "Adding
              Acknowledgement Congestion Control to TCP", RFC 5690,
              February 2010, <http://www.rfc-editor.org/info/rfc5690>.

   [RFC5783]  Welzl, M. and W. Eddy, "Congestion Control in the RFC
              Series", RFC 5783, February 2010,
              <http://www.rfc-editor.org/info/rfc5783>.

   [RFC5827]  Allman, M., Avrachenkov, K., Ayesta, U., Blanton, J., and
              P. Hurtig, "Early Retransmit for TCP and Stream Control
              Transmission Protocol (SCTP)", RFC 5827, May 2010,
              <http://www.rfc-editor.org/info/rfc5827>.

   [RFC5925]  Touch, J., Mankin, A., and R. Bonica, "The TCP
              Authentication Option", RFC 5925, June 2010,
              <http://www.rfc-editor.org/info/rfc5925>.

   [RFC5926]  Lebovitz, G. and E. Rescorla, "Cryptographic Algorithms
              for the TCP Authentication Option (TCP-AO)", RFC 5926,
              June 2010, <http://www.rfc-editor.org/info/rfc5926>.

   [RFC5927]  Gont, F., "ICMP Attacks against TCP", RFC 5927, July 2010,
              <http://www.rfc-editor.org/info/rfc5927>.

   [RFC5961]  Ramaiah, A., Stewart, R., and M. Dalal, "Improving TCP's
              Robustness to Blind In-Window Attacks", RFC 5961, August
              2010, <http://www.rfc-editor.org/info/rfc5961>.

   [RFC6013]  Simpson, W., "TCP Cookie Transactions (TCPCT)", RFC 6013,
              January 2011, <http://www.rfc-editor.org/info/rfc6013>.

   [RFC6056]  Larsen, M. and F. Gont, "Recommendations for Transport-
              Protocol Port Randomization", BCP 156, RFC 6056, January
              2011, <http://www.rfc-editor.org/info/rfc6056>.

Top      Up      ToC       Page 51 
   [RFC6069]  Zimmermann, A. and A. Hannemann, "Making TCP More Robust
              to Long Connectivity Disruptions (TCP-LCD)", RFC 6069,
              December 2010, <http://www.rfc-editor.org/info/rfc6069>.

   [RFC6077]  Papadimitriou, D., Welzl, M., Scharf, M., and B. Briscoe,
              "Open Research Issues in Internet Congestion Control", RFC
              6077, February 2011,
              <http://www.rfc-editor.org/info/rfc6077>.

   [RFC6093]  Gont, F. and A. Yourtchenko, "On the Implementation of the
              TCP Urgent Mechanism", RFC 6093, January 2011,
              <http://www.rfc-editor.org/info/rfc6093>.

   [RFC6181]  Bagnulo, M., "Threat Analysis for TCP Extensions for
              Multipath Operation with Multiple Addresses", RFC 6181,
              March 2011, <http://www.rfc-editor.org/info/rfc6181>.

   [RFC6182]  Ford, A., Raiciu, C., Handley, M., Barre, S., and J.
              Iyengar, "Architectural Guidelines for Multipath TCP
              Development", RFC 6182, March 2011,
              <http://www.rfc-editor.org/info/rfc6182>.

   [RFC6191]  Gont, F., "Reducing the TIME-WAIT State Using TCP
              Timestamps", BCP 159, RFC 6191, April 2011,
              <http://www.rfc-editor.org/info/rfc6191>.

   [RFC6247]  Eggert, L., "Moving the Undeployed TCP Extensions RFC
              1072, RFC 1106, RFC 1110, RFC 1145, RFC 1146, RFC 1379,
              RFC 1644, and RFC 1693 to Historic Status", RFC 6247, May
              2011, <http://www.rfc-editor.org/info/rfc6247>.

   [RFC6298]  Paxson, V., Allman, M., Chu, J., and M. Sargent,
              "Computing TCP's Retransmission Timer", RFC 6298, June
              2011, <http://www.rfc-editor.org/info/rfc6298>.

   [RFC6335]  Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S.
              Cheshire, "Internet Assigned Numbers Authority (IANA)
              Procedures for the Management of the Service Name and
              Transport Protocol Port Number Registry", BCP 165, RFC
              6335, August 2011,
              <http://www.rfc-editor.org/info/rfc6335>.

   [RFC6349]  Constantine, B., Forget, G., Geib, R., and R. Schrage,
              "Framework for TCP Throughput Testing", RFC 6349, August
              2011, <http://www.rfc-editor.org/info/rfc6349>.

Top      Up      ToC       Page 52 
   [RFC6356]  Raiciu, C., Handley, M., and D. Wischik, "Coupled
              Congestion Control for Multipath Transport Protocols", RFC
              6356, October 2011,
              <http://www.rfc-editor.org/info/rfc6356>.

   [RFC6429]  Bashyam, M., Jethanandani, M., and A. Ramaiah, "TCP Sender
              Clarification for Persist Condition", RFC 6429, December
              2011, <http://www.rfc-editor.org/info/rfc6429>.

   [RFC6528]  Gont, F. and S. Bellovin, "Defending against Sequence
              Number Attacks", RFC 6528, February 2012,
              <http://www.rfc-editor.org/info/rfc6528>.

   [RFC6582]  Henderson, T., Floyd, S., Gurtov, A., and Y. Nishida, "The
              NewReno Modification to TCP's Fast Recovery Algorithm",
              RFC 6582, April 2012,
              <http://www.rfc-editor.org/info/rfc6582>.

   [RFC6633]  Gont, F., "Deprecation of ICMP Source Quench Messages",
              RFC 6633, May 2012,
              <http://www.rfc-editor.org/info/rfc6633>.

   [RFC6675]  Blanton, E., Allman, M., Wang, L., Jarvinen, I., Kojo, M.,
              and Y. Nishida, "A Conservative Loss Recovery Algorithm
              Based on Selective Acknowledgment (SACK) for TCP", RFC
              6675, August 2012,
              <http://www.rfc-editor.org/info/rfc6675>.

   [RFC6691]  Borman, D., "TCP Options and Maximum Segment Size (MSS)",
              RFC 6691, July 2012,
              <http://www.rfc-editor.org/info/rfc6691>.

   [RFC6824]  Ford, A., Raiciu, C., Handley, M., and O. Bonaventure,
              "TCP Extensions for Multipath Operation with Multiple
              Addresses", RFC 6824, January 2013,
              <http://www.rfc-editor.org/info/rfc6824>.

   [RFC6846]  Pelletier, G., Sandlund, K., Jonsson, L-E., and M. West,
              "RObust Header Compression (ROHC): A Profile for TCP/IP
              (ROHC-TCP)", RFC 6846, January 2013,
              <http://www.rfc-editor.org/info/rfc6846>.

   [RFC6897]  Scharf, M. and A. Ford, "Multipath TCP (MPTCP) Application
              Interface Considerations", RFC 6897, March 2013,
              <http://www.rfc-editor.org/info/rfc6897>.

Top      Up      ToC       Page 53 
   [RFC6928]  Chu, J., Dukkipati, N., Cheng, Y., and M. Mathis,
              "Increasing TCP's Initial Window", RFC 6928, April 2013,
              <http://www.rfc-editor.org/info/rfc6928>.

   [RFC6937]  Mathis, M., Dukkipati, N., and Y. Cheng, "Proportional
              Rate Reduction for TCP", RFC 6937, May 2013,
              <http://www.rfc-editor.org/info/rfc6937>.

   [RFC6994]  Touch, J., "Shared Use of Experimental TCP Options", RFC
              6994, August 2013,
              <http://www.rfc-editor.org/info/rfc6994>.

   [RFC7323]  Borman, D., Braden, B., Jacobson, V., and R.
              Scheffenegger, "TCP Extensions for High Performance", RFC
              7323, September 2014,
              <http://www.rfc-editor.org/info/rfc7323>.

   [RFC7413]  Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP
              Fast Open", RFC 7413, December 2014,
              <http://www.rfc-editor.org/info/rfc7413>.

10.2.  Informative References

   [CK73]     Cerf, V. and R. Kahn, "Towards Protocols for Internetwork
              Communication", IFIP/TC6.1, NIC 18764, INWG 39, September
              1973.

   [CTCP]     Sridharan, M., Tan, K., Bansal, D., and D. Thaler,
              "Compound TCP: A New TCP Congestion Control for High-Speed
              and Long Distance Networks", Work in Progress,
              draft-sridharan-tcpm-ctcp-02, November 2008.

   [CUBIC]    Rhee, I., Xu, L., and S. Ha, "CUBIC for Fast Long-Distance
              Networks", Work in Progress, draft-rhee-tcpm-cubic-02,
              August 2008.

   [Errata]   RFC Editor, "RFC Errata",
              <http://www.rfc-editor.org/errata.php>.

   [HTCP]     Leith, D., "H-TCP: TCP Congestion Control for High
              Bandwidth-Delay Product Paths", Work in Progress,
              draft-leith-tcp-htcp-06, April 2008.

   [JK92]     Jacobson, V. and M. Karels, "Congestion Avoidance and
              Control", November 1992,
              <ftp://ftp.ee.lbl.gov/papers/congavoid.ps.Z>.

Top      Up      ToC       Page 54 
   [Jac88]    Jacobson, V., "Congestion Avoidance and Control", ACM
              SIGCOMM 1988 Proceedings, in ACM Computer Communication
              Review, 18 (4), pp. 314-329, August 1988.

   [Jacobson] Jacobson, V., "TCP-IP Mailing List", Article 167 of
              comp.protocols.tcp-ip, March 1988,
              <ftp://ftp.ee.lbl.gov/email/vanj.88mar10.txt>.

   [KP87]     Karn, P. and C. Partridge, "Round Trip Time Estimation",
              ACM SIGCOMM 1987 Proceedings, in ACM Computer
              Communication Review, 17 (5), pp. 2-7, August 1987.

   [MAF04]    Medina, A., Allman, M., and S. Floyd, "Measuring the
              Evolution of Transport Protocols in the Internet", ACM
              Computer Communication Review, 35 (2), April 2005.

   [MM96]     Mathis, M. and J. Mahdavi, "Forward Acknowledgement:
              Refining TCP Congestion Control", ACM SIGCOMM 1996
              Proceedings, in ACM Computer Communication Review 26 (4),
              pp. 281-292, October 1996.

   [RFC1016]  Prue, W. and J. Postel, "Something a host could do with
              source quench: The Source Quench Introduced Delay
              (SQuID)", RFC 1016, July 1987,
              <http://www.rfc-editor.org/info/rfc1016>.

   [RFC2026]  Bradner, S., "The Internet Standards Process -- Revision
              3", BCP 9, RFC 2026, October 1996,
              <http://www.rfc-editor.org/info/rfc2026>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC2474]  Nichols, K., Blake, S., Baker, F., and D. Black,
              "Definition of the Differentiated Services Field (DS
              Field) in the IPv4 and IPv6 Headers", RFC 2474, December
              1998, <http://www.rfc-editor.org/info/rfc2474>.

   [RFC3758]  Stewart, R., Ramalho, M., Xie, Q., Tuexen, M., and P.
              Conrad, "Stream Control Transmission Protocol (SCTP)
              Partial Reliability Extension", RFC 3758, May 2004,
              <http://www.rfc-editor.org/info/rfc3758>.

   [RFC4340]  Kohler, E., Handley, M., and S. Floyd, "Datagram
              Congestion Control Protocol (DCCP)", RFC 4340, March 2006,
              <http://www.rfc-editor.org/info/rfc4340>.

Top      Up      ToC       Page 55 
   [RFC4341]  Floyd, S. and E. Kohler, "Profile for Datagram Congestion
              Control Protocol (DCCP) Congestion Control ID 2: TCP-like
              Congestion Control", RFC 4341, March 2006,
              <http://www.rfc-editor.org/info/rfc4341>.

   [RFC6115]  Li, T., "Recommendation for a Routing Architecture", RFC
              6115, February 2011,
              <http://www.rfc-editor.org/info/rfc6115>.

   [SCWA99]   Savage, S., Cardwell, N., Wetherall, D., and T. Anderson,
              "TCP Congestion Control with a Misbehaving Receiver", ACM
              Computer Communication Review, 29 (5), pp. 71-78, October
              1999.

Top      Up      ToC       Page 56 
Acknowledgments

   This document grew out of a discussion on the end2end-interest
   mailing list, the public list of the End-to-End Research Group of the
   IRTF, and continued development under the IETF's TCP Maintenance and
   Minor Extensions (TCPM) working group.  We thank Mark Allman, Yuchung
   Cheng, Ted Faber, Gorry Fairhurst, Sally Floyd, Janardhan Iyengar,
   Reiner Ludwig, Pekka Savola, and Joe Touch for their contributions,
   in particular.  Keith McCloghrie provided some useful notes and
   clarification on the various MIB-related RFCs.

Top      Up      ToC       Page 57 
Authors' Addresses

   Martin Duke
   F5 Networks
   401 Elliott Ave W
   Seattle, WA  98119
   United States

   Phone: 206-272-7537
   EMail: m.duke@f5.com


   Robert Braden
   USC Information Sciences Institute
   Marina del Rey, CA  90292-6695
   United States

   Phone: 310-448-9173
   EMail: braden@isi.edu


   Wesley M. Eddy
   MTI Systems
   18013 Cleveland Parkway
   Suite 170
   Cleveland, OH  44135
   United States

   Phone: 216-433-6682
   EMail: wes@mti-systems.com


   Ethan Blanton
   Interrupt Sciences

   EMail: elb@interruptsciences.com


   Alexander Zimmermann
   NetApp, Inc.
   Sonnenallee 1
   Kirchheim  85551
   Germany

   Phone: +49 89 900594712
   EMail: alexander.zimmermann@netapp.com