滑动窗口协议如何实现流量控制

一、关于滑动窗口

1、什么是滑动窗口

滑动窗口是类似于窗口一样的东西,用来告诉发送端一次可以发送数据的大小。即窗口标记了接收端缓存区的大小;

2、滑动窗口出现的原因

(1)对每一个发送的数据段,都要给一个ACK确认应答,收到ACK后发送下一个数据段。这样做大大降低了传递效率。

(2)使用滑动窗口,可以一次发送多条数据,提高性能。

3、滑动窗口的一些知识点

(1)接收端将自己缓冲区大小放进TCP头部的“窗口大小”字段,通过ACK告知发送端;

(2)窗口大小是指无需等待确认应答而可以一次连续发送数据的最大值;

(3)操作系统内核为了维护滑动窗口,需开辟发送缓冲区,来记录哪些数据还没有被应答,只有确认应答后才从缓冲区删除;

(4)接收端发现自己缓存区快满了,将窗口大小设置更小发送给发送端,发送端收到后就会减慢发送速度;

(5)接收端发现自己缓冲区满了,将窗口大小设置为0,此时发送端停止发送数据,而是定期发送一个窗口探测数据段,让接收端告诉它的窗口大小;

二、关于流量控制

1、什么是流量控制

流量控制的目标是接收端,防止发送方发的太快,耗尽接收方资源,使接收方来不及处理;

流量控制的机制是丢包。

2、通过滑动窗口实现流量控制

通过设置滑动窗口大小,用ACK告知发送端自己缓存区还有多大,让发送端以合适的速度发送数据

三、关于拥塞控制

1、什么是拥塞控制

防止发送方发的太快,使网络来不及处理,导致网络拥塞。

2、拥塞控制出现的原因

流量控制虽然可以高效的传递大量数据,但是如果刚开始阶段就发送大量数据,可能导致网络拥塞

3、拥塞控制实现的机制

(1)慢启动

(2)加法增加:执行拥塞控制算法后,在收到对报文的确认后,就把拥塞窗口cwnd增加一个MSS大小,使拥塞窗口缓慢增大,防止网络过早出现拥塞;

(3)乘法减少:出现一次超时(网络拥塞)就把慢开始门限值ssthresh设置为当前拥塞窗口值的0.5倍。

4、发送端如何判断网络出现拥塞(丢包)

(1)定时器超时(没有在规定时间内收到某个发出去的包ACK)

(2)收到三个重复的ACK

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值