一种基于窗口预测的流量控制方法

文档序号:1775255 发布日期:2019-12-03 浏览:10次 >En<

阅读说明:本技术 一种基于窗口预测的流量控制方法 (A kind of flow control methods based on window prediction ) 是由 曲桦 赵季红 罗媛媛 张雯娜 赵绪时 仇瑞英 于 2019-07-30 设计创作,主要内容包括:本发明公开了一种基于窗口预测的流量控制方法,包括步骤:1)在建立TCP连接阶段,发送端和接收端协商窗口尺寸,同时接收端预留数据缓冲区;2)发送端根据协商的结果,发送符合窗口尺寸的数据字节流,并等待接收端的确认;3)发送端根据刚刚返回的确认信息中的剩余接收窗口的大小以及上一次预测的剩余接收窗口大小代入公式(4);4)通过公式(4)计算出此次预测的剩余接收窗口大小,并据此调整发送端的发送速率,从而使得发送端所采用的接收窗口大小的返回值与实际应匹配数值偏差减小;5)重复上述步骤3),直至通信结束,关闭连接,实现对接收窗口大小的流量控制。本发明提高了TCP通信效率,保证了资源的合理利用。(The invention discloses a kind of flow control methods based on window prediction, comprising steps of 1) establishing the TCP connection stage, window size, while receiving end reserved data buffer area are negotiated in transmitting terminal and receiving end;2) transmitting terminal throttling as a result, sending and meeting the data word of window size according to negotiation, and waits the confirmation of receiving end;3) transmitting terminal substitutes into formula (4) according to the remaining receiving window size of the remaining size for receiving window and last prediction in the confirmation message just returned;4) the remaining receiving window size of this time prediction is calculated by formula (4), and adjusts the transmission rate of transmitting terminal accordingly, so that the return value of receiving window size used by transmitting terminal reduces with should actually match numerical bias;5) it repeats the above steps 3), until sign off, closes connection, realizes the flow control to receiving window size.The present invention improves TCP communication efficiency, ensure that the reasonable utilization of resource.)

一种基于窗口预测的流量控制方法

技术领域

本发明属于网络通信技术领域,具体涉及一种基于窗口预测的流量控制方法,该方法发送端的发送速度与接收端处理数据的速度的匹配方法,减小了发送端所采用的接收窗口大小的返回值与实际应匹配数值的偏差。

背景技术

TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP/IP协议族是当前Internet的基础,目前网络中的大多数系统采用TCP协议进行传输。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP的工作机制见附图1。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

不同的场景及应用在进行TCP传输时产生不同的网络流量。TCP的流控机制是一种速度匹配的服务,旨在使发送端发送数据的速度与接收端处理数据的速度相匹配,若发送端的发送速度快,接收端的处理速度慢,很容易导致接收端在传输层丢包。TCP的流控机制的实现,就是在接收端设置有接收缓存,接收缓存当中存的一部分数据还没有来得及送给应用层,占据缓存的一部分,还剩下一部分空余的空间,这部分缓存空间叫剩余接收窗口。接收端每收到一个段,都要返回确认信息到发送端,确认段段头中有16位的字段是剩余接收窗口大小,如附图2所示,此时发送端便会调整发送速率,发送的数据量不超过剩余接收窗口的大小,接收端则不会产生丢包。

现有技术的缺点:

1、浪费资源、增加通信次数、降低TCP通信成功率。当剩余接收窗口Wn-1>Wn时,会造成发送端发送速度过快,使发送的数据量大于实时准确剩余接收窗口大小则会造成传输层丢包,从而导致资源的浪费、影响TCP通信效率;

2、不能充分利用缓冲区域的空间,降低TCP通信效率。当剩余接收窗口Wn-1<Wn时,发送的数据量过小,会导致缓冲区域有较大的空闲,降低TCP的通信效率。

发明内容

本发明的目的在于针对现有技术中存在的问题,提供了一种基于窗口预测的流量控制方法,该方法针对TCP可靠传输的特征进行分析并加以改进,减小了发送端所采用的接收窗口大小的返回值与实际应匹配数值的偏差。通过对实际应匹配接收窗口的大小进行预测和估算,采用指数式加权移动平均公式,提高了TCP通信效率,保证了资源的合理利用。

本发明采用如下技术方案来实现的:

一种基于窗口预测的流量控制方法,其特征在于,包括以下步骤:

1)在建立TCP连接阶段,发送端和接收端协商窗口尺寸,同时接收端预留数据缓冲区;

2)发送端根据协商的结果,发送符合窗口尺寸的数据字节流,并等待接收端的确认;

3)发送端根据刚刚返回的确认信息中的剩余接收窗口的大小以及上一次预测的剩余接收窗口大小代入公式(4),如下:

EstimatedWn=(1-x)*EstimatedWn-1+x*SampleWn-1 (4)

其中EstimatedWn为未来第n次剩余接收窗口的估值;EstimatedWn-1为第n-1次剩余接收窗口的估计值;SampleWn-1为刚刚得到的剩余接收窗口的返回值即第n-1次的实际值,并将x取不同的数值,分别进行估算,将估算值与实际值相比较,选取最接近实际值的系数x取值;

4)通过公式(4)计算出此次预测的剩余接收窗口大小,并据此调整发送端的发送速率,从而使得发送端所采用的接收窗口大小的返回值与实际应匹配数值偏差减小;

5)重复上述步骤3),直至通信结束,关闭连接,实现对接收窗口大小的流量控制。

本发明进一步的改进在于,步骤3)中,如果是第一次预测剩余接收窗口的大小时,EstimatedWn-1的值就取为刚刚返回的确认段中的值SampleWn-1。

本发明进一步的改进在于,步骤3)的具体实现方法如下:

301)第一次发送数据时,不需预测剩余接收窗口的大小,发送端根据返回的确认段中的接收窗口的数值来调整发送速率即可;

302)此后,利用公式(4)进行剩余接收窗口的大小,x分别赋1/4、1/8;

303)代入不同的x值,计算出本次具体估算的剩余接收窗口的大小;

304)分别将x取不同值的情况下,剩余接收窗口大小的估计值与实际值相比较,选取一组距离实际值差值最小的系数;

305)最终确定系数x,以此值作为将来的预测系数。

本发明具有如下有益的技术效果:

由于TCP传输数据建立连接的过程需要三次握手,接收端第一次确认无误收到发送端的数据后,便会通知对方自己的剩余窗口大小,此时剩余接收窗口大小记为Wn-1,与此同时接收端向发送端返回剩余接收窗口Wn-1。随即发送端第二次向接收端发数据时则依据Wn-1的返回值大小进行发送,接收端第二次确认无误收到数据时返回新的剩余接收窗口大小Wn。在此过程中,实际上可以发现一个问题,如附图3所示,发送端t1时刻的发送速率来自于刚刚接收端返回的确认段中剩余接收窗口的大小Wn-1,但实际上,发送端想匹配的是下一个确认段中剩余接收窗口的大小Wn

本发明提出的对下一次返回的接收窗口大小进行预测,能够使得发送端的发送速度与接收端处理数据的速度得到更好的匹配,实现了TCP的流量控制,从而提高通信效率。具体的,本发明提出了对TCP的流量控制算法的改进,利用历史数据去预测剩余接收窗口的大小,从而更好的实现匹配。并且,本发明提出预测下一次返回的接收窗口大小的算法,将采用指数式加权移动运动平均公式对其进行估算。

附图说明

图1是本发明中TCP的工作机制图。

图2是TCP报文段段格式。

图3是TCP通信过程图。

图4是指数加权移动平均算法示意图。

图5是本发明所述的流程图。

具体实施方式

下面结合附图对本发明作进一步说明。

本发明的目的在于提供一种TCP流量控制算法的改进,减少传输层的丢包问题,合理利用接收端缓冲区域的空间,提高TCP传输的可靠性以及通信效率。位于目的主机的TCP服务对接收到的数据进行确认,并向源应用程序发送确认信息。源主机在收到确认消息之前可以传输的数据的大小称为剩余接收窗口大小,用于管理丢失数据和流量控制。本发明中采用指数式加权移动平均公式对下一次返回的接收窗口大小进行预测和估算。

首先,简单地将指数加权移动平均法与其他估计数值方法进行比较:

1、移动平均

移动平均,简称均线,是技术分析其中一种分析时间序列数据的工具。最常见的是利用股价、回报或交易量等变量计算出移动平均。

移动平均可抚平短期波动,将长线趋势或周期显现出来。数学上,移动平均可视为一种卷积。

2、简单移动平均

简单移动平均SMA是之前n个数值的未作加权算术平均。例如,收市价的10日简单移动平均指之前10日收市价的平均数。设收市价为p1至pn,则方程式为:

当计算连续的数值,一个新的数值加入,同时一个旧数值剔出,所以无需每次都重新逐个数值加起来:

在技术分析中,有几个n的数值较为普遍,如10日、40日、200日,视乎分析时期长短而定。投资者冀从移动平均线的图表中分辨出支持位或阻力位。

3、加权移动平均

加权移动平均WMA指计算平均时个别数据乘以不同数值,在技术分析中,n日WMA的最近期一个数值乘以n、次近的乘以n-1,如此类推,一直到0:

如图5所示,本发明提供的一种基于窗口预测的流量控制方法,包括以下步骤:

1)在建立TCP连接阶段,发送端和接收端协商窗口尺寸,同时接收端预留数据缓冲区;

2)发送端根据协商的结果,发送符合窗口尺寸的数据字节流,并等待接收端的确认;

3)发送端根据刚刚返回的确认信息中的剩余接收窗口的大小以及上一次预测的剩余接收窗口大小代入公式(4),如下:

EstimatedWn=(1-x)*EstimatedWn-1+x*SampleWn-1 (4)

其中EstimatedWn为未来第n次剩余接收窗口的估值;EstimatedWn-1为第n-1次剩余接收窗口的估计值;SampleWn-1为刚刚得到的剩余接收窗口的返回值即第n-1次的实际值,并将x取不同的数值,分别进行估算,将估算值与实际值相比较,选取最接近实际值的系数x取值;

4)通过公式(4)计算出此次预测的剩余接收窗口大小,并据此调整发送端的发送速率,从而使得发送端所采用的接收窗口大小的返回值与实际应匹配数值偏差减小;

5)重复上述步骤3),直至通信结束,关闭连接,实现对接收窗口大小的流量控制。

所述步骤3)的具体实现步骤为:

301)第一次发送数据时,不需预测剩余接收窗口的大小,发送端根据返回的确认段中的接收窗口的数值来调整发送速率即可。

302)此后,利用公式(4)进行剩余接收窗口的大小,x分别赋1/4、1/8。

303)代入不同的x值,计算出本次具体估算的剩余接收窗口的大小。

304)分别将x取不同值的情况下,剩余接收窗口大小的估计值与实际值相比较,选取一组距离实际值差值最小的系数。

305)最终确定系数x,以此值作为将来的预测系数。

本发明应用的优势之处如下:

1、在此发明中,涉及TCP的流量控制方法中发送端的发送速度与接收端处理数据的速度的匹配方法,使整个网络在通信过程中有较为理想的传输过程。对下一次返回的接收窗口大小的预测利用指数式加权运动平均公式,较为准确的得出符合剩余接收窗口变化的系数x,提高了TCP的通信效率,纠正了一定程度上的偏差。

2、从概率角度看,EWMA即指数加权移动平均公式是一种理想的最大似然估计技术,它采用一个权重因子λ对数据进行估计,当前估计值由前一次估计值和当前的抽样值共同决定,在本发明中通过上一次的预测值与上一次的实际值进行预测,由于接收端的滑动窗口大小是固定的且接收端处理数据能力较为平稳,采用历史值进行预测起到了强化历史值的作用,有一定的健壮性。

3、从信号处理角度看,EWMA可以看成是一个低通滤波器,通过控制系数值,剔除短期波动、保留长期发展趋势提供了信号的平滑形式,使整个TCP通信过程效率提高。

4、由于发送端所采用的接收窗口大小的返回值与实际应匹配数值偏差是由于一个RTT时间内数据传输造成的,所以采用估计RTT的指数加权移动平均公式估计实际应匹配窗口大小有一定的延续性和经验意义。

具体算法过程如下:EWMA指数加权移动平均是一种常用的序列数据处理方式。

第一步:

其中系数α表示加权减小的程度,在0和1之间的恒定平滑因子。较高的α更快地对较旧的观察值进行折扣。

Yt是时间段t的值。

St是任何时间段t的EMA值。

S1可以以多种不同的方式初始化,最常见的是通过如上所示将S1设置为Y1,但是存在其他技术,例如将S1设置为前4或5个观察的平均值。S1初始化对合成移动平均值的影响取决于α;较小的α值使得S1的选择相对比较大的α值更重要,因为较高的α会更快地对较旧的观察值进行折扣。

系数α越接近1表示对当前抽样值的权重越高,对过去测量值得权重越低,估计值的时效性就越强,反之,越弱;另外,EWMA还有一定的吸收瞬间突发的能力,也即平稳性,显然随着α减小,参考过去测量值的程度更多一些,平稳性增强,反之则降低。附图4显示了重量减少的一个例子。

第二步:通过不同时间重复应用公式(7),最终可以将St写为基准点Yt的加权和,如下:

St=α[Yt+(1-α)Yt-1+(1-α)2Yt-2+…+(1-α)kYt-k]+(1-α)k+1Yt-(k+1) (6)

第三步:公式(7)也可以用技术分析术语表示如下,显示EMA如何朝着最新的基准点迈步,但只是差异的一部分(每次):

EMA(t)=αY(t)+(1-α)EMA(t-1) (7)

EMA(t-1)每次扩展都会产生以下幂级数,显示每个基准点y1,y2等的加权因子如何以指数方式下降:

EMA(t)=α[y1+(1-α)y2+(1-α)2y3+(1-α)3y4+…] (8)

其中y1为本次的实际值,y2为上次的实际值,以此类推。

第四步:由于方可得出

理论上这是一个无穷级数,但由于1-α少于1,各项的数值会越来越细,可以被忽略。分母方面,若有足够多项,则其数值趋向1/α。

第五步:假设k项及以后的项被忽略,即

(1-α)k+(1-α)k+1+…,重写后可得

(1-α)k×(1+(1-α)+(1-α)2+…),相当于所以,若要包含99.9%的加权,解方程即可得出k。由于当N不断增加,log(1-α)将趋向简化后k大约等于3.45×(N+1)。

采用本算法的优势:

在TCP通信中保证数据可靠,高效率的传输是网络通信的要求,在本发明中旨在解决发送端所采用的接收窗口大小的返回值与实际应匹配数值之间的偏差,采用指数加权移动平均公式恰好能达到一下效果:(1)不需要保存过去的所有数值。(2)计算量显著减少。(3)编程实现简单。(4)x通常取1/4(2-2)、1/8(2-3),SampleWn-1可直接右移两位或三位,可以提高代码的效率,节省资源。(5)x取1/4或1/8,把刚刚采集到的Wn-1值弱化了,更强调历史数据,使预测值更加接近于真实值。(6)利用预测剩余接收窗口大小的公式,健壮性好,网络波动较厉害时,由于除了一个4或者8,即缩小4倍或8倍,所以预测出的值的波动不大,相对比较平稳。从而提高了TCP的通信效率。

在此发明中,涉及TCP的流量控制方法中发送端的发送速度与接收端处理数据的速度的匹配方法,使整个网络在通信过程中有较为理想的传输过程。

本发明所述TCP流量控制方法的改进,对下一次返回的接收窗口大小的预测利用指数式加权运动平均公式,较为准确的得出符合剩余接收窗口变化的系数x,最后得到估计的下一次返回的接收窗口大小,以此数据为标准进行数据的传输,提高了TCP的通信效率,纠正了一定程度上的偏差。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种实现QoS保障的报文处理方法、设备和系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!