CN114095437B - 发送数据包的方法、装置、电子设备和存储介质 - Google Patents

发送数据包的方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN114095437B
CN114095437B CN202111367459.1A CN202111367459A CN114095437B CN 114095437 B CN114095437 B CN 114095437B CN 202111367459 A CN202111367459 A CN 202111367459A CN 114095437 B CN114095437 B CN 114095437B
Authority
CN
China
Prior art keywords
data packets
transmission
network
time
packets
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.)
Active
Application number
CN202111367459.1A
Other languages
English (en)
Other versions
CN114095437A (zh
Inventor
吴文俊
周超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202111367459.1A priority Critical patent/CN114095437B/zh
Publication of CN114095437A publication Critical patent/CN114095437A/zh
Priority to PCT/CN2022/092569 priority patent/WO2023087639A1/zh
Application granted granted Critical
Publication of CN114095437B publication Critical patent/CN114095437B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种发送数据包的方法、装置、电子设备和存储介质,所述方法包括:确定当前时刻的预定时间窗口内的最小网络传输延时;确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2;根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量;基于当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据所述同时发送数量发送数据包。本公开的发送数据包的方法能够保证端到端传输延时在基底延时附近的基础上,追求最大的网络吞吐量,并尽可能减少网络路径中的拥塞丢包。

Description

发送数据包的方法、装置、电子设备和存储介质
技术领域
本公开涉及数据传输技术领域,尤其涉及一种发送数据包的方法、装置、电子设备和存储介质。
背景技术
当今互联网正变得越来越及时,各种新兴应用的实时交互需求对其数据的传输延时有着更加严格的要求,需确保当前生产的数据在特定的时间范围内到达对端;不然超过一定时间阈值的数据会被主动丢弃,以避免影响用户的实时体验。比如,VR云游戏要求画面和声音的传输延时控制在50毫秒以内,确保数据传输的及时性和稳定性,以避免头晕等不适症状。同时,在线会议、实时通信等也需要严格控制通话内容传输的延时,以保证用户的互动性、连贯性等体验。
为低延时传输定制的拥塞控制算法,例如BBR,通过周期性的超发数据(大于带宽检测值的等效滑动窗口)以探测当前网络路径中的瓶颈带宽大小,实时并较为准确的带宽检测使其获得了较高的带宽吞吐量,但是周期性的超发数据会使得网络瓶颈节点数据流入的速度大于网络消耗的速度,给网络传输引入不必要的排队延时,甚至导致传输拥塞的发生,不符合低延时传输的基本要求。
发明内容
根据本公开的第一方面,提供了一种发送数据包的方法,包括:确定当前时刻的预定时间窗口内的最小网络传输延时;确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2;根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量;基于当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据所述同时发送数量发送数据包。
根据本公开的第一方面,所述根据所述同时发送数量发送数据包包括:以突发模式同时发送所述数据包。
根据本公开的第一方面,确定当前时刻的预定时间窗口内的最小的网络传输延时包括:获取当前时刻的预定时间窗口内接收到的ACK包的接收时间和所述ACK包所对应的数据包的发送时间;计算ACK包的接收时间和所述ACK包所对应的发送时间之间的时间差,并将计算出的时间差中的最小时间差作为所述最小的网络传输延时。
根据本公开的第一方面,所述确定被同时发送的N个数据包到达接收端的网络传输延时之间的单位数据包传输延时增量包括:根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量。
根据本公开的第一方面,当在当前时刻确定网络传输发生乱序时,N为第一数值,当确定网络传输没有乱序时,N为第二数值,第一数值大于第二数值。
根据本公开的第一方面,基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量包括:统计收到与所述N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望;基于所述期望和先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量。
根据本公开的第一方面,基于网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量包括:确定在当前时刻t未收到对应ACK包的数据包的数量IF(t);获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值;基于所述第一差值得到要同时发送的数据包的同时发送数量。
根据本公开的第一方面,基于所述第一差值得到要同时发送的数据包的同时发送数量包括:确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Qmax(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度;获取网络路径瓶颈队列长度Qmax(t)与网络堆积的数据包的数量Q(t)之间的差值,作为第二差值;将所述第一差值以及所述第二差值的较小值作为要同时发送的数据包的同时发送数量。
根据本公开的第一方面,根据网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量包括:将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量S(t)中的较大者确定为最终的同时发送数量。
根据本公开的第二方面,提供了一种发送数据包的装置,包括:传输延时确定单元,被配置为确定当前时刻的预定时间窗口内的最小网络传输延时;延时增量确定单元,被配置为确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2;第一数量确定单元,被配置为根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量;第二数量确定单元,被配置为根据当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据所述同时发送数量发送数据包。
根据本公开的第二方面,传输延时确定单元被配置为:获取当前时刻的预定时间窗口内接收到的ACK包的接收时间和所述ACK包所对应的数据包的发送时间;计算ACK包的接收时间和所述ACK包所对应的发送时间之间的时间差,并将计算出的时间差中的最小时间差作为所述最小的网络传输延时。
根据本公开的第二方面,延时增量确定单元被配置为:根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量。
根据本公开的第二方面,当延时增量确定单元在当前时刻确定网络传输发生乱序时,N为第一数值,当确定网络传输没有乱序时,N为第二数值,第一数值大于第二数值。
根据本公开的第二方面,延时增量确定单元还被配置为:统计收到与所述N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望;基于所述期望和先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量。
根据本公开的第二方面,第二数量确定单元被配置为确定在当前时刻t未收到对应ACK包的数据包的数量IF(t、);获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值;基于所述第一差值得到要同时发送的数据包的同时发送数量。
根据本公开的第二方面,第二数量确定单元被配置为:确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Qmax(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度;获取网络路径瓶颈队列长度Qmax(t)与网络堆积的数据包的数量Q(t)之间的差值,作为第二差值;将所述第一差值以及所述第二差值的较小值作为要同时发送的数据包的同时发送数量。
根据本公开的第二方面,第二数量确定单元还被配置为:将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。
根据本公开的第三方面,提供了一种电子设备包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如上所述的发送数据包的方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上所述的发送数据包的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如上所述的发送数据包的方法。
根据本公开的实施例提供的技术方案至少带来以下有益效果:
根据本公开的实施例的发送数据包的方法和装置利用同时成对发送的数据包来计算数据包的传输耗时,并根据网络端到端最小延时与单位数据包传输耗时来确定目标传输拥塞控制窗口,同时考虑网络中的拥塞程度来限制瞬时发送速度,从而能够在保证端到端传输延时在基底延时附近的基础上,追求最大的网络吞吐量,并尽可能减少网络路径中的拥塞丢包。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是示出用于实现根据示例性实施例的发送数据包的方法和装置的***环境。
图2是示出根据示例性实施例的发送数据包的方法的流程图。
图3是示出根据示例性实施例示出的发送数据包的装置的框图。
图4是示出根据示例性实施例的发送数据包的过程的示意图。
图5是示出根据示例性实施例的发送数据包的电子设备的示意图。
图6是示出根据另一示例性实施例的发送数据包的电子设备的示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
图1示出了实现根据本公开的示例性实施例的发送数据包的方法和装置的***环境。
如图1所示,在超低延时的互动场景下,数据包依次从发送端向外发送,经过传输网络最终到达接收端。在收到数据包后,接收端依次发送对应的ACK包,同样经过传输网络后返回发送端。这里,发送端和接收端可以是用作网络中的节点的任何设备,诸如移动终端设备、基站、服务器等。根据本公开的示例性实施例,移动终端设备例如可以是具有有线无线通信能力的任何电子设备,例如,手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)、增强现实(augmentedreality,AR)/虚拟现实(virtual reality,VR)设备等。传输网络可以包括但不限于有线和无线通信网络。
由于是超低延时的业务场景,整个***对数据端到端的传输延时有特定要求。基于周期性超发数据的网络带宽检测算法,会给网络传输引入不必要的延时,甚至导致拥塞的发生,不符合低延时传输的要求。同时,周期性地清空网络发送队列以检测端到端最小传输延时,会大大降低网络传输的吞吐量。根据本公开的实施例的数据包发送方法可成对地发送数据包,并统计它们到达对端的时间差,以端到端传输最小传输时间与成对数据包传输延时差的比值作为最佳拥塞控制窗口,然后预估网络中的瓶颈队列长度和当前网络路径的排队程度,使用网络路径上的瓶颈队列长度限制瞬时发送速度(即,数据包的排队程度不超过数据包的瓶颈队列长度)。因此,根据本公开的实施例的数据包发送方法和装置能够保证端到端传输延时在基底延时附近的基础上,同时追求最大的网络吞吐量并尽可能地避免网络局部的间歇性拥塞丢包。
图2是示出根据示例性实施例的发送数据包的方法的流程图。
具体地,首先,在步骤S210,确定当前时刻的预定时间窗口内的最小网络传输延时。
在根据本公开的实施例的发送数据包的方法中,例如,可以通过突发模式(burst)来一次性同时发送多个数据包,每次同时发送的数据包至少为2个,从而形成成对的数据包。这里,成对的数据包可以是同时发送的多个数据包中的两个相邻顺序的数据包,并且数据包的发送时间被记录在每个数据包中。成对的数据包会同时进入网络并在网络路径中排队,并在网络中按照产生的先后次序被依次发送。接收端在接收到该数据包时,将该数据包的发送时间记录到该数据包相应的ACK包并返回到发送端。这样,从接收端返回的ACK包中可以读取出数据包之前被发送的时间,然后可根据当前发送端的时间和ACK包所对应的数据包的发送时间计算出数据包的网络传输延时。
例如,假设t号数据包的ACK包返回到发送端,统计当前发送端的绝对时间Tnow,并从ACK包解析出当初发送该数据包t的绝对时间stt,计算到达时间和发送时间差rttt=Tnow-stt,从而可以更新预定时间窗口(也称为,滑动时间窗口)内传输路径的最小延时(又称为,基底延时)RTTmin(t)=min(rtti),i∈[t-k,t],这里,k可表示滑动时间窗口的长度,通常k取值可以为1000。
接下来,在步骤S220,确定被同时发送的N个数据包到达接收端的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2。
根据本公开的示例性实施例,确定被同时发送的N个数据包到达接收端的网络传输延时之间的单位数据包传输延时增量可包括:根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量。这里,单位数据包传输延时增量反映的是发送一个数据包的网络传输耗时。
这里,如果在当前时刻确定数据包的网络传输发生乱序,则可以采用更多的数据包来计算单位数据包传输延时增量以确保准确性。例如,如果在当前时刻确定数据包的网络传输没有发生乱序,则N可以为第一数量(例如,2),如果确定发生乱序,则N为大于第一数量的第二数量(例如,6)。应理解,这里的数字仅是示例,N可以采用其他的取值(满足N大于等于2且乱序情况下的N大于没有乱序情况下的N)。根据本公开的实施例,可根据前一时刻接收到的数据包的ACK中记录的时间的顺序情况来确定是否发生乱序,即,如以下的等式所示:
这里,N(t)表示当前时刻发送的数据包的数量,rttt表示时刻t发送的数据包的到达时间和发送时间差。
根据本公开的实施例,可统计收到同时刻发送的N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望 然后通过加权滑动窗口基于先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量A(t)=Δ(t-1)*α+δ(t)*(1-α),α取值可以根据需要设置,例如α取值可以为0.875。通过加权处理,可以使得传输延时增量更加平滑。例如,当N=2时,可确定两个数据包的传输延时之间的差作为单位数据包传输延时增量,而当N=6时,可将6个数据包的传输延时之间的5个传输延时增量的平均值确定为单位数据包传输延时增量。
接下来,在步骤S230,根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量。这里,单位数据包传输延时增量(Delta)反映的是发送一个数据包(即,停留在网络中的数据包增加一个)所增加的数据包往返时间(RTT)。根据BBR的控制策略,RTT会在一个基底延时(RTTpro们)附近波动。每发送一个数据包,RTT会增加Delta,相应的吞吐量也会增加,然而,当RTT增加到基底延时RTTpro们之后,吞吐量不再增加反而网络延时开始增加。因此,最佳的发送数据包的窗口为RTTprop/Delta。
如上所述,根据本公开的实施例,可通过确定预定时间窗口内的最小网络传输延时RTTmin(t)来近似作为基底延时RTTprop。因此,可确定当前时刻的目标发送数据包数量(即,发送数据包的最佳窗口)
然后,在步骤S240,基于当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据同时发送数量来发送数据包。也就是说,网络的拥塞程度越高,相对于目标发送数据包来说可以发送较少的数据包,网络的拥塞程度越低,发送的数据包的数量可以越接近目标发送数据包数量。
根据本公开的示例性实施例,可根据网络的拥塞程度确定不丢包的情况下能够发送数据包的数量的上限值,并根据目标发送数据包数量和所述上限值确定要同时发送的数据包的数量。
根据本公开的实施例,通过对丢包事件的处理,可实时统计网络中的瓶颈排队队列长度(大于该值时,会发生主动丢包),并依据数据包实时发送数量和网络中数据消耗速度,预估当前网络路径的排队程度。任意时刻的发送数据都受制于网络的瓶颈队列长度,即任意时刻预估当前网络路径的排队程度小于等于网络瓶颈队列长度,从而保证在网络不发生排队丢包的基础上,实际平均发送窗口能无限接近于最佳发送窗口,即追求最大的网络传输吞吐量。
根据本公开的示例性实施例,可根据在时刻t的网络堆积数据包的数量Q(t)、未收到对应ACK包的数据包的数量IF(t)和网络路径瓶颈队列长度Qmax(t)来反映网络拥塞程度,并根据Q(t)、IF(t)和Qmax(t)确定不发生丢包的前提下能够发送的数据包的数量。
根据本公开的示例性实施例,基于网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量可包括:确定在当前时刻t未收到对应ACK包的数据包的数量IF(t),获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值cwnd(t)-IF(t),并基于第一差值得到要同时发送的数据包的同时发送数量。
例如,可以是将第一差值作为同时发送的数据包的同时发送数量,也可以是将第一差值与其他方式计算得到的数量进行比较,将其中的较小值作为同时发送数量。
根据本公开的示例性实施例,基于第一差值得到要同时发送的数据包的同时发送数量可包括:确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Qmax(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度。接下来,可获取网络路径瓶颈队列长度Qmax(t)与网络堆积的数据包的数量Q(t)之间的差值Qmax(t)-Q(t),作为第二差值,并将第一差值cwnd(t)-IF(t)以及第二差值Qmax(t)-Q(t)的较小值s(t)=min(cwnd(t)-IF(t),Qmax(t)-Q(t))作为要同时发送的数据包的同时发送数量。
这里,每发送一个数据包,可更新当前网络传输路径中数据包堆积队列长度(数量)Q(t)=Q(t)+1。另外,可更新当前网络路径中发送但未收到的数据数量IF(t)=IF(t)+1。每收到一个ACK包,依据当前时间Tnow和上一个ACK包的接收时间Tlast,更新堆积队列长度 (Δ(t)是上文中描述的单位数据包传输延时增量),并更新发送但未收到的包数量IF(t)=IF(t)-1。
也就是说,长期看来,可通过cwnd和IF(t)来控制使得数据包的平均发送速率不大于网络传输带宽,也就是说,使得未接收到ACK包的数据包的数量不能超过最佳发送窗口。短期来看,通过Qmax和Q(t)可控制使得瞬时发送速度不会造成拥塞。也就是说,使未接收到ACK包的数据包的数量的增加速度不能太快,否则网络节点的处理速度跟不上,就会发生丢包。这是因为,由于每个网络节点都有自己的局部缓存,因此,可通过Qmax(t)来指示网络节点的瓶颈缓存,而网络节点上数据的消耗速度为1/Delta,网络节点上数据的堆积速度为发送包的速度,所以节点的堆积数据Q(t)=发送的数据包-节点消耗速度,需要保证Q(t)不能超过Qmax(t)才不会造成丢包。
根据本公开的示例性实施例,根据网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量包括将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。具体地,可根据以下等式来从当前时刻t的成对发送数据包的数量要求N(t)和s(t)中确定最佳的发送数据包的数量Sbest(t):
其中,如果在当前时刻确定数据包的网络传输发生乱序,则N(t)可以是第一数量(例如,6),如果没有发生乱序,则N(t)可以是第二数量(例如,2)。与前面类似的,这里的数字仅是示例,N(t)可以采用其他的取值,只要保证第一数量大于第二数量并且第二数量大于2即可。
如上所述,根据本公开的发送数据包的方法利用网络端到端延时和单位数据包传输耗时的比值作为最佳传输拥塞控制窗口(即,目标发送数据包数量),此时发送但未收到ACK的包数量等效于带宽延时积(BDP,bandwidth-delay product)。该拥塞控制窗口的计算方式区别于传统的超发数据、清空数据的探测方式,具有以下两个好处:1)不会给网络引入额外的延时,因为严格控制拥塞控制窗口小于等于网络带宽对应的最佳控制窗口(不需要超发数据);2)也不会造成网络带宽的浪费,因为网络传输的窗口一直维持在最佳窗口附近,避免了周期性清空窗口造成的发送中断。
此外,根据本公开的实施例的数据包发送方法依据数据包实时发送数量和网络中数据消耗速度来预估当前网络路径的排队程度,并且使得任意时刻的发送数据都受制于网络的最大队列长度,即任意时刻预估当前网络路径的排队程度小于等于网络瓶颈队列长度,从而保证在网络不发生排队丢包的基础上,实际平均发送窗口能无限接近于最佳发送窗口,即追求最大的网络传输吞吐量。
通过离线的对比实验数据表明,相比于BBR拥塞控制算法,本公开的实施例的数据包发送方法有着相近的带宽吞吐量,同时端到端传输延时95分位数显著下降11.16%~50.29%,整体用户低延时观看体验提升2.23%。
图3是示出根据本公开的发送数据包的装置300的框图。应理解,装置300可以以硬件/软件或软硬件结合的方式实现在各种类型的电子设备中。
如图3所示,根据本公开的发送数据包的装置300可包括传输延时确定单元310、延时增量确定单元320、第一数量确定单元330、第二数量确定单元340和发送单元350。
传输延时确定单元310被配置为确定当前时刻的预定时间窗口内的最小网络传输延时。
延时增量确定单元320被配置为确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2。
第一数量确定单元330被配置为根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量。
第二数量确定单元340被配置为根据当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量。
发送单元350可被配置为以突发模式来发送数据包。
根据本公开的实施例,N个数据包在突发模式被同时发送,并且所述N个数据包的发送时间被写入所述N个数据包中。
根据本公开的实施例,传输延时确定单元310可被配置为:获取当前时刻的预定时间窗口内接收到的ACK包的接收时间和所述ACK包所对应的数据包的发送时间;计算ACK包的接收时间和所述ACK包所对应的发送时间之间的时间差,并将计算出的时间差中的最小时间差作为所述最小的网络传输延时。
根据本公开的实施例,延时增量确定单元320可被配置为:根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,当确定网络传输发生乱序时,N为第一数值,当前确定网络传输没有乱序时,N为第二数值,第一数值大于第二数值。如前面所述,由于被同时发送的数据包中记录有发送时间,所以返回的对应的ACK包中可同样记录该发送时间以用于计算该数据包的网络传输延时。
根据本公开的实施例,延时增量确定单元320可还被配置为:统计收到与所述N个数据包对应ACK包的时间差与发送顺序差的平均比值的期望;基于所述期望和先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量。
根据本公开的实施例,第二数量确定单元340可被配置为确定在当前时刻t未收到对应ACK包的数据包的数量IF(t),获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值cwnd(t)-IF(t),并基于第一差值得到要同时发送的数据包的同时发送数量。
根据本公开的示例性实施例,第二数量确单元340可确定确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Qmax(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度。接下来,可获取网络路径瓶颈队列长度Qmax(t)与网络堆积的数据包的数量Q(t)之间的差值Qmax(t)-Q(t),作为第二差值,并将第一差值cwnd(t)-IF(t)以及第二差值Qmax(t)-Q(t)的较小值s(t)=min(cwnd(t)一IF(t),Qmax(t)一Q(t))作为要同时发送的数据包的同时发送数量。
根据本公开的实施例,第二数量确定单元340还被配置为:将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。
具体地,可根据以下等式来从当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中确定最终的发送数据包的数量Sbest(t):
其中,如果在当前时刻确定数据包的网络传输没有发生乱序,则N(t)为第一数值,如果确定发生乱序,则N(t)为第二数值,第二数值大于第一数值。
以上已经参照图2对装置300的各个单元执行的操作进行了详细的说明,在此不再重复。
图4是示出根据本公开的示例性实施例的发送数据包的整体过程的示意图。
如图4所示,根据本公开的发送数据包的过程可总体上分为两个部分,即计算发送窗口过程和避免拥塞过程。
在计算发送窗口过程中,当收到同时发送的数据包的ACK包时,可计算相应数据包的到达时间和发送时间差rttt=Tnow-stt,从而可以更新预定时间窗口内传输路径的最小延时RTTmin(t)=min(rtti)。同样地,可统计收到同时刻发送的N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望然后通过加权滑动窗口基于先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量Δ(t)=Δ(t-1)*α+δ(t)*(1-α)。在得到RTTmin(t)和Δ(t)的比值获得当前时刻的最佳发送窗口cwnd(t)。
在避免拥塞过程中,需要计算时刻t的网络堆积数据包的数量Q(t)、未收到对应ACK包的数据包的数量IF(t)和网络路径瓶颈队列长度Qmax(t)来反映网络拥塞程度,并根据Q(t)、IF(t)和Qmax(t)确定不发生丢包的前提下能够发送的数据包的数量。如图4所示,每发送一个数据包,可更新当前网络传输路径中数据包堆积队列长度(数量)Q(t)=Q(t)+1,另外,可更新当前网络路径中发送但未收到的数据数量IF(t)=IF(t)+1。每收到一个ACK包,依据当前时间Tnow和上一个ACK包的接收时间Tlast,更新堆积队列长度并更新发送但未收到的包数量IF(t)=IF(t)-1。在收到丢包时,可确定网络路径瓶颈队列长度Qmax(t)。
这样,结合之前确定的最佳发送窗口cwnd(t),可计算出当前时刻不超过最佳发送窗口的情况下期望的最大发送数据包的数量sc=cwnd(t)-IF(t)以及不丢包的情况下可以发送的最大发送数据包的数量sq=Qmax(t)-Q(t)。将sc和sq中的较小者s(t)=min(cwnd(t)-IF(t),Qmax(t)-Q(t))与成对发送数据包的数量要求N(t)进行比较,并选择两者中较大的数量max(N(t),s(t))作为最终的同时发送数据包的数量S(t)。
以上已经参照附图2详细说明了确定最终发送数据包的数量的过程,在此不再重复说明。
图5是示出根据本公开的示例性实施例的用于发送数据包的电子设备500的示图。该电子设备500例如可以是:智能手机、平板电脑、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备500包括有:处理器501和存储器502。
处理器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。在本公开的示例性实施例中,处理器501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本公开的示例性实施例的发送数据包的方法。
在一些实施例中,电子设备500还可选包括有:***设备接口503和至少一个***设备。处理器501、存储器502和***设备接口503之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口503相连。具体地,***设备包括:射频电路504、触摸显示屏505、摄像头506、音频电路507、定位组件508和电源509中的至少一种。
***设备接口503可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和***设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和***设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路504用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路504包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路504还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置在电子设备500的前面板;在另一些实施例中,显示屏505可以为至少两个,分别设置在终端500的不同表面或呈折叠设计;在再一些实施例中,显示屏505可以是柔性显示屏,设置在终端500的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件506用于采集图像或视频。可选地,摄像头组件506包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501或射频电路504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路507还可以包括耳机插孔。
定位组件508用于定位电子设备500的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件508可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***、俄罗斯的格雷纳斯***或欧盟的伽利略***的定位组件。
电源509用于为电子设备500中的各个组件进行供电。电源509可以是交流电、直流电、一次性电池或可充电电池。当电源509包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备500还包括有一个或多个传感器510。该一个或多个传感器510包括但不限于:加速度传感器511、陀螺仪传感器512、压力传感器513、指纹传感器514、光学传感器515以及接近传感器516。
加速度传感器311可以检测以终端500建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器511可以用于检测重力加速度在三个坐标轴上的分量。处理器501可以根据加速度传感器511采集的重力加速度信号,控制触摸显示屏505以横向视图或纵向视图进行用户界面的显示。加速度传感器511还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器512可以检测终端500的机体方向及转动角度,陀螺仪传感器512可以与加速度传感器511协同采集用户对终端500的3D动作。处理器501根据陀螺仪传感器512采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器513可以设置在终端500的侧边框和/或触摸显示屏505的下层。当压力传感器513设置在终端500的侧边框时,可以检测用户对终端500的握持信号,由处理器501根据压力传感器513采集的握持信号进行左右手识别或快捷操作。当压力传感器513设置在触摸显示屏505的下层时,由处理器501根据用户对触摸显示屏505的压力操作,实现对UI上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器514用于采集用户的指纹,由处理器501根据指纹传感器514采集到的指纹识别用户的身份,或者,由指纹传感器514根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器501授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器514可以被设置电子设备500的正面、背面或侧面。当电子设备500上设置有物理按键或厂商Logo时,指纹传感器514可以与物理按键或厂商Logo集成在一起。
光学传感器515用于采集环境光强度。在一个实施例中,处理器501可以根据光学传感器515采集的环境光强度,控制触摸显示屏505的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏505的显示亮度;当环境光强度较低时,调低触摸显示屏505的显示亮度。在另一个实施例中,处理器501还可以根据光学传感器515采集的环境光强度,动态调整摄像头组件506的拍摄参数。
接近传感器516,也称距离传感器,通常设置在电子设备500的前面板。接近传感器516用于采集用户与电子设备500的正面之间的距离。在一个实施例中,当接近传感器516检测到用户与终端500的正面之间的距离逐渐变小时,由处理器501控制触摸显示屏505从亮屏状态切换为息屏状态;当接近传感器516检测到用户与电子设备500的正面之间的距离逐渐变大时,由处理器501控制触摸显示屏505从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图5中示出的结构并不构成对电子设备500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图6示出了另一种电子设备600的结构框图。例如,电子设备600可以被提供为一服务器。参照图6,电子设备600包括一个或多个处理处理器610以及存储器620。存储器620可以包括用于执行以上的发送数据包的一个或一个以上的程序。电子设备600还可以包括一个电源组件630被配置为执行电子设备600的电源管理,一个有线或无线网络接口650被配置为将电子设备600连接到网络,和一个输入输出(I/O)接口650。电子设备600可以操作基于存储在存储器620的操作***,例如Windows ServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM或类似。
本领域技术人员可以理解,图6中示出的结构并不构成对电子设备600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
根据本公开的实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,促使至少一个处理器执行根据本公开的发送数据包的方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机***上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
根据本公开的实施例中,还可提供一种计算机程序产品,该计算机程序产品中的指令可由计算机设备的处理器执行以完成上述的发送数据包的方法。
根据本公开的实施例的发送数据包的方法、装置、电子设备、计算机可读存储介质可以使得能够在保证端到端传输延时在基底延时附近的基础上,追求最大的网络吞吐量,并尽可能减少网络路径中的拥塞丢包。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (17)

1.一种发送数据包的方法,其特征在于,包括:
确定当前时刻的预定时间窗口内的最小网络传输延时;
确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2;
根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量;
基于当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据所述同时发送数量发送数据包,
其中,所述确定被同时发送的N个数据包到达接收端的网络传输延时之间的单位数据包传输延时增量包括:
根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;
基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量。
2.如权利要求1所述的方法,其特征在于,确定当前时刻的预定时间窗口内的最小的网络传输延时包括:
获取当前时刻的预定时间窗口内接收到的ACK包的接收时间和所述ACK包所对应的数据包的发送时间;
计算ACK包的接收时间和所述ACK包所对应的发送时间之间的时间差,并将计算出的时间差中的最小时间差作为所述最小的网络传输延时。
3.如权利要求1所述的方法,其特征在于,当在当前时刻确定网络传输发生乱序时,N为第一数值,当确定网络传输没有乱序时,N为第二数值,第一数值大于第二数值。
4.如权利要求1所述的方法,其特征在于,基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量包括:
统计收到与所述N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望;
基于所述期望和先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量。
5.如权利要求1所述的方法,其特征在于,基于网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量包括:
确定在当前时刻t未收到对应ACK包的数据包的数量IF(t);
获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值;
基于所述第一差值得到要同时发送的数据包的同时发送数量。
6.如权利要求5所述的方法,其特征在于,基于所述第一差值得到要同时发送的数据包的同时发送数量包括:
确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Qmax(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度;
获取网络路径瓶颈队列长度Qmax(t)与网络堆积的数据包的数量Q(t)之间的差值,作为第二差值;
将所述第一差值以及所述第二差值的较小值作为要同时发送的数据包的同时发送数量。
7.如权利要求1所述的方法,其特征在于,根据网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量包括:
将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。
8.一种发送数据包的装置,其特征在于,包括:
传输延时确定单元,被配置为确定当前时刻的预定时间窗口内的最小网络传输延时;
延时增量确定单元,被配置为确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2;
第一数量确定单元,被配置为根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量;
第二数量确定单元,被配置为根据当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据所述同时发送数量发送数据包,
其中,延时增量确定单元被配置为:
根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;
基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量。
9.如权利要求8所述的装置,其特征在于,传输延时确定单元被配置为:
获取当前时刻的预定时间窗口内接收到的ACK包的接收时间和所述ACK包所对应的数据包的发送时间;
计算ACK包的接收时间和所述ACK包所对应的发送时间之间的时间差,并将计算出的时间差中的最小时间差作为所述最小的网络传输延时。
10.如权利要求8所述的装置,其特征在于,当延时增量确定单元在当前时刻确定网络传输发生乱序时,N为第一数值,当确定网络传输没有乱序时,N为第二数值,第一数值大于第二数值。
11.如权利要求8所述的装置,其特征在于,延时增量确定单元还被配置为:
统计收到与所述N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望;
基于所述期望和先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量。
12.如权利要求8所述的装置,其特征在于,第二数量确定单元被配置为:
确定在当前时刻t未收到对应ACK包的数据包的数量IF(t);
获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值;
基于所述第一差值得到要同时发送的数据包的同时发送数量。
13.如权利要求12所述的装置,其特征在于,第二数量确定单元被配置为:
确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Qmax(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度;
获取网络路径瓶颈队列长度Qmax(t)与网络堆积的数据包的数量Q(t)之间的差值,作为第二差值;
将所述第一差值以及所述第二差值的较小值作为要同时发送的数据包的同时发送数量。
14.如权利要求13所述的装置,其特征在于,第二数量确定单元还被配置为:
将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。
15.一种电子设备,其特征在于,包括:
至少一个处理器;
至少一个存储计算机可执行指令的存储器,
其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1至7中的任一权利要求所述的方法。
16.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现如权利要求1至7中任一项所述的方法。
CN202111367459.1A 2021-11-18 2021-11-18 发送数据包的方法、装置、电子设备和存储介质 Active CN114095437B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111367459.1A CN114095437B (zh) 2021-11-18 2021-11-18 发送数据包的方法、装置、电子设备和存储介质
PCT/CN2022/092569 WO2023087639A1 (zh) 2021-11-18 2022-05-12 发送数据包的方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111367459.1A CN114095437B (zh) 2021-11-18 2021-11-18 发送数据包的方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN114095437A CN114095437A (zh) 2022-02-25
CN114095437B true CN114095437B (zh) 2024-04-09

Family

ID=80301514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111367459.1A Active CN114095437B (zh) 2021-11-18 2021-11-18 发送数据包的方法、装置、电子设备和存储介质

Country Status (2)

Country Link
CN (1) CN114095437B (zh)
WO (1) WO2023087639A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095437B (zh) * 2021-11-18 2024-04-09 北京达佳互联信息技术有限公司 发送数据包的方法、装置、电子设备和存储介质
CN115086235B (zh) * 2022-05-31 2024-03-26 北京达佳互联信息技术有限公司 网络拥塞检测方法、装置、电子设备以及存储介质
CN117014637B (zh) * 2023-09-28 2024-01-30 腾讯科技(深圳)有限公司 媒体数据传输控制方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017000719A1 (zh) * 2015-06-30 2017-01-05 中兴通讯股份有限公司 一种基于队列时延的拥塞控制方法及装置
CN111314022A (zh) * 2020-02-12 2020-06-19 四川大学 一种基于强化学习和喷泉码的屏幕更新传输方法
CN111970208A (zh) * 2020-08-27 2020-11-20 腾讯科技(深圳)有限公司 网络传输方法、装置、设备及计算机可读存储介质
CN113438181A (zh) * 2021-08-26 2021-09-24 北京邮电大学 网络拥塞控制方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102468941B (zh) * 2010-11-18 2014-07-30 华为技术有限公司 网络丢包处理方法及装置
US20150085648A1 (en) * 2013-09-24 2015-03-26 Douglas Leith Congestion control in data networks
WO2019192361A1 (en) * 2018-04-06 2019-10-10 Huawei Technologies Co., Ltd. Congestion control in network communications
CN110809288B (zh) * 2019-11-04 2022-02-15 腾讯科技(深圳)有限公司 一种网络拥塞控制方法、装置、设备及介质
CN111683393B (zh) * 2020-05-25 2021-12-17 华中科技大学 一种动态调整增益系数的自适应拥塞控制方法
CN114095437B (zh) * 2021-11-18 2024-04-09 北京达佳互联信息技术有限公司 发送数据包的方法、装置、电子设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017000719A1 (zh) * 2015-06-30 2017-01-05 中兴通讯股份有限公司 一种基于队列时延的拥塞控制方法及装置
CN111314022A (zh) * 2020-02-12 2020-06-19 四川大学 一种基于强化学习和喷泉码的屏幕更新传输方法
CN111970208A (zh) * 2020-08-27 2020-11-20 腾讯科技(深圳)有限公司 网络传输方法、装置、设备及计算机可读存储介质
CN113438181A (zh) * 2021-08-26 2021-09-24 北京邮电大学 网络拥塞控制方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Chao Zhou,Wenjun Wu.Deadline and Priority-aware Congestion Control for Delay sensitive Multimedia Steaming.《MM'21:Proceedings of the 29th ACM Interational Conference on Multimedia》.2021,全文. *

Also Published As

Publication number Publication date
CN114095437A (zh) 2022-02-25
WO2023087639A1 (zh) 2023-05-25

Similar Documents

Publication Publication Date Title
JP6966572B2 (ja) 署名生成方法、電子機器及び記憶媒体
CN114095437B (zh) 发送数据包的方法、装置、电子设备和存储介质
CN109246123B (zh) 媒体流获取方法及装置
CN110785996B (zh) 具有多个显示器的设备中的相机资源的动态控制
CN109951398B (zh) 数据发送方法、装置及计算机设备
CN108737897B (zh) 视频播放方法、装置、设备及存储介质
EP4000700A1 (en) Camera shot movement control method, device, apparatus, and storage medium
KR20210058908A (ko) 오디오 재생 및 수집 방법, 장치 및 디바이스 및 판독 가능한 저장 매체
CN111327694B (zh) 文件上传方法、装置、存储介质及电子设备
CN111510482B (zh) 失败网络请求的确定方法、装置及计算机存储介质
CN111866140B (zh) 融合管理设备、管理***、服务调用方法及介质
CN109698794A (zh) 一种拥塞控制方法、装置、电子设备及存储介质
CN114339294B (zh) 网络抖动的确认方法、装置、设备及存储介质
CN111106902B (zh) 数据报文传输方法、装置、设备及计算机可读存储介质
CN110166776B (zh) 视频编码方法、装置及存储介质
CN109688064B (zh) 数据传输方法、装置、电子设备和存储介质
CN110321059B (zh) 数据处理方法、装置及计算机可读存储介质
US20220174356A1 (en) Method for determining bandwidth, terminal, and storage medium
CN113192519B (zh) 音频编码方法和装置以及音频解码方法和装置
CN114071224B (zh) 视频数据处理方法、装置、计算机设备及存储介质
CN111314205B (zh) 即时通信匹配的方法、装置、***、设备以及存储介质
WO2019128430A1 (zh) 带宽确定方法、装置、设备及存储介质
CN108310767B (zh) 信息展示方法、装置、设备及计算机可读存储介质
CN112151017A (zh) 语音处理方法、装置、***、设备及存储介质
CN115086235B (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
GR01 Patent grant
GR01 Patent grant