确定拥塞窗口大小的方法及装置与流程

文档序号:12068009阅读:1112来源:国知局
确定拥塞窗口大小的方法及装置与流程

本发明涉及移动互联网技术领域,尤其涉及一种确定拥塞窗口大小的方法及装置。



背景技术:

目前,许多互联网应用采用传输控制协议(Transmission Control Protocol,TCP)作为其传输协议。数据包由发送端经过基站等中间节点发送至接收端,当数据包较多时,数据包会在中间节点处排队缓存,数据包从缓存队列至由中间节点发送出去之间的链路称之为瓶颈链路。瓶颈链路的队列长度对TCP的性能有较大影响,因而需要精确地确定拥塞窗口大小并将队列长度调节到目标队列长度。

往返时延(Round-Trip Time,RTT)为TCP中用于衡量网络性能的一个重要指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认,总共经历的时延。RTT一般主要三个部分决定:链路的传播时间、末端系统(发送端和接收端)的处理时间以及中间节点(如:基站)的缓存队列的排队和处理时间。现有技术中存在多种根据RTT估计瓶颈链路的队列长度的估算方法:第一种为将链路的传播时延和末端系统的处理时间假设为一个恒定值,因而可根据RTT与该恒定值的差值得到缓存队列的排队和处理时间,进而根据该时间估计链路的队列长度。但是在实际网络中,网络带宽以及上行链路的带宽可能随时在波动,这种算法并未将网络带宽波动和上行链路的波动带来的时延考虑在内,因而计算得到的缓存队列的排队和处理时间中包括了网络带宽波动和上行链路的波动带来的时延,进而计算得到的瓶颈队列的长度的误差较大。第二种为在第一种的基础上,将网络带宽波动带来的时延考虑在内,例如:TCP Vegas,FAST TCP和TCP-SOD等。这类估算方法虽然误差有所减小,但仍然不够精确。第三种为将带宽变化和上行链路的延时变化均考虑在内,例如:TCP-QLA, 其通过使用TCP timestamp选项能够直接测量上行链路延迟变化。尽管如此,现有技术中的上述三种确定缓存队列大小的方法存在的一个共同的缺陷是,其估计的瓶颈链路的队列长度为数据包由发送端达到瓶颈链路时,瓶颈链路的队列长度,因而为一个RTT之前的,当经过一个RTT之后,瓶颈链路的队列长度已经发生变化,而现有技术无法实现准确估计,进而无法准确确定拥塞窗口的大小以调节拥塞窗口的大小。



技术实现要素:

本发明提供一种确定拥塞窗口大小的方法及装置,能够准确确定拥塞窗口的大小。

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

第一方面,本发明提供一种确定拥塞窗口大小的方法,包括:

获取第一预设时长的样本数据,所述样本数据至少包括第一数量的确认ACK数据包;

将所述第一预设时长按照第一预设时间间隔和第二预设时长划分为第二数量的候选预测区间;

根据每个所述ACK数据包对应的上行链路传输时延和预设传输时延,确定每个ACK数据包对应的目标传输时延;

计算每个候选预测区间的平均带宽与每个候选预测区间在每个所述目标传输时延之后的平均带宽的相关系数;

将最大的相关系数对应的候选预测区间确定为目标预测区间,将所述目标预测区间的起始时间值确定为预测时间周期;

以预设大小的拥塞窗口建立传输控制协议TCP连接;

在建立所述TCP连接后,自接收到第一个ACK数据包开始,根据所述预测时间周期,周期性的预测在下一个传输时延的平均带宽;

根据预测得到的所述下一个传输时延的平均带宽、目标队列大小和当前传输时延,周期性的确定拥塞窗口的大小。

结合第一方面,在第一方面的第一种实现方式中,所述根据每个所述ACK数据包对应的上行链路传输时延和预设传输时延,确定每个ACK数据包对应的目标传输时延,具体包括:

确定所有所述ACK数据包对应的上行链路传输时延中的最大值;

将所述最大值按照第二预设时间间隔划分为第三数量的时延区间;

在已确定的时延区间中,确定每个所述ACK数据包对应的上行链路传输时延各自所在的时延区间;

将每个所述ACK数据包对应的上行链路传输时延所在的时延区间的起始时间值与所述预设传输时延之和确定为每个ACK数据包对应的目标传输时延。

结合第一方面或者第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述在建立所述TCP连接后,自接收到第一个ACK数据包开始,根据所述预测时间周期,周期性的预测在下一个传输时延的平均带宽,具体包括:

在建立TCP连接后,自接收到第一个ACK数据包开始计时,每隔第三预设时间间隔预测在下一个传输时延的平均带宽;

在当前时间间隔内预测下一个传输时延的平均带宽时,如果计时结果小于所述预测时间周期,则将自计时开始至计时结果的时间区间对应的带宽确定为当前时间间隔对应的下一个传输时延的平均带宽;

如果计时结果大于所述预测时间周期,则将以计时结果为时间终点,所述预测时间周期为区间大小的时间区间对应的带宽确定为当前时间间隔对应的下一个传输时延的平均带宽。

结合第一方面的第二种实现方式中,在第一方面的第三种实现方式中,所述根据预测得到的所述下一个传输时延的平均带宽、目标队列大小和当前传输时延,周期性的确定拥塞窗口的大小,具体包括:

在当前时间间隔内,通过TCP时间戳选项获取当前时间间隔内最后测量得到的上行链路传输时延;

根据所述预设传输时延和所述当前时间间隔内最后测量得到的上行链路传输时延,得到所述当前传输时延;

根据公式W(ti)=bi(D+λ(i))+Q,得到当前时间间隔对应的所述拥塞窗口的大小;

其中,ti表示当前时间间隔对应的计时结果,W(ti)表示拥塞窗口的大小,bi表示所述下一个传输时延的平均带宽,D表示所述预设传输时延,λ(i)表示所述当前时间间隔内最后测量得到的上行链路传输时延,Q表示所述目标队列大小。

第二方面,本发明提供一种确定拥塞窗口大小的装置,包括:

获取单元,用于获取第一预设时长的样本数据,所述样本数据至少包括第一数量的确认ACK数据包;

划分单元,用于将所述第一预设时长按照第一预设时间间隔和第二预设时长划分为第二数量的候选预测区间;

处理单元,用于根据每个所述ACK数据包对应的上行链路传输时延和预设传输时延,确定每个ACK数据包对应的目标传输时延;

计算每个候选预测区间的平均带宽与每个候选预测区间在每个所述目标传输时延之后的平均带宽的相关系数;

将最大的相关系数对应的候选预测区间确定为目标预测区间,将所述目标预测区间的起始时间值确定为预测时间周期;

连接建立单元,用于以预设大小的拥塞窗口建立传输控制协议TCP连接;

所述处理单元,还用于在建立所述TCP连接后,自接收到第一个ACK数据包开始,根据所述预测时间周期,周期性的预测在下一个传输时延的平均带宽;

根据预测得到的所述下一个传输时延的平均带宽、目标队列大小和当前传输时延,周期性的确定拥塞窗口的大小。

结合第二方面,在第二方面的第一种实现方式中,所述处理单元,具体用于:

确定所有所述ACK数据包对应的上行链路传输时延中的最大值;

将所述最大值按照第二预设时间间隔划分为第三数量的时延区间;

在已确定的时延区间中,确定每个所述ACK数据包对应的上行链路传输时延各自所在的时延区间;

将每个所述ACK数据包对应的上行链路传输时延所在的时延区间的起始时间值与所述预设传输时延之和确定为每个ACK数据包对应的目标传输时延。

结合第二方面或者第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述处理单元,具体还用于:

在建立TCP连接后,自接收到第一个ACK数据包开始计时,每隔第 三预设时间间隔预测在下一个传输时延的平均带宽;

在当前时间间隔内预测下一个传输时延的平均带宽时,如果计时结果小于所述预测时间周期,则将自计时开始至计时结果的时间区间对应的带宽确定为当前时间间隔对应的下一个传输时延的平均带宽;

如果计时结果大于所述预测时间周期,则将以计时结果为时间终点,所述预测时间周期为区间大小的时间区间对应的带宽确定为当前时间间隔对应的下一个传输时延的平均带宽。

结合第二方面的第二种实现方式,在第二方面的第三种实现方式中,所述处理单元,具体还用于:

在当前时间间隔内,通过TCP时间戳选项获取当前时间间隔内最后测量得到的上行链路传输时延;

根据所述预设传输时延和所述当前时间间隔内最后测量得到的上行链路传输时延,得到所述当前传输时延;

根据公式W(ti)=bi(D+λ(i))+Q,得到当前时间间隔对应的所述拥塞窗口的大小;

其中,ti表示当前时间间隔对应的计时结果,W(ti)表示拥塞窗口的大小,bi表示所述下一个传输时延的平均带宽,D表示所述预设传输时延,λ(i)表示所述当前时间间隔内最后测量得到的上行链路传输时延,Q表示所述目标队列大小。

本发明提供的确定拥塞窗口大小的方法及装置,通过获取一段时间的包括多个ACK数据包的样本数据,根据样本数据得到每个ACK数据包对应的传输时延,并将获取的样本数据按照时间划分为多个候选预测区间,计算每个候选预测区间内的带宽和将每个候选预测区间按照已得到的传输时延进行延时后得到的延时区间的带宽的相关系数,将最大的相关系数对应的候选预测区间作为目标预测区间,再根据确定出的目标预测区间预测下一次传播延迟的平均带宽,并根据预测得到的下一次传播延迟的平均带宽、希望调整到的目标队列大小和当前传输时延,确定最终的拥塞窗口的大小,与现有技术中根据某次传播延迟之前的带宽波动和上行链路延时确定拥塞窗口大小相比,本发明提供的确定拥塞窗口大小的方法通过获取的历史样本数据确定下一次传播延迟的平均带宽,并进一步确定拥塞窗口的大小,因而能够提高确定拥塞窗口的大小的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种确定拥塞窗口大小的方法的流程示意图;

图2为本发明实施例提供的另一种确定拥塞窗口大小的方法的流程示意图;

图3为本发明实施例提供的再一种确定拥塞窗口大小的方法的流程示意图;

图4为本发明实施例提供的一种确定拥塞窗口大小的装置的结构示意图。

具体实施方式

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

本发明实施例提供了一种确定拥塞窗口大小的方法,如图1所示,所述方法包括:

101:获取第一预设时长的样本数据,所述样本数据至少包括第一数量的确认ACK数据包。

其中,该样本数据为UDP流量数据,该第一预设时长可以为200小时~365小时之间,该第一数量可以为任意数量,第一数量的值越大,在后续步骤中确定出的预测区间越准确。

在本步骤的具体实现过程中,通过建立测试平台以收集足够的样本数据。具体而言,该测试平台可以为既能够生产3G/HSPA网络传输的最大数据速率的UDP流量,还能够不断地接收并通过捕获UDP流量的跟踪数 据测量实现UDP的吞吐量客户端的服务器。

102:将所述第一预设时长按照第一预设时间间隔和第二预设时长划分为第二数量的候选预测区间。

其中,该第一预设时间间隔可以为5ms-10ms,基本上为两个ACK数据包之间的传输间隔;该第二预设时长为每个候选预测区间的大小,可以为500ms-1000ms;所指的第一预设时间间隔为相邻两个候选预测区间之间的时间间隔。该第一预设时间间隔的取值要适当,如果该第一预设时间间隔太小,则相邻两个候选预测区间的时间差不大,则基本上两个相邻候选预测区间的带宽大小相似,这样划分候选预测区间的意义不大;而如果第一预设时间间隔过大,则会影响后续确定目标预测区间的精确度。

在本步骤的一种具体实现过程中,将步骤101中获取到的第一预设时长的样本数据按照该第一预设时间间隔进行划分后,得到多个时长为第二预设时长的候选预测区间。例如:将200小时的样本数据按照5ms的时间间隔划分为多个时长为700ms的候选预测区间:0-700ms为第1个候选预测区间;相隔5ms后,5ms-705ms为第2个候选预测区间,依次类推,得到获取的样本数据对应的所有候选预测区间。

此外,在本步骤的另外一种具体实现方式中,由于获取的样本数据量较大,因而可以先将样本数据按照一定的时间间隔划分为多个固定时间段,每个时间段用于表示一个的TCP会话(例如,FTP和HTTP下载),然后对每个时间段进行候选预测区间的划分,在进行候选预测区间的划分过程中,多个时间段可以并行处理,因而能够提高划分速度。

103:根据每个所述ACK数据包对应的上行链路传输时延和预设传输时延,确定每个ACK数据包对应的目标传输时延。

其中,所指的预设传输时延为在假设上行链路没有波动的情况下得到的一种理想状态的传输时延,一般取值为160ms。

在本步骤的具体实现过程中,首先确定所有所述ACK数据包对应的上行链路传输时延中的最大值;将所述最大值按照第二预设时间间隔划分为第三数量的时延区间;在已确定的时延区间中,确定每个所述ACK数据包对应的上行链路传输时延各自所在的时延区间;将每个所述ACK数据包对应的上行链路传输时延所在的时延区间的起始时间值与所述预设 传输时延之和确定为每个ACK数据包对应的目标传输时延。

例如:预设传输时延的大小为160ms,样本数据中共包括5个ACK数据包,该5个ACK数据包对应的上行链路时延分别为9ms、55ms、72ms、91ms和100ms;则将其中的最大值,也即100ms按照10ms(上文所指的第二预设时间间隔的一个具体实现方式)划分为10个时延区间,分别为:[0,10ms)、[10,20ms)、[20,30ms)、[30,40ms)、[40,50ms)、[50,60ms)、[60,70ms)、[70,80ms)、[80,90ms)、[90,100ms]。然后分别确定上述5个ACK数据包对应的上行链路传输时延所在的时延区间;例如,上述5个ACK数据包对应的上行链路传输时延所在的时延区间分别为[0,10ms)、[50,60ms)、[70,80ms)、[90,100ms]和[90,100ms];则上述5个ACK数据包对应的目标传输时延分别确定为0ms+160ms=160ms、50ms+160ms=210ms、70ms+160ms=230ms、90ms+160ms=250ms和90ms+160ms=250ms。

104:计算每个候选预测区间的平均带宽与每个候选预测区间在每个所述目标传输时延之后的平均带宽的相关系数。

现有技术中,存在计算两个变量的相关系数的计算方法,因而本步骤中两个平均带宽的相关系数的具体计算过程可参考现有技术,本步骤不再赘述。

例如:当第一预设间隔为5ms,第二预设时长为700ms,某个ACK数据包对应的目标传输时延为160ms时,首先计算0~700ms这一候选预测区间的平均带宽,再将该区间延时160ms后,得到700ms~860ms这一区间,计算该区间的平均带宽,根据这两个带宽值,得到0~700ms这一候选预测区间对应的相似系数;然后计算第二个候选预测区间5~705ms的带宽以及经过160ms的延时后,得到705~865ms这一区间的带宽,计算得到这两个带宽之间的相关系数;依此类推,得到每个候选预测区间对应的相关系数。

105:将最大的相关系数对应的候选预测区间确定为目标预测区间,将所述目标预测区间的起始时间值确定为预测时间周期。

例如:最大相关系数对应的候选预测区间为700ms~1400ms,则将700ms作为预测时间周期。

上述步骤101至步骤105为根据获取的历史带宽数据确定下一次传输时延的带宽的过程。下述步骤106至步骤108,则为将确定出的下一次传输时延的带宽在实际网络中进行应用以确定拥塞窗口的大小的过程。

106:以预设大小的拥塞窗口建立TCP连接。

其中,在本步骤的一种实现方式中,该预设大小可以为CmaxDmax

现代移动网络实现了很大的无线链路缓冲区(例如,3G/HSPA网络的无线链路缓冲区大小为1277.5KB)。此外,由于无线链路缓冲器被分配在每个用户,因此缓冲区不是共享的。本发明中,在TCP启动阶段不需要实现任何带宽共享算法如TCP慢启动,而是在一个新连接启动了一个较大的最初拥塞窗口,该拥塞窗口的大小为W0,W0的精确值可通过利用移动网络的特性导出。具体地,以Cmax表示移动网络的最大带宽(例如,3G/HSPA的最大带宽为7.2Mbps),Dmax表示包括上行最大延迟变化的移动数据网络的最大传播延迟,(例如,3G/HSPA的最大传播延迟为287ms),从而W0=CmaxDmax,大约为180个数据包的大小。本发明实施例提供的这个拥塞窗口的起始大小相对于网络的最大带宽延时积(bandwidth-delay product,BDP)(例如,852包)的大小是比较小的,因此不会有可能导致缓冲器溢出。相对于常规的TCP采用的初始拥塞窗口的大小(例如,2至10个包)是比较大的,可以充分利用网络带宽。

本步骤描述了TCP连接的启动阶段。从接收到第一个ACK数据包后,本发明提供的方法可离开上述启动阶段而切换到自适应阶段,详见下述步骤107和步骤108。

107:在建立所述TCP连接后,自接收到第一个ACK数据包开始,根据所述预测时间周期,周期性的预测在下一个传输时延的平均带宽。

在上述步骤101至步骤105确定出目标预测区间以及预测时间周期后,自接收到第一个ACK数据包开始,开始对接收到的ACK数据包的个数进行累积计数,并且每隔一段时间便根据计数结果以及确定出的预测时间周期进行下一个传输时延的平均带宽的计算,该具体实现过程见后文详述。

108:根据预测得到的所述下一个传输时延的平均带宽、目标队列大 小和当前传输时延,周期性的确定拥塞窗口的大小。

在本步骤的具体实现过程中,可根据下一个传输时延的平均带宽和当前传输时延,得到缓存队列的大小;再根据缓存队列的大小和目标队列的大小确定拥塞窗口的大小。

本发明提供的确定拥塞窗口大小的方法,通过获取一段时间的包括多个ACK数据包的样本数据,根据样本数据得到每个ACK数据包对应的目标传输时延,并将获取的样本数据按照时间划分为多个候选预测区间,计算每个候选预测区间内的带宽和将每个候选预测区间按照已得到的目标传输时延进行延时后得到的延时区间的带宽的相关系数,将最大相关系数对应的候选预测区间作为目标预测区间,再根据确定出的目标预测区间预测下一次传播延迟的平均带宽,并根据预测得到的下一次传播延迟的平均带宽、希望调整到的目标队列大小和当前传输时延,确定最终的拥塞窗口的大小,与现有技术中根据某次传播延迟之前的带宽波动和上行链路延时确定拥塞窗口大小相比,本发明提供的确定拥塞窗口大小的方法通过获取的历史样本数据确定下一次传播延迟的平均带宽,并进一步确定拥塞窗口的大小,因而能够提高确定拥塞窗口的大小的准确性。

作为上述方法的细化,步骤107“在建立所述TCP连接后,自接收到第一个ACK数据包开始,根据所述预测时间周期,周期性的预测在下一个传输时延的平均带宽”,如图2所示,具体包括:

201:在建立TCP连接后,自接收到第一个ACK数据包开始计时,每隔第三预设时间间隔预测在下一个传输时延的平均带宽。

其中,该第三预设时间间隔可以为2ms-10ms。

下述步骤202和步骤203为针对不同的时间间隔预测下一个传输时延的平均带宽的具体实现过程。

202:在当前时间间隔内预测下一个传输时延的平均带宽时,如果计时结果小于所述预测时间周期,则将自计时开始至计时结果的时间区间对应的带宽确定为当前时间间隔对应的下一个传输时延的平均带宽。

在某个时间间隔内预测下一个传输时延的平均带宽时,由于该时间间隔对应的计时结果小于预测时间周期,也即不足一个预测时间周期,因而需要将自计时开始至当前时间间隔对应的累积计时结果这段时间对应的 带宽确定为当前时间间隔对应的下一个传输时延的平均带宽。

例如:当预测时间周期为700ms,每隔10ms则预测下一个传输时延的平均带宽时,当在第10个时间间隔预测下一个传输时延的平均带宽时,由于该第10个时间间隔对应的累积计时结果为100ms,小于一个预测时间周期的长度,因而直接将该100ms对应的带宽确定为当前时间间隔预测得到的下一个传输时延的平均带宽。由此,可以得出,只要某个时间间隔对应的累积计时结果均小于预测时间周期,则都要将自计时开始所统计的带宽确定为下一个传输时延的平均带宽。

以H表示预测时间周期,Δ表示一个时间间隔的大小,i表示第i个时间间隔,则iΔ表示第i个时间间隔对应的累积计时结果,如果iΔ<H,则根据公式计算得到第i个时间间隔内预测到的下一个传播延迟的平均带宽。其中,bi表示第i个时间间隔内预测到的下一个传播延迟的平均带宽,rj表示第j个ACK数据包到达的时间,S为每个ACK数据包确认接收的数据包的大小。根据该公式表达的意思,也即将第i个时间间隔对应的累积计时结果内的所有ACK确认接收的数据包的大小进行累积,得到总的数据大小,再与时间的比值便得到了最后的带宽大小。

203:如果计时结果大于所述预测时间周期,则将以计时结果为时间终点,所述预测时间周期为区间大小的时间区间对应的带宽确定为当前时间间隔对应的下一个传输时延的平均带宽。

在当前时间间隔内,如果该时间间隔对应的计时结果大于预测时间周期,则可以选取一个完整的预测时间周期,将该完整的预测时间周期对应的带宽确定为当前时间间隔对应的下一个传输时延的平均带宽。

例如:当预测时间周期为700ms,每隔10ms则预测下一个传输时延的平均带宽时,当在第71个时间间隔预测下一个传输时延的平均带宽时,由于该第71个时间间隔对应的累积计时结果为710ms,大于一个预测时间周期的长度,因而可以将10ms-710ms这一个时间区间对应的带宽确定为当前时间间隔预测得到的下一个传输时延的平均带宽。

以H表示预测时间周期,Δ表示一个时间间隔的大小,i表示第i个时间间隔,则iΔ表示第i个时间间隔对应的累积计时结果,如果iΔ>H,则根据公式计算得到第i个时间间隔内预测下一个传播延迟的平均带宽bi

其中,bi表示第i个时间间隔内预测到的下一个传播延迟的平均带宽,rj表示第j个ACK数据包到达的时间,S为每个ACK数据包确认接收的数据包大小。

作为上述方法的细化,在每次预测得到下一个传输时延的平均带宽后,都是为了便于后续过程中确定拥塞窗口的大小。因而上述步骤108“所述根据预测得到的所述下一个传输时延的平均带宽、目标队列大小和当前传输时延,周期性的确定拥塞窗口的大小”,如图3所示,具体包括:

301:在当前时间间隔内,通过TCP时间戳选项获取当前时间间隔内最后测量得到的上行链路传输时延。

其中,ACK数据包中携带有TCP时间戳(timestamp)选项,利用该TCP timestamp选项可以准确计算每个ACK数据包对应的上行链路传输时延。

在本步骤的具体实现过程中,让λi记录第i个ACK数据包ACKi的上行链路传输时延,推导λi,该算法收敛之后,rttmin将是已知并且也将知道哪些分组,即,基准数据包,导致了最小的RTT。将基准数据包标记为ref,将基准包到达时间和它的ACK数据包产生时间分别rref和rreft。以ri'表示第i个ACK数据包的实际接收时间,rit是第i个ACK数据包产生时间。所以第i个ACK数据包的上行链路时延变化可通过公式

计算得到。

该步骤的具体实现过程可参考现有技术,本发明实施例不再赘述。

302:根据所述预设传输时延和所述当前时间间隔内最后测量得到的上行链路传输时延,得到所述当前传输时延。

其中,如前文所述,预设传输时延为一个固定且已知值,如此例取值为160ms。当前传输时延为预设传输时延和当前时间间隔内最后测量得到的上行链路传输时延之和。

303:根据公式W(ti)=bi(D+λ(i))+Q,得到当前时间间隔对应的所述拥塞窗口的大小。

其中,ti表示当前时间间隔对应的计时结果,W(ti)表示最终确定得到的拥塞窗口的大小,bi表示预测得到的所述下一个传输时延的平均带宽,D表示所述预设传输时延,λ(i)表示所述当前时间间隔内最后测量得到的上行链路传输时延,D+λ(i)即是步骤302确定出的当前传输时延;Q表示所述目标队列大小。

作为上述各图所述方法的实现,本发明实施例还提供了一种确定拥塞窗口大小的装置,如图4所示,所述装置包括:

获取单元401,用于获取第一预设时长的样本数据,所述样本数据至少包括第一数量的确认ACK数据包。

划分单元402,用于将所述获取单元401获取的第一预设时长按照第一预设时间间隔和第二预设时长划分为第二数量的候选预测区间。

处理单元403,用于根据所述获取单元401获取的每个所述ACK数据包对应的上行链路传输时延和预设传输时延,确定每个ACK数据包对应的目标传输时延;

计算每个候选预测区间的平均带宽与每个候选预测区间在每个所述目标传输时延之后的平均带宽的相关系数;

将最大相关系数对应的候选预测区间确定为目标预测区间,将所述目标预测区间的起始时间值确定为预测时间周期。

连接建立单元404,用于以预设大小的拥塞窗口建立传输控制协议TCP连接。

所述处理单元403,还用于在所述连接建立单元404建立所述TCP连接后,自接收到第一个ACK数据包开始,根据所述预测时间周期,周期性的预测在下一个传输时延的平均带宽;

根据预测得到的所述下一个传输时延的平均带宽、目标队列大小和当前传输时延,周期性的确定拥塞窗口的大小。

进一步的,所述处理单元403,具体用于:

确定所有所述ACK数据包对应的上行链路传输时延中的最大值;

将所述最大值按照第二预设时间间隔划分为第三数量的时延区间;

在已确定的时延区间中,确定每个所述ACK数据包对应的上行链路传输时延各自所在的时延区间;

将每个所述ACK数据包对应的上行链路传输时延所在的时延区间的起始时间值与所述预设传输时延之和确定为每个ACK数据包对应的目标传输时延。

进一步的,所述处理单元403,具体还用于:

在建立TCP连接后,自接收到第一个ACK数据包开始计时,每隔第三预设时间间隔预测在下一个传输时延的平均带宽;

在当前时间间隔内预测下一个传输时延的平均带宽时,如果计时结果 小于所述预测时间周期,则将自计时开始至计时结果的时间区间对应的带宽确定为当前时间间隔对应的下一个传输时延的平均带宽;

如果计时结果大于所述预测时间周期,则将以计时结果为时间终点,所述预测时间周期为区间大小的时间区间对应的带宽确定为当前时间间隔对应的下一个传输时延的平均带宽。

进一步的,所述处理单元403,具体还用于:

在当前时间间隔内,通过TCP时间戳选项获取当前时间间隔内最后测量得到的上行链路传输时延;

根据所述预设传输时延和所述当前时间间隔内最后测量得到的上行链路传输时延,得到所述当前传输时延;

根据公式W(ti)=bi(D+λ(i))+Q,得到当前时间间隔对应的所述拥塞窗口的大小;

其中,ti表示当前时间间隔对应的计时结果,W(ti)表示拥塞窗口的大小,bi表示所述下一个传输时延的平均带宽,D表示所述预设传输时延,λ(i)表示所述当前时间间隔内最后测量得到的上行链路传输时延,Q表示所述目标队列大小。

本发明提供的确定拥塞窗口大小的装置,通过获取一段时间的包括多个ACK数据包的样本数据,根据样本数据得到每个ACK数据包对应的目标传输时延,并将获取的样本数据按照时间划分为多个候选预测区间,计算每个候选预测区间内的带宽和将每个候选预测区间按照已得到的目标传输时延进行延时后得到的延时区间的带宽的相关系数,将最大相关系数对应的候选预测区间作为目标预测区间,再根据确定出的目标预测区间预测下一次传播延迟的平均带宽,并根据预测得到的下一次传播延迟的平均带宽、希望调整到的目标队列大小和当前传输时延,确定最终的拥塞窗口的大小,与现有技术中根据某次传播延迟之前的带宽波动和上行链路延时确定拥塞窗口大小相比,本发明提供的确定拥塞窗口大小的装置通过获取的历史样本数据确定下一次传播延迟的平均带宽,并进一步确定拥塞窗口的大小,因而能够提高确定拥塞窗口的大小的准确性。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式 体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

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