初步了解TCP协议拥塞控制、流量控制

拥塞控制与流量控制

流量控制

当发送方发送过快时,接受方来不及接受,导致数据丢失。TCP的流量控制是利用了滑动窗口协议,接收方在ACK报文中,加入可接受窗口的大小,反馈给发送方,从而控制发送方发送的数据量。

拥塞控制

拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。(还是百度百科解释的专业!)那么拥塞控制简单地说就是,过多的数据注入到网络中,避免出现网络负载过大。主要利用:1.慢开始和拥塞避免 2.快重传和快恢复

区别与联系

1.流量控制作用于接收方,控制发送方的发送数据量。拥塞控制作用域网络,防止过多数据流入网络,造成过载。
2.流量控制的作用是在点对点的,一对发送方与接收方。拥塞控制的作用是在全局性网络的,涉及所有影响网络的主机。
3.流量控制是为了预防拥塞,拥塞控制是为了解决拥塞

多说点拥塞控制的东西

在这里插入图片描述
拥塞控制有两个个关键数据:
1.cwnd:拥塞窗口,初始值是1,当发生拥塞时恢复1。
2.ssthresh:慢开始门限。

慢开始

每经过一个传输轮次,拥塞窗口 cwnd 就加倍。一个传输轮次所经历的时间其实就是往返时间 RTT。

“传输轮次”更加强调:把拥塞窗口 cwnd 所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。
例如,拥塞窗口cwnd = 4,这时的往返时间 RTT 就是发送方连续发送 4 个报文段,并收到这 4 个报文段的确认,总共经历的时间。

拥塞避免

每经过一个传输轮次,cwnd+1。

发生拥塞,重传定时器超时

cwnd = 1,ssthresh = max (cwnd/2,2)。

cwnd与ssthresh控制

根据这两个值得关系以及是否发生超时现象,进行拥塞控制。

  • 当 cwnd < ssthresh 时,使用上述的慢开始算法,即,cwnd*2。

  • 当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法,即cwnd+1。

  • 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞控制避免算法。

除此之外,拥塞控制还有一套快重传与快恢复机制

快重传和快恢复

假设,发送方向接受方发送ABCDEF,接收方正常接收到AB,但是没有接收到C就直接接收到了D,那么接收方会直接ACK B,即立即进行重复确认,当收到E、F时,若仍然没有收到C,那么依然会ACK B,这样当发送方连续三次收到重复确认信息后,就不必等待重传计时器到期,而是直接重新发送未被确认数据,即快重传,之后,ssthresh = max (cwnd/2,2),预防网络发生阻塞,由于发送方现在认为网络很可能没有发生阻塞,因此现在不执行慢启动算法,而是把cwnd值设置为慢启动门限减半后的值,然后开始执行拥塞避免算法,拥塞窗口cwnd值线性增大,即快恢复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值