TCP/IP(十三)滑动窗口

一   滑动窗口

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

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特点: 表示已经'被接受'但是'还没有回复' ACK3、缴完费并'离开出口收费站'的车辆:状态为Received and ACK特点: 表示已经'被接受并回复'了 ACK

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

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

⑧  滑动窗口小结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/157996.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Apache Kafka 进行发布-订阅通信中的微服务

发布-订阅消息系统在任何企业架构中都发挥着重要作用,因为它可以实现可靠的集成,而无需紧密耦合应用程序。在解耦的系统之间共享数据的能力并不是一个容易解决的问题。 考虑一家拥有多个使用不同语言和平台独立构建的应用程序的企业。它需要响应地共享数…

小程序使用uni.createAnimation只执行一次的问题

思路&#xff1a; 在页面创建的时候&#xff0c;创建一个临时动画对象调用 step() 来表示一组动画完成通过动画实例的export方法导出动画数据传递给组件的animation属性还原动画页面卸载的时候&#xff0c;清除动画数据 <template><view class"content"&g…

使用hugging face开源库accelerate进行多GPU(单机多卡)训练卡死问题

目录 问题描述及配置网上资料查找1.tqdm问题2.dataloader问题3.model(input)写法问题4.环境变量问题 我的卡死问题解决方法 问题描述及配置 在使用hugging face开源库accelerate进行多GPU训练&#xff08;单机多卡&#xff09;的时候&#xff0c;经常出现如下报错 [E Process…

设计模式_责任链

责任链模式 介绍 设计模式定义案例责任链模式问题 传给 多个可处理人 这多个处理人做成一个链表学生请假条审核 上课老师&#xff08;3天权限&#xff09; 班主任 &#xff08;5天权限&#xff09; 校长 &#xff08;30天权限&#xff09; 问题堆积在哪里解决办法进一步优…

k8s 1.28版本二进制安装

本文目录 二进制安装Kubernetes&#xff08;k8s&#xff09;v1.28.0介绍1.环境1.0.环境准备1.Linux网卡没有eth0显示ens33或者其它&#xff08;以ens33为例&#xff09;方法一&#xff1a;修改网卡配置方法二&#xff1a;重新安装机器(本文为虚拟机) 2.克隆的虚拟机&#xff0c…

ExcelBDD Python指南

在Python里面支持BDD Excel BDD Tool Specification By ExcelBDD Method This tool is to get BDD test data from an excel file, its requirement specification is below The Essential of this approach is obtaining multiple sets of test data, so when combined with…

《向量数据库指南》——宏观解读向量数据库Milvus Cloud

宏观解读向量数据库 如今,强大的机器学习模型配合 Milvus 等向量数据库的模式已经为电子商务、推荐系统、语义检索、计算机安全、制药等领域和应用场景带来变革。而对于用户而言,除了足够多的应用场景,向量数据库还需要具备更多重要的特性,包括: 可灵活扩展、支持调参:当…

微服务13-Seata的四种分布式事务模式

文章目录 XA模式实现XA模式 AT模式AT模式的脏写问题&#xff08;对同数据并发写的问题&#xff09;其他事务不获取全局锁的一个情况&#xff08;AT模式写隔离的实现&#xff09;实现AT模式 TCC模式TCC实现我们怎么样去判断是否空回滚和业务悬挂&#xff1f;业务分析 Saga模式总…

[elasticsearch]使用postman来查询数据

最近需要debug程序&#xff0c;debug的时候需要查找elasticsearch里面的数据是否正确。 第一步建立一个post请求&#xff0c;并按照图下的方式填上ur和参数&#xff1a; 发送post请求&#xff0c;url为&#xff1a; http://ip:port/index_name/_search我这里查询的是title字…

k8s使用

一、Kubernetes好处 ​ kubernetes&#xff0c;是一个全新的基于容器技术的分布式架构领先方案&#xff0c;是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本&#xff0c;于2014年9月发布第一个版本&#xff0c;2015年7月发布第一个正式版本。 ​ kubernetes的本质…

常见的作物模型有哪些?DSSAT模型、APSIM模型、WOFOST模型与PCSE模型等应用

目录 ①最新DSSAT作物模型建模方法及应用 ②基于Python语言快速批量运行DSSAT模型及交叉融合、扩展应用 ③R语言与作物模型&#xff08;以DSSAT模型为例&#xff09;融合应用 ④WOFOST模型与PCSE模型应用 ⑤基于R语言APSIM模型进阶应用与参数优化、批量模拟 ⑥遥感数据与…

网工配置命令基础总结(2)----VRRP配置

目录 1.配置VRRP主备备份 2.配置VRRP负载分担 3.配置VRRP域BFD联动实现快速切换 VRRP 虚拟路由冗余协议 VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;通过把几台路由设备联合组成一台虚拟的路由设备&#xff0c;将虚拟网关设备的 IP 地址作为用户的默认…

内部类概述

一、内部类 1.内部类概述 2.内部类的四种实现形式 1.成员内部类 public class Outer {private int age99;public static String a;//成员内部类public class Inner{private int age88;private String name; // public static String school; //jdk 16开始才支持定义静态…

基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程(一)

原先不支持自定义业务表单的流程流转&#xff0c;因为这样对很多用户就更加方便&#xff0c;流程还是用现有的流程&#xff0c;但表单可以自己单独设计&#xff0c;满足各种不同的业务需求。 1、增加一个接口传入当前设计的流程应用类型 /*** 获取流程分类详细信息* param cod…

如何报考产品总监认证(UCPD)?

从产品经理到产品总监&#xff0c;是我们职业生涯中锦鲤化龙的一次历程。中、高级管理人员所需要的知识和能力常常会泾渭分明&#xff0c;甚至大相迳庭。所以&#xff0c;当我们走向高级管理岗位前&#xff0c;尤其是有机会应聘大厂总监岗位时&#xff0c;我们需要一张产品总监…

springcloud----检索中间件 ElasticSearch 分布式场景的运用

如果对es的基础知识有不了解的可以看 es看这个文章就会使用了 1.分布式集群场景下的使用 单机的elasticsearch做数据存储&#xff0c;必然面临两个问题&#xff1a;海量数据存储问题、单点故障问题。 海量数据存储问题&#xff1a;将索引库从逻辑上拆分为N个分片&#xff08…

17.(开发工具篇Gitlab)如何在Gitlab配置ssh key

前言: Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置 一、git 配置 (1)打开 git 命令窗口 (2)配置用户名(填自己的姓名) git config --global user.name “chenbc” (3)配置用户邮箱(填自己的邮箱) git config …

【计算机网络】——前言计算机网络发展的历程概述

主页点击直达&#xff1a;个人主页 我的小仓库&#xff1a;代码仓库 C语言偷着笑&#xff1a;C语言专栏 数据结构挨打小记&#xff1a;初阶数据结构专栏 Linux被操作记&#xff1a;Linux专栏 LeetCode刷题掉发记&#xff1a;LeetCode刷题 算法&#xff1a;算法专栏 C头…

HTTP 响应头 X-Frame-Options

简介 X-Frame-Options HTTP 响应头用来给浏览器一个指示。该指示的作用为&#xff1a;是否允许页面在 <frame>, </iframe> 或者 <object> 中展现。 网站可以使用此功能&#xff0c;来确保自己网站的内容没有被嵌套到别人的网站中去&#xff0c;也从而避免了…

spring6-事务

文章目录 1、JdbcTemplate1.1、简介1.2、准备工作1.3、实现CURD①装配 JdbcTemplate②测试增删改功能③查询数据返回对象④查询数据返回list集合⑤查询返回单个的值 2、声明式事务概念2.1、事务基本概念①什么是事务②事务的特性 2.2、编程式事务2.3、声明式事务 3、基于注解的…