TCP拥塞控制

【TCP拥塞控制】本备忘录的状态
本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建
议以得到改进 。请参考最新版的“Internet正式协议标准”(STD1)来获得本协议的标准化程
度和状态 。本备忘录的发布不受任何限制 。
版权声明
Copyright(C)TheInternetSociety(2001).
摘要:
这篇文档定义了TCP的四种相互交织的拥塞控制算法:慢启动、拥塞避免、快速重传、
以及快速恢复 。文档也讲述了在一数据段相当长的闲置之后,TCP应该如何开始传送,并讨
论了各种确认产生方法 。
目录
1.介绍 2
2.定义 2
3.拥塞控制算法 3
3.1慢启动和拥塞避免 3
3.2快速重传/快速恢复 4
4.附加考虑 5
4.1闲置后重启连接 5
4.2确认生成 5
4.3丢失恢复机制 6
5.安全考虑 6
6.相对于RFC2001的变化 7
感谢 7
参考文献: 7
作者地址: 9
1.介绍
这篇文档讲述了四种TCP拥塞控制算法:慢启动、拥塞避免、快速重传和快速恢复 。这
些算法是在[Jac88]和[Jac90]中被设计出来的 。它们在TCP中的使用在[Bra89]中被标准化 。
这篇文档是对[Ste97]的更新 。除了讲述拥塞控制算法外,这篇文档也讲述了在相当长的
闲置期后TCP连接应该做些什么,讲述并澄清了关于产生TCPACK的一些问题 。
[Ste94]提供了实际使用的这些算法的例子,[WS95]解释了这些算法的BSD实现的源代
码 。
这篇文档组织结构如下 。第二节提供了文档中要使用的各种定义 。第三节讲述了拥塞控
制算法 。第四节概括了和拥塞控制算法相关的问题,最后,第五节概括了安全方面的考虑 。
要害字"MUST","MUSTNOT","REQUIRED","SHALL","SHALLNOT","SHOULD","SHOULD
NOT","RECOMMENDED","MAY"及"OPTIONAL"在这篇文档里面的含义同[Bra97]里描述的一样 。
2.定义
这一节提供了此文档其余节要使用的一些术语的定义 。
数据段:一个数据段就是任意的TCP/IP数据或确认包(或两者兼备) 。
发送端最大数据段尺寸(SMSS):SMSS是发送端能发送的最大数据段的尺寸 。这个值是
以网络最大传送单元(MTU),MTU路径发现算法,RMSS(见下一项),或其它因素为基础的 。
该尺寸不包括TCP/IP头和选项 。
接收端最大数据段尺寸(RMSS):RMSS是接收端愿意接收的最大数据段的尺寸 。这个值
在连接开始时接收端发送的MSS选项中说明 。又或者,假如MSS选项没有使用,就是536字
节[Bra89].该尺寸不包括TCP/IP头和选项 。
满尺寸数据段:一个包括答应最大数目数据的数据段(也就是说,一个包括SMSS字节数
据的数据段) 。
接收端窗口(rwnd):最近通知的接收端窗口 。
拥塞窗口(cwnd):一个TCP状态参量,代表着一个TCP答应发送的最大数据量 。在任意
一个给定的时刻,TCP不会发送序号大于最大确认序号和cwnd、rwnd中较小者的数据 。
初始窗口(iw):初始窗口是三次握手完成后发送端的拥塞窗口的尺寸 。
丢失窗口(lw):丢失窗口是在一个TCP根据它的重传定时器检测到了数据丢失之后,拥
塞窗口的尺寸 。
重启窗口(rw):重启窗口是TCP在一段闲置期之后重新开始传送后拥塞窗口的尺寸(如
果使用慢启动算法;参见4.1节以获取更多的讨论) 。
传送尺寸:已经被发送但还没有确认的数据的总量 。
3.拥塞控制算法
这节定义了四种拥塞控制算法:慢启动,拥塞避免,快速重传和快速恢复,它们在[Jac88]

推荐阅读