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

拥塞控制(TCP限制窗口大小的机制)

        拥塞控制机制可以使滑动窗口在保证可靠性的前提下,提高传输效率

        关于滑动窗口的属性以及部分机制推荐看TCP中窗口和滑动窗口的含义以及流量控制

拥塞控制出现的原因

        看了上面推荐的博客我们已经知道了,由于接收方接收数据的能力有限,所以要通过流量控制的机制来限制滑动窗口的窗口大小,而我们在决定发送方窗口大小时,需要考虑的不仅仅是接收方接收数据的能力,还有中间设备处理数据的能力,因为我们在传输数据时不仅仅需要发送方和接收方,在它们之间还有许多传输数据的中间设备(如路由器),而发送方滑动窗口的实际大小应该取决于接收方接收数据的能力和中间设备处理数据的能力,而拥塞控制便是去动态的实践出中间设备处理数据的能力能够承载的窗口大小。

拥塞控制的过程图示

        

 

拥塞控制的详细过程

        1.慢启动,在刚开始通讯时会用一个较小的窗口数量去批量发送较少的数据,主要是为了判断当前网络的流畅情况(如何当前网络不流畅,出现了网络堵塞,还用较大的窗口去批量发送较多的数据就会给当前的网络情况雪上加霜)

        2.在传播数据以后,发现当前传播流畅,便按指数增长的方式去增加窗口大小

        3.但指数增长是非常快的,所以必须要加以限制,当窗口大小增加到规定的阈值以后,窗口大小的增长便会从指数增长变为线性增长

        4.变为线性增长后也终会达到最大值,当发现网络中出现大量的丢包情况(网络堵塞),便将阈值变为当前窗口大小的一半,并且还原窗口大小为最初的窗口大小

        5.循环之前的操作

总结

        在拥塞控制下的窗口大小就是在这个过程中不断变化,不断重新调整的过程,这样的调整就可以很好的适应多变的网络环境,当然,这里也是有不少的性能缺失,每当拥塞控制下的窗口大小还原为最初的小窗口时就会使传输速度大打折扣

        我们根据接收方处理数据的能力得到了一个流量控制窗口大小,根据中间设备处理数据的能力得到了一个拥塞窗口大小,那么发送方实际上发送数据时采用的窗口大小是什么呢?

实际发送方的窗口=min(拥塞窗口,流量控制窗口)因为我们不仅要考虑接收方的处理能力还要保证中间设备的处理能力,拥塞控制和流量控制,共同限制了滑动窗口机制,可以使滑动窗口在可靠性的前提下,提高传输效率。

http://www.lryc.cn/news/139087.html

相关文章:

  • 校园供水系统智能管理
  • Flask-SocketIO和Flask-Login联合开发socketio权限系统
  • 航空电子设备中的TSN通讯架构—直升机
  • elment-ui中使用el-steps案例
  • FPGA解析串口指令控制spi flash完成连续写、读、擦除数据
  • msvcp120.dll丢失的解决方法,分享三种快速修复的方法
  • mysql 8.0 窗口函数 之 序号函数 与 sql server 序号函数 一样
  • fastgpt构建镜像
  • Git笔记--分支常用命令
  • 常见设计模式学习+面试总结
  • sql解决取多个截至每个月的数据
  • 数据采集:selenium 获取 CDN 厂家各省市节点 IP
  • 【el-tree】树形组件图标的自定义
  • UltralSO软碟通制作Linux系统盘
  • yolov8训练心得 持续更新
  • 超越界限:大模型应用领域扩展,探索文本分类、文本匹配、信息抽取和性格测试等多领域应用
  • Compose - 基本使用
  • Unity3D Pico VR 手势识别
  • 【docker】运行registry
  • java八股文面试[Spring]——如何实现一个IOC容器
  • Redis 列表 | Navicat
  • 【校招VIP】测试专业课之TCP/IP模型
  • leetcode76. 最小覆盖子串(滑动窗口-java)
  • 后端项目开发:整合全局异常处理
  • Linux socket网络编程概述 和 相关API讲解
  • uni-app封装省市区下拉组件(后台获取数据)
  • laravel中Mail发送邮件失败,但是没有错误信息,该如何调试?
  • 软考高级系统架构设计师系列论文八十五:论软件产品线技术
  • More Effective C++学习笔记(4)
  • 概率密度函数 累积分布函数