当前位置: 首页 > news >正文

【JavaEE初阶】TCP核心机制4——滑动窗口

TCP的前三个机制(确认应答,超时重传,连接管理)都是为了保证可靠性,但是,保证可靠性的代价就是传输效率会降低

每传输一个数据都要等对方应答(效率低下)

那我们直接批量传输不就行了嘛!

滑动窗口

窗口大小:不需要等待,可以连续发送的最大数据量

那能否一直发呢?

  • 那肯定是不能啊,那相当于没有可靠传输了

那下一组怎么发呢?

  • 策略一:等这一组所有的ACK都回来再发第二组->这样做,花的时间会更久
  • 策略二:收到一个ACK就发下一条 (可行!)

每收到一个ACK,直接就发下一个数据了

问题:那有可能中间的ACK先到啊,那怎么处理,要跳过前面的发中间的吗?

  • 我们先要明确一个前提,数据到缓冲区是会先排序的,对方内核会从前往后依次发回ACK应答
  • 如果是2001比1001的ACK先回来,可能是因为2001回来的道路相对1001比较畅通,但是,我们一看到2001回来了,就知道,1001也收到了,可能还没到
  • 窗口直接往后走两个格子即可

窗口越大,批发量越多,效率就越高

但是滑动窗口是在可靠传输的基础上,提高效率

  • 这种提高效率只是亡羊补牢
  • 引入可靠性,就会使效率产生折损
  • 引入滑动窗口,只是让这种折损更小一些
  • 但是效率这方面是不可能比UDP高的

使用滑动窗口的过程中,当然也会丢包~

情况一:数据包已抵达对端,但ACK丢了

情况一示意图

  • 图中所示的情况 6个包丢了3个,
  • 丢包率达到50%,已经是相当恐怖的数字了,说明网络有严重问题
  • 但是,此时发送端不用做任何处理,因为后一个ACK可以涵盖前面的ACK(因为前面的ACK发出才会发后一个ACK,所以后一个ACK到了说明前一个ACK已经发出)

情况二:数据包直接丢了,根本没到达对端

针对不同情况下的重传机制:

  • 超时重传:传输的数据量少,没有构成滑动窗口批量传输的形式->超时重传
  • 快速重传:传输数据量多,形成滑动窗口的情况下的重传机制->快速重传

END✿✿ヽ(°▽°)ノ✿

http://www.dtcms.com/a/546543.html

相关文章:

  • FEMU—NVMe ZNS 核心实现的学习
  • 做结构图的网站云南做网站哪家便宜
  • 甘肃古典建设集团有限公司网站要想让别人网站卖我的东西怎么做
  • 深入理解Java String:不可变性、内存机制与高效操作
  • 仓颉GC调优参数:垃圾回收的精密控制艺术
  • 小学生做网站步骤wordpress 调用媒体库
  • 徐州营销型网站制使做网站广告联盟赚钱
  • 常州网站营销推广免费科技软件
  • 如何使用框架来建设网站常州网站排名优化
  • 网站 网络营销价值雷山网站快速排名
  • Spring Cloud 多租户实现(MySQL + MyBatis + MyBatis-Plus 实战)
  • 专注网站建设与制作网站图片的暗纹是怎么做的
  • 给周杰伦做网站网站做百度推广划算吗
  • k8s——实战入门(资源)
  • 茶叶网站建设策划方案u001f代做毕设自己专门网站
  • 找建设网站网站建设搜索优化app推广新闻营销
  • 山东集团网站建设做网站免费的域名
  • 做平面什么网站的素材不侵权北京公司提供注册地址
  • Linux学习笔记--中断子系统
  • Selenium常用方法
  • 哈尔滨网站建设推广服务人力资源网站
  • screen命令指南
  • SAP-ABAP:穿越时空的ABAP基石:深入理解WRITE语句的奥秘与技巧实例详解
  • 做网站产品图片素材前端后端分别是什么意思
  • 做网站销售的昆明百度小程序
  • LeeCode 137. 只出现一次的数字II
  • AOI设备在消费电子领域的检测应用
  • 网站制作 成都土巴兔官网
  • 如何 做网站跳转建设网站企业网上银行
  • 基于需求驱动的自动驾驶感知任务数据集缺口识别与缓解方法