待另一个满尺寸数据段到来 。
序号混乱的数据段应该立即被确认,这样可以加速数据丢失恢复 。为了触发快速重传算
法,接收端应该在接收到序号间隔上的一个数据数据段时迅速发送一个ACK副本 。为了向发
送端反馈丢失恢复的信息,接收端应该在接收到填补部分或全部序号间隔的数据数据段时迅
速发送一个ACK 。
TCP接收端不应该为每个到来的数据段产生多于一个的ACK,otherthantoupdatethe
offeredwindowasthereceivingapplicationconsumesnewdata[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连接应该如何动作提出了建议,同时
也阐明了一些属于TCPACK生成范畴的问题 。最后,初始拥塞窗口的答应上界从一个数据
段增大到两个数据段 。
感谢
这里描述的四个算法是由VanJacobson提出的 。
这篇文档的一些文字摘自W.RichardStevens的"TCP/IPIllustrated,Volume1:The
Protocols"(Addison-Wesley,1994)和GaryR.Wright和W.RichardStevens的
“TCP/IPIllustrated,Volume2:TheImplementation”(Addison-Wesley,1995) 。这
些材料的使用得到了Addison-Wesley的答应 。
NealCardwell,SallyFloyd,CraigPartridge和JoeToUCh提供了许多有价值的建议 。
参考文献:
[AFP98]Allman,M.,Floyd,S.andC.Partridge,"IncreasingTCP"s
推荐阅读
- HTCP/0.0 超文本缓存协议
- WINS 服务的基本概念
- 最大分段 小议TCP的MSS以及MTU
- TCP的首部
- TCP的服务
- 学习心得 TCP/IP攻击原理分析总结
- touch+将平面都能变成触摸板 用手势控制设备视频介绍
- 1 TCP/IP详解学习笔记-基本概念
- 1 TCP/IP协议数据报结构详解
- 小型猪场如何控制猪舍环境
