TCP/IP(十三)滑动窗口

news/2024/5/20 5:53:59 标签: 滑动窗口, 发送窗口, 可用窗口, Windows

一   滑动窗口

 通信双方要'读懂'对方的'反馈'信息,并进行'调整'

TCP滑动窗口原理终于清楚了

TCP Window Full 和 TCP Zero Window

零窗口通知与窗口探测

++++++++++++++  "特殊的场景"  ++++++++++++++

1、TCP Window Full 是站在'发送端'角度说的

特点: 表示发送端'不能再发数据'给对方,除非发送的数据包'得到ACK'响应

2、TCP zero window 是站在'接收端'角度来说的

特点: 是'接收端'接收窗口'满',自动告知'发送方'不能再发送数据给'自己'

3、TCP中的Window窗口

特点: TCP的'流量控制',窗口'起始于'确认序号字段指明的值,这个值是'接收端期望'接收的字节数

①   引入窗口概念的原因

图谱'解读'

传输方式'缺点':数据包的往返时间越'长',通信的效率就越'低'

引入: 窗口 'windows'

补充: 滑动窗口协议并'不是TCP特有'的

操作系统 缓冲区(buffer)与缓存(cache)

②  累计确认

窗口大小: 就是指'无需等待 ACK确认应答',而可以'继续'发送数据的'最大 max'值

通俗: 在发送方的'能力范围内',我能'无脑'的发送'多少'数据

③  窗口大小由哪一方决定?

1、通常窗口的大小是由'接收方的窗口大小'来决定的

2、发送方发送的数据大小'不能超过'接收方的窗口大小,否则接收方就'无法正常接收'到数据

④  发送方的窗口

类比: 高速路的'收费站'为例

​1、还'未进入入口收费站'的车辆

2、已'进入收费站'但'未进入高速路'的车辆

3、在'高速公路上行驶'的车辆

4、到达'出口收费站'的车辆

​++++++++++++++++++ "分割线" ​++++++++++++++++++

重点: 体会'1'、'2'、'3'、'4'

细节: '发送'窗口包括'可用'窗口,明确二者的'概念'和'关系'

会续通过'wiresahrk'分析'WIndows'滑动窗口

+++++++++++ "继续探究" +++++++++++

⑤  程序是如何表示发送方四个部分的呢?

'发送'窗口大小 = SND.WND

'可用'窗口大小 = SND.WND -(SND.NXT - SND.UNA)

⑥  接收方滑动窗口

对于'接受方滑动窗口',我们也可以把'数据包'看成'车辆',分类它们的'状态':

1、还'未到达出口收费站'的车辆:状态为Not Received

特点: 表示'还没有被接收'的数据

2、到达出口收费站但'未完成缴费'的车辆:状态为Received Not ACK

特点: 表示已经'被接受'但是'还没有回复' ACK

3、缴完费并'离开出口收费站'的车辆:状态为Received and ACK

特点: 表示已经'被接受并回复'了 ACK

​Zero Window是指TCP连接中'接收方'的'接收窗口'大小为'0'的情况

⑦  接收窗口和发送窗口大小是相等吗?

⑧  滑动窗口小结


http://www.niftyadmin.cn/n/5084983.html

相关文章

Oracle数据不常用的函数

COALESCE函数 COALESCE 和 NVL 都是 Oracle 数据库中用于处理 NULL 值的函数,但它们在一些方面有区别: 1. **语法**: - COALESCE 的语法允许多个参数,它会从参数列表中选择第一个非 NULL 值。语法如下:COALESCE(e…

ipad手写笔哪个好用?苹果平替笔性价比高的

如果你想要入手一款和iPad匹配的电容笔,想必你的第一想法就是苹果的原装电容笔。然而这款电容笔虽然很好用,但价格会相对的昂贵一些。而平替电容笔,却是一种不错的选择,而且价格也很合理。一支普通的平板电容笔,其售价…

C# 使用 RSA 加密算法生成证书签名产生“The system cannot find the file specified”异常

使用 C# 中 RSA(System.Security.Cryptography.RSA) 加密算法生成证书签名进行身份验证,在 VS2022 开发工具本地运行应用程序一切正常。 但将应用程序部署到远程服务器(如:Azure App Services)&#xff0c…

vue3+ts+uniapp(微信小程序)---- 点击按钮保存图片的功能

vue3tsuniapp(微信小程序)---- 点击按钮保存图片的功能 描述:后台会给一张二维码图片,用户点击保存按钮即可保存图片到相册。 注意: 1)图片要是https形式; 2)要在微信公众平台中更新…

pytorch实现经典神经网络:VGG16模型之复现

可以参考https://blog.csdn.net/m0_37867091/article/details/107237671 分成 提取特征网络结构分类结构 模型代码: 此模型写了VGG的几种网络结构 一、官方权重 # official pretrain weights model_urls {vgg11: https://download.pytorch.org/models/vgg11-bb…

Go语言入门心法(一)

一: go语言中变量认知 go语言中变量的定义: (要想飞|先会走)||(翻身仗|抹遗憾 ) |(二八定律)(先量变)|(再质变)||(冰冻三尺非一日寒)|(扶贫之旅|继续裸奔)(1)go语言中变量认知升…

pycharm设置pyuic和pyrcc

pyuic设置 适合任何虚拟环境,直接用虚拟环境的python解决一切。。。 E:\anaconda3\envs\qt5\python.exe-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py$FileDir$pyrcc设置 E:\anaconda3\envs\qt5\python.exe-m PyQt5.pyrcc_main $FileName$ -o…

【动手学深度学习-Pytorch版】BERT预测系列——用于预测的BERT数据集

本小节的主要任务即是将wiki数据集转成BERT输入序列,具体的任务包括: 读取wiki数据集生成下一句预测任务的数据—>主要用于_get_nsp_data_from_paragraph函数从输入paragraph生成用于下一句预测的训练样本:_get_nsp_data_from_paragraph生…