TCP的拥塞控制介绍

来源:互联网 发布:1000base t以太网端口 编辑:程序博客网 时间:2024/05/17 05:59

拥塞控制是一种用来调整TCP连接单次发送的分组数量(单次发送量,在英文文献和程序代码中常叫做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.

 

本文依CC-by-sa-3.0协议和GFDL协议发表

原创粉丝点击