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

<JavaEE> TCP 的通信机制(四) -- 流量控制 和 拥塞控制

目录

TCP的通信机制的核心特性

五、流量控制

1)什么是“流量控制”?

2)如何做到“流量控制”?

3)“流量控制”的作用

六、拥塞控制

1)什么是“拥塞控制”?

2)如何做到“拥塞控制”?

3)“拥塞控制”的作用

4)“流量控制”和“拥塞控制”下的窗口大小如何取值?


TCP的通信机制的核心特性

TCP的通信机制最核心的特性是可靠传输。
TCP至少通过以下机制来保证传输的可靠性,在保证可靠性的同时也采取一些机制来提升传输效率
<1> 确认应答<6> 阻塞控制
<2> 超时重传<7> 延时应答
<3> 连接管理<8> 捎带应答
<4> 滑动窗口<9> 面向字节流
<5> 流量控制<10> 异常情况处理

阅读指针 -> 《 TCP 的通信机制 -- 滑动窗口 》<JavaEE> TCP 的通信机制(三) -- 滑动窗口-CSDN博客文章浏览阅读300次,点赞7次,收藏9次。介绍了 TCP 的通信机制 -- 滑动窗口https://blog.csdn.net/zzy734437202/article/details/135235928


五、流量控制

1)什么是“流量控制”?

接收端处理数据的速度是有限的。接收端接收缓冲区满,发送端发送的后续数据就无法被收到,就会造成丢包。直到接收端处理完数据,并释放接收缓冲区,才能重新接收发送端发来的数据。
这意味着,发送方发送数据的速率,不应该超过接收端处理数据的速率。
TCP支持根据接收端的处理能力来决定发送端的发送速度,这个机制就称为“流量控制”。

2)如何做到“流量控制”?

TCP协议格式中,有“窗口大小”这一属性。“窗口大小”字段越大,则说明网络吞吐量越高。
接收端通过应答报文中的“窗口大小”,将自己的缓冲区剩余大小告知发送端。发送端就可以根据这个应答报文中的“窗口大小”,调整自己的发送速率。

3)“流量控制”的作用

流量控制是作用于通讯双方的,用于在通信过程中调整发送方发送窗口的大小,即调整发送方的发送速率。

六、拥塞控制

1)什么是“拥塞控制”?

网络通信,除了通信双方,还要经过数量不定的中间节点,这代表会有许多不同的传输路径
中间节点的数据处理能力也是有限的,如果通过这个节点传输的数据过多,传输路径就可能处于拥堵的状态。
当路径拥堵时,如果发送端一开始就发送大量数据给接收端,数据就会堵在半路。接收端接收不到数据,就不会返回ACK。这就可能导致发送端误判接收端处于异常状态,从而重置或断开连接。
拥塞控制就是用于衡量通信过程中的中间节点的情况,通过“实验”的方式,找到合适的窗口大小。

2)如何做到“拥塞控制”?

主要使用以下几个步骤:
<1> 慢启动:刚开始先发送少量数据,了解网络传输情况。
<2> 快增长:通讯启动后,数据传输量迅速增长,增长速度是指数级别的。
<3> 阈值缓增:通讯速度的增长存在阈值,当达到这个阈值时,增长速度从指数增长变为线性增长。
<4> 拥塞重置:发生网络拥塞后,会先调整阈值。随后传输速度降低到新阈值处,重新开始线性增长。
通过上述过程,在数据传输过程中不断调整窗口大小,逐渐达成动态平衡。

3)“拥塞控制”的作用

拥塞控制是作用于通讯路径的,用于在通信过程中调整发送方发送窗口的大小,即调整发送方的发送速率。

4)“流量控制”和“拥塞控制”下的窗口大小如何取值?

通过了解“流量控制”和“拥塞控制”的作用,可以发现,这两个机制都是在对发送窗口进行调整。
在实际通信中,窗口大小的取值,是“流量控制”和“拥塞控制”中的窗口的较小值。

阅读指针 -> 《 TCP 的通信机制(五) -- 延时应答、捎带应答和面向字节流 》

TCP 的通信机制(五) -- 延时应答、捎带应答、面向字节流-CSDN博客文章浏览阅读2次。介绍了TCP 的通信机制 -- 延时应答、捎带应答、面向字节流https://blog.csdn.net/zzy734437202/article/details/135258888

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

相关文章:

  • 智慧监控平台/AI智能视频EasyCVR接口调用编辑通道详细步骤
  • Go语言实现KV存储系统:前言
  • 代码随想录刷题笔记(DAY1)
  • Linux域名IP映射
  • postman使用-03发送请求
  • 【Spring实战】09 MyBatis Generator
  • 【自然语言处理】【大模型】 ΨPO:一个理解人类偏好学习的统一理论框架
  • 计算机网络——传输层(五)
  • python3处理docx并flask显示
  • Python:正则表达式速通,码上上手!
  • centos7安装nginx并安装部署前端
  • Hive实战:统计总分与平均分
  • Linux:不同计算机使用NFS共享资源
  • leetcode贪心算法题总结(一)
  • SQL高级:窗口函数
  • Excel formulas 使用总结(更新中)
  • 华为OD机试 - 两个字符串间的最短路径问题(Java JS Python C)
  • 强敌环伺:金融业信息安全威胁分析——钓鱼和恶意软件
  • 1月1日起,贵阳市退役军人可以免费乘坐公交地铁
  • 网络隔离后,怎样建立高效安全的数据安全交换通道?
  • Python:PyTorch
  • CentOS 5/6/7 基于开源项目制作openssh 9.6p1 rpm包—— 筑梦之路
  • python的pandas数据分析处理基础学习
  • 【Qt-容器类】
  • 2023-12-27 语音转文字的whisper应用部署
  • MAVLINK生成自定义消息
  • 【MediaPlayerSource】播放器源内部的音视频sender的创建和使用
  • 【机器学习】西瓜书第6章支持向量机课后习题6.1参考答案
  • 【OpenAI Q* 超越人类的自主系统】DQN :Q-Learning + 深度神经网络
  • Vue axios Post请求 403 解决之道