CN117692392A - 重传超时时长确定方法、装置、电子设备及存储介质 - Google Patents
重传超时时长确定方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117692392A CN117692392A CN202311700206.0A CN202311700206A CN117692392A CN 117692392 A CN117692392 A CN 117692392A CN 202311700206 A CN202311700206 A CN 202311700206A CN 117692392 A CN117692392 A CN 117692392A
- Authority
- CN
- China
- Prior art keywords
- delay
- electronic device
- window size
- value
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000005540 biological transmission Effects 0.000 claims abstract description 134
- 238000004891 communication Methods 0.000 claims abstract description 40
- 230000008569 process Effects 0.000 claims abstract description 21
- 238000004364 calculation method Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 23
- 238000009499 grossing Methods 0.000 claims description 16
- 238000005259 measurement Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001976 improved effect Effects 0.000 abstract description 17
- 238000001514 detection method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 8
- 230000035945 sensitivity Effects 0.000 description 5
- 239000002699 waste material Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000001303 quality assessment method Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000001668 ameliorated effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开一种重传超时时长确定方法、装置、电子设备及存储介质,该方法应用于第一电子设备,第一电子设备与第二电子设备建立通信连接,该方法包括:在通过通信连接与第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延;根据往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值;根据新的时延估计值及时延平均偏差值,确定重传超时时长。实施本申请实施例,能够提高确定重传超时时长的准确率,提高通信质量。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种重传超时时长确定方法、装置、电子设备及存储介质。
背景技术
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。为了保证数据的可靠传输,TCP采用了数据包重传的策略来应对在网络中传输过程中可能出现的丢包、错包、乱序等问题。TCP发送端维护一个重传计时器,用于监控每个已发送但未收到确认报文的数据包。TCP发送端在发送一个数据包之后,会开启重传计时器,若在重传超时时长(Retransmission Timeout,RTO)内未收到确认报文,TCP发送端会认为对应的数据包丢失,触发重传机制,从而保证数据传输的完整性和正确性。
目前,通常基于各个数据包的往返时延的平均值计算重传超时时长,导致重传超时时长不够准确,从而影响通信质量。
发明内容
本申请实施例公开了一种重传超时时长确定方法、装置、电子设备及存储介质,能够提高确定重传超时时长的准确率,提高了通信质量。
本申请实施例还公开了一种接收窗口确定方法、装置、电子设备及存储介质,能够有效地避免网络拥塞,提高了通信质量。本申请实施例公开一种重传超时时长确定方法,应用于第一电子设备,所述第一电子设备与第二电子设备建立通信连接,所述方法包括:
在通过所述通信连接与所述第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延;
根据所述往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值;
根据所述新的时延估计值及所述时延平均偏差值,确定重传超时时长。本申请实施例公开一种接收窗口确定方法,应用于第二电子设备,所述第二电子设备与第一电子设备建立通信连接,所述方法包括:
判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值;
在当前接收窗口的窗口尺寸小于或等于所述第二窗口尺寸阈值的情况下,根据预设尺寸增长值调整所述当前接收窗口的窗口尺寸,并重新执行所述判断当前接收窗口的窗口尺寸是否小于或等于所述第二窗口尺寸阈值的步骤,直至当前接收窗口的窗口尺寸大于所述第二窗口尺寸阈值。
本申请实施例公开一种重传超时时长确定装置,应用于第一电子设备,所述第一电子设备与第二电子设备建立通信连接,所述装置包括:
时延测量模块,用于在通过所述通信连接与所述第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延;
时延估计模块,用于根据所述往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值;
时长确定模块,用于根据所述新的时延估计值及所述时延平均偏差值,确定重传超时时长。
本申请实施例公开一种接收窗口确定装置,应用于第二电子设备,所述第二电子设备与第一电子设备建立通信连接,所述装置包括:
判断模块,用于判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值;
调整模块,用于在当前接收窗口的窗口尺寸小于或等于所述第二窗口尺寸阈值的情况下,根据预设尺寸增长值调整所述当前接收窗口的窗口尺寸,并重新执行所述判断当前接收窗口的窗口尺寸是否小于或等于所述第二窗口尺寸阈值的步骤,直至当前接收窗口的窗口尺寸大于所述第二窗口尺寸阈值。
本申请实施例公开一种电子设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现本申请实施例公开的任一实施例中的方法。
本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本申请实施例公开的任一实施例中的方法。
与相关技术相比,本申请实施例公开了一种重传超时时长确定方法、装置、电子设备及存储介质,具有以下有益效果:
第一电子设备在通过通信连接与第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延,并根据往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值,然后根据新的时延估计值以及时延平均偏差值,确定重传超时时长。本申请实施例中,第一电子设备根据往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值,可以在往返时延发生剧烈变化的情况下,避免时延估计值偏差过大,提高时延探测的敏感性和准确性,同时根据新的时延估计值与时延平均偏差值确定重传超时时长,能够提高确定重传超时时长的准确性,从而可以减少不必要的数据重传,提高了数据传输的稳定性和效率。
本申请实施例还公开了一种接收窗口确定方法、装置、电子设备及存储介质,具有以下有益效果:
判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值,并在当前接收窗口的窗口尺寸小于或等于第二窗口尺寸阈值的情况下,根据预设尺寸增长值调整当前接收窗口的窗口尺寸,并重新执行判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值的步骤,直至当前接收窗口的窗口尺寸大于第二窗口尺寸阈值,通过动态调整接收窗口的窗口尺寸,可以尽可能增长可用的接收窗口,有效地避免了过小的窗口尺寸导致的网络拥塞,从而可以提高通信质量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一个实施例中重传超时时长确定方法的应用场景示意图;
图2是一个实施例中重传超时时长确定方法的流程示意图;
图3是另一个实施例中重传超时时长确定方法的流程示意图;
图4是一个实施例中重传超时时长估计器模型的示意图;
图5是另一个实施例中重传超时时长确定方法的流程示意图;
图6是一个实施例中携带时间戳的数据包传输过程的示意图;
图7是一个实施例中针对二义性确认字符时延计算的流程图;
图8是一个实施例中接收窗口确定方法的流程示意图;
图9是一个实施例中重传超时时长确定装置的结构示意图;
图10是一个实施例中接收窗口确定装置的结构示意图;
图11是一个实施例中电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一电子设备称为第二电子设备,且类似地,可将第二电子设备称为第一电子设备。第一电子设备和第二电子设备两者都是电子设备,但其不是同一电子设备。本申请所使用的术语“多个”指的是两个及两个以上。本申请所使用的术语“和/或”指的是其中的一种方案,或是其中多种方案的任意组合。
相关技术中,针对无线局域网的瓶颈带宽与时延拥塞控制算法(BottleneckBandwidth and Round-trip time,BBR)传输算法优化和质量评估有如下几种有代表性的方案:(1)通过比较时延标准差和时延均值,在时延抖动剧烈的情况下将收敛阶段缩减为原来的一半;(2)基于终端的移动性、位置和接收信噪比来预测发送信号断开的持续时间;(3)对需要评估的连接端口,主动发送数据,并收集发送数据返回的质量参数(例如丢包率,时延等),对这些参数进行打分,如果分数不符合允许接入网络的条件将无法使用该连接端口对应的传输通道进行数据传输。
针对BBR在无线保真(Wireless Fidelity,Wi-Fi)带宽方面的低效率问题,可以采用帧聚合机制来提高数据传输的吞吐量。但传输控制协议(Transmission ControlProtocol,TCP)通过降低队列积压率来限制缓冲区膨胀现象并限制延迟,会抑制帧聚合机制的效果,并且BBR模型在遇到干扰因素时会不稳定,离开实验室环境很难维持预设的状态机。在第五代移动通信技术(5th Generation Mobile Communication Technology,5G)环境下进行大量实测,网络状态频繁变化时,BBR的性能并不好。目前已有的方案都是基于目标端口对单流吞吐量进行控制和评估,但实际的网络不可能都是单流传输,在一个目标端口评估得到的是传输管道中所有传输流的博弈结果。因此,只调整单流传输的拥塞窗口或者发送速度增益无法对整条链路的拥塞状态产生影响,关注单一的传输参数并不能实现准确的全局控制,需要更多总结传输规律和统计特征,并且通过激进发送、挤兑带宽的收益越来越小,高带宽会导致高时延。
采用BBR算法时,会使用经典的时延和重传超时(Retransmission Timeout,RTO)计算器模型。
SRTT←0.75SRTTr+0.25RTTs;(1)
其中,SRTT为本次计算得到的时延估计值,SRTTr为上一次计算得到的时延估计值,RTTs为当次测量的往返时延。
RTO←min(ubound,max(lound,SRTT));(2)
其中,RTO为重传超时时长;ubound为RTO的最大值,可为120秒;lound为RTO的最小值,可为1秒。
这种经典的加权计算模型在往返时延剧烈变化时无法适应,导致确定出的重传超时时长不够准确,导致大量不必要的重传。
本申请实施例公开了一种重传超时时长确定方法、装置、电子设备及存储介质,能够提高确定重传超时时长的准确性。以下分别进行详细说明。
请参阅图1,图1是一个实施例中重传超时时长确定方法的应用场景示意图。如图1所示,第一电子设备10与第二电子设备20建立通信连接。
第一电子设备10与第二电子设备20可包括但不限于手机、可穿戴设备、平板电脑、个人电脑(Personal Computer,PC)、服务器等电子设备,本申请实施例不作限定。
第一电子设备10与第二电子设备20之间可基于传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)建立通信连接。TCP/IP是可用于互联网、局域网、广域网等网络的通信协议。TCP/IP协议是包括传输控制协议(Transmission Control Protocol,TCP)、网际互连协议(Internet Protocol,IP)、用户数据报协议(User Datagram Protocol,UDP)、超文本传输协议(HyperText TransferProtocol,HTTP)等多种协议的协议簇。
在一些实施例中,第一电子设备10与第二电子设备20之间可基于TCP协议进行数据传输。TCP协议位于开放式系统互联模型(Open System Interconnection Model,OSI)中的传输层,向上支持应用层协议,向下与网络层的IP协议相互配合,实现可靠的网络传输。TCP协议通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现稳定可靠的数据传输。
在本申请实施例中,第一电子设备10可作为数据传输过程中的发送端,第二电子设备20可作为数据传输过程中的接收端。
在一些实施例中,第一电子设备在通过通信连接与第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延;根据往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值;根据新的时延估计值及时延平均偏差值,确定重传超时时长。
请进一步参阅图2,图2是一个实施例中重传超时时长确定方法的流程示意图;该重传超时时长确定方法可应用于第一电子设备,第一电子设备可为上述任意电子设备。第一电子设备与第二电子设备建立通信连接;如图2所示,该重传超时时长确定方法可以包括以下步骤:
201、在通过通信连接与第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延。
往返时延(Round-TripTime,RTT)指的是从发送端发送数据开始,到发送端接收到接收端返回的响应信号所经过的时间。其中,响应信号可用于指示接收端成功接收到发送端发送的数据,可选的,响应信号可以包括确认字符(Acknowledgment number,ACK)。RTT是衡量网络传输性能的重要指标之一,能够反映出数据在网络中传输的速度和稳定性。通常情况下,RTT越短,网络传输的速度就越快,反之则越慢。
在一些实施例中,第一电子设备可为数据传输过程中的发送端,第二电子设备可为数据传输过程中的接收端。
往返时延可基于时间戳(Timestamps)机制进行测量。第一电子设备向第二电子设备发送的数据包可包括发送时间戳,发送时间戳可指示第一电子设备发送该数据包的时刻。基于发送时间戳以及第一电子设备接收到第二电子设备返回的响应信号的接收时刻之间的差值,即可得到该数据包的往返时延。
第一电子设备在一次发送数据的过程中,可以向第二电子设备发送一个或多个数据包,然后等待接收到第二电子设备返回本次发送的各个数据包对应的响应信号,再进行下一次数据发送。
本次测量到的数据包传输的往返时延可以指基于本次发送的一个或多个数据包测量到的往返时延。
作为一种可选的实施方式,第一电子设备可以一次向第二电子设备发送多个数据包,对于一次发送的多个数据包,可以仅针对其中一个数据包测量往返时延,利用该数据包的往返时延代表其他同一次发送的数据包的往返时延,并将该数据包的往返时延可作为本次测量到的数据包传输的往返时延;或者,可以对一次发送的各个数据包均测量往返时延并计算往返时延平均值,并将该往返时延平均值作为本次测量到的数据包传输的往返时延。
作为另一种可选的实施方式,第一电子设备一次仅向第二电子设备发送一个数据包,那么该数据包对应的往返时延可作为本次测量到的数据包传输的往返时延。
202、根据往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值。
时延估计值(Smoothed Round-TripTime,SRTT)是对往返时延的平滑估计值。时延估计值是迭代更新的,在每次测量数据包传输的往返时延时,都会重新确定时延估计值,以保证时延估计值的实时性和准确性。
其中,上一次确定的时延估计值可以指在第一电子设备与第二电子设备进行数据传输的过程中,基于上一次测量到的往返时延所确定的时延估计值。新的时延估计值可以指基于本次发送的一个或多个数据包测量到的往返时延所对应的时延估计值。
时延平均偏差值(round-trip time variation,RTTVAR)可用于反映各个时延估计值对其平均数的离散程度或变化程度。时延平均偏差值反映了时延估计值的变化情况,进一步反映了往返时延的变化幅度。如果数据包传输的往返时延波动较小,相对稳定,时延平均偏差值较小;如果数据包传输的往返时延波动较大,时延平均偏差值较大。
时延平均偏差值是迭代更新的,在每次测量数据包传输的往返时延时,都会重新确定时延估计值,并且基于重新确定的时延估计值对时延平均偏差值进行更新。
在一些实施例中,上一次确定的时延平均偏差值,可根据上一次确定的时延估计值与上一次确定的时延估计平均值之间的差值确定。其中,上一次确定的时延估计平均值可以指从第一次到上一次确定的各个时延估计值的平均值。
在一些实施例中,第一次确定的时延估计值可以是根据数据传输过程中第一次测量到的往返时延、时延平均偏差值的初始化值以及时延估计值的初始化值确定。
可选的,时延估计值的初始化值可以等于第一次测量到的往返时延,时延平均偏差值的初始化值可以等于第一次测量到的往返时延与初始化因子的乘积,初始化因子的数值范围可以为0至1,比如0.5,具体不作限定。
在一些实施例中,第一电子设备可对本次测量到的往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值进行加权和计算,得到新的时延估计值。根据不同网络环境下的时延变化情况,第一电子设备可对本次测量到的往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值分别分配对应的权重,并基于本次测量到的往返时延、上一次确定的时延平均偏差值、上一次确定的时延估计值以及分别对应的权重进行加权和计算,得到新的时延估计值。
在另一些实施例中,第一电子设备可对往返时延及上一次确定的时延估计值进行加权和计算,并根据第一计算结果及上一次确定的时延平均偏差值确定新的时延估计值。
若直接利用往返时延作为计算重传超时时长的基础,可能会导致因为某个往返时延值异常导致确定出不准确的重传超时时长。因此,本申请实施例中,新的时延估计值考虑了本次测量到的往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值多个因素,从而为计算重传超时时长提供了一个更可靠与稳定的与往返时延相关的数值。因此,本申请实施例中的时延估计值能够准确地估计数据包传输的往返时延,通过新的时延估计值准确地反映本次数据传输的时延情况,使得计算出的重传超时时长能够适应网络的变化和波动,更好地确保数据的可靠传输。
203、根据新的时延估计值及时延平均偏差值,确定重传超时时长。
由于时延估计值能准确地估计数据包传输的往返时延,而时延平均偏差值能够准确地反映往返时延的变化情况,因此,第一电子设备可根据新的时延估计值及上一次确定的时延平均偏差值计算重传超时时长,可以更准确地反映网络状况,从而确定合适的重传超时时长,使得重传超时时长能够更加适应网络环境的变化。引入时延平均偏差值确定重传超时时长,可以考虑到往返时延的波动情况,更好地适应不同网络环境下的数据传输需求,即使在往返时延发生剧烈变化的情况下也能够适应,避免了大量不必要的重传,提高在不同网络条件下进行数据传输的稳定性和可靠性。
在一些实施例中,第一电子设备可对新的时延估计值及时延平均偏差值进行加权和计算,得到重传超时时长。第一电子设备可对新的时延估计值以及时延平均偏差值分别分配对应的权重,并基于新的时延估计值、时延平均偏差值以及分别对应的权重进行加权和计算,得到新的时延估计值。
在确定新的时延估计值之后,第一电子设备可根据新的时延估计值以及上一次确定的时延平均偏差值,确定新的时延平均偏差值;并基于下次测量到的数据包传输的往返时延、新的时延平均偏差值以及新的时延估计值,重新确定时延估计值。因此,通过对时延平均偏差值以及时延估计值进行不断迭代更新,可进一步实现对重传超时时长的不断更新。
作为一种可选的实施方式,第一电子设备可根据新的时延估计值(即本次确定的时延估计值)更新时延估计平均值,根据更新后的时延估计平均值(即本次确定的时延估计平均值)与本次确定的时延估计值相减得到第一差值,并将第一差值与上一次确定的时延平均偏差值进行加权和计算,得到新的时延平均偏差值(即本次确定的时延平均偏差值)。具体地,本次确定的时延平均偏差值可参考公式(3)进行计算。
RTTVARk←(1-h)RTTVARk-1+h(|M-SRTTk|);(3)
其中,RTTVARk为本次确定的时延平均偏差值,RTTVARk-1为上一次确定的时延平均偏差值;h为加权系数,h的数值范围为0至1,比如,可以为0.25、0.3或0.35等,具体不做限定;SRTTk为本次确定的时延估计值;M为本次确定的时延估计平均值,本次确定的时延估计平均值可以指从第一次到本次确定的各个时延估计值的平均值。
在确定重传超时时长之后,若第一电子设备向第二电子设备发送数据包,并且在重传超时时长内未接收到第二电子设备返回的响应信号,就会触发重传机制,重新发送该数据包;其中,响应信号用于指示第二电子设备已经成功接收到该数据包。如果重传超时时长太长,会导致对丢失的数据包的重传延迟,从而导致数据传输的效率低下;如果重传超时时长太短,可能数据包并没有丢失就进行重传,会导致大量不必要的重传,从而增加网络拥塞以及浪费网络带宽。因此,通过准确地确定重传超时时长,能够在保障数据传输的完整性的情况下,避免不必要的重传,从而提高数据传输的稳定性和效率。
本申请实施例中,第一电子设备根据本次测量到的往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值,可以在往返时延发生剧烈变化的情况下,避免时延估计值偏差过大,提高时延探测的敏感性和准确性,同时根据新的时延估计值与时延平均偏差值确定重传超时时长,能够提高确定重传超时时长的准确性,从而可以减少不必要的数据重传,提高了数据传输的稳定性和效率。
请进一步参阅图3,图3是另一个实施例中重传超时时长确定方法的流程示意图,该方法可应用于第一电子设备,第一电子设备与第二电子设备建立通信连接,如图3所示,该重传超时时长确定方法可以包括以下步骤:
301、在通过通信连接与第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延。
步骤301的实施方式可参考上述实施例,具体不作赘述。
302、根据平滑因子对往返时延及上一次确定的时延估计值进行加权和计算,得到第一计算结果。
平滑因子可用于在计算新的时延估计值时,平衡往返时延及上一次确定的时延估计值的权重,从而提高计算时延估计值的准确性。
在一些实施例中,平滑因子的数值范围可以为0至1,比如0.75、0.8或0.9,具体不作限定。该平滑因子可随着不同数据传输质量的场景变化而变化,比如,若数据传输质量下降,测量到的往返时延会增大很多,此时需要放缓往返时延的增长速度,因此平滑因子可以设置的较小。相比于固定的加权系数,动态可变的平滑因子可适应更多的传输场景。
在一些实施例中,第一电子设备将第一权重值与上一次确定的时延估计值相乘得到第一乘积,将第二权重值与往返时延相乘得到第二乘积,将第一乘积与第二乘积相加得到第一计算结果,其中,第一权重值等于1与平滑因子相减的结果,第二权重值等于平滑因子。
303、根据第一计算结果及上一次确定的时延平均偏差值,确定新的时延估计值。
在一些实施例中,第一电子设备将第一计算结果与上一次确定的时延平均偏差值相加得到新的时延估计值。
作为一种可选的实施方式,第一电子设备可根据1减去平滑因子的差值与上次确定的时延估计值相乘得到的第一结果,根据平滑因子与本次测量到的往返时延相乘得到第二结果,将第一结果、第二结果以及上一次确定的时延平均偏差值相加,得到本次确定的时延估计值。具体地,本次确定的时延估计值可参考公式(4)进行计算。
SRTTk←(1-α)SRTTk-1+αRTTk+RTTVARk-1;(4)
其中,SRTTk为本次确定的时延估计值,α为平滑因子,RTTk为本次测量到的往返时延,RTTVARk-1为上一次确定的时延平均偏差值,SRTTk-1为上一次确定的时延估计值。
上述实施例引入时延平均偏差值计算时延估计值,作为时延估计器的震荡加权因子,在往返时延剧烈变化时,可以平滑时延估计值,提高时延感知的敏感性。
304、根据膨胀避免系数与新的时延估计值的乘积,以及时延平均偏差值,确定重传超时时长。
膨胀避免系数可用于对时延估计值进行调节,避免剧烈变化的时延测量结果导致重传超时时长剧烈膨胀。
在一些实施例中,将膨胀避免系数与新的时延估计值的乘积,与时延平均偏差值相加,得到重传超时时长;或者,将膨胀避免系数与新的时延估计值的乘积,以及时延平均偏差值与偏差系数的乘积,进行相加,得到重传超时时长,其中,偏差系数可以为4或5等,具体不作限定。
在数据传输过程中出现重传、乱序、丢包的情况下,可以将膨胀避免系数的数值调节地比较小,通过膨胀避免系数对时延估计值进行调节,可以避免累积大的时延测量结果导致重传超时时长剧烈膨胀。
在一些实施例中,根据膨胀避免系数与新的时延估计值的乘积,以及时延平均偏差值,确定重传超时时长,包括:根据第一电子设备的系统时钟粒度以及时延平均偏差值,确定第一数值;根据膨胀避免系数与新的时延估计值的乘积,以及第一数值,确定第一时长;根据第一时长与第二时长中的最大值,确定重传超时时长,第二时长是根据自适应因子与预设时长确定的。
系统时钟粒度为系统所能提供的最小时间间隔。第一电子设备的系统时钟粒度为第一电子设备能够准确测量和记录的最小时间间隔。计算重传超时时长时,需要考虑系统时钟粒度是因为重传超时时长依赖于时间的准确度,第一电子设备的系统时钟粒度越细,提供的时间精确度越高。更精细的系统时钟粒度可以提供更准确的时间测量,有助于提高重传超时时长的计算精度,保证了数据传输的效率和可靠性。
在一些实施例中,自适应因子的数值范围可以是大于或等于1的整数,预设时长可以是1000毫秒,具体不作限定。
因为在系统时钟粒度较大的情况下,对数据传输过程中各个数据的检测并不敏感,所以重传超时时长也需要随之增大,从而提高重传超时时长在系统时钟粒度较大情况下的准确性。因此,在系统时钟粒度较大时,可以适当增加自适应因子的数值,从而在根据第一时长与第二时长中的最大值确定重传超时时长时,可以保障重传超时时长的下限值为1秒的整数倍。
在一些实施例中,将第一电子设备的系统时钟粒度,以及时延平均偏差值与偏差系数的乘积中的最大值,确定为第一数值;将膨胀避免系数与新的时延估计值的乘积,与第一数值进行相加,得到第一时长;根据第一时长与第二时长中的最大值,确定重传超时时长,第二时长是根据自适应因子与预设时长确定的。
作为一种可选的实施方式,重传超时时长可以通过如下公式进行计算:
RTO←max(βSRTTk+max(G,4RTTVARk-1),γ1000);(5)
其中,RTO为重传超时时长,β为膨胀避免系数,SRTTk为新的时延估计值(即本次确定的时延估计值),G为系统时钟粒度,RTTVARk-1为上一次确定的时延平均偏差值,γ为自适应因子,预设时长为1000,偏差系数为4。
可见,由于不同的电子设备系统时钟粒度不同,时延估计值SRTTk可以为系统时钟粒度和4*RTTVARk-1中的最大值,例如Linux系统时钟粒度是1毫秒,时延平均偏差值RTTVARk-1更大,可以避免重传超时时长较小导致的频繁重传。在计算重传超时时长时通过引入最小值1000毫秒,保证了重传超时时长最小为1秒。自适应因子可以保证时钟粒度比较粗的系统也能得到合适倍数的最小重传超时时长。
在计算新的时延估计值SRTTs时,增加上一次确定的时延平均偏差值RTTVARr,在往返时延RTTs剧烈变化的情况下,保证计算出来的新的时延估计值SRTTs不会与预期值相差过多,由于相关技术公式(1)中时延数值所占的加权系数大,当时延骤变,时延估计器的感知不够敏感,增加时延平均偏差值RTTVARr可以有效改善这个问题。
在数据传输过程中出现重传、乱序、丢包的情况下,可以将膨胀避免系数的数值调节地比较小,通过膨胀避免系数对时延估计值进行调节,可以避免累积大的时延测量结果导致重传超时时长剧烈膨胀;而且,增加膨胀避免系数,在短距传输中可避免重传超时时长增长过快,长时间无重传数据引发的断连。
在计算重传超时时长时,引入自适应因子以及系统时钟粒度,可以在系统时钟粒度较大的情况下,增加自适应因子的数值,使得重传超时时长也随之增大,从而提高重传超时时长在系统时钟粒度较大情况下的准确性。并且,增加自适应因子,方便适配多操作系统终端设备时钟粒度的兼容。
如图4所示,图4是一个实施例中重传超时时长估计器模型的示意图。可见,重传超时时长估计器包括瞬时偏差估计器与时延估计器,瞬时偏差估计器用于计算时延平均偏差值,时延估计器用于计算时延估计值。瞬时偏差估计器可基于历史偏差得到当前偏差,并将时延均值输入到时延估计器中;比如,历史偏差可以为公式(3)中的RTTVARk-1,当前偏差可以为公式(3)中的RTTVARk,时延均值可以为公式(3)中的M。时延估计器可基于历史时延以及时延偏差得到当前时延,并将历史时延输入到瞬时偏差估计器中;比如,历史时延可以为公式(4)中的SRTTk-1,当前时延可以为公式(4)中的SRTTk,时延偏差可以指平滑因子。
模拟器时钟粒度指的是用于计算重传超时时长的时钟粒度。以基于TCP协议进行数据传输为例,模拟器时钟粒度指的是TCP自洽时钟的时钟粒度,TCP通过确认字符ACK来驱动数据发送,发送端每发送一个数据包,接收端收到后回复一个确认字符ACK,发送端接收到预期的确认字符ACK,发送下一个数据包。TCP独立测量每次传输参数,即确认ACK收到时计算当次的参数。当发送端收不到期待的确认字符ACK就会发生重传,重传超时时长的变化与确认字符的传输具有很大的相关度。
本申请实施例设计的新的重传超时时长估计器模型,可适应互联互通的广泛场景,在保持异常感知的敏感性的同时减少带宽损耗。
本申请实施例中,在通过通信连接与第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延;根据平滑因子对往返时延及上一次确定的时延估计值进行加权和计算,得到第一计算结果,在计算新的时延估计值时,通过平滑因子平衡往返时延及上一次确定的时延估计值的权重,从而提高计算时延估计值的准确性;根据第一计算结果及上一次确定的时延平均偏差值,确定新的时延估计值,在计算新的时延估计值时,增加时延平均偏差值,在往返时延剧烈变化的情况下,保证计算出来的新的时延估计值不会与预期值相差过多;根据膨胀避免系数与新的时延估计值的乘积,以及时延平均偏差值,确定重传超时时长,在数据传输过程中出现重传、乱序、丢包的情况下,可以将膨胀避免系数的数值调节地比较小,通过膨胀避免系数对时延估计值进行调节,可以避免累积大的时延测量结果导致重传超时时长剧烈膨胀。
请进一步参阅图5,图5是另一个实施例中重传超时时长确定方法的流程示意图,该方法可应用于第一电子设备,第一电子设备与第二电子设备建立通信连接,如图5所示,该重传超时时长确定方法可以包括以下步骤:
501、在第一电子设备满足数据发送条件的情况下,通过通信连接向第二电子设备发送数据包。
在一些实施例中,数据包可包括头部(Header)和数据载荷部(Payload)。以TCP数据包为例,TCP数据包的头部承载了TCP协议控制信息和状态信息,数据载荷部承载了实际要传输的数据内容。
其中,数据发送条件包括以下中的一个或多个:
第一电子设备准备发送的M个数据包的有效数据长度大于或等于最大报文段长度,M为大于或等于1的整数;
第一电子设备已经发送但未被第二电子设备接收的N个数据包的数据包总长度大于或等于第一窗口尺寸阈值,N为大于或等于1的整数,第一窗口尺寸阈值根据第二电子设备对应的当前接收窗口的窗口尺寸确定;
第一电子设备与第二电子设备之间不存在第一电子设备已经发送但未被第二电子设备接收的数据包。
最大报文段长度(Maximum Segment Size,MSS)为第一电子设备与第二电子设备之间能够传输的数据包的数据载荷部的最大长度,不包括头部长度。第一电子设备准备发送的M个数据包的有效数据长度大于或等于最大报文段长度,其中,有效数据长度指的是数据包中数据载荷部的长度。以TCP传输为例,MSS为TCP传输预设的最小单元。第一电子设备准备发送的M个数据包的有效数据长度大于或等于最大报文段长度,可以避免有效数据过短引发的带宽浪费。
第一电子设备已经发送但未被第二电子设备接收的N个数据包也可以称为飞行流量(Flight Data),飞行流量指的是发送端已经发送但还没有被接收的数据。第一电子设备已经发送但未被第二电子设备接收的N个数据包的数据包总长度大于或等于第一窗口尺寸阈值,其中,数据包总长度指的是N个数据包的头部与数据载荷部的总长度。第一电子设备已经发送但未被第二电子设备接收的N个数据包的数据包总长度大于或等于第一窗口尺寸阈值,可以是针对一些性能较差的电子设备所做的兼容,由于性能较差的电子设备通告的接收窗口一般较小,可能会小于发送端的最大报文段长度,因此可保证数据包总长度不会过短,避免带宽浪费。
第一窗口尺寸阈值根据第二电子设备对应的当前接收窗口的窗口尺寸确定。
当前接收窗口的窗口尺寸可以指第二电子设备当前所能提供的用于接收数据的缓存区大小。可选的,第一窗口尺寸阈值可以等于当前接收窗口的窗口尺寸与0.5的乘积,具体不作限定。
第一电子设备与第二电子设备之间不存在第一电子设备已经发送但未被第二电子设备接收的数据包,即第一电子设备与第二电子设备之间不存在飞行流量,在空闲的带宽上可优先保证实时性。
作为一种可选的实施方式,第一电子设备作为数据传输的发送端,下面对发送端的数据发送条件进行说明:
If dataSize1>=MSS
Or dataSize2>=WinSize/2
Or flightDate is null
Do send new data;
其中,dataSize为第一电子设备准备发送的M个数据包的有效数据长度;MSS为最大报文段长度;dataSize2为第一电子设备已经发送但未被所述第二电子设备接收的N个数据包的数据包总长度;WinSize/2为第一窗口尺寸阈值,WinSize为当前接收窗口的窗口尺寸;flightDate为飞行流量,即第一电子设备已经发送但未被第二电子设备接收的数据包,flightDate is null说明第一电子设备与第二电子设备之间的传输管道中已经没有飞行流量。
可见,对于发送端来说,需要满足如下条件才能发送新的数据包:(1)第一电子设备准备发送的M个数据包的有效数据长度达到了单次最大报文段长度MSS;(2)第一电子设备已经发送但未被所述第二电子设备接收的N个数据包的数据包总长度已经大于当前接收窗口的一半;(3)第一电子设备与第二电子设备之间的传输管道中已经没有飞行流量。
502、根据第二电子设备对应的当前接收窗口,确定第一电子设备与第二电子设备进行数据传输的速率。当前接收窗口的窗口尺寸可以指第二电子设备当前所能提供的用于接收数据的缓存区大小,在数据传输过程中,由于接收端的数据缓存空间是有限的,接收端的当前接收窗口可作为发送端确定数据传输的速率的依据。
因此,第一电子设备作为数据传输的发送端,第二电子设备作为数据传输的接收端,第一电子设备可根据第二电子设备对应的当前接收窗口,确定第二电子设备的缓存区大小,从而控制第一电子设备与第二电子设备进行数据传输的速率,从而避免发送端使接收端缓存溢出的情况。
第二电子设备在每次更新当前接收窗口之后,都会将更新后的当前接收窗口的窗口尺寸等窗口信息发送至第一电子设备,以使第一电子设备能够及时根据第二电子设备对应的当前接收窗口,调整第一电子设备与第二电子设备进行数据传输的速率。
其中,当前接收窗口的窗口尺寸大于第二窗口尺寸阈值,第二窗口尺寸阈值为最大报文段长度与历史窗口尺寸中的最小值,历史窗口尺寸根据上一接收窗口的窗口尺寸确定。可选的,历史窗口尺寸可等于上一接收窗口的窗口尺寸与0.5的乘积。
对于接收端,应避免通告过小的接收窗口,因此,在第二电子设备的接收窗口小于第二窗口尺寸阈值的情况,会调整接收窗口的窗口尺寸,直至当前接收窗口的窗口尺寸大于第二窗口尺寸阈值,从而可以减少网络拥塞的情况发生。
当前接收窗口为第二电子设备本次数据传输能够接收的数据量的大小;上一接收窗口为第二电子设备上次数据传输能够接收的数据量的大小,即当前接收窗口进行调整前的上一接收窗口。
可选的,历史窗口尺寸可等于上一接收窗口的窗口尺寸与0.5的乘积。
因此,上述实施例提供了一种近场连接交互窗口协商规范,设计了发送窗口和接收窗口探测的方法,在保证即时性的同时尽力减少带宽的损耗;并且,规定了发送/接收窗口的预设值为带宽时延积,放弃了操作系统预置或是提前预置尽可能大窗口的方案。
503、在通过通信连接与第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延。
504、根据往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值。
505、根据新的时延估计值及时延平均偏差值,确定重传超时时长。
步骤503~步骤505的实施方式可参考上述实施例,具体不作赘述。
506、若在向第二电子设备发送目标数据包后的重传超时时长内,未接收到第二电子设备返回的目标数据包对应的响应信号,则重新向第二电子设备发送目标数据包。
目标数据包为任意数据包。
响应信号可用于指示接收端成功接收到发送端发送的数据,可选的,响应信号可以包括确认字符(Acknowledgment number,ACK)。
在一些实施例中,若在向第二电子设备发送目标数据包后的重传超时时长内,接收到第二电子设备返回的目标数据包对应的响应信号,则确认第二电子设备成功接收到该目标数据包。
第一电子设备向第二电子设备发送的目标数据包包括该目标数据包对应的序号,以及发送时间戳;响应信号包括确认字符以及接收到的目标数据包对应的发送时间戳。其中,发送时间戳包括第一电子设备发送目标数据包的时刻。目标数据包对应的序号以及发送时间戳可封装于目标数据包中的数据载荷部。确认字符可包括期望接收到的下一个数据包的序号,期望接收到的下一个数据包的序号可以为目标数据包的序号加一。例如发送端发送了序号为501的、长度为100的目标数据包,那接收端收到后要回复内容为601的确认字符,表示0~600的字节已经接收,下次希望收到第601个字节以后的数据。
接收端在接收到目标数据包的情况下,根据目标数据包对应的序号确定期望接收到的下一个数据包的序号,并根据期望接收到的下一个数据包的序号以及目标数据包对应的发送时间戳确定响应信号,并向发送端发送该响应信号。发送端在接收到响应信号的情况下,发送下一个新的数据包,接收端接收到该新的数据包的情况下,比较该新的数据包的序号与期望接收到的下一个数据包的序号是否相同,若相同,则利用当前系统时间减去发送时间戳得到往返时延。因此,可为应用主动探测网络质量提供了一种数据包收发格式,在确认数据非单一对应的场景下,极大地保证了时延探测的准确性。
应用需要可靠带宽时往往采用主动发包的方式进行网络质量查询作为准入。由于确认数据并不携带有用负载,占比过高对带宽资源是一种可见的浪费。这种尽力传输场景往往采用多个数据回复一个确认信息的方式。出现数据丢失和失序时,发送数据和回复的确认消息不再是一一对应。如图6所示,图6提供了一个实施例中携带时间戳的数据包传输过程的示意图,有助于简洁高效的完成预期评估。
如图6所示,发送端将本次的数据包序号和发送时间戳封装在一起发送给接收端,接收端收到后会记录期待收到的下一个序号,并将这个期待收到的下一个序号和发送端发来的发送时间戳一起封装进响应信号中。发送端接收到响应信号时,会发送下一个数据包,接收端收到后会比较下一个数据包的新序号和保存的期待收到的下一个序号是否相同,如果相同,就用当前系统时间减去发送时间戳得到往返时延RTT。因此,提供了一种应用主动质量探测的解决方案,该方案在确认数据非单一对应的场景下,极大地保证了时延探测的准确性。
若在向第二电子设备发送目标数据包后的重传超时时长内,第一电子设备未接收到第二电子设备返回的目标数据包对应的响应信号,则重新发送该目标数据包,即触发了重传机制。
发生重传时,发送端接收到一个确认字符,是无法区分这是原始数据还是重传数据的确认,即该确认字符具有二义性。其中,原始数据为第一次发送的目标数据包,重传数据为第二次重新发送的目标数据包。
507、若接收到第二电子设备返回的重新发送的目标数据包对应的响应信号,则根据第一概率测量目标数据包对应的往返时延。
相关技术中,为了避免非对应关系导致的往返时延测量不准,在发生重传后,对重传数据的确认字符不计算往返时延。比如,第一电子设备向第二电子设备发送了4个数据包,其中,数据包A发生了重传,则不会计算数据包A的往返时延,会计算其他数据包的往返时延。该方法在传输性能正常的时候可以得到预期结果,一旦出现大量重传,无法实现对时延的实时计算。需要注意的是,针对相同的数据包,第一电子设备只会收到一个对应的确认字符,因为第二电子设备在接收到重复的数据包会丢弃。
因此,通过引入概率因子δ,在收到重传数据的确认字符时,有δ的概率计算往返时延,既保证不会长时间没有计算的RTT值,也避免大量的不对应关系导致的RTT值估算过大,这有效提高了模型在丢包和失序时的鲁棒性。其中,第一概率的数值等于概率因子δ。
本申请实施例设计的二义性概率重传超时时长计算模型,对重传的数据概率性的计算时延数值,既保证不会长时间没有计算的往返时延,也避免大量的不对应关系导致的往返时延值估算过大。也可以规避近场通信由于往返时延、重传超时时长较小而积极重传引发的伪重传。
在一些实施例中,根据第一概率测量目标数据包对应的往返时延,可以是在预设时长内计算接收到发生重传的数据包的确认字符的次数,根据该次数以及第一概率测量目标数据包对应的往返时延,比如,第一概率为0.5,在预设时长内接收到发生重传的数据包的确认字符的次数为50,则对于其中25个发生重传的数据包的确认字符需要用于计算往返时延,若重传的目标数据包正好落入该概率范围内,则会根据重传的目标数据包对应的确认字符计算目标数据包对应的往返时延。
上述实施例在出现丢包、重传、乱序时,可以规避确认字符二义性带来的往返时延的不实膨胀,也可以规避长时间的往返时延探测停摆;同时,提高了往返时延探测的鲁棒性,一定程度上规避了伪重传。
如图7所示,图7为一个实施例中针对二义性确认字符时延计算的流程图。可见本申请实施例的方法对伪重传也有很好的正面效果,相关技术不会计算重传数据的往返时延,发送端保存的重传超时时长仍与正常传输相差不多,在丢包和失序时,会积极重传,造成一定的带宽浪费。当报文段失序时,返回的时间戳为使窗口前移的最新时间戳,计算出的时延值会变大,重传超时时长也会随之增大,重传的积极性会下降。发送端不会急于重传,可以一定程度上规避积极重传导致的伪重传。
在互联互通业务中,终端设备之间随时随地可能建立新连接,这些新连接之间也要进行可靠传输和传输质量评估。这些新连接可能会用到相同终端设备的其他连接信息,包含已关闭的连接和正在进行的连接。可以设计一个模块用来控制连接之间的性能依赖性:即时共享:新连接与已关闭连接之间的依赖;总线共享:新连接与其他正在进行连接之间的依赖。获取这些依赖关系,对于强相关的连接可以避免重复的探测,又有利于统一调控拓扑中的连接方案。
请进一步参阅图8,图8是一个实施例中接收窗口确定方法的流程示意图,该方法可应用于第二电子设备,第二电子设备与第一电子设备建立通信连接,如图8所示,该接收窗口确定方法可以包括以下步骤:
801、判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值。
802、在当前接收窗口的窗口尺寸小于或等于第二窗口尺寸阈值的情况下,根据预设尺寸增长值调整当前接收窗口的窗口尺寸,并执行步骤801。
对于接收端,为了避免通告过小的接收窗口,在当前接收窗口的窗口尺寸小于或等于第二窗口尺寸阈值的情况下,强制进行窗口探测,即强制根据预设尺寸增长值调整当前接收窗口的窗口尺寸,每根据预设尺寸增长值调整一次当前接收窗口的窗口尺寸,就重新判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值,在当前接收窗口的窗口尺寸小于或等于第二窗口尺寸阈值的情况下,继续进行窗口探测,直至当前接收窗口的窗口尺寸大于第二窗口尺寸阈值,从而尽可能增长可用的接收窗口,避免了网络拥塞的发生以及维持网络的稳定性。可选的,预设尺寸增长值可以为10字节或20字节,具体不做限定。
在一些实施例中,第二窗口尺寸阈值为最大报文段长度与历史窗口尺寸中的最小值,历史窗口尺寸根据上一接收窗口的窗口尺寸确定;当前接收窗口用于确定第一电子设备与第二电子设备进行数据传输的速率。
作为一种可选的实施方式,第二电子设备作为数据传输的接收端,接收端对当前接收窗口的调整过程如下:
If winSize<=min(MSS,receWinSize/2)
Todo detection winSize
Do Available winSize increases;
对于接收端,应避免通告过小的接收窗口,在当前接收窗口小于单次最大报文段长度MSS和上一接收窗口的一半时,强制进行窗口探测,尽可能增长可用接收窗口。
803、在当前接收窗口的窗口尺寸大于第二窗口尺寸阈值的情况下,结束流程。
当前接收窗口的窗口尺寸可以指第二电子设备当前所能提供的用于接收数据的缓冲区大小。在数据传输的过程中,接收端可以告诉发送端自己还有多少缓冲区可以接收数据,防止发送端发送的数据量过大导致接收端无法处理,会触发发送端的重发机制,从而导致网络流量的浪费。因此,控制接收窗口的窗口尺寸,有助于避免发送端发送的数据超过接收端的可用窗口,从而有效地进行流量控制。
在数据传输过程中,发送端与接收端之间的传输管道可抽象为一个具有时间延展性的逐渐清空的动态容器,发送端希望可以尽快充满发送管道,达到稳定的发送速度,也期待接收端确认的确认字符尽快回来,以驱动窗口滑动,发送全新的数据。相关技术中,当一个TCP连接中不能增加飞行流量时,小的报文段不能发送,需要等到所有在传数据的确认字符都收到,才将这些小的报文段组合成一个报文段发送。这种“停等”是TCP自洽时钟的关键:确认字符返回的越快,数据传输的越快,即往返时延RTT控制发送速度。
在近场互联互通业务中,应用要求时延尽可能的小,如一端发起连接请求,另一端需要尽快响应。相关技术中的原有算法由于“停等”,对这种小数据的实时传输并不友好。如果每个数据都作为独立的发送单元又会带来新的问题:接收端没有等到窗口变大就去通告一个比较小的接收窗口或者发送端没有等待其他数据合并就强制发送了一个较小的数据。实际数据负载相较于报头的比例较小,会浪费带宽。而且单独的一端无法预知另一端的行为,这就需要双端协商一个统一的规范。
因此,为了避免网络拥塞的发生,本申请实施例提供了一种动态调整接收窗口的方法,根据在传数据值实时更新接收窗口,使得通告的接收窗口不能小于第二窗口尺寸阈值,相比于提前预设一个较大的窗口值导致在传输开始阶段极易造成拥塞提前的情况,本申请实施例的接收窗口的调整方法能够根据网络状态进行动态调整,能够很好地避免网络拥塞,保持网络的稳定性,并提供了一种近场连接交互窗口协商规范,在保证即时性的同时尽力减少带宽损耗。
因此,上述实施例提供了一种近场连接交互窗口协商规范,设计了发送窗口和接收窗口探测的方法,在保证即时性的同时尽力减少带宽的损耗;并且,规定了发送/接收窗口的预设值为带宽时延积,放弃了操作系统预置或是提前预置尽可能大窗口的方案。
在互联互通业务中,终端设备之间随时随地可能建立新连接,这些新连接之间也要进行可靠传输和传输质量评估。这些新连接可能会用到相同终端设备的其他连接信息,包含已关闭的连接和正在进行的连接。可以设计一个模块用来控制连接之间的性能依赖性,比如即时共享:新连接与已关闭连接之间的依赖;总线共享:新连接与其他正在进行连接之间的依赖。获取这些依赖关系,对于强相关的连接可以避免重复的探测,又有利于统一调控拓扑中的连接方案。
请参阅图9,图9是一个实施例中重传超时时长确定装置的结构示意图,该装置应用于第一电子设备,第一电子设备与第二电子设备建立通信连接。如图9所示,重传超时时长确定装置900可包括:时延测量模块910、时延估计模块920和时长确定模块930。
时延测量模块910,用于在通过通信连接与第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延;
时延估计模块920,用于根据往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值;
时长确定模块930,用于根据新的时延估计值及时延平均偏差值,确定重传超时时长。
在一个实施例中,时延估计模块920还用于根据平滑因子对往返时延及上一次确定的时延估计值进行加权和计算,得到第一计算结果;根据第一计算结果及上一次确定的时延平均偏差值,确定新的时延估计值。
在一个实施例中,时长确定模块930还用于根据膨胀避免系数与新的时延估计值的乘积,以及时延平均偏差值,确定重传超时时长。
在一个实施例中,时长确定模块930还用于根据第一电子设备的系统时钟粒度以及时延平均偏差值,确定第一数值;根据膨胀避免系数与新的时延估计值的乘积,以及第一数值,确定第一时长;根据第一时长与第二时长中的最大值,确定重传超时时长,第二时长是根据自适应因子与预设时长确定的。
在一个实施例中,时延测量模块910还用于若在向第二电子设备发送目标数据包后的重传超时时长内,未接收到第二电子设备返回的目标数据包对应的响应信号,则重新向第二电子设备发送目标数据包;若接收到第二电子设备返回的重新发送的目标数据包对应的响应信号,则根据第一概率测量目标数据包对应的往返时延。
在一个实施例中,该重传超时时长确定装置900还包括数据发送模块;
数据发送模块,用于在第一电子设备满足数据发送条件的情况下,通过通信连接向第二电子设备发送数据包;其中,数据发送条件包括以下中的一个或多个:第一电子设备准备发送的M个数据包的有效数据长度大于或等于最大报文段长度,M为大于或等于1的整数;第一电子设备已经发送但未被第二电子设备接收的N个数据包的数据包总长度大于或等于第一窗口尺寸阈值,N为大于或等于1的整数,第一窗口尺寸阈值根据第二电子设备对应的当前接收窗口的窗口尺寸确定;第一电子设备与第二电子设备之间不存在第一电子设备已经发送但未被第二电子设备接收的数据包。
在一个实施例中,数据发送模块还用于根据第二电子设备对应的当前接收窗口,确定第一电子设备与第二电子设备进行数据传输的速率;其中,当前接收窗口的窗口尺寸大于第二窗口尺寸阈值,第二窗口尺寸阈值为最大报文段长度与历史窗口尺寸中的最小值,历史窗口尺寸根据上一接收窗口的窗口尺寸确定。
本申请实施例中,第一电子设备根据往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值,可以在往返时延发生剧烈变化的情况下,避免时延估计值偏差过大,提高时延探测的敏感性和准确性,同时根据新的时延估计值与时延平均偏差值确定重传超时时长,能够提高确定重传超时时长的准确性,从而可以减少不必要的数据重传,提高了数据传输的稳定性和效率。
请参阅图10,图10是一个实施例中接收窗口确定装置的结构示意图,该装置应用于第二电子设备,第二电子设备与第一电子设备建立通信连接;如图10所示,接收窗口确定装置1000可包括:判断模块1010和调整模块1020;
判断模块1010用于判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值;
调整模块1020用于在当前接收窗口的窗口尺寸小于或等于第二窗口尺寸阈值的情况下,根据预设尺寸增长值调整当前接收窗口的窗口尺寸,并重新执行判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值的步骤,直至当前接收窗口的窗口尺寸大于第二窗口尺寸阈值。
在一个实施例中,第二窗口尺寸阈值为最大报文段长度与历史窗口尺寸中的最小值,历史窗口尺寸根据上一接收窗口的窗口尺寸确定。
本申请实施例中,判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值,并在当前接收窗口的窗口尺寸小于或等于第二窗口尺寸阈值的情况下,根据预设尺寸增长值调整当前接收窗口的窗口尺寸,并重新执行判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值的步骤,直至当前接收窗口的窗口尺寸大于第二窗口尺寸阈值,通过动态调整接收窗口的窗口尺寸,可以尽可能增长可用的接收窗口,有效地避免了过小的窗口尺寸导致的网络拥塞,从而可以提高通信质量。
请参阅图11,图11是一个实施例中电子设备的结构示意图。如图11所示,该电子设备1100可以包括:存储有可执行程序代码的存储器1110;与存储器1110耦合的处理器1120;其中,处理器1120调用存储器1110中存储的可执行程序代码,执行本申请实施例公开的任一种重传超时时长确定方法。
本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,计算机程序被所述处理器执行时,使得所述处理器实现本申请实施例公开的任意一种重传超时时长确定方法。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请的各个实施例上述方法的部分或全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本申请实施例公开的一种重传超时时长确定方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种重传超时时长确定方法,其特征在于,应用于第一电子设备,所述第一电子设备与第二电子设备建立通信连接,所述方法包括:
在通过所述通信连接与所述第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延;
根据所述往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值;
根据所述新的时延估计值及所述时延平均偏差值,确定重传超时时长。
2.根据权利要求1所述的方法,其特征在于,所述根据所述往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值,包括:
根据平滑因子对所述往返时延及所述上一次确定的时延估计值进行加权和计算,得到第一计算结果;
根据所述第一计算结果及所述上一次确定的时延平均偏差值,确定新的时延估计值。
3.根据权利要求1所述的方法,其特征在于,所述根据所述新的时延估计值及所述时延平均偏差值,确定重传超时时长,包括:
根据膨胀避免系数与所述新的时延估计值的乘积,以及所述时延平均偏差值,确定重传超时时长。
4.根据权利要求3所述的方法,其特征在于,所述根据膨胀避免系数与所述新的时延估计值的乘积,以及所述时延平均偏差值,确定重传超时时长,包括:
根据所述第一电子设备的系统时钟粒度以及所述时延平均偏差值,确定第一数值;
根据膨胀避免系数与所述新的时延估计值的乘积,以及所述第一数值,确定第一时长;
根据所述第一时长与第二时长中的最大值,确定重传超时时长,所述第二时长是根据自适应因子与预设时长确定的。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述确定重传超时时长之后,所述方法还包括:
若在向所述第二电子设备发送目标数据包后的所述重传超时时长内,未接收到所述第二电子设备返回的所述目标数据包对应的响应信号,则重新向所述第二电子设备发送所述目标数据包;
若接收到所述第二电子设备返回的重新发送的目标数据包对应的响应信号,则根据第一概率测量所述目标数据包对应的往返时延。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
在所述第一电子设备满足数据发送条件的情况下,通过所述通信连接向所述第二电子设备发送数据包;
其中,所述数据发送条件包括以下中的一个或多个:
所述第一电子设备准备发送的M个数据包的有效数据长度大于或等于最大报文段长度,M为大于或等于1的整数;
所述第一电子设备已经发送但未被所述第二电子设备接收的N个数据包的数据包总长度大于或等于第一窗口尺寸阈值,N为大于或等于1的整数,所述第一窗口尺寸阈值根据所述第二电子设备对应的当前接收窗口的窗口尺寸确定;
所述第一电子设备与所述第二电子设备之间不存在所述第一电子设备已经发送但未被所述第二电子设备接收的数据包。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
根据所述第二电子设备对应的当前接收窗口,确定所述第一电子设备与所述第二电子设备进行数据传输的速率;
其中,所述当前接收窗口的窗口尺寸大于第二窗口尺寸阈值,所述第二窗口尺寸阈值为最大报文段长度与历史窗口尺寸中的最小值,所述历史窗口尺寸根据上一接收窗口的窗口尺寸确定。
8.一种接收窗口确定方法,其特征在于,应用于第二电子设备,所述第二电子设备与第一电子设备建立通信连接,所述方法包括:
判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值;
在当前接收窗口的窗口尺寸小于或等于所述第二窗口尺寸阈值的情况下,根据预设尺寸增长值调整所述当前接收窗口的窗口尺寸,并重新执行所述判断当前接收窗口的窗口尺寸是否小于或等于所述第二窗口尺寸阈值的步骤,直至当前接收窗口的窗口尺寸大于所述第二窗口尺寸阈值。
9.根据权利要求8所述的方法,其特征在于,所述第二窗口尺寸阈值为最大报文段长度与历史窗口尺寸中的最小值,所述历史窗口尺寸根据上一接收窗口的窗口尺寸确定。
10.一种重传超时时长确定装置,其特征在于,应用于第一电子设备,所述第一电子设备与第二电子设备建立通信连接,所述装置包括:
时延测量模块,用于在通过所述通信连接与所述第二电子设备进行数据传输的过程中,确定本次测量到的数据包传输的往返时延;
时延估计模块,用于根据所述往返时延、上一次确定的时延平均偏差值及上一次确定的时延估计值,确定新的时延估计值;
时长确定模块,用于根据所述新的时延估计值及所述时延平均偏差值,确定重传超时时长。
11.一种接收窗口确定装置,其特征在于,应用于第二电子设备,所述第二电子设备与第一电子设备建立通信连接,所述装置包括:
判断模块,用于判断当前接收窗口的窗口尺寸是否小于或等于第二窗口尺寸阈值;
调整模块,用于在当前接收窗口的窗口尺寸小于或等于所述第二窗口尺寸阈值的情况下,根据预设尺寸增长值调整所述当前接收窗口的窗口尺寸,并重新执行所述判断当前接收窗口的窗口尺寸是否小于或等于所述第二窗口尺寸阈值的步骤,直至当前接收窗口的窗口尺寸大于所述第二窗口尺寸阈值。
12.一种电子设备,其特征在于,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如权利要求1至7或8至9中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7或8至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311700206.0A CN117692392A (zh) | 2023-12-11 | 2023-12-11 | 重传超时时长确定方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311700206.0A CN117692392A (zh) | 2023-12-11 | 2023-12-11 | 重传超时时长确定方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117692392A true CN117692392A (zh) | 2024-03-12 |
Family
ID=90131389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311700206.0A Pending CN117692392A (zh) | 2023-12-11 | 2023-12-11 | 重传超时时长确定方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117692392A (zh) |
-
2023
- 2023-12-11 CN CN202311700206.0A patent/CN117692392A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7843828B2 (en) | Methods and systems for alleviating network congestion | |
US11611498B2 (en) | Round-trip time evaluation system, method, and apparatus | |
Floyd et al. | TCP friendly rate control (TFRC): Protocol specification | |
US8379535B2 (en) | Optimization of streaming data throughput in unreliable networks | |
US8125910B2 (en) | Communication system | |
US6622172B1 (en) | Dynamically delayed acknowledgement transmission system | |
US20080043621A1 (en) | Systems and Methods for Improving Network Performance | |
EP3780542A1 (en) | Data transmission method and device | |
US20060209838A1 (en) | Method and system for estimating average bandwidth in a communication network based on transmission control protocol | |
CN106301684A (zh) | 一种媒体数据传输方法及装置 | |
US11115308B2 (en) | System and method for congestion control using time difference congestion notification | |
CN115347994A (zh) | 网内状态反馈方法、装置、介质、无线接入设备及系统 | |
US7168022B2 (en) | Transmission control method and system | |
JP5308364B2 (ja) | 送信装置、送信方法及びプログラム | |
CN117676695A (zh) | Tcp传输方法、装置和系统 | |
CN116566919A (zh) | 带宽探测方法、装置、电子设备及存储介质 | |
CN117692392A (zh) | 重传超时时长确定方法、装置、电子设备及存储介质 | |
CN115277556A (zh) | 拥塞控制方法、电子设备及可读存储介质 | |
CN113542215A (zh) | 一种提升流媒体传输性能的方法及相关装置 | |
CN117692396B (zh) | 一种复杂网络环境下的tcp单边加速方法及装置 | |
CN115941557B (zh) | 基于延时的自适应拥塞控制方法及设备 | |
Deshmukh et al. | A Survey on Congestion Control Protocols for CoAP | |
Raitahila | Congestion Control Algorithms for the Constrained Application Protocol (CoAP) | |
CN118282966A (zh) | 一种rdma长距离通信发送速率调节系统及其方法 | |
CN115665058A (zh) | 一种数据发送速度控制方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |