TCP协议的拥塞控制

目录

一、网络拥塞

二、拥塞控制

拥塞窗口cwnd

慢开始门限ssthresh

1.慢开始

2.拥塞避免

3.快重传

4.快恢复


一、网络拥塞

数据在网络中进行传送时,不是直接到达目的地,而是经过若干个路由器在中间进行转发,而路由器的内存是有限的,若同一时间到达某个路由器的数据太多,这个路由器将无法接收所有的数据,只能将一部分丢弃;或者同一台路由器数据太多,后面到达的数据将要等待较长的时间才会被转发。网络中的数据太多,导致某个路由器处理不过来或处理地太慢,这就是网络拥塞。

二、拥塞控制

TCP是面向连接的可靠的传输层协议,使用拥塞控制来保证传输的可靠性

TCP协议通过慢开始拥塞避免快重传快恢复来处理拥塞控制

拥塞窗口cwnd:

在发送方的 TCP 程序会跟踪和维护一个叫做拥塞窗口的变量,用来进行拥塞控制。 拥塞窗口被称为cwnd 。 在 TCP 发送端,所有被发送但是还没收到确认的数据段必须落在这个窗口中。

当网络拥塞时,TCP程序将减小 cwnd ,

当网络通畅时,增大 cwnd ,以此来控制数据发送的速率。

慢开始门限ssthresh:

为了防止cwnd增长过大引起网络拥塞,还需设置一个慢开始门限ssthresh状态变量。ssthresh的用法如下:

当cwnd<ssthresh时,使用慢开始算法。

当cwnd>ssthresh时,改用拥塞避免算法。

当cwnd=ssthresh时,慢开始与拥塞避免算法任意 

1.慢开始

传输时,发送方在第一次发送会以探测的方式从小到大进行发送数据,发送方的发送窗口从1开始,以指数形式不断增大,直到达到慢开始门限,慢开始停止,执行拥塞避免。

2.拥塞避免

为了防止慢开始过度增长,因此设置了慢开始门限,一旦拥塞窗口值达到慢开始门限,即当 cwnd >= ssthresh 时,进入拥塞避免执行拥塞避免算法。每传输一次数据,门限值加1,直到网络中发生拥塞时,拥塞避免阶段停止,触发重传机制。

3.快重传

接收方每次接收都会对最后一个已收到的有序报文段进行确认,当发送方收到来自接收方发送的3个连续的确认信号时,说明接收方没有收到发送方的某一次发送,即网络中发送数据丢失,此时发送方立即重新发送,并执行快恢复算法。

4.快恢复

当发送方收到三个重复的确认时,把ssthresh设置为cwnd的一半,并让cwnd的值等于新的慢开始门限ssthresh值,从新的门限值开始执行拥塞避免算法,每次传输数据,门限值会加1,直到发送方再次收到三个重复确认,一般快重传和快恢复算法配套使用。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值