📄 rfcrfc2581.txt
字号:
“Stretch ACK violation”和那里对比每隔一个满尺寸数据段更频繁生成ACK可能带来的性
能问题的讨论。
在某些情况下,发送端和接收端可能对一个满尺寸数据段的组成没有达成一致意见。如
果一个实现每从发送端接收到2*RMSS字节数据就发送至少一个确认的话,那么此实现就被认
为符合要求(达成一致意见),RMSS是接收端向发送端指定的最大数据段尺寸(据[Bra89],
如果接收端没有在连接期间指定一个MSS选项,就是默认的536字节)。发送端可能被迫使用
尺寸小于RMSS的数据段,由于最大传输单元(MTU),MTU路径发现算法或其它因素的缘故。
比如,考虑如下情况:接收端通知RMSS为X字节,但是发送端因为MTU路径发现算法(或者
发送端的MTU尺寸)而以一个尺寸为Y字节的数据段结束。在一个ACK发送之前如果接收端
等待2*X字节到达,那么它将生成扩展ACK。很明显这将占据多于两个的尺寸大于Y字节的数
据段。因此,当一个特定的算法没有定义时,接收端最好是试着阻止这种情况,比如通过至
少每隔一个数据段进行确认,不管尺寸。最后,我们重申,ACK不能被延迟长于500毫秒来等
待另一个满尺寸数据段到来。
序号混乱的数据段应该立即被确认,这样可以加速数据丢失恢复。为了触发快速重传算
法,接收端应该在接收到序号间隔上的一个数据数据段时迅速发送一个ACK副本。为了向发
送端反馈丢失恢复的信息,接收端应该在接收到填补部分或全部序号间隔的数据数据段时迅
速发送一个ACK。
TCP接收端不应该为每个到来的数据段产生多于一个的ACK,other than to update the
offered window as the receiving application consumes new data[page
42,Pos81][cla82].
4.3丢失恢复机制
TCP研究人员已经提出了许多丢失恢复算法,这些算法扩充了快速重传和快速恢复算法。
其中一些算法以TCP的选择性确认选项为基础[MMFR96],比如[FF96,MM96a,MM96b],其它的不
要求SACKs[Hoe96,FF96,FH98]。不使用SACK的算法使用“部分确认”(当检测到丢失时仅对
包含新数据的数据段进行ACK确认,而不是所有传输中的数据)来触发重传。尽管这篇文档
没有标准化任何可能改进快速重传/快速恢复的特定算法,但是这些算法暗地里是允许的,只
要它们遵守上面概括的基本的四个算法的一般原则。
因此,当数据窗口首次被检测到丢失时,ssthresh必须被设定为不大于等式(3)中给
出的值。其次,直到数据窗口中所有可疑的丢失数据段都被修复为止,每个RTT中传送的数
据段数量在检测到丢失时不能大于未传送的数据段的数目的一半。最后,当给定的窗口中的
所有丢失数据段都被重传后,cwnd必须设定不大于ssthresh,并且必须使用拥塞避免来进一
步增大cwnd。两个连续的数据窗口的丢失,或者重传的丢失,应该被视为拥塞的标志,在这
种情况下,cwnd(以及ssthresh)必须减小两倍。
[Hoe96,FF96,MM96a,MM6b]里概括的算法遵循这篇文档里概括的四个基本拥塞控制算法
的原则。
5.安全考虑
这篇文档要求TCP在出现超时重传和确认副本的情况下减小它的发送速率。因此攻击者能
够通过引起数据包或者它们的确认丢失的方式来削减TCP连接的性能,也可以通过伪造额
外的确认副本来达到此目的。接连引起两个拥塞控制事件常常使ssthresh减小到它的最
小值2*SMSS,并使连接迅速进入低速运行的拥塞避免状态。
Internet很大程度上依赖于这些算法的正确实现来保持网络的稳定、避免拥塞崩溃。攻
击者能够通过伪造额外的重复确认或对新数据的额外确认的方式来使TCP端点对拥塞作
出更激烈的反应。这样的攻击甚至可以使网络的一部分陷入拥塞崩溃。
6.相对于RFC2001的变化
这篇文档已经详尽地重写了,逐条列出两篇文档之间的不同是不现实的。这篇文档的目
的不是为了改变RFC2001中给出的建议,而是为了进一步阐明在2001中没有详细讨论其
细节的情况。特别是,这篇文档对长时间闲置后TCP连接应该如何动作提出了建议,同时
也阐明了一些属于TCP ACK生成范畴的问题。最后,初始拥塞窗口的允许上界从一个数据
段增大到两个数据段。
感谢
这里描述的四个算法是由Van Jacobson提出的。
这篇文档的一些文字摘自W. Richard Stevens 的"TCP/IP Illustrated, Volume 1: The
Protocols" (Addison-Wesley, 1994)和Gary R. Wright 和 W. Richard Stevens的
“TCP/IP Illustrated, Volume 2: The Implementation” (Addison-Wesley, 1995)。这
些材料的使用得到了Addison-Wesley的允许。
Neal Cardwell, Sally Floyd, Craig Partridge 和 Joe Touch提供了许多有价值的建议。
参考文献:
[AFP98] Allman, M., Floyd, S. and C. Partridge, "Increasing TCP's
Initial Window Size, RFC 2414, September 1998.
[Bra89] Braden, R., "Requirements for Internet Hosts --
Communication Layers", STD 3, RFC 1122, October 1989.
[Bra97] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[Cla82] Clark, D., "Window and Acknowledgment Strategy in TCP", RFC
813, July 1982.
[FF96] Fall, K. and S. Floyd, "Simulation-based Comparisons of
Tahoe, Reno and SACK TCP", Computer Communication Review,
July 1996. ftp://ftp.ee.lbl.gov/papers/sacks.ps.Z.
[FH98] Floyd, S. and T. Henderson, "The NewReno Modification to
TCP's Fast Recovery Algorithm", RFC 2582, April 1999.
[Flo94] Floyd, S., "TCP and Successive Fast Retransmits. Technical
report", October 1994.
ftp://ftp.ee.lbl.gov/papers/fastretrans.ps.
[Hoe96] Hoe, J., "Improving the Start-up Behavior of a Congestion
Control Scheme for TCP", In ACM SIGCOMM, August 1996.
[HTH98] Hughes, A., Touch, J. and J. Heidemann, "Issues in TCP
Slow-Start Restart After Idle", Work in Progress.
[Jac88] Jacobson, V., "Congestion Avoidance and Control", Computer
Communication Review, vol. 18, no. 4, pp. 314-329, Aug.
1988. ftp://ftp.ee.lbl.gov/papers/congavoid.ps.Z.
[Jac90] Jacobson, V., "Modified TCP Congestion Avoidance Algorithm",
end2end-interest mailing list, April 30, 1990.
ftp://ftp.isi.edu/end2end/end2end-interest-1990.mail.
[MD90] Mogul, J. and S. Deering, "Path MTU Discovery", RFC 1191,
November 1990.
[MM96a] Mathis, M. and J. Mahdavi, "Forward Acknowledgment: Refining
TCP Congestion Control", Proceedings of SIGCOMM'96, August,
1996, Stanford, CA. Available
fromhttp://www.psc.edu/networking/papers/papers.html
[MM96b] Mathis, M. and J. Mahdavi, "TCP Rate-Halving with Bounding
Parameters", Technical report. Available from
http://www.psc.edu/networking/papers/FACKnotes/current.
[MMFR96] Mathis, M., Mahdavi, J., Floyd, S. and A. Romanow, "TCP
Selective Acknowledgement Options", RFC 2018, October 1996.
[PAD+98] Paxson, V., Allman, M., Dawson, S., Fenner, W., Griner, J.,
Heavens, I., Lahey, K., Semke, J. and B. Volz, "Known TCP
Implementation Problems", RFC 2525, March 1999.
[Pax97] Paxson, V., "End-to-End Internet Packet Dynamics",
Proceedings of SIGCOMM '97, Cannes, France, Sep. 1997.
[Pos81] Postel, J., "Transmission Control Protocol", STD 7, RFC 793,
September 1981.
[Ste94] Stevens, W., "TCP/IP Illustrated, Volume 1: The Protocols",
Addison-Wesley, 1994.
[Ste97] Stevens, W., "TCP Slow Start, Congestion Avoidance, Fast
Retransmit, and Fast Recovery Algorithms", RFC 2001, January
1997.
[WS95] Wright, G. and W. Stevens, "TCP/IP Illustrated, Volume 2:
The Implementation", Addison-Wesley, 1995.
作者地址:
Mark Allman
NASA Glenn Research Center/Sterling Software
Lewis Field
21000 Brookpark Rd. MS 54-2
Cleveland, OH 44135
216-433-6586
EMail: mallman@grc.nasa.gov
http://roland.grc.nasa.gov/~mallman
Vern Paxson
ACIRI / ICSI
1947 Center Street
Suite 600
Berkeley, CA 94704-1198
Phone: +1 510/642-4274 x302
EMail: vern@aciri.org
W. Richard Stevens
1202 E. Paseo del Zorro
Tucson, AZ 85718
520-297-9416
EMail: rstevens@kohala.com
http://www.kohala.com/~rstevens
Full Copyright Statement
Copyright (C) The Internet Society (1999). 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.
RFC2581——TCP Congestion Control TCP拥塞控制
1
RFC文档中文翻译计划
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -