CN114363426B - 基于udt协议的数据传输方法及装置、电子设备和存储介质 - Google Patents

基于udt协议的数据传输方法及装置、电子设备和存储介质 Download PDF

Info

Publication number
CN114363426B
CN114363426B CN202111521785.3A CN202111521785A CN114363426B CN 114363426 B CN114363426 B CN 114363426B CN 202111521785 A CN202111521785 A CN 202111521785A CN 114363426 B CN114363426 B CN 114363426B
Authority
CN
China
Prior art keywords
algorithm
cwnd
size
target
data packet
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
CN202111521785.3A
Other languages
English (en)
Other versions
CN114363426A (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 Shareit Information Technology Co Ltd
Original Assignee
Beijing Shareit 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 Shareit Information Technology Co Ltd filed Critical Beijing Shareit Information Technology Co Ltd
Priority to CN202111521785.3A priority Critical patent/CN114363426B/zh
Publication of CN114363426A publication Critical patent/CN114363426A/zh
Application granted granted Critical
Publication of CN114363426B publication Critical patent/CN114363426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开实施例是关于一种基于UDT协议的数据传输方法及装置、电子设备及存储介质。本公开实施例提供的基于UDT协议的数据传输方法可包括:在第一阶段基于UDT协议的数据包传输时,采用第一算法增大拥塞窗口CWND的尺寸;在基于所述CWND的尺寸达到预设值时,切换到第二阶段采用第二算法调整所述CWND的尺寸,其中,采用所述第二算法对所述CWND的调整幅度,小于采用所述第一算法调整所述CWND的调整幅度。

Description

基于UDT协议的数据传输方法及装置、电子设备和存储介质
技术领域
本公开涉及网络技术领域,尤其涉及一种于用户数据包协议((User DataProtocol,UDP)的数据传输(UDP-based Data Transfer,UDT)协议的数据传输方法及装置、电子设备和存储介质。
背景技术
UDT协议是一个基于UDP的数据传输协议,产生的主要目的是针对传输控制协议(Transmission Control Protocol,TCP)在高带宽长距离网络上的传输性能差”的问题,尽可能全面支持突发数据包(Burst Data Packet,BDP)BDP网络上的海量数据传输。UDT是建立与UDP之上的面向双向的应用层协议,引入了新的拥塞控制算法和数据可靠性控制机制。它不仅可以支持可靠的数据流传输(STREAM类型TCP)和部分可靠的数据报(DGRAM类似网络上发广播消息)传输,也可以应用在点对点技术,防火墙穿透,多媒体数据传输等领域。
发明内容
本公开实施例提供一种基于UDT协议的数据传输方法及装置、电子设备和存储介质。
本公开实施例第一方面提供一种基于用户数据包协议的数据传输UDT协议的数据传输方法,其特征在于,包括:
在第一阶段基于UDT协议的数据包传输时,采用第一算法增大拥塞窗口CWND的尺寸;
在基于所述CWND的尺寸达到预设值时,切换到第二阶段采用第二算法调整所述CWND的尺寸,其中,采用所述第二算法对所述CWND的调整幅度,小于采用所述第一算法调整所述CWND的调整幅度。
基于上述方案,所述在第一阶段基于UDT协议的数据包传输时,采用第一算法增大拥塞窗口CWND的尺寸,包括:
在启动基于UDT协议的数据包传输时,接收到接收端发送的确认应答ACK反馈时,采用所述第一算法增大所述CWND的尺寸。
基于上述方案,所述第一算法为指数算法。
基于上述方案,所述在基于所述CWND的尺寸达到预设值时,切换到第二阶段采用第二算法调整所述CWND的尺寸,包括:
在接收到所述ACK反馈且所述CWND的尺寸达到预设值时,切换到按照预设步长值S调整所述CWND的尺寸,其中,所述S等于1个或多个单个数据包的最大值MSS。
基于上述方案,所述方法还包括:
在检测到数据包的否认应答NACK时,根据第一系数及所述CWND的当前尺寸之间的乘积,更新所述CWND的尺寸,其中,所述第一系数位于0.5至0.9之间。
基于上述方案,所述方法还包括:
若检测到所述数据包的反馈超时,将所述CWND的尺寸更新为预设倍数MSS,并且根据更新前的所述CWND的尺寸确定网络最大容量ssthresh,其中,所述ssthresh等于第二系数与所述更新前的CWND的尺寸之间的乘积,其中,所述第二系数位于0.4至1之间。
本公开实施例第二方面提供一种基于用户数据包协议的数据传输UDT协议的数据传输装置,包括:
增大模块,用于在第一阶段基于UDT协议的数据包传输时,采用第一算法增大拥塞窗口CWND的尺寸;
调整模块,用于在基于所述CWND的尺寸达到预设值时,切换到第二阶段采用第二算法调整所述CWND的尺寸,其中,采用所述第二算法对所述CWND的调整幅度,小于采用所述第一算法调整所述CWND的调整幅度。
基于上述方案,所述增大模块,具体用于在启动基于UDT协议的数据包传输时,接收到接收端发送的确认应答ACK反馈时,采用所述第一算法增大所述CWND的尺寸。
基于上述方案,所述第一算法为指数算法。
基于上述方案,所述调整模块,具体用于在接收到所述ACK反馈且所述CWND的尺寸达到预设值时,切换到按照预设步长值S调整所述CWND的尺寸,其中,所述S等于1个或多个单个数据包的最大值MSS。
基于上述方案,所述装置还包括:
第一更新模块,用于在检测到数据包的否认应答NACK时,根据第一系数及所述CWND的当前尺寸之间的乘积,更新所述CWND的尺寸,其中,所述第一系数位于0.5至0.9之间。
基于上述方案,所述装置还包括:
第二更新模块,用于若检测到所述数据包的反馈超时,将所述CWND的尺寸更新为预设倍数MSS,并且根据更新前的所述CWND的尺寸确定网络最大容量ssthresh,其中,所述ssthresh等于第二系数与所述更新前的CWND的尺寸之间的乘积,其中,所述第二系数位于0.4至1之间。
本公开实施例第三方面提供一种电子设备,包括:
用于存储处理器可执行指令的存储器;
处理器,与所述存储器连接;
其中,所述处理器被配置为执行第一方面任意技术方案提供的基于UDT协议的数据传输方法。
本公开实施例第四方面提供一种非临时性计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时前述第一方面任意技术方案提供的基于UDT协议的数据传输方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
在本公开实施例中,在基于UDT协议进行数据传输时,在起始的启动阶段,以大幅度增加拥塞窗口的算法迅速增大拥塞窗口,从而可以在网络状态良好的情况下,提升数据包的传输速率;另外开始出现拥塞时采用调整幅度较小的第二算法进行CWND的慢调整,可以在网络状况不好的情况下也实现尽可能的利用网络带宽确保网络传输速率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本公开实施例示出的一种基于UDT协议的数据传输方法的流程示意图。
图2是本公开实施例示出的一种基于UDT协议的数据传输方法的流程示意图。
图3是本公开实施例示出的一种基于UDT协议的数据传输方法的流程示意图。
图4是本公开实施例示出的一种CWND的尺寸的时域变化示意图。
图5是本公开实施例示出的一种基于UDT协议的数据传输方法的流程示意图。
图6是本公开实施例示出的一种基于UDT协议的数据传输装置的结构示意图。
图7是本公开实施例示出的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
如图1所示,本公开实施例提供一种基于用户数据包协议的数据传输UDT协议的数据传输方法,包括:
S110:在第一阶段基于UDT协议的数据包传输时,采用第一算法增大拥塞窗口CWND的尺寸;
S120:在基于所述CWND的尺寸达到预设值时,切换到第二阶段采用第二算法调整所述CWND的尺寸,其中,采用所述第二算法对所述CWND的调整幅度,小于采用所述第一算法调整所述CWND的调整幅度。
本公开实施例体用过的基于UDT协议的数据传输方法可应用于数据的发送端。
示例性地,在进行WiFi传输文件时,可以基于UDT协议进行。此时,发送端可以基于UDT协议快速且尽可能的减少随机掉包的情况下将文件的数据包发送给接收端。
所述CWND的尺寸也可以说是CWND的大小。该CWND决定了发送端向接收端连续发送的数据包的数据量。通常CWND决定了发送端向接收端连续发送的数据包的数量。
在基于UDT协议进行数据传输时,会根据就CWND和发送间隔时间来控制发送端的网络端口向网络丢出的数据包。该发送间隔时间为:发送相邻两个数据包的时间间隔。
与此同时,发送端每发预定数量的数据包就会连续发送一次对包,一次对包的发送可包括:连续发送两个内容相同的数据包。接收端会根据一次对包中的两个数据包的达到时间间隔,确定出网络延时和/或网络带宽,并且将确定的参数告知发送端。发送端可以根据该参数调整CWND和/或发送间隔时间。
在本公开实施例中,所述第一算法可为调整幅度较大的算法,而第二算法相较于第一算法而言是调整幅度较小的算法。示例地性,第一算法可为指数算法或者由乘法运算构成的倍数算法,而第二算法可为由加减运算构成的加减运算。如此,在发送数据的起始阶段,拥塞窗口迅速增大,从而尽可能快的利用所有的带宽资源,实现高速率传输。在一次CWND的窗口调整过程中,若按照第一算法增大CWND的尺寸过程中,遇到了首个数据包的丢包,则说明CWND的尺寸增大到了极大值,则不能继续大幅度的调整CWND。此时,停止按照第一算法调整CWND的尺寸,而是按照第二算法调整CWND。
在按照第一算法调整CWND的尺寸时,可包括:
在收到接收端一个指示数据包发送成功的确认应答(ACK),根据第一算法增大CWND的尺寸一次,直到CWND的尺寸预设值。
若在持续接收到ACK反馈时,持续继续按照第一算法缩小CWND的尺寸,可能会使得CWND的尺寸过大,超过网管设备分配给发送端的带宽,且继续高速率增长可能会很快出现严重的拥堵,故在CWND的尺寸达到预设值时,切换到按照第二算法进行CWND的尺寸调整。
根据第二算法调整CWND的尺寸可包括:
在收到接收端发送的一个ACK,则按照第二算法增大CWND的尺寸一次;在收到接收端发送的一个NACK,则按照第二算法缩小CWND的尺寸一次。
如此,按照第一算法仅仅用于快速增大CWND的尺寸到极大值(即所述预设值),而CWND的尺寸仅仅会第二算法缓慢缩小或者缓慢增大,如此,可以通过快速增大的算法尽可能利用网络带宽提升发送速率,同时通过缓慢缩小CWND的尺寸,在网络状况差时适当的调整发送速率,减少丢包现象。
所述预设值为初始化时确定的值。
所述S110可包括:在启动基于UDT协议的数据包传输时,接收到接收端发送的确认应答ACK反馈时,采用所述第一算法增大所述CWND的尺寸。
在一些实施例中,所述第一算法为指数算法。
该指数算法可为:2次幂指示算法或者3次幂指数算法等等。
示例性地,该第一算法可为:W(t)=c*(t-K)3+Wmax,其中,W(t)表示当前时刻的CWND的尺寸,t表示当前时刻距离上一次窗口缩小的时间窗或距离拥塞窗口投入使用的初始时刻的时间差。K代表CWND的尺寸从W增长到Wmax的时间周期。c为常数。
当然以上仅仅是对第一算法的举例,具体实现时不局限于此。
在一些实施例中,所述S120可包括:
在接收到所述ACK反馈且所述CWND的尺寸达到预设值时,切换到按照预设步长值S调整所述CWND的尺寸,其中,所述S等于1个或多个单个数据包的最大值MSS。
例如,按照第二算法调整CWND的尺寸时,每收到一个ACK则CWND的尺寸在当前尺寸的基础上增加1个MSS的大小,在每收到一个NACK时则CWND的尺寸在当前尺寸的基础上缩小1个MSS的大小。即S值可为1,当然不局限于1,还可以为2或3等正整数值。
在一些实施例中,如图2所示,所述方法还包括:
S130:在检测到数据包的否认应答NACK时,根据第一系数及所述CWND的当前尺寸之间的乘积,更新所述CWND的尺寸,其中,所述第一系数位于0.5至0.9之间。
例如,在按照第一算法和第二算法调整CWND的过程中,网络带宽出现波动,导致丢包,则此时可以直接退出按照第一算法和第二算法继续增大CWND的尺寸,而是切换到按照第一系数调整CWND的尺寸。
故在一些的实施例中,第二算法可以在第一算法的基础上缓慢增大CWND,而在缩小CWND时采用按照第一系数缩小,该第一系数可为0到1之间的任意取值。示例性地,在本公开实施例中,该第一系数可为位于0.5至0.9之间的任意取值,优选地,该第一系数可为0.7、0.75或者0.8。
采用位于0.5至0.9之间的第一系数缩小CWND的尺寸,一方面可以缩小CWND的尺寸减少随机掉包的现象,另一方面没有一次性将CWND的尺寸缩小的过小,从而还能保证一定的发包速率。
在一些实施例中,如图3所示,所述方法还包括:
S140:若检测到所述数据包的反馈超时,将所述CWND的尺寸更新为预设倍数MSS,并且根据更新前的所述CWND的尺寸确定网络最大容量ssthresh,其中,所述ssthresh等于第二系数与所述更新前的CWND的尺寸之间的乘积,其中,所述第二系数位于0.4至1之间。
若检测到数据包反馈超时,即在发出数据包的预定时长内既没有接收到接收端发送的ACK,也没有收到NACK,则认为数据包的反馈超时。而导致反馈超时的原因是网络带宽出现比较大的波动,或者网络出现比较大的拥塞。此时,需要比较大幅度的调整CWND的尺寸。示例性地,将CWND的尺寸更新预设倍数的MSS。例如,将CWND更新为2倍或者3倍CWND。
与此同时,会将网络最大容量更新为第二系数与更新前的CWND尺寸之间的乘积,而第二系数的取值位于0.4与1之间。如此,下一次数据包传输之前,根据网络最大容量确定CWND的初始值时不至于从0开始或者更小的值开始导致的下一次数据包传输的起始阶段数据包传输速率低的特点。
示例性地,所述第二系数可为0.5或者0.6等取值。在一些实施例中,所述方法还包括:
获取指示网络带宽或者网络拥塞情况变化的状况信息;
根据所述状况信息,从多个所述第一算法的备选算法和/或第二算法的备选算法中选择第一算法的目标算法和/或第二算法的目标算法。
例如,根据状况信息确定出当前网络可用带宽比较大或者网络在预设持续时长内未出现过拥塞,则优选选择增幅较大的备选算法作为第一算法的目标算法和第二算法的目标算法。
再例如,根据状况信息确定出当前网络可用带宽比较小或者网络在预设持续时长内出现过拥塞,则优选选择增幅较小的备选算法作为第一算法的目标算法和第二算法的目标算法。
所述状况信息包括但不限于以下至少之一:
发送端的丢包率;
接收的网络服务器发送的状况信息等。
如此,根据当前网络可用带宽的情况和/或网络拥塞状况,可以选择合适的第一算法和第二算法更好的调节CWND。
UDT发送过程是将数据保存在发送列表中,通过epoll定时来决定下一个包的发送时机。同时维护一个滑动的拥塞窗口,这个滑动的拥塞窗口决定同时发送包的数量,亦即即时带宽大小。影响发送速率是由窗口大小m_dCWndSize和发送间隔时间m_dPktSndPeriod这两个参数决定。拥塞控制算法主要是调节这两个参数,具体的流程如下:
示例性地,发送端会连续发送两个相同大小的数据包,接收方接收到时,会根据包间隔来计算出链路带宽。在发送端,UDT每发送16个数据包就会发送一次对包,即第16,17号数据包成为一个对包,由于在只有16号数据包,没有17号数据包时或17号包很晚才发,接收方计算间隔时间会出现非常大的值,此时链路带宽会出现比较大的波动,所以UDT采用中值过滤法来避免这种情况。
接收方维护一个大小为N的循环链表,和最近N个对包的对包间隔窗口,N可以是任意数值,越大需要的内存和CPU消耗越高,在UDT中N=64,每次都会使用最新的间隔时间来替换掉最老的间隔时间,接收方使用中值过滤法来去除噪音,UDT计算出对包窗口中的中值,所有大于中值8倍,或者小于中值1/8的数据都会被忽略掉,然后再计算余下有效的间隔时间的平均值,带宽就通过平均值来计算出来:
B=包大小/平均间隔时间
对包窗口内的间隔时间,全部初始化设置为1秒,接收方对链路大小进行评估后,将评估值b通过ACK返回给发送端。
发送端接收到新的评估值b后,使用如下公式更新已有带宽值B(能处理10到1/10倍的错误数据):
B=B*A1+b*B1
其中,A1和B1均为小于1且大于0的正数,且A1与B1之和等于1,示例性地,B=B*0.875+b*0.125
通过即时带宽B,就可以计算出滑动窗口大小m_dCWndSize以及下一个包发送的发送时间间隔m_dPktSndPeriod。
在本公开实施例中,发送时间间隔依然可以根据B来确定。
UDT的发送速率取决于滑动的拥塞窗口和发送间隔时间两个参数。在基于UDT协议进行数据传输,定义几个类,类名是CUDTCC,其派生自CCC类。CCC是UDT实现可替换拥塞控制算法接口,其定义如下:
其中,onACK、onLoss,onTimeout、onPktSent、onPktReceived分别是收到确认包、丢包、超时、发送包、收到包时进行回调。拥塞控制算法需要实现这几个回调函数。
在初始化时根据最后一次更新的ssthresh(也即Ssthresh)确定CWND尺寸的初始值。在接收到接收端返回的第一个ACK之后进入到当前CWND的尺寸是否达到预设值的判断,如果否,采用继续慢启动算法调整CWND尺寸值。如果是否,则使用拥塞控制算法调整CWND尺寸的值。如果一旦确定丢包,一旦检测到丢包则可以按照第一系数大幅度调整CWND的尺寸,若出现反馈超时则以第二系数更大幅度的缩小CWND。
start_time==0表示启示时刻或者收到第一个ACK反馈的起始时刻,rtt代表发出一个数据包到接收到一个数据包的反馈的时长。初始化是等于100*MSS或者1000*MSS或者10000*MSS的Sstresh即为所述预设值。
本公开实施例在UDT的基础上,实现了提高发送速率的一种方法。
替换UDT拥塞控制算法模块,创建CCubicCC类,继承于CCC类,实现init、onACK、onLoss,onTimeout,onCleanup几个类。
参考图5所示,通过工厂类m_pCCFactory创建CCubicCC实例,并关联相应的数据结构。
实现图5中慢启动算法和拥塞控制算法,这两部分是使用Cubic算法替换UDT中自带的拥塞控制算法。其中,图5中的慢启动算法相当于前述的第一算法。图5中所示的拥塞控制算法相当于前述实施例中的第二算法。
遇到反馈超时,cwnd计算默认将cwnd=2*MSS,ssthresh同时减半。本申请实施例修改超时逻辑,将cwnd计算方式修改为大于4中所述值,且不修改ssthresh值。这样在图2中的稳定阶段,曲线下方的值会比图中数据大,因此整体平均值会更大些。
例如,参照图5所示的慢启动算法和拥塞控制算法调整CWND的尺寸,则CWND的尺寸在时域上会呈现如图4所示的变化。
如图6所示,本公开实施例提供一种基于UDT协议的数据传输装置,包括:
增大模块110,用于在第一阶段基于UDT协议的数据包传输时,采用第一算法增大拥塞窗口CWND的尺寸;
调整模块120,用于在基于所述CWND的尺寸达到预设值时,切换到第二阶段采用第二算法调整所述CWND的尺寸,其中,采用所述第二算法对所述CWND的调整幅度,小于采用所述第一算法调整所述CWND的调整幅度。
该传输装置可位于发送端。
在一些实施例中,所述增大模块110及所述调整模块120均可为程序模块;所述程序模块被处理器执行之后,能够实现上述各个模块的功能。
在一些实施例中,所述增大模块110及所述调整模块120可为软硬结合模块;所述软硬结合模块包括但不限于:各种可编程阵列。所述可编程阵列包括但不限于现场可编程阵列和/或复杂可编程阵列。
在还有一些实施例中,所述增大模块110及所述调整模块120可为纯硬件模块;所述纯硬件模块包括但不限于:专用集成电路。
在一些实施例中,所述增大模块110,具体用于在启动基于UDT协议的数据包传输时,接收到接收端发送的确认应答ACK反馈时,采用所述第一算法增大所述CWND的尺寸。
在一些实施例中,所述第一算法为指数算法。
在一些实施例中,所述调整模块120,具体用于在接收到所述ACK反馈且所述CWND的尺寸达到预设值时,切换到按照预设步长值S调整所述CWND的尺寸,其中,所述S等于1个或多个单个数据包的最大值MSS。
在一些实施例中,所述装置还包括:
第一更新模块,用于在检测到数据包的否认应答NACK时,根据第一系数及所述CWND的当前尺寸之间的乘积,更新所述CWND的尺寸,其中,所述第一系数位于0.5至0.9之间。
在一些实施例中,所述装置还包括:
第二更新模块,用于若检测到所述数据包的反馈超时,将所述CWND的尺寸更新为预设倍数MSS,并且根据更新前的所述CWND的尺寸确定网络最大容量ssthresh,其中,所述ssthresh等于第二系数与所述更新前的CWND的尺寸之间的乘积,其中,所述第二系数位于0.4至1之间。
本公开实施例提供一种电子设备,包括:
用于存储处理器可执行指令的存储器;
处理器,分别存储器连接;
其中,处理器被配置为通过执行存储在所述存储器上的计算机可执行指令,能够执行前述任意技术方案提供的基于UDT协议的数据传输方法。
该电子设备可为前述任意一种终端设备。
处理器可包括各种类型的存储介质,该存储介质为非临时性计算机存储介质,在移动终端掉电之后能够继续记忆存储其上的信息。
所述处理器可以通过总线等与存储器连接,用于读取存储器上存储的可执行程序,例如,如图1至图3以及图5任一所示的方法的至少其中之一。
图7是根据一示例性实施例示出的一种端子设备800的框图。例如,端子设备800可以是移动电话,移动电脑等。
参照图7,端子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制端子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在端子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为端子设备800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为端子设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在端子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作状态,如拍摄状态或视频状态时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当端子设备800处于操作状态,如呼叫状态、记录状态和语音识别状态时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为端子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如组件为端子设备800的显示器和小键盘,传感器组件814还可以检测端子设备800或端子设备800一个组件的位置改变,用户与端子设备800接触的存在或不存在,端子设备800方位或加速/减速和端子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于端子设备800和其他设备之间有线或无线方式的通信。端子设备800可以接入基于通信标准的无线网络,如Wi-Fi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,端子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由端子设备800的处理器820执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本公开实施例提供一种非临时性计算机可读存储介质,当存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行前述任意实施例提供的基于UDT协议的数据传输方法,能够执行如如图1至图3以及图5任一所示方法的至少其中之一。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (14)

1.一种基于用户数据包协议的数据传输UDT协议的数据传输方法,其特征在于,包括:
根据状况信息,从多个第一算法的备选算法中选择所述第一算法的目标算法且从多个第二算法的备选算法中选择第二算法的目标算法;其中,网络在预设持续时长内未出现过拥塞时选择的所述第一算法的目标算法的增幅,大于在所述预设持续时长内出现过拥塞时选择的所述第一算法的目标算法的增幅;和/或,网络在预设持续时长内未出现过拥塞时选择的所述第二算法的目标算法的增幅,大于在所述预设持续时长内出现过拥塞时选择的所述第二算法的目标算法的增幅;
在第一阶段基于UDT协议的数据包传输时,采用所述第一算法的目标算法增大拥塞窗口CWND的尺寸;
在基于所述CWND的尺寸达到预设值时,切换到第二阶段采用所述第二算法的目标算法调整所述CWND的尺寸,其中,采用所述第二算法的目标算法对所述CWND的调整幅度,小于采用所述第一算法的目标算法调整所述CWND的调整幅度。
2.根据权利要求1所述的方法,其特征在于,所述在第一阶段基于UDT协议的数据包传输时,采用所述第一算法的目标算法增大拥塞窗口CWND的尺寸,包括:
在启动基于UDT协议的数据包传输时,接收到接收端发送的确认应答ACK反馈时,采用所述第一算法的目标算法增大所述CWND的尺寸。
3.根据权利要求2所述的方法,其特征在于,所述第一算法的目标算法为指数算法。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述在基于所述CWND的尺寸达到预设值时,切换到第二阶段采用所述第二算法的目标算法调整所述CWND的尺寸,包括:
在接收到ACK反馈且所述CWND的尺寸达到预设值时,切换到按照预设步长值S调整所述CWND的尺寸,其中,所述S等于1个或多个单个数据包的最大值MSS。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
在检测到数据包的否认应答NACK时,根据第一系数及所述CWND的当前尺寸之间的乘积,更新所述CWND的尺寸,其中,所述第一系数位于0.5至0.9之间。
6.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
若检测到所述数据包的反馈超时,将所述CWND的尺寸更新为预设倍数MSS,并且根据更新前的所述CWND的尺寸确定网络最大容量ssthresh,其中,所述ssthresh等于第二系数与所述更新前的CWND的尺寸之间的乘积,其中,所述第二系数位于0.4至1之间。
7.一种基于用户数据包协议的数据传输UDT协议的数据传输装置,其特征在于,包括:
增大模块,用于根据状况信息,从多个第一算法的备选算法中选择所述第一算法的目标算法且从多个第二算法的备选算法中选择第二算法的目标算法;其中,网络在预设持续时长内未出现过拥塞时选择的所述第一算法的目标算法的增幅,大于在所述预设持续时长内出现过拥塞时选择的所述第一算法的目标算法的增幅;和/或,网络在预设持续时长内未出现过拥塞时选择的所述第二算法的目标算法的增幅,大于在所述预设持续时长内出现过拥塞时选择的所述第二算法的目标算法的增幅;在第一阶段基于UDT协议的数据包传输时,采用所述第一算法的目标算法增大拥塞窗口CWND的尺寸;
调整模块,用于在基于所述CWND的尺寸达到预设值时,切换到第二阶段采用所述第二算法的目标算法调整所述CWND的尺寸,其中,采用所述第二算法的目标算法对所述CWND的调整幅度,小于采用所述第一算法的目标算法调整所述CWND的调整幅度。
8.根据权利要求7所述的装置,其特征在于,所述增大模块,具体用于在启动基于UDT协议的数据包传输时,接收到接收端发送的确认应答ACK反馈时,采用所述第一算法的目标算法增大所述CWND的尺寸。
9.根据权利要求8所述的装置,其特征在于,所述第一算法的目标算法为指数算法。
10.根据权利要求7至9任一项所述的装置,其特征在于,所述调整模块,具体用于在接收到ACK反馈且所述CWND的尺寸达到预设值时,切换到按照预设步长值S调整所述CWND的尺寸,其中,所述S等于1个或多个单个数据包的最大值MSS。
11.根据权利要求7至9任一项所述的装置,其特征在于,所述装置还包括:
第一更新模块,用于在检测到数据包的否认应答NACK时,根据第一系数及所述CW ND的当前尺寸之间的乘积,更新所述CWND的尺寸,其中,所述第一系数位于0.5至0.9之间。
12.根据权利要求7至9任一项所述的装置,其特征在于,所述装置还包括:
第二更新模块,用于若检测到所述数据包的反馈超时,将所述CWND的尺寸更新为预设倍数MSS,并且根据更新前的所述CWND的尺寸确定网络最大容量ssthresh,其中,所述ssthresh等于第二系数与所述更新前的CWND的尺寸之间的乘积,其中,所述第二系数位于0.4至1之间。
13.一种电子设备,其特征在于,包括:
用于存储处理器可执行指令的存储器;
处理器,与所述存储器连接;
其中,所述处理器被配置为执行如权利要求1至6中任一项提供基于UDT协议的数据传输方法。
14.一种非临时性计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至6中任一项提供的内容请求方法。
CN202111521785.3A 2021-12-13 2021-12-13 基于udt协议的数据传输方法及装置、电子设备和存储介质 Active CN114363426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111521785.3A CN114363426B (zh) 2021-12-13 2021-12-13 基于udt协议的数据传输方法及装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111521785.3A CN114363426B (zh) 2021-12-13 2021-12-13 基于udt协议的数据传输方法及装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN114363426A CN114363426A (zh) 2022-04-15
CN114363426B true CN114363426B (zh) 2024-02-09

Family

ID=81098983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111521785.3A Active CN114363426B (zh) 2021-12-13 2021-12-13 基于udt协议的数据传输方法及装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN114363426B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040027176A (ko) * 2002-09-27 2004-04-01 주식회사 케이티 무선 환경에서의 혼잡제어방법 및 기록매체
CN101854738A (zh) * 2010-05-21 2010-10-06 南京邮电大学 一种用于卫星网络的传输控制协议方法
CN102664867A (zh) * 2012-03-15 2012-09-12 南京邮电大学 一种卫星通信系统中的传输协议的增强方法
CN108432287A (zh) * 2015-12-24 2018-08-21 华为技术有限公司 一种数据传输方法及网络侧设备
CN113271316A (zh) * 2021-06-09 2021-08-17 腾讯科技(深圳)有限公司 多媒体数据的传输控制方法和装置、存储介质及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040027176A (ko) * 2002-09-27 2004-04-01 주식회사 케이티 무선 환경에서의 혼잡제어방법 및 기록매체
CN101854738A (zh) * 2010-05-21 2010-10-06 南京邮电大学 一种用于卫星网络的传输控制协议方法
CN102664867A (zh) * 2012-03-15 2012-09-12 南京邮电大学 一种卫星通信系统中的传输协议的增强方法
CN108432287A (zh) * 2015-12-24 2018-08-21 华为技术有限公司 一种数据传输方法及网络侧设备
CN113271316A (zh) * 2021-06-09 2021-08-17 腾讯科技(深圳)有限公司 多媒体数据的传输控制方法和装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN114363426A (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
CN109698794B (zh) 一种拥塞控制方法、装置、电子设备及存储介质
CN109474538B (zh) 一种数据传输方法、装置、终端设备及存储介质
WO2020211535A1 (zh) 网络延迟控制方法、装置、电子设备及存储介质
US11490156B2 (en) Delay control method, delay control apparatus, terminal device and storage medium
CN107396171A (zh) 网络直播方法、装置和存储介质
CN109408207A (zh) 微服务访问控制方法、装置及存储介质
CN110611829A (zh) 视频预加载的方法、装置、电子设备及存储介质
CN104639978A (zh) 多媒体处理方法及装置
CN107743096B (zh) 网络优化方法、装置、终端以及存储介质
CN113965517B (zh) 网络传输方法、装置、电子设备及存储介质
CN111654354B (zh) 最大传输单元mtu的探测方法、装置及存储介质
CN109561356B (zh) 数据发送方法、数据发送装置、电子设备和计算机可读存储介质
JP2018503989A (ja) 情報処理方法、装置、プログラム、及び記録媒体
CN111654450A (zh) 数据传输方法及装置、存储介质
WO2022027495A1 (zh) 调整指示方法和装置、调整接收方法和装置
CN108347718B (zh) 监听通信包的方法、装置以及存储介质
CN106357558B (zh) 带宽分配方法及装置
CN114363426B (zh) 基于udt协议的数据传输方法及装置、电子设备和存储介质
CN110933773B (zh) 链路监测方法及装置
WO2017031900A1 (zh) 时延控制方法及装置
CN115002007A (zh) 网络延迟判别方法、装置、电子设备及存储介质
WO2022011654A1 (zh) 时间提前量指示、上行信号发送方法和装置
CN114650571A (zh) 通信控制方法、装置以及存储介质
WO2020041979A1 (zh) 传输参考信号的方法及装置
WO2020097883A1 (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