拥塞控制

维基百科,自由的百科全书
跳转至: 导航搜索

拥塞控制是一种用来调整传输控制协议连接单次发送的分组数量(单次发送量,在英文文献和程序代码中常叫做cwnd)的算法。它通过增减单次发送量逐步调整,使之逼近当前网络的承载量。

拥塞控制假设分组的丢失都是由网络繁忙造成的。拥塞控制有三种动作,分别对应主机感受到的情况:

  1. 收到一条确认。这很好,表明当前的单次发送量小于网络的承载量。
  2. 收到三条对同一分组的确认,即三条重复的确认。单次发送量往往大于3,例如发送序号为010203040的5条长度为10字节的分组,其中序号20的丢了,则返回的确认是10202020。3个20就是重复的确认。
  3. 对某一条分组的确认迟迟未到,即超时。例如发送序号为010203040的5条长度为10字节的分组,其中序号30的丢了,则返回的确认是10203030。这才只有两条重复确认。然而刚刚说过,单次发送量往往大于3,所以超时更可能是因为不止一条分组或确认丢失而引起的,这说明网络比上一情况中的更加繁忙。

当主机收到一条新确认,此时可以增加单次发送量。若当前单次发送量小于阀限(在英文文献和程序代码中常叫做ssthresh),则单次发送量加倍(乘以2),即指数增长;否则单次发送量加1,即线性增长

当主机收到三条重复的确认——单次发送量减半,阀限等于单次发送量。(进入线性增长期)

当主机探测到超时——阀限=单次发送量÷2,单次发送量=1。

参考 [编辑]

《计算机网络——自顶向下方法与Internet特色》. 机械工业出版社. 2006. ISBN 978-7-111--16505-7.