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

📄 rfc1185.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 4 页
字号:
      TCP's quiet time of one MSL upon system startup handles the loss      of connection state in a system crash/restart.  For an      explanation, see for example "When to Keep Quiet" in the TCP      protocol specification [Postel81].  The MSL that is required here      does not depend upon the transfer speed.  The current TCP MSL of 2      minutes seems acceptable as an operational compromise, as many      host systems take this long to boot after a crash.      However, the timestamp option may be used to ease the MSL      requirements (or to provide additional security against data      corruption).  If timestamps are being used and if the timestamp      clock can be guaranteed to be monotonic over a system      crash/restart, i.e., if the first value of the sender's timestamp      clock after a crash/restart can be guaranteed to be greater than      the last value before the restart, then a quiet time will be      unnecessary.      To dispense totally with the quiet time would seem to require that      the host clock be synchronized to a time source that is stable      over the crash/restart period, with an accuracy of one timestamp      clock tick or better.  Fortunately, we can back off from this      strict requirement.  Suppose that the clock is always re-      synchronized to within N timestamp clock ticks and that bootingJacobson, Braden & Zhang                                       [Page 11]RFC 1185               TCP over High-Speed Paths            October 1990      (extended with a quiet time, if necessary) takes more than N      ticks.  This will guarantee monotonicity of the timestamps, which      can then be used to reject old duplicates even without an enforced      MSL.   3.2  Closing and Reopening a Connection      When a TCP connection is closed, a delay of 2*MSL in TIME-WAIT      state ties up the socket pair for 4 minutes (see Section 3.5 of      [Postel81].  Applications built upon TCP that close one connection      and open a new one (e.g., an FTP data transfer connection using      Stream mode) must choose a new socket pair each time.  This delay      serves two different purposes:      (a)  Implement the full-duplex reliable close handshake of TCP.           The proper time to delay the final close step is not really           related to the MSL; it depends instead upon the RTO for the           FIN segments and therefore upon the RTT of the path.*           Although there is no formal upper-bound on RTT, common           network engineering practice makes an RTT greater than 1           minute very unlikely.  Thus, the 4 minute delay in TIME-WAIT           state works satisfactorily to provide a reliable full-duplex           TCP close.  Note again that this is independent of MSL           enforcement and network speed.           The TIME-WAIT state could cause an indirect performance           problem if an application needed to repeatedly close one           connection and open another at a very high frequency, since           the number of available TCP ports on a host is less than           2**16.  However, high network speeds are not the major           contributor to this problem; the RTT is the limiting factor           in how quickly connections can be opened and closed.           Therefore, this problem will no worse at high transfer           speeds.      (b)  Allow old duplicate segements to expire.           Suppose that a host keeps a cache of the last timestamp           received from each remote host.  This can be used to reject           old duplicate segments from earlier incarnations of the_________________________*Note: It could be argued that the side that is sending  a  FIN  knowswhat  degree  of reliability it needs, and therefore it should be ableto  determine  the  length  of  the  TIME-WAIT  delay  for  the  FIN'srecipient.   This could be accomplished with an appropriate TCP optionin FIN segments.Jacobson, Braden & Zhang                                       [Page 12]RFC 1185               TCP over High-Speed Paths            October 1990           connection, if the timestamp clock can be guaranteed to have           ticked at least once since the old conennection was open.           This requires that the TIME-WAIT delay plus the RTT together           must be at least one tick of the sender's timestamp clock.           Note that this is a variant on the mechanism proposed by           Garlick, Rom, and Postel (see the appendix), which required           each host to maintain connection records containing the           highest sequence numbers on every connection.  Using           timestamps instead, it is only necessary to keep one quantity           per remote host, regardless of the number of simultaneous           connections to that host.      We conclude that if all hosts used the TCP timestamp algorithm      described in Section 2, enforcement of a maximum segment lifetime      would be unnecessary and the quiet time at system startup could be      shortened or removed.  In any case, the timestamp mechanism can      provide additional security against old duplicates from earlier      connection incarnations.   However, a 4 minute TIME-WAIT delay      (unrelated to MSL enforcement or network speed) must be retained      to provide the reliable close handshake of TCP.4. CONCLUSIONS   We have presented a mechanism, based upon the TCP timestamp echo   option of RFC-1072, that will allow very high TCP transfer rates   without reliability problems due to old duplicate segments on the   same connection.  This mechanism also provides additional security   against intrusion of old duplicates from earlier incarnations of the   same connection.  If the timestamp mechanism were used by all hosts,   the quiet time at system startup could be eliminated and enforcement   of a maximum segment lifetime (MSL) would no longer be necessary.REFERENCES   [Cerf76]  Cerf, V., "TCP Resynchronization", Tech Note #79, Digital   Systems Lab, Stanford, January 1976.   [Dalal74]  Dalal, Y., "More on Selecting Sequence Numbers", INWG   Protocol Note #4, October 1974.   [Garlick77]  Garlick, L., R. Rom, and J. Postel, "Issues in Reliable   Host-to-Host Protocols", Proc. Second Berkeley Workshop on   Distributed Data Management and Computer Networks, May 1977.   [Hamming77]  Hamming, R., "Digital Filters", ISBN 0-13-212571-4,   Prentice Hall, Englewood Cliffs, N.J., 1977.Jacobson, Braden & Zhang                                       [Page 13]RFC 1185               TCP over High-Speed Paths            October 1990   [Jacobson88]  Jacobson, V., and R. Braden, "TCP Extensions for   Long-Delay Paths", RFC 1072, LBL and USC/Information Sciences   Institute, October 1988.   [Jacobson90]  Jacobson, V., "4BSD Header Prediction", ACM Computer   Communication Review, April 1990.   [McKenzie89]  McKenzie, A., "A Problem with the TCP Big Window   Option", RFC 1110, BBN STC, August 1989.   [Postel81]  Postel, J., "Transmission Control Protocol", RFC 793,   DARPA, September 1981.   [Tomlinson74]  Tomlinson, R., "Selecting Sequence Numbers", INWG   Protocol Note #2, September 1974.   [Watson81]  Watson, R., "Timer-based Mechanisms in Reliable   Transport Protocol Connection Management", Computer Networks,   Vol. 5, 1981.Jacobson, Braden & Zhang                                       [Page 14]RFC 1185               TCP over High-Speed Paths            October 1990APPENDIX -- Protection against Old Duplicates in TCP   During the development of TCP, a great deal of effort was devoted to   the problem of protecting a TCP connection from segments left from   earlier incarnations of the same connection.  Several different   mechanisms were proposed for this purpose [Tomlinson74] [Dalal74]   [Cerf76] [Garlick77].   The connection parameters that are required in this discussion are:           Tc = Connection duration in seconds.           Nc = Total number of bytes sent on connection.           B = Effective bandwidth of connection = Nc/Tc.   Tomlinson proposed a scheme with two parts: a clock-driven selection   of ISN (Initial Sequence Number) for a connection, and a   resynchronization procedure [Tomlinson74]. The clock-driven scheme   chooses:      ISN = (integer(R*t)) mod 2**32                 [2]   where t is the current time relative to an arbitrary origin, and R is   a constant.  R was intended to be chosen so that ISN will advance   faster than sequence numbers will be used up on the connection.   However, at high speeds this will not be true; the consequences of   this will be discussed below.   The clock-driven choice of ISN in formula [2] guarantees freedom from   old duplicates matching a reopened connection if the original   connection was "short-lived" and "slow".  By "short-lived", we mean a   connection that stayed open for a time Tc less than the time to cycle   the ISN, i.e., Tc < 2**32/R seconds.  By "slow", we mean that the   effective transfer rate B is less than R.   This is illustrated in Figure 1, where sequence numbers are plotted   against time.  The asterisks show the ISN lines from formula [2],   while the circles represent the trajectories of several short-lived   incarnations of the same connection, each terminating at the "x".        Note: allowing rapid reuse of connections was believed to be an        important goal during the early TCP development.  This        requirement was driven by the hope that TCP would serve as a        basis for user-level transaction protocols as well as        connection-oriented protocols.  The paradigm discussed was the        "Christmas Tree" or "Kamikazee" segment that contained SYN and        FIN bits as well as data.  Enthusiasm for this was somewhatJacobson, Braden & Zhang                                       [Page 15]RFC 1185               TCP over High-Speed Paths            October 1990        dampened when it was observed that the 3-way SYN handshake and        the FIN handshake mean that 5 packets are required for a minimum        exchange. Furthermore, the TIME-WAIT state delay implies that        the same connection really cannot be reopened immediately.  No        further work has been done in this area, although existing        applications (especially SMTP) often generate very short TCP        sessions.  The reuse problem is generally avoided by using a        different port pair for each connection.        |- 2**32       ISN             ISN        |              *               *        |             *               *        |            *               *        |           *x              *        |          o               *    ^   |         *               *    |   |        *  x            *        |       * o             *    S   |      *o              *    e   |     o               *    q   |    *               *        |   *               *    #   |  * x             *        | *o              *        |o_______________*____________                         ^         Time -->                       4.55hrs     Figure 1.  Clock-Driven ISN  avoiding duplication on                short-Lived, slow connections.   However, clock-driven ISN selection does not protect against old   duplicate packets for a long-lived or fast connection:  the   connection may close (or crash) just as the ISN has cycled around and   reached the same value again.  If the connection is then reopened, a   datagram still in transit from the old connection may fall into the

⌨️ 快捷键说明

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