千家信息网

TCP传输协议如何进行流量控制?

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,TCP流量控制,简单来说就是让 数据传输 端传输的速率不要太快,让数据接收端来得及接收,利用滑动窗口机制可以很方便的在 TCP连接上实现对 数据传输 端的流量控制。 TCP的窗口单位是字节,不是报文段
千家信息网最后更新 2025年02月08日TCP传输协议如何进行流量控制?

TCP流量控制,简单来说就是让 数据传输 端传输的速率不要太快,让数据接收端来得及接收,利用滑动窗口机制可以很方便的在 TCP连接上实现对 数据传输 端的流量控制。 TCP的窗口单位是字节,不是报文段,数据传输端的发送窗口不能超过接收端给出的接收窗口的数值,流量控制的机制是控制丢包率,主要目的: 让数据传输端了解数据接收端当前的接收能力,可灵活调整传输速率。 流量控制机制图如下图所示:


滑动窗口:

TCP采用大小可变的滑动窗口进行流量控制,窗口大小的单位是字节。

数据传输 窗口在连接建立时由双方商定。 但在通信的过程中,数据接收端可根据自己的资源情况,随时动态地调整对方的传输窗口大小。 滑动窗口实例图如下图所示:


滑动窗口引进原由:

我们可以把窗口理解为缓冲区(但是有些窗口和缓冲区又不太一样)。

如果没有这些 "窗口",那么TCP每发送一段数据后都必须等到数据接收端确认后才能发送下一段数据,这样做的话TCP传输的效率实在是太低了。

解决的办法就是在发送端等待确认的时候继续发送数据,假设发送到第 X个数据段是收到数据接收端的确认信息,如果X在可接受的范围内那么这样做也是可接受的。这就是窗口(缓冲区)引入的缘由。

滑动窗口:

A、数据接收端窗口 X

接收端缓冲区大小。接收端将此窗口值放在 TCP 报文的首部中的窗口字段,传送给发送端。

B、拥塞窗口 Y

发送端缓冲区大小

C、数据传输窗口 Z

发送窗口的上限值 = Min [X, Y]

① 当 X < Y 时,是接收端的接收能力限制数据传输窗口的最大值。

② 当 Y < X 时,则是网络的拥塞限制数据传输窗口的最大值。

滑动窗口实例介绍:

数据传输 端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。还可发送 300 字节。

数据传输端收到了对方对前 400 字节数据的确认,但对方通知数据传输端必须把窗口减小到 400 字节。现在数据传输端最多还可发送 400 字节的数据。

滑动窗口需掌握的知识点:

A、数据接收端将自己可以接受的缓冲区大小放入TCP首部中"窗口大小"字段,通过ACK来通知数据传输端。

B、窗口大小字段越大,说明网络的吞吐率越高

C、窗口大小指的是无需等待确认应答而可以继续发送数据的最大值,即就是说不需要数据接收端的应答,可以一次连续的发送数据。

D、操作系统内核为了维护滑动窗口,需要开辟发送缓冲区,来记录当前还有哪些数据没有应答,只有确认应答过的数据,才能从缓冲区删除。 PS:发送缓冲区如果太大,会有空间开销。

E、数据接收端一旦发现自己的缓冲区快满了,就会将窗口大小设置成一个更小的值通知给数据传输端,数据传输端收到这个值后,就会减慢自己的发送速度。

F、如果数据接收端发现自己的缓冲区满了,就会将窗口大小设置为0,此时 数据传输 端不再 传输数据 ,但是需要在定期发送一个窗口探测数据段,使数据接收端把窗口大小告诉数据传输端。

PS:在TCP的首部,有一个16为窗口字段,此字段就是用来存放窗口大小信息的。

TCP报文段发送时机的选择

1、TCP维持一个变量,它等于最大报文段长度MSS,只要缓存中存放的数据达到MSS字节就组装成一个TCP报文段发送出去。

2、由发送方的应用程序指明要求发送报文段,即TCP支持的推送操作。

3、是发送方的一个计时器期限到了,这时就把当前已有的缓存数据装入报文段发送出去。


数据 传输 数据传输 大小 缓冲区 缓冲 字节 报文 控制 流量 字段 就是 端的 最大 对方 最大值 机制 信息 单位 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 空间数据库技术及应用教材 问道手游怎么看服务器等级 刀片服务器维修站 mysql数据库优化工具 沙河市六喜网络技术有限公司 法律意见书 数据库 普通显卡可以插服务器吗 软件开发与服务协议 网络安全教育意义 网络安全防范有哪些方法 zoom 不受信任的服务器证书怎么处理 北控水务集团网络安全 计算机网络安全技术 苏州网络安全准入控制价格 网络安全靠人民作文300 郑州轩盈网络技术有限公司吧 杭州网络技术公司名单 边缘ai服务器需求说明书 数据库审计系统服务 游戏服务器删除龙管家 腾讯云数据库是如何营销的 ftp服务器软件下载 海康威视服务器硬盘找不到怎么办 支队对大队进行网络安全检查 数据库的端口 服务器如何获取ipv6 定制软件开发源代码 版权 本科有没有计算机网络技术专业 安卓智能手机软件开发课程评价 linux 服务器时间
0