TCP 协议详解(四)-- TCP流量控制

前言

TCP(Transmisson Control Protocol)又叫传输控制协议作为传输层最重要的协议,对于信息的可靠传输有着重要的意义,针对这一协议的攻击也数不胜数,这里就对这一协议以及相关内容进行详细的总结,将从以下几个方面进行介绍。
本文以韩立刚老师的《计算机网络》网课为基础,感兴趣的话可以私信我要资料

1. TCP流量控制

首先大家要明白一个概念:rwnd(receiver window 接收端窗口大小),关于窗口的内容参考这篇博客,顾名思义,这个值规定了接收端的窗口的值,以字节为单位,TCP流量控制就是靠这个值的改变来实现的,下面介绍详细过程:
首先:
在这里插入图片描述
随着A向B利用滑动窗口技术传送数据,B中缓存里的数据越来越多,这时B就会通过减小rwnd大小的方式来降低速度,如图

在这里插入图片描述
当rwnd减小为8时,如图:
在这里插入图片描述
关于SACK的内容也可以参考上一篇博客。
当缓存很少时,计算机会发送rwnd为0的数据包,如图:
在这里插入图片描述
当缓存里的数据被处理以后,从缓存中移除,计算机又会加大rwnd的值,直到数据全部传输完成。

2. 如何避免死锁

考虑一种情况,当B向A发送一个rwnd为0的数据包以后,经过数据的处理和删除,接收缓存中又有了接收空间,重新发送rwnd大于0的包,但是这个包却丢了,为了避免双方都在等待,我们称之为死锁的情况,产生了如下机制:
TCP为每一个连接都设置了一个持续计数器(persistence time),当双方有一方收到对方的rwnd=0的包后,这个计数器就会启动,当设置的时间到了以后,就会向对方发送一个零窗口探测报文段(只携带1字节的数据),对方收到以后就会返回这时的rwnd值,如果还是0,那么就重新计数,循环往复,如果不是0,那么就开始传输数据,那么死锁也就被打破了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值