⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1323.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 5 页
字号:
Network Working Group                                        V. JacobsonRequest for Comments: 1323                                           LBLObsoletes: RFC 1072, RFC 1185                                  R. Braden                                                                     ISI                                                               D. Borman                                                           Cray Research                                                                May 1992                  TCP Extensions for High PerformanceStatus of This Memo   This RFC specifies an IAB standards track protocol for the Internet   community, and requests discussion and suggestions for improvements.   Please refer to the current edition of the "IAB Official Protocol   Standards" for the standardization state and status of this protocol.   Distribution of this memo is unlimited.Abstract   This memo presents a set of TCP extensions to improve performance   over large bandwidth*delay product paths and to provide reliable   operation over very high-speed paths.  It defines new TCP options for   scaled windows and timestamps, which are designed to provide   compatible interworking with TCP's that do not implement the   extensions.  The timestamps are used for two distinct mechanisms:   RTTM (Round Trip Time Measurement) and PAWS (Protect Against Wrapped   Sequences).  Selective acknowledgments are not included in this memo.   This memo combines and supersedes RFC-1072 and RFC-1185, adding   additional clarification and more detailed specification.  Appendix C   summarizes the changes from the earlier RFCs.TABLE OF CONTENTS   1.  Introduction .................................................  2   2.  TCP Window Scale Option ......................................  8   3.  RTTM -- Round-Trip Time Measurement .......................... 11   4.  PAWS -- Protect Against Wrapped Sequence Numbers ............. 17   5.  Conclusions and Acknowledgments .............................. 25   6.  References ................................................... 25   APPENDIX A: Implementation Suggestions ........................... 27   APPENDIX B: Duplicates from Earlier Connection Incarnations ...... 27   APPENDIX C: Changes from RFC-1072, RFC-1185 ...................... 30   APPENDIX D: Summary of Notation .................................. 31   APPENDIX E: Event Processing ..................................... 32   Security Considerations .......................................... 37Jacobson, Braden, & Borman                                      [Page 1]RFC 1323          TCP Extensions for High Performance           May 1992   Authors' Addresses ............................................... 371. INTRODUCTION   The TCP protocol [Postel81] was designed to operate reliably over   almost any transmission medium regardless of transmission rate,   delay, corruption, duplication, or reordering of segments.   Production TCP implementations currently adapt to transfer rates in   the range of 100 bps to 10**7 bps and round-trip delays in the range   1 ms to 100 seconds.  Recent work on TCP performance has shown that   TCP can work well over a variety of Internet paths, ranging from 800   Mbit/sec I/O channels to 300 bit/sec dial-up modems [Jacobson88a].   The introduction of fiber optics is resulting in ever-higher   transmission speeds, and the fastest paths are moving out of the   domain for which TCP was originally engineered.  This memo defines a   set of modest extensions to TCP to extend the domain of its   application to match this increasing network capability.  It is based   upon and obsoletes RFC-1072 [Jacobson88b] and RFC-1185 [Jacobson90b].   There is no one-line answer to the question: "How fast can TCP go?".   There are two separate kinds of issues, performance and reliability,   and each depends upon different parameters.  We discuss each in turn.   1.1  TCP Performance      TCP performance depends not upon the transfer rate itself, but      rather upon the product of the transfer rate and the round-trip      delay.  This "bandwidth*delay product" measures the amount of data      that would "fill the pipe"; it is the buffer space required at      sender and receiver to obtain maximum throughput on the TCP      connection over the path, i.e., the amount of unacknowledged data      that TCP must handle in order to keep the pipeline full.  TCP      performance problems arise when the bandwidth*delay product is      large.  We refer to an Internet path operating in this region as a      "long, fat pipe", and a network containing this path as an "LFN"      (pronounced "elephan(t)").      High-capacity packet satellite channels (e.g., DARPA's Wideband      Net) are LFN's.  For example, a DS1-speed satellite channel has a      bandwidth*delay product of 10**6 bits or more; this corresponds to      100 outstanding TCP segments of 1200 bytes each.  Terrestrial      fiber-optical paths will also fall into the LFN class; for      example, a cross-country delay of 30 ms at a DS3 bandwidth      (45Mbps) also exceeds 10**6 bits.      There are three fundamental performance problems with the current      TCP over LFN paths:Jacobson, Braden, & Borman                                      [Page 2]RFC 1323          TCP Extensions for High Performance           May 1992      (1)  Window Size Limit           The TCP header uses a 16 bit field to report the receive           window size to the sender.  Therefore, the largest window           that can be used is 2**16 = 65K bytes.           To circumvent this problem, Section 2 of this memo defines a           new TCP option, "Window Scale", to allow windows larger than           2**16.  This option defines an implicit scale factor, which           is used to multiply the window size value found in a TCP           header to obtain the true window size.      (2)  Recovery from Losses           Packet losses in an LFN can have a catastrophic effect on           throughput.  Until recently, properly-operating TCP           implementations would cause the data pipeline to drain with           every packet loss, and require a slow-start action to           recover.  Recently, the Fast Retransmit and Fast Recovery           algorithms [Jacobson90c] have been introduced.  Their           combined effect is to recover from one packet loss per           window, without draining the pipeline.  However, more than           one packet loss per window typically results in a           retransmission timeout and the resulting pipeline drain and           slow start.           Expanding the window size to match the capacity of an LFN           results in a corresponding increase of the probability of           more than one packet per window being dropped.  This could           have a devastating effect upon the throughput of TCP over an           LFN.  In addition, if a congestion control mechanism based           upon some form of random dropping were introduced into           gateways, randomly spaced packet drops would become common,           possible increasing the probability of dropping more than one           packet per window.           To generalize the Fast Retransmit/Fast Recovery mechanism to           handle multiple packets dropped per window, selective           acknowledgments are required.  Unlike the normal cumulative           acknowledgments of TCP, selective acknowledgments give the           sender a complete picture of which segments are queued at the           receiver and which have not yet arrived.  Some evidence in           favor of selective acknowledgments has been published           [NBS85], and selective acknowledgments have been included in           a number of experimental Internet protocols -- VMTP           [Cheriton88], NETBLT [Clark87], and RDP [Velten84], and           proposed for OSI TP4 [NBS85].  However, in the non-LFN           regime, selective acknowledgments reduce the number ofJacobson, Braden, & Borman                                      [Page 3]RFC 1323          TCP Extensions for High Performance           May 1992           packets retransmitted but do not otherwise improve           performance, making their complexity of questionable value.           However, selective acknowledgments are expected to become           much more important in the LFN regime.           RFC-1072 defined a new TCP "SACK" option to send a selective           acknowledgment.  However, there are important technical           issues to be worked out concerning both the format and           semantics of the SACK option.  Therefore, SACK has been           omitted from this package of extensions.  It is hoped that           SACK can "catch up" during the standardization process.      (3)  Round-Trip Measurement           TCP implements reliable data delivery by retransmitting           segments that are not acknowledged within some retransmission           timeout (RTO) interval.  Accurate dynamic determination of an           appropriate RTO is essential to TCP performance.  RTO is           determined by estimating the mean and variance of the           measured round-trip time (RTT), i.e., the time interval           between sending a segment and receiving an acknowledgment for           it [Jacobson88a].           Section 4 introduces a new TCP option, "Timestamps", and then           defines a mechanism using this option that allows nearly           every segment, including retransmissions, to be timed at           negligible computational cost.  We use the mnemonic RTTM           (Round Trip Time Measurement) for this mechanism, to           distinguish it from other uses of the Timestamps option.   1.2 TCP Reliability      Now we turn from performance to reliability.  High transfer rate      enters TCP performance through the bandwidth*delay product.      However, high transfer rate alone can threaten TCP reliability by      violating the assumptions behind the TCP mechanism for duplicate      detection and sequencing.      An especially serious kind of error may result from an accidental      reuse of TCP sequence numbers in data segments.  Suppose that an      "old duplicate segment", e.g., a duplicate data segment that was      delayed in Internet queues, is delivered to the receiver at the      wrong moment, so that its sequence numbers falls somewhere within      the current window.  There would be no checksum failure to warn of      the error, and the result could be an undetected corruption of the      data.  Reception of an old duplicate ACK segment at the      transmitter could be only slightly less serious: it is likely toJacobson, Braden, & Borman                                      [Page 4]RFC 1323          TCP Extensions for High Performance           May 1992      lock up the connection so that no further progress can be made,      forcing an RST on the connection.      TCP reliability depends upon the existence of a bound on the      lifetime of a segment: the "Maximum Segment Lifetime" or MSL.  An      MSL is generally required by any reliable transport protocol,      since every sequence number field must be finite, and therefore      any sequence number may eventually be reused.  In the Internet      protocol suite, the MSL bound is enforced by an IP-layer      mechanism, the "Time-to-Live" or TTL field.      Duplication of sequence numbers might happen in either of two      ways:      (1)  Sequence number wrap-around on the current connection           A TCP sequence number contains 32 bits.  At a high enough           transfer rate, the 32-bit sequence space may be "wrapped"           (cycled) within the time that a segment is delayed in queues.      (2)  Earlier incarnation of the connection           Suppose that a connection terminates, either by a proper           close sequence or due to a host crash, and the same           connection (i.e., using the same pair of sockets) is           immediately reopened.  A delayed segment from the terminated           connection could fall within the current window for the new           incarnation and be accepted as valid.      Duplicates from earlier incarnations, Case (2), are avoided by      enforcing the current fixed MSL of the TCP spec, as explained in      Section 5.3 and Appendix B.   However, case (1), avoiding the      reuse of sequence numbers within the same connection, requires an      MSL bound that depends upon the transfer rate, and at high enough      rates, a new mechanism is required.      More specifically, if the maximum effective bandwidth at which TCP      is able to transmit over a particular path is B bytes per second,      then the following constraint must be satisfied for error-free      operation:          2**31 / B  > MSL (secs)                     [1]      The following table shows the value for Twrap = 2**31/B in      seconds, for some important values of the bandwidth B:Jacobson, Braden, & Borman                                      [Page 5]RFC 1323          TCP Extensions for High Performance           May 1992           Network       B*8          B         Twrap                      bits/sec   bytes/sec      secs           _______    _______      ______       ______           ARPANET       56kbps       7KBps    3*10**5 (~3.6 days)           DS1          1.5Mbps     190KBps    10**4 (~3 hours)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -