一种数据传输方法、装置及系统与流程

文档序号:11253887阅读:1339来源:国知局
一种数据传输方法、装置及系统与流程

本发明涉及通信领域,尤其涉及一种数据传输方法、装置及系统。



背景技术:

面向连接的传输协议中,通常通过往返时间英文全称:roundtriptime,英文简称:rtt)来反映数据发送端和接收端之间传输链路的通畅程度。其中rtt是指从数据发送端发送数据包开始,到数据发送端接收到来自数据接收端的确认所经历的时延。

以传输控制协议(英文全称:transmissioncontrolprotocol,英文简称:tcp)为例,数据发送端向数据接收端发送数据包,数据接收端在接收到该数据包后向数据发送端发送确认消息,从数据发送端发送数据包,到接收到该数据包的确认消息的时延,即为rtt。

数据传输过程中,rtt上升表示传输链路中的排队量上升。rtt上升到一定程度就会出现拥塞(英文:congestion),导致丢包。

一种面向连接的传输协议(例如fasttcp)中,在rtt上升时降低发送速率,rtt下降时提升发送速率,以达到避免拥塞或者在发生拥塞后恢复数据传输的目的。

在传输链路带宽一定的情况下,在数据发送端发送数据的过程中,如果有其它数据流与数据发送端竞争传输带宽时,往往会导致rtt上升,此时数据发送端就会降低发送速率。

在存在带宽竞争的情况下,如果其它数据流在rtt不断上升时仍旧保持或者提高发送速率,而数据发送端不断降低发送速率,最终链路带宽会逐渐被其它数据流挤占。可见,现有的基于rtt调整发送速率的数据传输方法,在存在带宽竞争的情况下抢占带宽的竞争力不足,导致数据传输速率低下。



技术实现要素:

本申请提供一种数据传输方法、装置及系统,能够提高发送端抢占带宽的竞争力,提高数据传输速率。

为达到上述目的,本申请采用如下技术方案:

第一方面,提供一种数据传输方法,包括:

数据发送端以初始发送速率向数据接收端发送数据,周期性确定用于评估传输链路的参数,这些参数包括最大接收速率、丢包率以及rtt等。其中,最大接收速率为在丢包率不超过丢包率上限的前提下所确定的接收速率中的最大值。当丢包率超过丢包率上限时,表明当前传输链路发送拥塞。

进一步地,数据发送端根据当前传输链路的参数,调整发送速率。随着当前传输链路的参数的周期性更新,发送速率也相应的进行调整。

具体的,数据发送端向数据接收端发送数据的过程分为三个阶段,分别为启动阶段、稳定阶段和竞争阶段,数据发送端在不同阶段采用不同的上调或者下调发送速率的方式。

启动阶段指从连接建立到丢包率首次出现拥塞事件的时间段,其中拥塞事件包括丢包率超过丢包率上限。数据发送端与数据接收端之间的连接建立后,数据发送端逐步上调发送速率至丢包率首次出现拥塞事件。启动阶段中数据发送端通过逐步上调发送速率探测传输链路的最大可用带宽。

启动阶段结束后将发送速率下调到第一区间,进入稳定阶段。第一区间为[发送速率下限,发送速率上限]。其中发送速率下限和发送速率上限由数据发送端根据所述最大接收速率确定,并随着最大接收速率的更新而更新。所述发送速率上限大于所述最大接收速率,所述发送速率下限小于所述最大接收速率且大于0。

启动阶段结束后,只要发送速率在第一区间,就采用稳定阶段对应的调节发送速率的方式,具体为当丢包率不超过所述丢包率上限时,根据排队比调整发送速率,当丢包率超过所述丢包率上限时,将发送速率调整至第二区间。其中排队比用于表征当前传输链路的排队程度;排队比由数据发送端根据rtt确定。

在稳定阶段,可用带宽不减少的情况下,数据发送端根据排队比对发送速率进行调整。例如,当传输链路排队程度低时,上调发送速率,发送速率逐渐接近发送速率下限,当发送速率超过最大发送速率时,数据发送端进一步探测可用带宽,当可用带宽增加时提高发送速率抢占可用带宽。

在可用带宽不变的情况下,根据排队比调整发送速率,起到持续探测可用带宽、以及及时下调发送速率以避免丢包率超过所述丢包率上限的作用,这样数据发送端可以保持比较稳定的、高速的发送速率,有效利用可用带宽。

启动阶段结束后,只要发送速率在第二区间,就采用竞争阶段对应的调节发送速率的方式。在竞争阶段,在未出现拥塞事件时,数据发送端逐步上调发送速率,在出现拥塞事件时,数据发送端按照预设规则下调发送速率。

本发明的实施例所提供的数据传输方法,将数据发送端向数据接收端发送数据的过程分为启动阶段、稳定阶段和竞争阶段,并在不同阶段采用不同的上调或者下调发送速率的方式,提高发送端抢占带宽的竞争力,并有效利用可用带宽,从而提高数据传输速率。

结合第一方面,在第一种具体的实施方式中,在启动阶段,数据发送端周期性上调发送速率至首次出现拥塞事件,且上调发送速率的增幅递增,通过快速提高发送速率的方式,尽快探测确定传输链路的可用带宽。

结合第一方面,在第二种具体的实施方式中,在竞争阶段,数据发送端周期性上调发送速率,且上调发送速率的增幅递减。在竞争阶段,往往有新的数据流竞争带宽,此时以较为温和的方式竞争可用带宽,避免导致频繁出现拥塞事件从而需要频繁下调发送速率的情况。

结合第一方面,在第三种具体的实施方式中,当排队比超过排队比上限,且丢包率超过所述丢包率上限时,下调发送速率。排队比超过排队比上限,表示传输链路排队程度高,传输链路易发生拥塞丢包。通过增加排队比来作为判定传输链路是否发生拥塞丢包,可以降低发生误判的可能性。例如,无线传输链路中,由于随机丢包导致丢包率超过丢包率上限,但是此时如果排队比未超过排队比上限,表示传输链路排队程度并不高,因此无需下调发送速率。加入排队比作为判断是否出现拥塞事件的条件, 避免不必要地下调发送速率,有助于保持合适的发送速率,提高带宽利用率。

第二方面,本发明实施例提供了一种数据传输装置,该数据传输装置具有实现上述第一方面中数据发送端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,数据传输装置的结构中包括处理器和存储器,所述存储器用于存储支持数据库处理设备执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述数据传输装置还可以包括通信接口,用于数据库处理设备与其他设备或通信网络通信。

第三方面,本发明实施例提供了一种计算机存储介质,用于储存为上述数据库处理设备所用的计算机软件指令,其包含用于执行上述方面为数据传输装置所设计的程序。

与现有技术相比,基于时延和基于丢包的拥塞控制算法均无法同时适应有线和无线网络。本发明实施例提出的数据传输的方法解决了该问题,无论在随机丢包较少的有线网络还是随机丢包频繁的无线网络,本方法均能达到较高的带宽有效利用率,同时保证了一定的带宽抢占性。

本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

图1为本发明实施例所提供的数据传输方法的应用场景说明示意图;

图2为本发明的实施例中发送速率随时间的变化过程示意图;

图3为本发明的实施例所提供的数据传输方法流程示意图;

图4为本发明的实施例所提供的数据传输装置的结构示意图;

图5为本发明的实施例所提供的另一数据传输装置的结构示意图;

图6为本发明的实施例所提供的数据传输系统的说明示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。

本发明的实施例提供一种数据传输方法、装置及系统,应用于如图1所示的由数据发送端101、网络103和数据接收端102所组成的通信系统中。

数据发送端101与数据接收端102可以是网络终端设备,例如智能手机、平板电脑、台式电脑以及笔记本电脑等,数据发送端101与数据接收端102还可以以是基站或者服务器等。本发明实施例对数据发送端101与数据接收端102的具体类型不做限定。

数据发送端101与数据接收端102通过之间的网络103进行数据传输,网络103包括局域网、城域网等。

数据发送端101与数据接收端102之间通过面向连接的传输协议进行通信,数据发送端101与数据接收端102之间建立连接后,数据发送端101通过建立的连接向数据接收端102发送数据包,并根据本发明的实施例所提供的数据传输方法对发送数据的速率进行控制,包括上调速率或者下调速率。数据发送端101与数据接收端102之间的连接可以包括有线传输链路以及无线传输链路。

需要特别指出的是,本发明的实施例所提供的数据传输方法,适用于各种面向连接的传输协议,包括但不限于传输控制协议(英文全称:transmissioncontrolprotocol,英文简称:tcp),各种基于用户数据报协议(英文全称:userdatagramprotocol,英文简称:udp)的面向连接的协议,例如基于udp的数据传输协议(英文全称:udp-baseddatatransferprotocol,英文简称:udt)、基于udp的低时延的互联网传输层协议(英 文全称:quickudpinternetconnection,英文简称:quic)等等。本发明对于具体的传输协议不做限定,在本发明的实施例中,将以tcp以及基于udp的面向连接的传输协议为例进行说明。

本发明的实施例中,数据发送端101通过一些反应传输链路的传输速度、通畅(拥塞)程度等特性的参数,对传输链路进行评估,并进一步对发送数据的速率进行调整。

参照图2所示的发送速率随时间的变化过程示意图,数据发送端调整发送数据的速率的方式包括:连接建立后,数据发送端以初始发送速率sndrateinit开始向数据接收端发送数据,并逐渐上调发送速率,以探测传输链路的最大可用带宽。在对传输链路进行评估确定最大可用带宽之后,确定当前的发送速率。同时,持续对传输链路进行评估,始终基于当前确定的可用最大可用带宽上调或者下调发送速率。

如果有别的数据流腾出一定的可用带宽,则迅速抢占腾出来的带宽。如果有新的数据流竞争可用带宽,或者发送速率过大使得传输链路拥塞导致丢包(例如图2中的t1、t2、t3时刻)超过一定限度,则下调传输速率,然后再根据当前确定的最大可用带宽逐渐上调发送速率,找到发送速率新的平衡点。

本实施例中用于评估传输链路的参数包括rtt、接收速率、丢包率等,具体取值可以由数据发送端测量得到,也可以由数据接收端测量得到后向数据发送端反馈,视具体的传输协议而定。

以下分别结合tcp以及基于udp的面向连接的传输协议为例,对rtt、接收速率、丢包率的测量进行说明。

tcp场景中rtt的测量:

可直接采用tcp定义的rtt测量方式,由数据发送端对rtt进行采样。具体的,数据发送端向数据接收端发送一个报文,数据接收端在接收到该报文后向数据发送端返回一个确认字符(英文全称:acknowledgement,英文简称:ack),数据发送端接收到ack后即可确定该报文对应的rtt。

数据发送端测量得到的rtt值可以是多个报文各自对应rtt的平滑值。数据发送端可以通过各种数据平滑算法对采样所得的rtt取值进行平滑处理,例如按中值滤波或均值滤波等滤波手段对接收时间间隔进行平滑。本发明的实施例中对于具体的数据处理方式不做限定。

基于udp的面向连接的传输协议的应用场景中rtt的测量:

数据接收端在接收到若干报文后向数据发送端发送一个ack。数据发送端接收到该ack后,向数据发送端发送一个确认接收到该ack的确认报文,用re-ack表示。数据接收端接收到re-ack后,根据发送ack与接收到re-ack的时间间隔确定rtt的采样值。进一步地,数据发送端对rtt采样值进行平滑处理后,将确定的rtt发送到数据发送端,便于数据发送端根据rtt对传输链路的拥塞程度进行评估。

tcp场景中接收速率的测量:

接收速率为数据接收端接收数据的速率,接收速率通常用数据接收端在单位时间内接收的比特数来衡量,单位为mbps或mbit/s,即兆比特每秒。

tcp场景中可由数据发送端完成对接收速率的测量。具体的,数据发送端根据ack在一定时间内确认的字节数,计算得到单位时间(1s)内数据接收端所接收到的数据量,作为接收速率。

基于udp的面向连接的传输协议的应用场景中接收速率的测量:

数据发送端测量得到接收速率后反馈给数据发送端。具体的,数据接收端根据接收数据包的时间间隔和数据包的大小计算得到单位时间内数据接收端所接收到的数据量,作为接收速率。例如,数据接收端接收到连续的9个数据包,这9个数据包的8个接收时间间隔分别为71us,100us,102us,95us,122us,154us,87us,92us,那么平均接收时间间隔102.9us,当最大报文段长度(英文全称:maximumsegmentsize,英文简称:mss)为1.5kb时,计算得到接收速率为:(1000000/102.9)*8*mss=113.88mbs。

tcp场景中丢包率的测量:

丢包率是指一段时间内丢失数据包的数量占所发送数据包总数的比率。丢包率的取值可以周期性更新。

丢包率的取值根据连续n次丢包所对应的n个丢包区间长度之和,以及n个丢包区间间隔之和确定。n为大于1的整数。

丢包区间长度:

丢包区间长度为一次丢包事件发生时丢失数据包的总数。例如,数据接收端收到序列号为90的ack之后,接收到的相邻下一个ack的序列号为95,表示序列号为91到94的4个连续的数据包丢失,丢失数据包的总数为4,对应的丢包区间长度为4。

丢包区间长度可以由数据发送端根据ack报文中的sack字段确定:

naklen=nakend-nakstart+1。

其中naklen为丢包区间长度,nakend为丢失数据包中最后一个数据包对应的序列号(上例中的序列号94)的数据包,nakstart为丢失数据包中第一个数据包对应的序列号(上例中的序列号91)。

丢包区间间隔:

取相邻的两次丢包事件,丢包区间间隔为从前一丢包事件结束的时间点,到后一丢包事件结束的时间点,数据发送端所发送的数据包总数。

第i次丢包对应的丢包区间间隔为:从第i-1次丢包时丢失的最后一个数据包,到第i次丢包结束后接收到的第一个数据包之间的数据包总数。

例如,以下序列号各自对应的数据包中,括号中的序列号表示丢失的数据包:

100,(101,102,103,104,)105,(106,107,)108,109

即序列号从100到109对应的数据包中,相邻前一次丢包事件中,序列号为101-104的数据包丢失,相邻后一次丢包事件中,序列号为106-107的数据包丢失。后一次丢包事件对应的丢包区间间隔,为104到108之间的数据包的数量,大小为3。

丢包区间间隔可以根据ack报文中的sack字段确定:

nakdis=nakendi+1-nakend(i-1)。

其中nakdis为丢包区间间隔,nakendi+1为第i次丢包结束后接收到的第一个数据包对应的序列号(上例中的序列号108),nakend(i-1)为第i-1次丢包时丢失的最后一个数据包对应的序列号(上例中的序列号104)。

根据丢包区间长度以及丢包区间间隔计算丢包率:

数据发送端取当前最近发生的n次丢包对应的n个丢包区间长度{l1,l2,…,ln},以及n个丢包区间间隔{d1,d2,…,dn},则丢包率为:

currlossrate=sl/sd。

其中,currlossrate为丢包率,sl=l1+l2+…+ln,sd=d1+d2+…+dn。

可选的,为n个丢包区间长度以及n个丢包区间间隔设置不同的权重,按照预设的权重向量w={w1,w2,…,wn}计算sl和sd,再确定丢包率。具体的,sl=w1*l1+w2*l2+…+wn*ln,sd=w1*d1+w2*d2+…+wn*dn。

基于udp的面向连接的传输协议的应用场景中丢包率的测量:

与tcp场景中测量丢包率的不同之处在于,丢包区间长度、丢包区间间隔由数据接收端确定,数据发送端根据丢包区间长度、丢包区间间隔计算得到丢包率后反馈给数据发送端。

以上对rtt、接收速率、丢包率的测量过程的介绍,旨在说明实施本发明所提供的数据传输方法所需要测量的具体参数,对应不同传输协议,具体测量的方式可以不同,关于其它参数的介绍将在本发明的实施例中做详细说明。

实施例

结合图2所示的发送速率随时间的变化过程示意图,本发明的实施例提供的数据传输方法,包括:数据发送端以初始发送速率向数据接收端发送数据,周期性确定用于评估传输链路的参数,并根据当前的参数值,调整发送速率。随着这些参数的周期性更新,发送速率也相应周期性调整。

用于评估传输链路的参数包括最大接收速率、丢包率以及rtt。其中,最大接收速率是指,在丢包率不超过丢包率上限的前提下所确定的接收速率中的最大值。例如,周期性测量接收速率,并对最大接收速率进行更新。可选的,测量周期可以设为10ms。具体实现中,发送端设备中可以包括一个存储单元(如,寄存器等)用于存储最大接收速率,当发送端确定的当前接收速率大于存储单元中的存储的速率时,将当前接收速率更新到存储单元中。

结合2以及图3,对本发明的实施例提供的数据传输方法包括以下步骤:

301、数据发送端以初始发送速率向数据接收端发送数据。

数据发送端与数据接收端建立连接之后,数据发送端以初始发送速率sndrateinit开始向数据接收端发送数据。

302、数据发送端逐步上调发送速率至首次出现拥塞事件。

其中,拥塞事件包括丢包率currlossrate超过丢包率上限。

结合图2所示的发送速率sndrate随时间t的变化过程,本实施例中将数据发送端向数据接收端发送数据的过程分为三个阶段,分别为启动阶段、稳定阶段和竞争阶段,并在不同阶段采用不同的上调或者下调发送速率方式。

启动阶段是指,从数据发送端与数据接收端建立连接开始,到首次出现拥塞事件的时间段。图3中,t0时间点数据发送端与数据接收端之间的连接建立,数据发送端开始以初始发送速率sndrateinit发送数据,在t1时间点,首次出现拥塞事件,启动阶段为t0到t1之间的时间段。

关于稳定阶段和竞争阶段的划分将在后文进行说明。

数据发送端周期性确定数据接收端的接收速率、丢包率和rtt。如果当前的丢包率没有超过丢包率上限,则上调发送速率。其中丢包率上限的取值可以为预设值,具体可以根据实验测试设定,例如以传输链路拥塞时对应的丢包率的取值,作为丢包率上限的取值。

随着发送速率周期性增大,在传输链路通畅的情况下接收速率也对应 增大,同时最大发送速率的取值不断更新,其取值逐渐增大。

可选的,上调发送速率的增幅呈递增趋势,也就是说,相邻后一周期,上调发送速率的幅度,大于相邻前一周期上调发送速率的幅度,这样可以达到快速探明最大可用带宽的目的。例如,在启动阶段上调发送速率的具体方式为:

sndrate=maxrcvrate*k,k为预设参数,且k>1。优选的,k的取值设为2或者3,或者2到3之间的数。

以k为3的情况为例,连接建立后的第一个周期,数据发送端以初始发送速率sndrateinit开始发送数据,并确定第一个周期的接收速率r1。

第二个周期,由于第一个周期内丢包率未超过丢包率上限,确定最大接收速率为r1,并将发送速率上调到3*r1。另外,确定第二个周期的接收速率r2,在传输链路通畅的情况下r2接近3*r1,即r2>r1。

第三个周期,由于第二个周期内丢包率未超过丢包率上限,确定最大接收速率为r2。并将发送速率上调到3*r2。

为便于比较,假设第二周期内的接收速率r2=3*r1。

第二个周期中,上调幅度为3*r1-r1=2*r1。

第三个周期中,上调幅度为3*r2-3*r1=3*r1-3*r1=6*r1。

类似地,后续的其它周期,也满足相邻后一周期的上调幅度大于相邻前一周期的上调幅度。在传输链路通畅的情况下,由于发送速率的取值不断增大,最大接收速率也相应增大,上调幅度也呈递增趋势。

经过若干周期之后,由于发送速率不断增大,渐渐达到或者超过传输链路的最大可用带宽,由于传输链路拥塞导致丢包率上升,并在t1时间点丢包率首次超过丢包率上限,即首次出现拥塞事件,此时启动阶段结束。

303、根据最大接收速率确定发送速率上限和发送速率下限。

数据发送端向数据接收端发送数据的过程分为启动阶段、稳定阶段和竞争阶段,发送速率上限和发送速率下限用于划分稳定阶段和竞争阶段,以便在稳定阶段和竞争阶段采用不同的上调或者下调发送速率的方式。

将[maxrcvrate*α,maxrcvrate*β]称为第一区间为,其中maxrcvrate*β表示发送速率上限,β>1,即发送速率上限大于最大接收速率。maxrcvrate*α表示发送速率下限,α<1,即发送速率下限小于最大接收速率且大于0。第一区间对应稳定阶段,当发送速率在第一区间时,采用稳定阶段对应的调节发送速率的方式。

将[0,maxrcvrate*α]称为第二区间。第二区间对应竞争阶段,当发送速率在第二区间时,采用竞争阶段对应的调节发送速率的方式。

随着最大接收速率的更新,发送速率上限和发送速率下限也随之更新。

304、将发送速率调整至第一区间内。

结合图2,t1时间点,首次出现拥塞事件,此时将发送速率调整至第一区间内。图2所示为将送速率调整至发送速率下限的情况。

特别指出一点,发送速率等于maxrcvrate*α时,按照发送速率在第一区间对待。即竞争阶段结束之后,进入稳定阶段。

305、当发送速率在第一区间,且未出现拥塞事件时,根据排队比调整发送速率。

结合图2,启动阶段在t1时间点结束,发送速率首次落入第一区间,进入稳定阶段,即采用稳定阶段对应的调节发送速率的方式。后续当发送速率在第一区间时,保持在稳定阶段。

排队比用于表征当前传输链路的排队程度,在稳定阶段数据发送端根据传输链路的排队程度的变化,通过一种相对启动阶段更为温和的调整发送速率以及探测可用带宽的方式。即调整发送速率的幅度较小,相邻两次调整对应的调整幅度也较为接近。相对启动阶段,在稳定阶段对发送速率的调整更为温和,相邻两个周期内的调节幅度较为接近。

发送速率在第一区间,即发送速率保持在最大接收速率上下,而最大接收速率反映了最大可用带宽。在稳定阶段,发送速率保持在与最大可用带宽相适应的水平。结合图2所示,在未出现拥塞事件的情况下,发送速率落入第一区间之后,在第一区间内上调或者下调发送速率,即上调或者 下调发送速率之后,发送速率仍然落入第一区间。

第一区间的最大值,为发送速率上限,发送速率上限大于最大接收速率。当其他数据流传输完成腾出一部分带宽时,将发送速率上调到最大接收速率以上发送速率上限以下。由于可用带宽增大,当前周期最大接收速率增大且未出现拥塞事件,则后一周期发送速率上限、发送速率下限以及发送速率均增大。经过若干周期,发送速率上调到与当前的最大可用带宽相适应的水平。

在一种具体的实施方式中,排队比的具体形式由第一公式定义:

qr=(rtt-minrtt)/(maxrtt-minrtt)(第一公式)

其中,qr表示排队比,maxrtt表示往返时间的最大值,minrtt表示往返时间的最小值。

可选的,maxrtt是丢包率首次超过丢包率上限时对应的rtt。或者,将周期性确定的rtt中的最大值保存为maxrtt。

可选的,minrtt为数据发送端以初始发送速率发送数据时的rtt。

根据第一公式可知,排队比的取值增大,表示排队程度上升,此时需要在第一区间内下调发送速率。排队比的取值减小,表示排队程度下降,此时需要在第一区间内上调发送速率。

本实施例提供一种在稳定阶段根据发送速率上限以及排队比的取值上调或者下调发送速率的方式,当排队比的取值落入预设区间[p,q]时,根据最大接收速率以及排队比的取值,在第一区间内上调或者下调发送速率。其中0<p<q<1,例如p=0.3,q=0.7。

具体的,根据第二公式计算发送速率:

sndrate=maxrcvrate*β*(α/β)^((qr-p)/(q-p))(第二公式)

排队比qr大于p的情况下,越接近p,(α/β)^((qr-p)/(q-p))部分的值越接近1,发送速率sndrate越接近发送速率上限maxrcvrate*β,可以起到探测最大可用带宽的作用。

排队比qr越接近q,表示传输链路排队程度越高,(α/β)^((qr-p) /(q-p))部分的值小于1且是关于qr的减函数,此时计算得到的发送速率sndrate小于maxrcvrate*β且随qr增大而减小,起到缓解传输链路排队程度的作用。

优选的,考虑到随着rtt增大,rtt测量响应延迟也随之增大。因此一些实例中,p、q的取值可以设为随rtt升高而适当降低,例如令p、q乘以衰减系数rd:

其中d为固定常数。

启动阶段结束后,在发送速率在第一区间,且未出现拥塞事件的情况下,可多次执行步骤305。具体的,若根据第二公式计算得到的发送速率仍然在第一区间,且未出现拥塞事件,则再次执行步骤305。若根据第二公式计算得到的发送速率仍然在第一区间,但是出现拥塞事件时,则跳转至步骤306。

306、当发送速率在第一区间,且出现拥塞事件时,将发送速率调整至第二区间。

结合图2中t2、t5时间点,启动阶段结束后,当发送速率在第一区间时,若currlossrate>δ,就执行步骤306,下调发送速率,且下调后的发送速率落入第二区间。其中δ为丢包率上限。

优选的,加入排队比作为判断是否出现拥塞事件的条件,当qr>μ且currlossrate>δ时,确定出现拥塞事件。其中,μ为排队比上限,排队比上限的取值为在(0,1]区间内的预设值。在启动阶段、稳定阶段以及竞争阶段均可以以qr>μ且currlossrate>δ作为判断出现拥塞事件的条件。

当发送速率在第一区间,且出现拥塞事件时,下调发送速率,且下调后的发送速率落入第二区间。

一种具体的应用场景中,下调发送速率的方式为,在相邻前一周期的发送速率基础上乘以预设系数γ,得到当前周期的发送速率,即:

sndrate=sndrate*γ。为保证调整后的发送速率落入第二区间,需要满足γ>β-α。

发送速率落入第二区间后,若未出现拥塞事件,则跳转至步骤307。 若出现拥塞事件,则跳转至步骤308。

307、当发送速率在第二区间,且未出现拥塞事件时,逐步上调发送速率。

结合图2,在t2时间点,出现拥塞事件,发送速率下调到第二区间,进入竞争阶段,即采用竞争阶段对应的调节发送速率的方式。后续当发送速率在第二区间时,保持在竞争阶段。

稳定阶段出现拥塞事件的情况往往是因为有新的数据流来竞争带宽的结果,这种情况下,下调发送速率,使得发送速率落入第二区间,进入竞争阶段。

在竞争阶段,数据发送端基于当前的最大接收速率不断探测并抢占可用带宽。在未出现拥塞事件的情况下,可多次上调发送速率。优选的,当发送速率在第二区间时,周期性上调发送速率,且上调发送速率的增幅递减。结合图2,t3至t4时间段可以包括多个周期,t3至t4时间段内发送速率曲线的增长率递减,即相邻后一周期上调发送速率的幅度小于相邻前一周期上调发送速率的幅度。

在一种具体的实施方式中,在竞争阶段基于当前的发送速率和最大接收速率上限根据第三公式上调发送速率:

sndrate2=sndrate+τ*log(maxrcvrate*β-sndrate1)(第三公式)

其中,sndrate2为当前周期的发送速率,sndrate1为相邻前一周期的发送速率,τ的取值范围为(0,1],例如τ=0.1。

当sndrate1越接近maxrcvrate*α,sndrate2与sndrate1的差值越小,即上调幅度越小。

根据第三公式计算得到的sndrate2不超过maxrcvrate*α时,发送速率仍然在第二区间,此时若未出现拥塞事件,则再次执行步骤307,上调发送速率。若出现拥塞事件,则跳转至步骤308。

根据第三公式计算得到的sndrate2等于或者超过maxrcvrate*α时,发送速率落入第一区间。此时若未出现拥塞事件,则跳转至步骤305。若出现拥塞事件,则跳转至步骤306。

308、当发送速率在第二区间且出现拥塞事件时,按照预设规则下调发送速率。

结合图5中的t3时间点,发送速率落入第二区间时,当currlossrate>δ时,或者当qr>μ且currlossrate>δ时,下调发送速率。

结合步骤306,在一种具体的实施方式中,预设规则具体为在相邻前一周期的发送速率基础上乘以预设系数γ,得到当前周期的发送速率,即:

sndrate=sndrate*γ。

本发明的实施例所提供的数据传输方法,将数据发送端向数据接收端发送数据的过程分为启动阶段、稳定阶段和竞争阶段,在启动阶段快速提高发送速率,尽快探明可用带宽,在首次出现拥塞事件之后,根据探测确定的可用带宽下调发送速率,使得发送速率落入第一区间,进入稳定阶段。在稳定阶段根据排队比对发送速率进行微调,并保持对可用带宽的持续探测,当可用带宽增加时提高发送速率抢占可用带宽。稳定阶段根据排队比对发送速率进行动态调整,发送速率的调节幅度较小。在可用带宽不减少的情况下,通常不会出现拥塞事件,这样数据发送端可以保持比较稳定的、高速的发送速率,有效利用可用带宽。稳定阶段出现拥塞事件往往是因为有新的数据流来竞争带宽的结果,这种情况下,下调发送速率,使得发送速率落入第二区间,进入竞争阶段,数据发送端基于当前的发送速率和最大接收速率上限,将发送速率调整至与当前可用带宽相适应的水平。通过将数据发送端向数据接收端发送数据的过程分为启动阶段、稳定阶段和竞争阶段,并在不同阶段采用不同的上调或者下调发送速率的方式,提高发送端抢占带宽的竞争力,并有效利用可用带宽,从而提高数据传输速率。

本发明的实施例中,当currlossrate>δ时,或者当qr>μ且currlossrate>δ时,确定传输链路拥塞丢包,然后下调发送速率。

可选的,丢包率上限δ的取值为第一预设阈值,第一预设阈值为实验测得的传输链路拥塞时所对应的丢包率的取值。

优选的,δ=δ’+randomlossrate。其中,randomlossrate为丢包率修正参数。randomlossrate用于指示由于传输链路中发生随机丢包导致丢包率波动的程度,具体说明如下:

当传输链路为有线传输链路时,由于传输介质稳定,很少出现随机丢包现象,绝大部分丢包是由于拥塞导致的丢包。而通过无线传输链路传输数据时,受信号质量、外部干扰等因素影响,常出现随机丢包。随机丢包造成的丢包率波动程度取决于传输链路的稳定性,不同传输链路中随机丢包的程度不同。因此预设的固定值(第一预设阈值)不能反映随机丢包对丢包率的影响程度,本实施例中通过randomlossrate来反映随机丢包对丢包率的影响程度。

randomlossrate的取值为,在qr<qr’的情况下,丢包的总数与数据发送端发送的数据包总数之比。其中qr’的取值为第二预设阈值且qr’<μ,例如qr’=0.2,μ=0.75。

具体的,从数据发送端与数据接收端之间的连接建立开始,截止到当前时间点,数据发送端计算qr<qr’的时间段内丢包的总数,以及建立连接后数据发送端发送的全部数据包总数,两者之比即为randomlossrate。randomlossrate的取值可以与rtt、丢包率等参数一起周期性更新。

数据发送端根据丢包率上限δ判定是否发生拥塞丢包,当δ取值为δ’时,δ为定值,如果由于随机丢包导致currlossrate>δ,数据发送端很可能会误判为传输链路拥塞,因此降低发送速率,而实际上传输链路可能并没有发生拥塞,无需降低发送速率。当δ的取值为δ’+randomlossrate时,δ的取值随着丢包率参数randomlossrate的变化而变化,若由于随机丢包导致丢包率上升,则丢包率上限δ随之上升。丢包率上限δ的取值随着随机丢包率的变化相应变化,减小了数据发送端误判的可能性,避免不必要地下调发送速率,有助于保持合适的发送速率,提高带宽利用率。

本发明的实施例还提供一种数据传输装置,用于执行图3所对应的实施例所描述的数据传输方法,参照图4所示,数据传输装置40包括:

发送速率控制单元401,用于以初始发送速率向数据接收端发送数据,并根据最大接收速率、丢包率和往返时间rtt调整发送速率。

统计单元402,用于周期性确定数据接收端的接收速率、丢包率和往返时间rtt,并将在丢包率不超过丢包率上限的前提下所确定的接收速率中的最大值保存为最大接收速率。根据最大接收速率确定发送速率上限和 发送速率下限。发送速率上限大于最大接收速率,发送速率下限小于最大接收速率且大于0,根据rtt确定当前传输链路的排队比。排队比用于表征当前传输链路的排队程度。

发送速率控制单元401,具体用于逐步上调发送速率至首次出现拥塞事件。将发送速率调整至发送速率下限。其中拥塞事件包括丢包率超过丢包率上限。

发送速率控制单元401,具体还用于当发送速率在第一区间时,根据统计单元402确定的排队比调整发送速率,且当出现拥塞事件时,将发送速率调整至第二区间。其中第一区间为[发送速率下限,发送速率上限],第二区间为[0,发送速率下限]。

发送速率控制单元401,具体还用于当发送速率在第二区间时,逐步上调发送速率,且当出现拥塞事件时,按照预设规则下调发送速率。

可选的,发送速率控制单元401,具体用于周期性上调发送速率至首次出现拥塞事件,且上调发送速率的增幅递增。

可选的,发送速率控制单元401,具体用于当发送速率在第二区间时,周期性上调发送速率,且上调发送速率的增幅递减。

可选的,统计单元402,用于根据确定的rtt计算当前传输链路的排队比,具体为:确定数据发送端和数据接收端之间的最大往返时间maxrtt和最小往返时间minrtt,根据第一公式计算排队比。其中,第一公式为:qr=(rtt-minrtt)/(maxrtt-minrtt)。qr表示排队比,maxrtt表示往返时间的最大值,minrtt表示往返时间的最小值。

发送速率控制单元401,具体用于当统计单元402计算得到排队比的取值增大时,根据发送速率上限以及排队比的取值,在第二区间内下调发送速率。

发送速率控制单元401,具体还用于当统计单元402计算得到排队比的取值减小时,根据发送速率上限以及排队比的取值,在第二区间内上调发送速率。

基于图3所对应的实施例,本发明的实施例还提供一种数据传输装置, 参照图5所示,数据传输装置50包括:处理器501、存储器502以及发送器503,处理器501和存储器502连接,处理器501和发送器503连接。

用于执行本发明方案的程序代码保存在存储器502中,并由处理器501来控制执行。

存储器502可以包括易失性存储器(英文全称:volatilememory),例如随机存取存储器(英文全称:random-accessmemory,英文简称:ram)。存储器也可以包括非易失性存储器(英文全称:non-volatilememory),例如只读存储器(英文全称:read-onlymemory,英文简称:rom),快闪存储器(英文全称:flashmemory),硬盘(英文全称:harddiskdrive,英文简称:hdd)或固态硬盘(英文全称:solid-statedrive,英文简称:ssd)。存储器502还可以包括上述种类的存储器的组合。

处理器501可以是中央处理器(全称:centralprocessingunit,简称:cpu),或者cpu和硬件芯片的组合。上述硬件芯片可以是网络处理器(英文全称:networkprocessor,英文简称:np),专用集成电路(英文全称:application-specificintegratedcircuit,英文简称:asic),可编程逻辑器件(英文全称:programmablelogicdevice,英文简称:pld)或其任意组合。上述pld可以是复杂可编程逻辑器件(英文全称:complexprogrammablelogicdevice,英文简称:cpld),现场可编程逻辑门阵列(英文全称:field-programmablegatearray,英文简称:fpga),通用阵列逻辑(英文全称:genericarraylogic,英文简称:gal)或其任意组合。

处理器501,用于调用存储器502中的程序代码。当上述程序被处理器501执行时,处理器501控制发送器的发送速率,执行本发明的实施例所提供的数据传输方法,具体步骤参照图3所对应的实施例,不再赘述。

本发明的实施例所提供的数据传输装置,向数据接收端发送数据的过程分为启动阶段、稳定阶段和竞争阶段,在启动阶段快速提高发送速率,尽快探明可用带宽,在出现拥塞事件之后,根据探测确定的可用带宽下调发送速率,使得发送速率落入第一区间,进入稳定阶段。在稳定阶段根据排队比对发送速率进行微调,并保持对可用带宽的持续探测,当可用带宽增加时提高发送速率抢占可用带宽。稳定阶段根据排队比对发送速率进行 动态调整,发送速率的调节幅度较小。在可用带宽不减少的情况下,通常不会出现拥塞事件,这样数据传输装置可以保持比较稳定的、高速的发送速率,有效利用可用带宽。稳定阶段出现拥塞事件往往是因为有新的数据流来竞争带宽的结果,这种情况下,下调发送速率,使得发送速率落入第二区间,进入竞争阶段,数据传输装置基于当前的发送速率和最大接收速率上限,将发送速率调整至与当前可用带宽相适应的水平。数据传输装置通过将发送数据的过程分为启动阶段、稳定阶段和竞争阶段,并在不同阶段采用不同的上调或者下调发送速率的方式,提高发送端抢占带宽的竞争力,并有效利用可用带宽,从而提高数据传输速率。

本发明的实施例还提供一种数据传输系统。结合图6所示,数据传输系统60数据发送装置601、数据接收装置602以及网络603。

数据发送装置601为图4所对应的实施例中所提供的数据传输装置,或者,数据发送装置601为图5所对应的实施例中所提供的数据传输装置,用于执行本发明的实施例所提供的数据传输方法,具体步骤参照图3所对应的实施例,不再赘述。

数据接收装置602,用于接收数据发送装置601通过网络603传输的数据。

可选的,结合图6所示,在tcp场景中,数据接收装置602,还用于测量rtt、接收速率、丢包率等参数的,并将测量结果反馈给数据发送装置601。

进一步可选的,数据发送装置601可以根据数据接收装置602反馈的丢包率确定丢包率是否超过丢包率,然后对发送速率做相应调整。或者,也可以由数据接收装置602确定丢包率是否超过丢包率上限。当数据接收装置602确定丢包率超过丢包率上限时,向数据发送装置601发送拥塞告警。数据发送装置601接收到拥塞告警后对发送速率做相应调整。

图6所示为由数据接收装置602向数据发送装置601发送拥塞告警的情形,数据发送装置601在接收到拥塞告警之后,确定发生拥塞事件,下调发送速率。

数据发送装置601与数据接收装置602之间的连接建立后,进入启动 阶段,数据发送装置601以初始发送速率向数据接收装置602数据发送装置601发送数据,并按照sndrate=maxrcvrate*k逐渐上调发送速率。当数据发送装置601首次接收到数据接收装置602发送的拥塞告警时,将发送速率下调至maxrcvrate*α,启动阶段结束,并进入稳定阶段。

在稳定阶段,数据发送装置601按照sndrate=maxrcvrate*β*(α/β)^((qr-p)/(q-p))调整发送速率,当数据发送装置601接收到数据接收装置602发送的拥塞告警时,按照sndrate=sndrate*γ下调发送速率,并进入竞争阶段。

在竞争阶段,按照sndrate2=sndrate+τ*log(maxrcvrate*β-sndrate1)上调发送速率,当数据发送装置601接收到拥塞告警时,按照sndrate=sndrate*γ下调发送速率。

经过若干周期后,当发送速率上调到大于或者等于maxrcvrate*α时,再次进入稳定阶段。

数据传输的后续过程,在稳定阶段和竞争阶段之间切换,直到数据发送装置601与数据接收装置602之间的连接断开,数据传输过程结束。

本发明的实施例所提供的数据传输系统中,向数据接收装置发送数据的过程分为启动阶段、稳定阶段和竞争阶段,在启动阶段快速提高发送速率,尽快探明可用带宽,在出现拥塞事件之后,根据探测确定的可用带宽下调发送速率,使得发送速率落入第一区间,进入稳定阶段。在稳定阶段根据排队比对发送速率进行微调,并保持对可用带宽的持续探测,当可用带宽增加时提高发送速率抢占可用带宽。稳定阶段根据排队比对发送速率进行动态调整,发送速率的调节幅度较小。在可用带宽不减少的情况下,通常不会出现拥塞事件,这样数据发送装置可以保持比较稳定的、高速的发送速率,有效利用可用带宽。稳定阶段出现拥塞事件的情况往往是因为有新的数据流来竞争带宽的结果,这种情况下,下调发送速率,使得发送速率落入第二区间,进入竞争阶段,数据发送装置基于当前的发送速率和最大接收速率上限,将发送速率调整至与当前可用带宽相适应的水平。数据发送装置通过将发送数据的过程分为启动阶段、稳定阶段和竞争阶段,并在不同阶段采用不同的上调或者下调发送速率的方式,提高发送端抢占 带宽的竞争力,并有效利用可用带宽,从而提高数据传输速率。

本发明实施例还提供了一种计算机存储介质,用于储存实现上述图5所示的数据传输装置的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现数据发送端向数据接收端发送数据时,既保证了抢占性又保证了一定带宽利用率。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。

本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过internet或其它有线或无线电信系统。

本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1