TCP传输效率衡量、ACK延迟机制与窗口效率介绍

文章目录

一、传输效率的衡量目标

1.并列衡量

2.重点目标

二、ack的延时应答

1.延迟的报量与时间

1.1定量定时:

2.延迟效果

2.1延齐累积确认

2.1.1连续到达-ack延齐累积

2.1.2有缺到达-ack立即返回

2.2延寻捎带报文

2.3延变剩余空间

2.3.1延迟剩变大

2.3.2延迟剩变小

绑定时量送达(不用担心的)

2.4延增等待时间

2.4.1窗口前中区报文

2.4.2窗口后区报文


一、传输效率的衡量目标

1.并列衡量

传输效率是以

  1. 吞吐量:单位时间网络上传输多少数据(包括重传),大
  2. 有效吞吐量:单位时间成功交付给对方应用程序的有效数据量,大
  3. 协议开销效率:有效数据字节/(有效数据+TCP/IP头+ACK+重传),大
  4. 主机处理效率:传输单位数据,CPU需要处理多少TCP包,ACK报、多少中断、多少协议栈工作,小

并列衡量的


2.重点目标

不是"很快就把对方内核接收缓冲区塞满",接收缓冲区只是中间缓存,
高效最重要体现在"应用层最终有效收到多少数据/时间",即有效吞吐量goodput


二、ack的延时应答

1.延迟的报量与时间

接收方收到报文,制造出ack后,ack延迟 在 ++等收满延齐报文量++ ,或++等过完延最迟计时器++ 后返回

1.1定量定时:

ack延时 等齐收满的报文量越少 对应地 等待最迟收满它们所用的时间也越少

延时计时器越小:
使得每个窗口后区报文的 停发等待ack延迟完返回 的时间越少->传输的吞吐量越高
延齐报文量越小:
接收方就频率越快地,收齐每小块的报文 返回的ack就越多->

  1. ack返回频率多了 就能更快得累积完,针对丢包的快速重传
  2. ack数量增多了,就降低了协议开销效率与主机处理效率

折中衡量后,ack的延齐报文量是2 个报文,延最迟计时器的时间是很短


2.延迟效果

2.1延齐累积确认

接收方收到普报,它的ack检查前缀后,会查看ack老检查前缀与在后面收普报的新检查前缀

2.1.1连续到达-ack延齐累积

delayed ACK用于正常、连续、按序到达的数据流,
如果新检查前缀覆盖过老前缀,能确定当前报文是,前面无丢报地连续到达过来的:

  1. 覆盖报文量过少,就会让当前ack先延时暂时不发;
  2. 等到后面再累积收报文的ack前缀,覆盖老前缀过很多报文量了,就返回 此能一次累积包括确认完,后面新收远范围内大量报文 的一个ack

能省少ack数量,提高协议开销效率与主机处理效率


2.1.2有缺到达-ack立即返回

立即ACK用于异常、断缺、乱序到达的数据流,
如果是乱序,或按序但前面有缺口 的报文到达,它的新ack检查前缀会与老前缀重合,就不是前面报文都连续地已到了,先发但还未到的报文可能是丢了:

  1. 此时就会针对此可能丢包报文,立即返ack,反馈给快速重传
  2. 等到 此判为可能丢失的报文 接收方收到后 也会立即返它的ack,终止 报文已到,还在为此进行的,会导致重复传的 超时/快速重传

2.2延寻捎带报文

ack的延时发送 可以让ack在延迟的区间时间内,等寻本方要发的反向数据报文 搭载上去一起捎带返回,就省少了此ack报文的数量,提高了协议开销效率与主机处理效率


2.3延变剩余空间

接收方收到报文后 ack延时应答,停会再发的延迟时间内:

2.3.1延迟剩变大

可能接收缓冲区收到数据<应用层取走数据,使得返回的ack剩余窗口大小更大了,会让下次发送方的滑动窗口更大,而连发更多数据,传输的吞吐量增多


2.3.2延迟剩变小

可能接收缓冲区收到数据>应用层取走数据,使得返回的ack剩余窗口大小更小了,而让下次发送方连发更少的数据,传输的吞吐量减少


绑定时量送达(不用担心的)

TCP剩余窗口是和字节序号空间绑定的时时允许接收范围,实际上发送方只要遵守了rwnd,连发的窗口报文量 就不会受到 应用程序消费速度的正常变化 而发生 当时反馈的接收方剩余空间大小,在窗口量的报文送到时,过后已改变,如变小就装不下而丢弃 的情况


2.4延增等待时间

只有滑动窗口尾部的报文会 停发地等待,还被延时的ack

2.4.1窗口前中区报文

等待ack与ack延时,无影响发送:
发送方发送的报文到对方,到接收方把ack延时,再到ack发回收到的时间内,发送方还在连发,此ack对应报文往后的,还没发完的剩余窗口里的报文,无受 窗口发完没报文可发了,而停下地等待接着的下一个ack,要划新窗口才有报文可发了
因此报文的发送 不受等待ack及其ack延时发送的影响,传输的吞吐量不变


2.4.2窗口后区报文

等待ack与ack延时,有影响发送:

  1. 等待ack影响:发送方发到窗口后面的余量报文发完时,就会停发地等待 接着最近的一个ack返回,得到对方最新的接收缓冲区剩余量大小,与取出计算的当时拥塞窗口大小,取较小值,划出新窗口,才有窗口内报文可继续发;
  2. ack延时影响:但往往窗口最后剩余的报文量 对方接收后 无法刚好凑满,延齐报文量 而导致停发地等满,延最迟计时器后 才返回ack

这段 停下发送报文,等待还延时ack返回 的时间,发送方原本可以用来发送数据的,停发地去等后 就少了这段时间内的发送方报文发送量,传输的吞吐量减少

相关推荐
Winner_hwx11 小时前
华为ICT大赛备赛复习1
服务器·网络·华为
宗介波妞11 小时前
Wireshark 抓取 IEC104 报文:常见异常报文排查与标志位解读
服务器·网络·wireshark
云边云科技_云网融合12 小时前
工业互联网组网方案全景解析:从低延迟网络到安全隔离的四大核心支柱
网络·安全·php
小程序设计12 小时前
linux防火墙研究与实现
网络·安全
数据知道12 小时前
加密流量分析——JA3 指纹、TLS 指纹识别与规避
网络·安全·网络安全·密码学
网硕互联的小客服13 小时前
各个版本的Linux系统如何修改远程端口ssh端口?
linux·运维·服务器·网络
小程序设计13 小时前
Wi-Fi网络监控及无线终端定位系统的研究
网络·安全
Wang's Blog15 小时前
Java框架快速入门: Spring Security+OAuth2之RBAC与角色分层实践
java·网络·spring
Sophnet云平台15 小时前
2026:AI Agent应用元年,企业从试点到核心业务的跨越逻辑
网络·人工智能·llm·openai·agent