CN113438180B - Udp数据包的传输控制方法、装置、设备及可读存储介质 - Google Patents
Udp数据包的传输控制方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113438180B CN113438180B CN202110614534.3A CN202110614534A CN113438180B CN 113438180 B CN113438180 B CN 113438180B CN 202110614534 A CN202110614534 A CN 202110614534A CN 113438180 B CN113438180 B CN 113438180B
- Authority
- CN
- China
- Prior art keywords
- control window
- udp
- transmission
- data packet
- last
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 258
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000015654 memory Effects 0.000 claims description 30
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000012790 confirmation Methods 0.000 claims description 7
- 230000006854 communication Effects 0.000 abstract description 61
- 238000004891 communication Methods 0.000 abstract description 55
- 238000005457 optimization Methods 0.000 description 15
- 230000001276 controlling effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004088 simulation Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- 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/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及音视频数据传输技术领域,公开了一种UDP数据包的传输控制方法、装置、设备及可读存储介质。其中,该方法包括:获取UDP数据包的传输信息、上一次发送队列长度以及上一次发送控制窗口的大小;判断UDP数据包是否发生丢失;当发生UDP数据包丢失时,基于上一次发送队列长度以及上一次发送控制窗口的大小,计算传输UDP数据包的目标发送控制窗口;按照目标发送控制窗口的大小调整传输UDP数据包的发送控制窗口。通过实施本发明,避免了一对多通信过程中UDP数据包持续丢失而影响通信质量的问题,保证了通信各方均能及时接收到发送端传输的UDP数据包,从而实现了数据传输公平,兼顾了通信各方的通信质量。
Description
技术领域
本发明涉及音视频数据传输技术领域,具体涉及一种UDP数据包的传输控制方法、装置、设备及可读存储介质。
背景技术
由于音视频的传输对网络延迟非常敏感,因此现有技术中通常采用UDP协议进行音视频数据传输。随着网络技术的发展,基于UDP协议的音频、视频和p2p共享资源应用等逐渐占据了互联网的大部分带宽。在一对一通信的场景下,网络环境一般都可以满足带宽要求,然而实际网络环境通常为多路共享同一条链路,即一对多通信,甚至远不止多路共享同一条链路,在这种通信场景下,如果某一对视频链路占用过多的网络带宽,那么必然导致其他链路的可用带宽下降,从而导致数据包丢失,进而导致接收终端难以接收到完整的UDP数据包,严重影响通信质量。而且,在发生数据包丢失时必须重传数据包,此时亦会导致各数据流之间争抢有限的网络资源,而争抢能力较弱的数据流则难以进行数据包重传,需要等待网络资源释放,其通信质量难以保证。由此可见,传输过程中的UDP数据包丢失现象难以避免,另外基于UDP协议的数据传输公平性问题进一步导致难以同时兼顾各方的通信质量。
发明内容
有鉴于此,本发明实施例提供了一种UDP数据包的传输控制方法、装置、设备及可读存储介质,以解决一对多通信过程中UDP数据包的丢失现象,难以同时兼顾各方的通信质量的问题。
根据第一方面,本发明实施例提供了一种UDP数据包的传输控制方法,包括:获取UDP数据包的传输信息、上一次发送队列长度以及上一次发送控制窗口的大小;判断所述UDP数据包是否发生丢失;当发生UDP数据包丢失时,基于所述上一次发送队列长度以及所述上一次发送控制窗口的大小,计算传输所述UDP数据包的目标发送控制窗口;按照所述目标发送控制窗口的大小调整传输所述UDP数据包的发送控制窗口。
本发明实施例提供的UDP数据包的传输控制方法,通过获取UDP数据包在传输信道中的传输信息以确定UDP数据包在传输过程中是否发生丢失,若发生UDP数据包丢失,则基于上一次发送队列长度以及上一次发送控制窗口的大小,计算传输UDP数据包的目标发送控制窗口,并基于计算得到的目标发送控制窗口重新调整传输UDP数据包的发送控制窗口。该方法通过在检测到UDP数据包丢失时,调整传输UDP数据包的发送控制窗口,避免了一对多通信过程中UDP数据包持续丢失而影响通信质量的问题,保证了通信各方均能及时接收到发送端传输的UDP数据包,从而实现了数据传输公平,兼顾了通信各方的通信质量。
结合第一方面,在第一方面的第一实施方式中,所述基于所述上一次发送队列长度以及所述上一次发送控制窗口的大小,计算传输所述UDP数据包的目标发送控制窗口,包括:基于所述上一次发送队列长度与所述上一次发送控制窗口的大小的第一比值,计算窗口调整量;计算所述窗口调节量与所述上一次发送控制窗口的乘积,得到所述目标发送控制窗口。
结合第一方面第一实施方式,在第一方面的第二实施方式中,所述基于所述上一次发送队列长度与所述上一次发送控制窗口的大小的第一比值,计算窗口调整量,包括:获取第一预设系数和第二预设系数;计算所述第一比值与所述第二预设系数的第一乘积值;基于所述第一预设系数与所述第一乘积值的第一差值,计算得到所述窗口调整量。
本发明实施例提供的UDP数据包的传输控制方法,基于上一次发送队列长度与上一次发送控制窗口的大小,计算窗口调整量,并通过窗口调整量与上一次发送控制窗口计算出再次传输UDP数据包所需的目标发送控制窗口。由此保证了UDP数据包能够被完全传输,避免出现数据包丢失现象,从而避免数据包持续重传,保证了UDP数据包的传输效率,进而保证了通信各方的通信质量。
结合第一方面,在第一方面的第三实施方式中,所述方法还包括:当未发生UDP数据包丢失时,获取预设时间间隔内的平均传输时间以及最大传输时间;基于所述平均传输时间、所述最大传输时间、所述上一次发送队列长度以及所述上一次发送控制窗口的大小,计算传输所述UDP数据包的优化发送控制窗口。
结合第一方面第三实施方式,在第一方面的第四实施方式中,所述基于所述平均传输时间、所述最大传输时间、所述上一次发送队列长度以及上一次所述发送控制窗口的大小,计算传输所述UDP数据包的优化发送控制窗口,包括:基于所述上一次发送队列长度与所述上一次发送控制窗口的大小的第二比值,以及所述最大传输时间与所述平均传输时间的第三比值,计算窗口优化量;计算所述窗口优化量与所述上一次发送控制窗口的和,得到所述优化发送控制窗口。
结合第一方面第四实施方式,在第一方面的第五实施方式中,所述基于所述上一次发送队列长度与所述上一次发送控制窗口的大小的第二比值,以及所述平均传输时间与所述最大传输时间的第三比值,计算窗口优化量,包括:获取第三预设系数和第四预设系数;计算所述第二比值与所述第四预设系数之间的第二乘积值;计算所述第三预设系数与所述第二乘积值的第二差值;比较所述第二差值与所述第三比值,确定出所述第二差值和所述第三比值之间的较大者,以所述第二差值和所述第三比值之间的较大者作为所述窗口优化量。
本发明实施例提供的UDP数据包的传输控制方法,当未发生UDP数据包丢失时,基于UDP数据包的平均传输时间、UDP数据包的最大传输时间、上一次发送队列长度以及上一次发送控制窗口的大小,计算传输UDP数据包的优化发送控制窗口。该方法实时调整传输UDP数据包的发送控制窗口,避免了发生UDP数据包的传输拥塞,从而避免了数据传输不公平而导致UDP数据包丢失,保证了通信各方的通信质量。
结合第一方面,在第一方面的第六实施方式中,判断所述UDP数据包是否发生丢失,包括:判断所述UDP数据包是否传输乱序;和/或,判断预设时间内是否接收到所述UDP数据的确认接收信息。
本发明实施例提供的UDP数据包的传输控制方法,通过UDP数据包的传输信息判断UDP数据包是否发生传输乱序,或通过判断预设时间内是否接收到UDP数据的确认接收信息,以确定UDP数据包是否发生丢失。该方法通过实时检测UDP数据包是否发生丢失,以便发生数据包丢失时及时调整发送控制窗口,最大限度的避免了数据传输不公平问题,最大可能的兼顾了通信各方的通信质量。
根据第二方面,本发明实施例提供了一种UDP数据包的传输控制装置,包括:获取模块,用于获取传输信道中的UDP数据包、上一次发送队列长度以及上一次发送控制窗口的大小;判断模块,用于基于所述UDP数据包的传输信息,判断所述UDP数据包是否发生丢失;计算模块,用于当发生UDP数据包丢失时,基于所述上一次发送队列长度以及所述上一次发送控制窗口的大小,计算传输所述UDP数据包的目标发送控制窗口;调整模块,用于按照所述目标发送控制窗口的大小调整传输所述UDP数据包的发送控制窗口。
本发明实施例提供的UDP数据包的传输控制装置,通过获取UDP数据包在传输信道中的传输信息以确定UDP数据包在传输过程中是否发生丢失,若发生UDP数据包丢失,则基于上一次发送队列长度以及上一次发送控制窗口的大小,计算传输UDP数据包的目标发送控制窗口,并基于计算得到的目标发送控制窗口重新调整传输UDP数据包的发送控制窗口。该装置通过在检测到UDP数据包丢失时,调整传输UDP数据包的发送控制窗口,避免了一对多通信过程中UDP数据包持续丢失而影响通信质量的问题,保证了通信各方均能及时接收到发送端传输的UDP数据包,从而实现了数据传输公平,兼顾了通信各方的通信质量。
根据第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或第一方面任一实施方式所述的UDP数据包的传输控制方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面或第一方面任一实施方式所述的UDP数据包的传输控制方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例中一对多的通信示意图;
图2是根据本发明实施例的UDP数据包的传输控制方法的流程图;
图3是根据本发明实施例的UDP数据包的传输控制方法的另一流程图;
图4是根据本发明实施例的发送控制窗口变化示意图;
图5是根据本发明实施例的网络吞吐量的变化示意图;
图6是根据本发明实施例的NS2网络模拟拓扑示意图;
图7是根据本发明实施例的测试时间线及发送控制窗口变化示意图;
图8是根据本发明实施例的UDP数据包的传输控制装置的结构框图;
图9是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一对多或多对多通信场景下,如果某一对视频链路占用过多的网络带宽,由于网络带宽有限,那么必然导致其他链路的可用带宽下降,从而导致数据包丢失,进而导致接收终端难以接收到完整的UDP数据包,严重影响通信质量。而且,在发生数据包丢失时必须重传数据包,此时亦会导致各数据流之间争抢有限的网络资源,而争抢能力较弱的数据流则难以进行数据包重传,需要等待网络资源释放,其通信质量难以保证。由此可见,基于UDP协议的数据传输公平性问题不可避免,因此,传输过程中的UDP数据包丢失现象难以避免,从而难以同时兼顾通信各方的通信质量。
基于此,本发明技术方案通过实时检测UDP数据包的传输信息以确定UDP数据包是否丢失,当发生UDP数据包丢失时,及时调整传输UDP数据包的发送控制窗口,避免出现UDP数据包持续丢失而影响通信质量的问题。
根据本发明实施例,提供了一种UDP数据包的传输控制方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种UDP数据包的传输控制方法,可用于电子设备,如手机、平板电脑、电脑等,本实施以图1所示的一对多通信场景为例,其采用无线网络或者移动通信网与有线网络的混合网络,该混合网络具有较高的延迟、较低的带宽,易出现带宽抢占,数据传输不公平而导致数据包丢失的现象。其中,音视频采集终端采用“手持设备+可穿戴的音视频采集设备”,采集现场的音视频,通过公共网络实时传输音视频数据,音视频接收终端使用普通的PC机接收音视频数据,由网页浏览器解析数据并播放;同时,音视频接收终端可以采集音频数据,并使用相同的网络链路,传输给音视频采集终端,音视频采集终端采用手机设备或可穿戴的音视频采集设备播放音频数据。图2是根据本发明实施例的UDP数据包的传输控制方法的流程图,如图2所示,该流程包括如下步骤:
S11,获取UDP数据包的传输信息、上一次发送队列长度以及上一次发送控制窗口的大小。
UDP数据包的传输信息为基于UDP协议的音视频数据包的传输状态,具体地,UDP数据包的传输信息可以包括传输完成、传输失败、传输超时以及数据丢失等信息。以图1所示的一对多通信场景为例,当发送终端向接收终端发送UDP数据包时,可以实时监测UDP数据包的传输状态,以确定UDP数据包的传输信息。
发送队列长度是指该连接在网络中间节点的缓冲区中堆积的未到达数据包的数量,发送队列长度可以使用如下公式进行测量:
其中,W为发送控制窗口的大小,RTT为往返传输延迟,RTTmin为观测到的最小往返传输延迟。
上一次发送队列长度用于表征上一次(最后一次)发送UDP数据包时,传输信道中的数据包排队长度。上一次发送控制窗口用于表征上一次(最后一次)发送UDP数据包的控制窗口的大小。发送终端可以对每次发送UDP数据包的发送队列长度以及发送控制窗口进行记录。
发送控制窗口是一个变量,对发送端的数据包发送速率进行控制。发送控制窗口大小等于发送端已发送到网络中,但是尚未收到确认的数据包的数量。
S12,基于UDP数据包的传输信息,判断UDP数据包是否发生丢失。
发送终端可以根据UDP数据包的传输信息确定UDP数据包在传输过程中是否发生丢失,判断依据为是否乱序或超时。当确定UDP数据包在传输过程中发生丢失时,执行步骤S13,否则执行其他操作,其中,其他操作可以是优化传输UDP数据包的发送控制窗口,也可以是继续按照当前的发送控制窗口进行UDP数据包的传输,此处对其他操作不作具体限定,本领域技术人员可以根据实际需要确定。
S13,基于上一次发送队列长度以及上一次发送控制窗口的大小,计算传输UDP数据包的目标发送控制窗口。
当发生UDP数据包丢失时,表示上一次发送控制窗口不满足发送终端与接收终端进行UDP数据包传输的带宽要求,此时应该调低数据包的发送速率,则需要对传输UDP数据包的发送控制窗口进行调整。具体地,发送终端可以根据上一次发送队列长度以及上一次发送控制窗口的大小,确定出UDP数据包发送控制窗口调整量,结合上一次发送控制窗口以及窗口调整量计算出再次传输UDP数据包的目标发送控制窗口,同时保证传输公平性。
S14,按照目标发送控制窗口的大小调整传输UDP数据包的发送控制窗口。
发送终端将再次传输UDP数据包的发送控制窗口调整至计算得到的目标发送控制窗口的大小,将UDP数据包传输至接收终端。
本实施例提供的UDP数据包的传输控制方法,通过在检测到UDP数据包丢失时,调整传输UDP数据包的发送控制窗口,避免了一对多通信过程中UDP数据包持续丢失而影响通信质量的问题,保证了通信各方均能及时接收到发送端传输的UDP数据包,从而实现了数据传输公平,兼顾了通信各方的通信质量。
在本实施例中提供了一种UDP数据包的传输控制方法,可用于电子设备,如手机、平板电脑、电脑等,图3是根据本发明实施例的UDP数据包的传输控制方法的流程图,如图3所示,该流程包括如下步骤:
S21,获取UDP数据包的传输信息、上一次发送队列长度以及上一次发送控制窗口。详细说明参见上述实施例对应步骤S11的相关描述,此处不再赘述。
S22,基于UDP数据包的传输信息,判断UDP数据包是否发生丢失。
具体地,上述步骤S22可以包括:判断UDP数据包是否传输乱序;和/或,判断预设时间内是否接收到UDP数据的确认接收信息。
当UDP数据包出现传输乱序时,表示UDP数据包可能出现了数据包丢失,从而导致UDP数据包传输顺序不连续。
预设时间为接收终端响应UDP数据包的时长的限定值。当发送终端发送完UDP数据包,且在预设时间内一直未接收到来自接收终端反馈的确认接收信息,则无论接收终端是否接收到UDP数据包,发送端都认为UDP数据包丢失。
因此,发送终端需要实时监测UDP数据包的传输信息以确定UDP数据包是否发生丢失。当发生UDP数据包丢失时,执行步骤S23,否则执行步骤S25。
S23,当发生UDP数据包丢失时,基于上一次发送队列长度以及上一次发送控制窗口,计算传输UDP数据包的目标发送控制窗口。
具体地,上述步骤S23可以包括如下步骤:
S231,基于上一次发送队列长度与上一次发送控制窗口的大小的第一比值,计算窗口调整量。
窗口调整量为再次传输UDP数据包时需对上一次发送控制窗口进行调整的量。通过上一次发送队列长度与上一次发送控制窗口的大小的第一比值,可以计算得到窗口调整量。具体地,窗口调整量的计算步骤如下:
(1)获取第一预设系数和第二预设系数。
第一预设系数和第二预设系数用以动态调整窗口调整量,第一预设系数α1和第二预设系数β1可以根据经验值确定,此处不作具体限定。
(2)计算第一比值与第二预设系数的第一乘积值。
(3)基于第一预设系数与第一乘积值的第一差值,计算得到窗口调整量。
S232,计算窗口调节量与上一次发送控制窗口的乘积,得到目标发送控制窗口。
目标发送控制窗口的计算公式如下:
其中,W1为目标发送控制窗口;Wpre为上一次发送控制窗口;Qpre为上一次发送队列长度;α1为第一预设系数;β1为第二预设系数。
S24,按照目标发送控制窗口的大小调整发送UDP数据包的发送控制窗口。详细说明参见上述实施例对应步骤S14的相关描述,此处不再赘述。
S25,获取预设时间间隔内的平均传输时间以及最大传输时间。
当未发生UDP数据包丢失时,可以获取预设时间间隔内的平均传输时间以及最大传输时间,基于平均传输时间以及最大传输时间对传输UDP数据包的发送控制窗口进行优化,以避免出现传输拥塞。预设时间间隔为多个UDP数据包的传输周期,此处对预设时间间隔不作限定,本领域技术人员可以根据实际需要确定。平均传输时间为发送终端发送UDP数据包至接收到UDP数据包接收确认信息的平均时长;最大传输时间为发送终端发送UDP数据包至接收到UDP数据包接收确认信息时长中所有观测值的最大值。发送终端可以对其在预设时间间隔内发送UDP数据包的传输时间进行记录,计算出传输UDP数据包的平均传输时间,并记录预设时间间隔内传输UDP数据包的最大传输时间以及最小传输时间。其中,最小传输时间可以作为网络传输延迟的估计,最大传输时间可以作为网络链路容量(或缓冲/BUFFER限制的最大值)的估计,平均传输时间可以作为平均发送队列长度的估计。
S26,基于平均传输时间、最大传输时间、上一次发送队列长度以及上一次发送控制窗口的大小,计算传输UDP数据包的优化发送控制窗口,并按照优化发送控制窗口的大小调整发送端的发送控制窗口。
发送终端可以根据其记录平均传输时间、最大传输时间、上一次发送队列长度以及上一次发送控制窗口的大小,计算窗口优化量,再结合上一次发送控制窗口和窗口优化量计算得到传输UDP数据包的优化发送控制窗口的大小。
具体地,上述步骤S26可以包括如下步骤:
S261,基于上一次发送队列长度与上一次发送控制窗口的大小的第二比值,以及平均传输时间与最大传输时间的第三比值,计算窗口优化量。
窗口优化量为传输UDP数据包时需对上一次发送控制窗口进行优化的量。通过上一次发送队列长度与上一次发送控制窗口的第一比值,以及最大传输时间与平均传输时间的第三比值,可以计算得到窗口优化量。具体地,窗口优化量的计算步骤如下:
(1)获取第三预设系数和第四预设系数。
第三预设系数和第四预设系数用以动态调整窗口优化量,第三预设系数α2和第四预设系数β2可以根据经验值确定,此处不作具体限定。
(2)计算第二比值与第四预设系数之间的第二乘积值。
(3)计算第三预设系数与第二乘积值的第二差值。
(4)比较第二差值与第三比值,确定出第二差值和第三比值之间的较大者,以第二差值和第三比值之间的较大者作为窗口优化量。
S262,计算窗口优化量与上一次发送控制窗口的和,得到优化发送控制窗口,并按照优化发送控制窗口的大小调整发送UDP数据包的发送控制窗口。
优化发送控制窗口的计算公式如下:
其中,W2为优化发送控制窗口;Wpre为上一次发送控制窗口;Qpre为上一次发送队列长度;max_rtt为最大传输时间;ave_rtt为平均传输时间;α2为第三预设系数;β2为第四预设系数。
UDP数据包传输过程中的发送控制窗口变化情况如图4所示,其变化情况主要包括三种:(1)对于每次UDP数据包传输来说,由于缺少运行数据,可以依靠经验值选择一个合适的初始值;(2)发送控制窗口增长阶段,即没有发生数据包丢失的情况下,尽可能的增大发送控制窗口的大小,将数据包分片发送出去,涵盖“慢启动、拥塞避免”两个阶段;(3)数据包丢失时,需要重新调整发送窗口的大小。
本实施例提供的UDP数据包的传输控制方法,当发生数据包丢失时,基于上一次发送队列长度与上一次发送控制窗口,计算窗口调整量,并通过窗口调整量与上一次发送控制窗口计算出再次传输UDP数据包时的目标发送控制窗口,由此保证了UDP数据包能够被完全传输,避免出现数据包丢失现象,从而避免数据包持续重传,保证了UDP数据包的传输效率,进而保证了通信各方的通信质量。当未发生UDP数据包丢失时,基于UDP数据包的平均传输时间、UDP数据包的最大传输时间、上一次发送队列长度以及上一次发送控制窗口的大小,计算传输UDP数据包的优化发送控制窗口。该方法实时调整传输UDP数据包的发送控制窗口,避免了发生UDP数据包的传输拥塞,从而避免了数据传输不公平而导致UDP数据包丢失,保证了通信各方的通信质量。
考虑两个丢包事件之间的发送控制窗口变化和数据发送情况进行数据传输公平性分析如下:
标记完成了T轮传输后已发送的UDP数据包个数为S,则:
其中,Winit为初始发送控制窗口的大小;k为系数,与发送轮次相关;α、β均为预设系数;Wpre为上一次发送控制窗口;Qpre为上一次发送队列长度。
在传输稳定的情况下,假设max_rtt和ave_rtt相差较小(一般情况下,也就是3倍左右),公式(1)可以简化为:
在发生UDP数据包丢失时,发送控制窗口的最大值为:
根据假设,数据包S的数学期望E(S)为:
其中,p为当前网络中的随机丢包率,因此,可以得到数学期望E(S)为:
其中,E(·)用于表征数学期望。
同时,由公式(3)可得,发送轮次数T的期望E(T)为:
根据公式(6)和公式(7),可以得到:
当p足够小时,E(T)可以简化为:
根据已知条件,可以标记每个发送轮次的期望时间为E(R),所以T个发送轮次的总时间为E(T)E(R)。由此可以得到待分析链路的平均传输速率为:
根据公式(1)和(3),可得:
其中,r是当前网络中的最小网络延迟。
通过动态调整α和β,可以得到不同的E(F),例如在典型网络中,可以取α=Fpre+α0,β=Fpre+β0,此时:
其中,Fpre为上一次发送UDP数据包的F值;α0、β0为初始的预设系数。
由于E(R)远大于r,因而平均传输速率G可以改写为:
当网络条件确定时,最小网络延迟r及网络丢包率p可以视为定值。由此可见,当E(R)越接近r时,当前链路的传输速率越大。
当存在多个链路(音视频数据流)经过相同的链路时,则根据链路假设其具有相同的丢包率p,网络最小延迟r,那么由公式(13)可知,第i个数据流的传输速率为:
由于每个数据流经过相同链路,所以当链路稳定时,每个数据流的排队延迟即E(Ri)-r为各瓶颈线路的排队延迟之和,这一排队延时必定相同。由此说明稳定状态下,每个数据流的传输速率相同。而且,由于传输速率的计算公式只由稳定状态的丢包率及延迟决定,所以多个数据流的同步性或异步性并不会影响稳定状态下数据的传输公平性。
基于上述算法进行网络吞吐量计算以及公平性模拟测试如下:
(1)网络吞吐量计算:选取不同地理位置的虚拟机作为数据发送端,部署UDP数据包的传输控制方法,传输特定尺寸大小的文件(以约5M字节的视频文件为例),测算传输完成时间,以此计算网络吞吐率。在不同的网络条件下,包括有线广域网、有线广域网与无线网络的混合网络、有线网络与移动通讯网络的混合网络,不同时间段下的测得的吞吐率如图5所示。
观察测试结果可知,在不同的网络环境下,该UDP数据包的传输控制方法(图中的“优化算法”)效果不低于系统的缺省算法;在一定的网络环境下,如高延迟低带宽的网络下,或者高带宽的网络环境下,该UDP数据包的传输控制方法可以提高大约10%的吞吐率。
(2)公平性模拟测试。使用业界常用的NS2(Network Simulator version 2)软件模拟,在模拟场景中,创建了8个节点,其中节点3和节点4充当网关,节点2和节点7之间的通讯充当背景数据流,节点0发送数据,节点5接收数据,这条链路为数据流1,节点1发送数据,节点6接收,构成数据流2。如图6中所示,各节点间实线上标注了最大允许吞吐率和包延迟时间量。测试数据流1和数据流2的启停时间如图7中的时间线所示。由模拟结果可以看到随着时间的流逝,网络中发生多次丢包事件,数据流1和数据流2持续的调整发送窗口大小,最终数据流1和数据流2都达到了较高的吞吐率,并相对公平的共享了网络。
在本实施例中还提供了一种UDP数据包的传输控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种UDP数据包的传输控制装置,如图8所示,包括:
获取模块31,用于获取UDP数据包的传输信息、上一次发送队列长度以及上一次发送控制窗口的大小。
判断模块32,用于基于UDP数据包的传输信息,判断UDP数据包是否发生丢失。
计算模块33,用于当发生UDP数据包丢失时,基于上一次发送队列长度以及上一次发送控制窗口的大小,计算传输UDP数据包的目标发送控制窗口。
调整模块34,用于按照目标发送控制窗口的大小调整传输UDP数据包的发送控制窗口。
本实施例提供的UDP数据包的传输控制装置,通过在检测到UDP数据包丢失时,调整传输UDP数据包的发送控制窗口,避免了一对多通信过程中UDP数据包持续丢失而影响通信质量的问题,保证了通信各方均能及时接收到发送端传输的UDP数据包,从而实现了数据传输公平,兼顾了通信各方的通信质量。
本实施例中的UDP数据包的传输控制装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种电子设备,具有上述图8所示的UDP数据包的传输控制装置。
请参阅图9,图9是本发明可选实施例提供的一种电子设备的结构示意图,如图9所示,该电子设备可以包括:至少一个处理器41,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口43,存储器44,至少一个通信总线42。其中,通信总线42用于实现这些组件之间的连接通信。其中,通信接口43可以包括显示屏(Display)、键盘(Keyboard),可选通信接口43还可以包括标准的有线接口、无线接口。存储器44可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器44可选的还可以是至少一个位于远离前述处理器41的存储装置。其中处理器41可以结合图8所描述的装置,存储器44中存储应用程序,且处理器41调用存储器44中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线42可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线42可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器44可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器44还可以包括上述种类的存储器的组合。
其中,处理器41可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器41还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器44还用于存储程序指令。处理器41可以调用程序指令,实现如本申请图2和图3实施例中所示的UDP数据包的传输控制方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的UDP数据包的传输控制方法的处理方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (6)
1.一种UDP数据包的传输控制方法,其特征在于,包括:
获取UDP数据包的传输信息、上一次发送队列长度以及上一次发送控制窗口的大小;
基于所述UDP数据包的传输信息,判断所述UDP数据包是否发生丢失;
当发生UDP数据包丢失时,基于所述上一次发送队列长度以及所述上一次发送控制窗口的大小,计算传输所述UDP数据包的目标发送控制窗口的大小;
按照所述目标发送控制窗口的大小调整传输所述UDP数据包的发送控制窗口;
其中,目标发送控制窗口的大小的计算公式如下:
其中,W1为目标发送控制窗口的大小;Wpre为上一次发送控制窗口的大小;Qpre为上一次发送队列长度;α1为第一预设系数;β1为第二预设系数。
3.根据权利要求1所述的方法,其特征在于,判断所述UDP数据包是否发生丢失,包括:
判断所述UDP数据包是否传输乱序;
和/或,
判断预设时间内是否接收到所述UDP数据包的确认接收信息。
4.一种UDP数据包的传输控制装置,其特征在于,包括:
获取模块,用于获取传输信道中的UDP数据包、上一次发送队列长度以及上一次发送控制窗口的大小;
判断模块,用于判断所述UDP数据包是否发生丢包;
计算模块,用于当发生丢包时,基于所述上一次发送队列长度以及所述上一次发送控制窗口的大小,计算传输所述UDP数据包的目标发送控制窗口的大小;其中,目标发送控制窗口的大小的计算公式如下:
其中,W1为目标发送控制窗口的大小;Wpre为上一次发送控制窗口的大小;Qpre为上一次发送队列长度;α1为第一预设系数;β1为第二预设系数;
调整模块,用于按照所述目标发送控制窗口的大小调整发送所述UDP数据包的发送控制窗口。
5.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-3任一项所述的UDP数据包的传输控制方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-3任一项所述的UDP数据包的传输控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110614534.3A CN113438180B (zh) | 2021-06-02 | 2021-06-02 | Udp数据包的传输控制方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110614534.3A CN113438180B (zh) | 2021-06-02 | 2021-06-02 | Udp数据包的传输控制方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113438180A CN113438180A (zh) | 2021-09-24 |
CN113438180B true CN113438180B (zh) | 2022-07-26 |
Family
ID=77803503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110614534.3A Active CN113438180B (zh) | 2021-06-02 | 2021-06-02 | Udp数据包的传输控制方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113438180B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113993197B (zh) * | 2021-10-26 | 2023-11-03 | 成都亿佰特电子科技有限公司 | LoRa网关与节点的通信方法、装置、存储介质及电子设备 |
CN116708134B (zh) * | 2023-07-12 | 2024-05-14 | 韩山师范学院 | 基于流量控制的点对点网络传输系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111314237A (zh) * | 2020-01-17 | 2020-06-19 | 深信服科技股份有限公司 | 数据包传输速率的调整方法、装置、设备及可读存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488840B (zh) * | 2009-02-05 | 2013-04-17 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法和装置 |
CN102055571B (zh) * | 2009-11-05 | 2014-01-01 | 华为技术有限公司 | 一种数据包的传输方法、通信设备和通信系统 |
CN103067301A (zh) * | 2013-01-17 | 2013-04-24 | 广东石油化工学院 | 基于用户数据报协议的快速可靠的拥塞控制改进算法 |
CN104518841B (zh) * | 2013-09-26 | 2018-07-20 | 北京新媒传信科技有限公司 | 数据发送方法及装置 |
WO2016155945A1 (en) * | 2015-03-31 | 2016-10-06 | Qualcomm Technologies International, Ltd. | Data rate adaptation in a wireless transmitter |
GB2537595A (en) * | 2015-03-31 | 2016-10-26 | Qualcomm Technologies Int Ltd | Data rate adaptation in a wireless transmitter |
TWI646807B (zh) * | 2017-09-07 | 2019-01-01 | 宏碁股份有限公司 | Rudp裝置及滑動窗參數的動態調整方法 |
CN110351198B (zh) * | 2019-07-05 | 2022-05-17 | 视联动力信息技术股份有限公司 | 一种流量调节方法、数据传输系统、存储介质及设备 |
-
2021
- 2021-06-02 CN CN202110614534.3A patent/CN113438180B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111314237A (zh) * | 2020-01-17 | 2020-06-19 | 深信服科技股份有限公司 | 数据包传输速率的调整方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113438180A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Al-Saadi et al. | A survey of delay-based and hybrid TCP congestion control algorithms | |
US8943206B2 (en) | Network bandwidth detection and distribution | |
WO2016192478A1 (zh) | 数据传输方法及装置 | |
JP2019520745A (ja) | 同時接続の総スループットを改善するためのシステム及び方法 | |
JP2004538719A (ja) | 非線形高スケーラブル増加−減少輻輳制御機構を提供する方法 | |
CN113438180B (zh) | Udp数据包的传输控制方法、装置、设备及可读存储介质 | |
JPWO2008023656A1 (ja) | 通信装置 | |
US7965639B2 (en) | Dynamic adaptation of MAC-layer retransmission value | |
JP4402619B2 (ja) | マルチキャスト通信フロー制御方法および装置 | |
US10868839B2 (en) | Method and system for upload optimization | |
Riedl et al. | Investigation of the M/G/R processor sharing model for dimensioning of IP access networks with elastic traffic | |
Weigle et al. | Delay-based early congestion detection and adaptation in TCP: impact on web performance | |
Yabandeh et al. | Improving performance of transport protocols in multipath transferring schemes | |
US9130843B2 (en) | Method and apparatus for improving HTTP adaptive streaming performance using TCP modifications at content source | |
Šošić et al. | Resolving poor TCP performance on high-speed long distance links—Overview and comparison of BIC, CUBIC and Hybla | |
CN110120921B (zh) | 拥塞避免方法、装置、计算机设备及存储介质 | |
CN117676695A (zh) | Tcp传输方法、装置和系统 | |
Rahimi et al. | An improvement mechanism for low priority traffic TCP performance in Strict Priority Queueing | |
Hisamatsu et al. | Non bandwidth-intrusive video streaming over TCP | |
JP6200870B2 (ja) | データ転送制御装置、方法及びプログラム | |
Park et al. | Minimizing application-level delay of multi-path TCP in wireless networks: A receiver-centric approach | |
Abdelsalam et al. | Evaluation of TCP wave performance applied to real HTTP traffic | |
Peng et al. | Fast backward congestion notification mechanism for TCP congestion control | |
Al-Hasanat | Performance evaluation of selected e2e TCP congestion control mechanism over 4G networks | |
Nor et al. | Simulated Performance of VoIP using DCCP CCID2 over Large Delay Link Networks |
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 |