diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc3042.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc3042.txt')
-rw-r--r-- | doc/rfc/rfc3042.txt | 507 |
1 files changed, 507 insertions, 0 deletions
diff --git a/doc/rfc/rfc3042.txt b/doc/rfc/rfc3042.txt new file mode 100644 index 0000000..a190655 --- /dev/null +++ b/doc/rfc/rfc3042.txt @@ -0,0 +1,507 @@ + + + + + + +Network Working Group M. Allman +Request for Comments: 3042 NASA GRC/BBN +Category: Standards Track H. Balakrishnan + MIT + S. Floyd + ACIRI + January 2001 + + + Enhancing TCP's Loss Recovery Using Limited Transmit + +Status of this Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2001). All Rights Reserved. + +Abstract + + This document proposes a new Transmission Control Protocol (TCP) + mechanism that can be used to more effectively recover lost segments + when a connection's congestion window is small, or when a large + number of segments are lost in a single transmission window. The + "Limited Transmit" algorithm calls for sending a new data segment in + response to each of the first two duplicate acknowledgments that + arrive at the sender. Transmitting these segments increases the + probability that TCP can recover from a single lost segment using the + fast retransmit algorithm, rather than using a costly retransmission + timeout. Limited Transmit can be used both in conjunction with, and + in the absence of, the TCP selective acknowledgment (SACK) mechanism. + +1 Introduction + + A number of researchers have observed that TCP's loss recovery + strategies do not work well when the congestion window at a TCP + sender is small. This can happen, for instance, because there is + only a limited amount of data to send, or because of the limit + imposed by the receiver-advertised window, or because of the + constraints imposed by end-to-end congestion control over a + connection with a small bandwidth-delay product + [Riz96,Mor97,BPS+98,Bal98,LK98]. When a TCP detects a missing + segment, it enters a loss recovery phase using one of two methods. + + + +Allman, et al. Standards Track [Page 1] + +RFC 3042 Enhancing TCP Loss Recovery January 2001 + + + First, if an acknowledgment (ACK) for a given segment is not received + in a certain amount of time a retransmission timeout occurs and the + segment is resent [RFC793,PA00]. Second, the "Fast Retransmit" + algorithm resends a segment when three duplicate ACKs arrive at the + sender [Jac88,RFC2581]. However, because duplicate ACKs from the + receiver are also triggered by packet reordering in the Internet, the + TCP sender waits for three duplicate ACKs in an attempt to + disambiguate segment loss from packet reordering. Once in a loss + recovery phase, a number of techniques can be used to retransmit lost + segments, including slow start-based recovery or Fast Recovery + [RFC2581], NewReno [RFC2582], and loss recovery based on selective + acknowledgments (SACKs) [RFC2018,FF96]. + + TCP's retransmission timeout (RTO) is based on measured round-trip + times (RTT) between the sender and receiver, as specified in [PA00]. + To prevent spurious retransmissions of segments that are only delayed + and not lost, the minimum RTO is conservatively chosen to be 1 + second. Therefore, it behooves TCP senders to detect and recover + from as many losses as possible without incurring a lengthy timeout + when the connection remains idle. However, if not enough duplicate + ACKs arrive from the receiver, the Fast Retransmit algorithm is never + triggered---this situation occurs when the congestion window is small + or if a large number of segments in a window are lost. For instance, + consider a congestion window (cwnd) of three segments. If one + segment is dropped by the network, then at most two duplicate ACKs + will arrive at the sender. Since three duplicate ACKs are required + to trigger Fast Retransmit, a timeout will be required to resend the + dropped packet. + + [BPS+97] found that roughly 56% of retransmissions sent by a busy web + server were sent after the RTO expires, while only 44% were handled + by Fast Retransmit. In addition, only 4% of the RTO-based + retransmissions could have been avoided with SACK, which of course + has to continue to disambiguate reordering from genuine loss. In + contrast, using the technique outlined in this document and in + [Bal98], 25% of the RTO-based retransmissions in that dataset would + have likely been avoided. + + The next section of this document outlines small changes to TCP + senders that will decrease the reliance on the retransmission timer, + and thereby improve TCP performance when Fast Retransmit is not + triggered. These changes do not adversely affect the performance of + TCP nor interact adversely with other connections, in other + circumstances. + + + + + + + +Allman, et al. Standards Track [Page 2] + +RFC 3042 Enhancing TCP Loss Recovery January 2001 + + +1.1 Terminology + + In this document, he key words "MUST", "MUST NOT", "REQUIRED", + "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", + AND "OPTIONAL" are to be interpreted as described in RFC 2119 [1] and + indicate requirement levels for protocols. + +2 The Limited Transmit Algorithm + + When a TCP sender has previously unsent data queued for transmission + it SHOULD use the Limited Transmit algorithm, which calls for a TCP + sender to transmit new data upon the arrival of the first two + consecutive duplicate ACKs when the following conditions are + satisfied: + + * The receiver's advertised window allows the transmission of the + segment. + + * The amount of outstanding data would remain less than or equal + to the congestion window plus 2 segments. In other words, the + sender can only send two segments beyond the congestion window + (cwnd). + + The congestion window (cwnd) MUST NOT be changed when these new + segments are transmitted. Assuming that these new segments and the + corresponding ACKs are not dropped, this procedure allows the sender + to infer loss using the standard Fast Retransmit threshold of three + duplicate ACKs [RFC2581]. This is more robust to reordered packets + than if an old packet were retransmitted on the first or second + duplicate ACK. + + Note: If the connection is using selective acknowledgments [RFC2018], + the data sender MUST NOT send new segments in response to duplicate + ACKs that contain no new SACK information, as a misbehaving receiver + can generate such ACKs to trigger inappropriate transmission of data + segments. See [SCWA99] for a discussion of attacks by misbehaving + receivers. + + Limited Transmit follows the "conservation of packets" congestion + control principle [Jac88]. Each of the first two duplicate ACKs + indicate that a segment has left the network. Furthermore, the + sender has not yet decided that a segment has been dropped and + therefore has no reason to assume that the current congestion control + state is inaccurate. Therefore, transmitting segments does not + deviate from the spirit of TCP's congestion control principles. + + + + + + +Allman, et al. Standards Track [Page 3] + +RFC 3042 Enhancing TCP Loss Recovery January 2001 + + + [BPS99] shows that packet reordering is not a rare network event. + [RFC2581] does not provide for sending of data on the first two + duplicate ACKs that arrive at the sender. This causes a burst of + segments to be sent when an ACK for new data does arrive following + packet reordering. Using Limited Transmit, data packets will be + clocked out by incoming ACKs and therefore transmission will not be + as bursty. + + Note: Limited Transmit is implemented in the ns simulator [NS]. + Researchers wishing to investigate this mechanism further can do so + by enabling "singledup_" for the given TCP connection. + +3 Related Work + + Deployment of Explicit Congestion Notification (ECN) [Flo94,RFC2481] + may benefit connections with small congestion window sizes [SA00]. + ECN provides a method for indicating congestion to the end-host + without dropping segments. While some segment drops may still occur, + ECN may allow TCP to perform better with small congestion window + sizes because the sender can avoid many of the Fast Retransmits and + Retransmit Timeouts that would otherwise have been needed to detect + dropped segments [SA00]. + + When ECN-enabled TCP traffic competes with non-ECN-enabled TCP + traffic, ECN-enabled traffic can receive up to 30% higher goodput. + For bulk transfers, the relative performance benefit of ECN is + greatest when on average each flow has 3-4 outstanding packets during + each round-trip time [ZQ00]. This should be a good estimate for the + performance impact of a flow using Limited Transmit, since both ECN + and Limited Transmit reduce the reliance on the retransmission timer + for signaling congestion. + + The Rate-Halving congestion control algorithm [MSML99] uses a form of + limited transmit, as it calls for transmitting a data segment on + every second duplicate ACK that arrives at the sender. The algorithm + decouples the decision of what to send from the decision of when to + send. However, similar to Limited Transmit the algorithm will always + send a new data segment on the second duplicate ACK that arrives at + the sender. + +4 Security Considerations + + The additional security implications of the changes proposed in this + document, compared to TCP's current vulnerabilities, are minimal. + The potential security issues come from the subversion of end-to-end + congestion control from "false" duplicate ACKs, where a "false" + duplicate ACK is a duplicate ACK that does not actually acknowledge + new data received at the TCP receiver. False duplicate ACKs could + + + +Allman, et al. Standards Track [Page 4] + +RFC 3042 Enhancing TCP Loss Recovery January 2001 + + + result from duplicate ACKs that are themselves duplicated in the + network, or from misbehaving TCP receivers that send false duplicate + ACKs to subvert end-to-end congestion control [SCWA99,RFC2581]. + + When the TCP data receiver has agreed to use the SACK option, the TCP + data sender has fairly strong protection against false duplicate + ACKs. In particular, with SACK, a duplicate ACK that acknowledges + new data arriving at the receiver reports the sequence numbers of + that new data. Thus, with SACK, the TCP sender can verify that an + arriving duplicate ACK acknowledges data that the TCP sender has + actually sent, and for which no previous acknowledgment has been + received, before sending new data as a result of that acknowledgment. + For further protection, the TCP sender could keep a record of packet + boundaries for transmitted data packets, and recognize at most one + valid acknowledgment for each packet (e.g., the first acknowledgment + acknowledging the receipt of all of the sequence numbers in that + packet). + + One could imagine some limited protection against false duplicate + ACKs for a non-SACK TCP connection, where the TCP sender keeps a + record of the number of packets transmitted, and recognizes at most + one acknowledgment per packet to be used for triggering the sending + of new data. However, this accounting of packets transmitted and + acknowledged would require additional state and extra complexity at + the TCP sender, and does not seem necessary. + + The most important protection against false duplicate ACKs comes from + the limited potential of duplicate ACKs in subverting end-to-end + congestion control. There are two separate cases to consider: when + the TCP sender receives less than a threshold number of duplicate + ACKs, and when the TCP sender receives at least a threshold number of + duplicate ACKs. In the latter case a TCP with Limited Transmit will + behave essentially the same as a TCP without Limited Transmit in that + the congestion window will be halved and a loss recovery period will + be initiated. + + When a TCP sender receives less than a threshold number of duplicate + ACKs a misbehaving receiver could send two duplicate ACKs after each + regular ACK. One might imagine that the TCP sender would send at + three times its allowed sending rate. However, using Limited + Transmit as outlined in section 2 the sender is only allowed to + exceed the congestion window by less than the duplicate ACK threshold + (of three segments), and thus would not send a new packet for each + duplicate ACK received. + + + + + + + +Allman, et al. Standards Track [Page 5] + +RFC 3042 Enhancing TCP Loss Recovery January 2001 + + +Acknowledgments + + Bill Fenner, Jamshid Mahdavi and the Transport Area Working Group + provided valuable feedback on an early version of this document. + +References + + [Bal98] Hari Balakrishnan. Challenges to Reliable Data Transport + over Heterogeneous Wireless Networks. Ph.D. Thesis, + University of California at Berkeley, August 1998. + + [BPS+97] Hari Balakrishnan, Venkata Padmanabhan, Srinivasan Seshan, + Mark Stemm, and Randy Katz. TCP Behavior of a Busy Web + Server: Analysis and Improvements. Technical Report + UCB/CSD-97-966, August 1997. Available from + http://nms.lcs.mit.edu/~hari/papers/csd-97-966.ps. (Also + in Proc. IEEE INFOCOM Conf., San Francisco, CA, March + 1998.) + + [BPS99] Jon Bennett, Craig Partridge, Nicholas Shectman. Packet + Reordering is Not Pathological Network Behavior. IEEE/ACM + Transactions on Networking, December 1999. + + [FF96] Kevin Fall, Sally Floyd. Simulation-based Comparisons of + Tahoe, Reno, and SACK TCP. ACM Computer Communication + Review, July 1996. + + [Flo94] Sally Floyd. TCP and Explicit Congestion Notification. + ACM Computer Communication Review, October 1994. + + [Jac88] Van Jacobson. Congestion Avoidance and Control. ACM + SIGCOMM 1988. + + [LK98] Dong Lin, H.T. Kung. TCP Fast Recovery Strategies: + Analysis and Improvements. Proceedings of InfoCom, March + 1998. + + [MSML99] Matt Mathis, Jeff Semke, Jamshid Mahdavi, Kevin Lahey. The + Rate Halving Algorithm, 1999. URL: + http://www.psc.edu/networking/rate_halving.html. + + [Mor97] Robert Morris. TCP Behavior with Many Flows. Proceedings + of the Fifth IEEE International Conference on Network + Protocols. October 1997. + + [NS] Ns network simulator. URL: http://www.isi.edu/nsnam/. + + + + + +Allman, et al. Standards Track [Page 6] + +RFC 3042 Enhancing TCP Loss Recovery January 2001 + + + [PA00] Paxson, V. and M. Allman, "Computing TCP's Retransmission + Timer", RFC 2988, November 2000. + + [Riz96] Luigi Rizzo. Issues in the Implementation of Selective + Acknowledgments for TCP. January, 1996. URL: + http://www.iet.unipi.it/~luigi/selack.ps + + [SA00] Hadi Salim, J. and U. Ahmed, "Performance Evaluation of + Explicit Congestion Notification (ECN) in IP Networks", RFC + 2884, July 2000. + + [SCWA99] Stefan Savage, Neal Cardwell, David Wetherall, Tom + Anderson. TCP Congestion Control with a Misbehaving + Receiver. ACM Computer Communications Review, October + 1999. + + [RFC793] Postel, J., "Transmission Control Protocol", STD 7, RFC + 793, September 1981. + + [RFC2018] Mathis, M., Mahdavi, J., Floyd, S. and A. Romanow, "TCP + Selective Acknowledgement Options", RFC 2018, October 1996. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC2481] Ramakrishnan, K. and S. Floyd, "A Proposal to Add Explicit + Congestion Notification (ECN) to IP", RFC 2481, January + 1999. + + [RFC2581] Allman, M., Paxson, V. and W. Stevens, "TCP Congestion + Control", RFC 2581, April 1999. + + [RFC2582] Floyd, S. and T. Henderson, "The NewReno Modification to + TCP's Fast Recovery Algorithm", RFC 2582, April 1999. + + [ZQ00] Yin Zhang and Lili Qiu, Understanding the End-to-End + Performance Impact of RED in a Heterogeneous Environment, + Cornell CS Technical Report 2000-1802, July 2000. URL + http://www.cs.cornell.edu/yzhang/papers.htm. + + + + + + + + + + + + +Allman, et al. Standards Track [Page 7] + +RFC 3042 Enhancing TCP Loss Recovery January 2001 + + +Authors' Addresses + + Mark Allman + NASA Glenn Research Center/BBN Technologies + Lewis Field + 21000 Brookpark Rd. MS 54-5 + Cleveland, OH 44135 + + Phone: +1-216-433-6586 + Fax: +1-216-433-8705 + EMail: mallman@grc.nasa.gov + http://roland.grc.nasa.gov/~mallman + + + Hari Balakrishnan + Laboratory for Computer Science + 545 Technology Square + Massachusetts Institute of Technology + Cambridge, MA 02139 + + EMail: hari@lcs.mit.edu + http://nms.lcs.mit.edu/~hari/ + + + Sally Floyd + AT&T Center for Internet Research at ICSI (ACIRI) + 1947 Center St, Suite 600 + Berkeley, CA 94704 + + Phone: +1-510-666-2989 + EMail: floyd@aciri.org + http://www.aciri.org/floyd/ + + + + + + + + + + + + + + + + + + + +Allman, et al. Standards Track [Page 8] + +RFC 3042 Enhancing TCP Loss Recovery January 2001 + + +Full Copyright Statement + + Copyright (C) The Internet Society (2001). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Allman, et al. Standards Track [Page 9] + |