TCP协议的滑动窗口详解

其实没有什么窗口,窗口也就是一个数值而已,这个窗口的作用是用来控制每次发发送字节的大小的,是TCP的流量控制,我们知道TCP包头有一个字段叫窗口大小,这个值就是来控制窗口的,发送方的接受方都有一个缓冲区,在接受方的缓冲区空闲的大小就是接受窗口的大小,发送窗口等于接受窗口,所以要发送的值也就是不能超过接受方缓冲区空闲的值,超过就麻烦了,接收方接受不了这个数据就丢失了,所以一定要进行流量控制。那问题来了,怎么进行流量控制的,为啥窗口叫成了滑动窗口?

现在发送了7、8、9、10个字节,11、12是可以发但没发的字节,后面的是现在不能发的字节。

当7、8字节确认后那么窗口就向后移两个,所以13、14字节就变成了就绪状态,但是这个窗口大小是变化的,因为接收方可能出来有点慢,缓冲区空闲区域变小,那么会返回窗口大小,那这个发送窗口的值也自然变小。

如果发生的丢失会怎么办,这时如果9、10丢失,那么只会确认7、8字节,11、12字节虽然没有丢失,也不会被确认(TCP的累计确认机制),这时发送窗口就停止滑动,只有等到超时重传重发9、10包并得到确认后才能继续滑动窗口,发送后面的数字。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值