数据缓存方法及网络代理设备与流程

文档序号:12068272阅读:204来源:国知局
数据缓存方法及网络代理设备与流程

本发明涉及数据处理领域,尤其涉及一种数据缓存方法及网络代理设备。



背景技术:

网络代理设备是一种将发送终端的数据转发至接收终端的设备。目前的网络代理设备一般部署在发送终端的内网中,因此,网络代理设备和发送终端之间的网络质量是相对稳定且高效的,而接收终端和网络代理设备之间是夸过公网,所以网络质量很大一部分取决于接收终端的网络环境,一般公网的质量较差。如图1所示,在面对两端存在带宽差异的情况下,如果是带宽低的一端请求下载一个比较大的文件数据,传统的网络代理设是将带宽高的一端的数据缓存在本地,然后再慢慢发给带宽低的一端。

这样存在的问题是,网络代理设备会将全部的数据文件缓存在本地,如果客户公网环境不理想,那么网络代理设备将会因为缓存太多文件而无法支持后续的高并发流量操作,如数据的转发或其它处理操作。



技术实现要素:

本发明的主要目的在于提出一种数据缓存方法及网络代理设备,旨在解决传统的数据缓存方式,容易导致网络代理设备缓存的数据过多,导致无法支持高并发流量操作的技术问题。

为实现上述目的,本发明提供的一种数据缓存方法,所述数据缓存方法包括:

在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时调整接收窗口的接收容量;

将调整后的接收容量反馈至所述发送终端,以供所述发送终端在发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存。

优选地,所述在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时调整接收窗口的接收容量的步骤包括:

在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时检测本地数据的数据容量;

根据本地数据的数据容量,调整接收窗口的接收容量。

优选地,所述在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时检测本地数据的数据容量的步骤包括:

在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,若接收到所述接收终端反馈的确认字符,则在本地数据中删除已经被接收的数据;

根据删除后的数据更新本地数据的数据容量。

优选地,所述在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时调整接收窗口的接收容量的步骤还包括:

在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,确定所述接收终端的带宽流量以及往返时延,其中,所述往返时延是所述网络代理设备从转发数据开始到接收所述接收终端的确认接收字符的时间间隔;

根据所述接收终端的带宽流量以及往返时延,调整接收窗口的接收容量。

优选地,所述根据所述接收终端的带宽流量以及往返时延,调整接收窗口的接收容量的步骤包括:

根据所述接收终端的带宽流量以及往返时延,计算所述接收终端接收的数据量;

获取接收窗口的原本接收容量,以及预设的期望增长系数;

根据所述接收终端接收的数据量、预设的期望增长系数,以及所述原本接收容量,计算接收窗口的接收容量。

此外,为实现上述目的,本发明还提出一种网络代理设备,所述网络代理设备包括:

调整模块,用于在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时调整接收窗口的接收容量;

发送模块,用于将调整后的接收容量反馈至所述发送终端,以供所述发送终端在发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存。

优选地,所述调整模块包括:

检测子模块,用于在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时检测本地数据的数据容量;

第一调整子模块,用于根据本地数据的数据容量,调整接收窗口的接收容量。

优选地,所述检测子模块包括:

删除单元,用于在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,若接收到所述接收终端反馈的确认字符,则在本地数据中删除已经被接收的数据;

更新单元,用于根据删除后的数据更新本地数据的数据容量。

优选地,所述调整模块还包括:

确定子模块,用于在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,确定所述接收终端的带宽流量以及往返时延,其中,所述往返时延是所述网络代理设备从转发数据开始到接收所述接收终端的确认接收字符的时间间隔;

第二调整子模块,用于根据所述接收终端的带宽流量以及往返时延,调整接收窗口的接收容量。

优选地,所述第二调整子模块包括:

计算单元,用于根据所述接收终端的带宽流量以及往返时延,计算所述接收终端接收的数据量;

获取单元,用于获取接收窗口的原本接收容量,以及预设的期望增长系数;

所述计算单元,用于根据所述接收终端接收的数据量、预设的期望增长系数,以及所述原本接收容量,计算接收窗口的接收容量。

本发明提出的数据缓存方法,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时调整接收窗口的接收容量,然后将调整后的接收容量反馈至所述发送终端,以供所述发送终端在发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存,防止了发送终端一次性将所有数据都发送至所述网络代理设备进行缓存,本发明在数据缓存转发过程中,动态的调整接收窗口的接收容量并反馈至发送终端,以便发送终端仅发送网络代理设备所能接收容量的数据进行缓存,减少了网络代理设备缓存数据的压力,便于后续正常处理高并发流量的操作。

附图说明

图1为现有的数据缓存方式示意图;

图2为本发明数据缓存方法第一实施例的流程示意图;

图3为本发明的第一实施场景示意图;

图4为本发明的第二实施场景示意图;

图5为图2中步骤S10第一实施例的流程示意图;

图6为图5中步骤S11的细化流程示意图;

图7为本发明的第三实施场景示意图;

图8为图2中步骤S10第二实施例的流程示意图;

图9为图8中步骤S14的细化流程示意图;

图10为本发明的第四实施场景示意图;

图11为本发明网络代理设备第一实施例的功能模块示意图;

图12为图11中调整模块10第一实施例的功能模块示意图;

图13为图12中检测子模块11的细化功能模块示意图;

图14为图11中调整模块10第二实施例的功能模块示意图;

图15为图14中第二调整子模块15的细化功能模块示意图。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的解决方案主要是:在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时调整接收窗口的接收容量,然后将调整后的接收容量反馈至所述发送终端,以供所述发送终端发送所述接收容量对应的数据至所述网络代理设备中进行缓存,以解决网络代理设备缓存太多数据而无法支持后续的高并发流量操作的问题。

本发明中涉及的专业术语包括:

TCP(Transmission Control Protocol,传输控制协议)接收窗口:是网络代理设备通过TCP协议向发送终端发送一个窗口容量值的方法,来告知发送终端自己目前还可以接收多少数据,这个窗口容量值就是指网络代理设备的接收窗口。

零窗口:指TCP连接中网络代理设备缓存区中缓存的数据已满,向发送终端发送窗口容量值为0的TCP接收窗口,以表示网络代理设备的缓存区中无法再接收更多的数据,请发送终端暂时不要再发送新的数据。

ACK(Acknowledgement):确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符,表示发来的数据已确认接收无误,本实施例中,包括接收终端发送给网络代理设备,表示网络代理设备转发的数据已经被接收;以及网络代理设备发送给发送终端,表示发送终端发送至网络代理设备进行缓存的数据已经被接收。

RTT(Round-Trip Time):往返时延。在计算机网络中它是一个重要的性能指标,表示从发送站发送数据开始,到发送站收到来自接收站的确认(接收站收到数据后便立即发送确认),总共经历的时延,本实施例中,主要用于网络代理设备从转发数据开始,到接收到接收终端的确认字符总共经历的时延。注:下文所提出的RTT只用于窗口更新,和拥塞算法的RTT计算方法不同。

本发明提供一种数据缓存方法,应用于网络代理设备。

参照图2,图2为本发明数据缓存方法第一实施例的流程示意图。

本实施例提出一种数据缓存方法,所述数据缓存方法包括:

步骤S10,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时调整接收窗口的接收容量。

应当理解的是,网络代理设备是一种代理网络连接中发送终端和接收终端之间的数据转发的设备,根据接收终端中使用者的的需求,从发送终端中将数据转发到接收终端上。当然,这个网络代理设备需要从硬件层到应用层整个协议都有一套自己的处理逻辑,其中TCP协议的处理是用来确保整个连接数据传输的时效性和可靠性。

本实施例中,所述发送终端和所述接收终端不做限定,可以是所述发送终端为服务器,所述接收终端为客户端;当然,也可以是所述发送终端为客户端,所述接收终端为服务器。也就是说,所述网络代理设备是双向机制的,既可以将服务器的数据转发至客户端,也可以将客户端的数据转发至服务器。本发明中,为清楚理解,优选以所述发送终端为服务器,所述接收终端为客户端为例展开详述,即本文中的所述发送终端为服务器,所述接收终端为客户端,后续不再赘述。

在本实施例中,所述步骤S10之前,包括步骤:

接收终端先向发送终端发送数据下载指令,当所述发送终端接收到所述数据下载指令时,所述发送终端根据所述下载指令确定待发送的数据,然后开始将待发送的数据缓存到网络代理设备中。

可以理解,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,由于数据缓存到所述网络代理设备中的速度,比数据从网络代理设备中转发至接收终端的速度快。为了防止网络代理设备中的缓存区被大量占用,所述网络代理设备在转发数据的过程中,实时调整接收窗口的接收容量,包括:在当前缓存区中的缓存数据较多时,将接收窗口的接收容量调小;在当前缓存区中的缓存数据较少时,将接收窗口的接收容量调大等等,所述网络代理设备实时调整接收窗口的接收容量的具体方式在下文中进行详述。

为更好理解本实施例,参照图3,相当于是在网络代理设备与发送终端交互的一端中,配置有一个TCP接收窗口,这个接收窗口决定了所述网络代理设备最大能缓存多少字节的数据,后续在数据传输过程中,接收窗口会动态调整,以表示当前还可以接受多少容量的数据,当所述网络代理设备接收的数据超过这个窗口的接收容量,就会告知发送终端即服务器零窗口,来中断所述发送终端进行数据的发送,以保证所述网络代理设备缓存的数据不至于太多。

步骤S20,将调整后的接收容量反馈至所述发送终端,以供所述发送终端在发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存。

在本实施例中,在对接收窗口的接收容量进行调整之后,将调整后的接收容量反馈至所述发送终端,以供所述发送终端再次发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存。其中,所述网络代理设备将调整后的接收容量反馈所述发送终端中的方式包括两种:

a、若所述网络代理设备当前接收到发送终端发送的数据,则需要反馈一个确认字符至所述发送终端,那么,此时可将调整后的接收容量添加到所述确认字符中,以反馈至所述发送终端中,具体可参照图4。

b、若所述网络代理设备当期并未接收到发送终端发送的数据,那么,所述网络代理设备根据调整后的接收容量生成一个更新包,然后反馈该更新包至所述发送终端。

在本实施例中,相当于是只要数据还在网络代理设备上,占用了网络代理设备的缓冲区,该网络代理设备就会根据占用的缓冲区大小去反压发送终端的数据发送量,达到限制网络代理设备缓存过多数据的情况。

本实施例提出的数据缓存方法,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时调整接收窗口的接收容量,然后将调整后的接收容量反馈至所述发送终端,以供所述发送终端在发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存,防止了发送终端一次性将所有数据都发送至所述网络代理设备进行缓存,本发明在数据缓存转发过程中,动态的调整接收窗口的接收容量并反馈至发送终端,以便发送终端仅发送网络代理设备所能接收容量的数据进行缓存,减少了网络代理设备缓存数据的压力,便于后续正常处理高并发流量的操作。

进一步地,为提高数据缓存的智能性,基于第一实施例提出本发明数据缓存方法的第二实施例。

在本实施例中,参照图5,所述步骤S10包括:

步骤S11,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时检测本地数据的数据容量;

步骤S12,根据本地数据的数据容量,调整接收窗口的接收容量。

在本实施例中,应当注意的是,所述网络代理设备包括两个端口,一个端口是与接收终端进行交互(用网络代理设备发送端表示),另一个是与发送终端进行交互(用网络代理设备接收端表示)。所述网络代理设备接收端接收到所述发送终端的数据之后,传至网络代理设备发送端的缓存区中进行缓存,后续便于从所述缓存区中提取出数据转发至发送终端。

由于传统的网络代理设备接收端接收到所述发送终端发送的数据之后,把接收到的数据传输至网络代理设备发送端的缓存区,不管数据是否还在所述网络代理设备中,都会直接把TCP接收窗口扩大,这样就会导致发送终端继续发送数据到网络代理设备中,很明显,这样会导致缓存区中的缓存压力过大。本实施例中,只要所述网络代理设备检测到本地数据的数据容量没有减少,就不会扩大。相反,若所述网络代理设备接收端接收到新的数据,而所述网络代理设备发送端发送至接收终端的数据还没发送成功,此时,由于缓存区中的数据量增大了,因此,需要缩小所述接收窗口的接收容量。

即本实施例中,相当于是用网络代理设备中的缓存数据容量来决定接收窗口的接收容量,并且是一种流量反压机制,即根据目前缓存的需要发送的数据量大小和接收窗口成反比的关系来确保网络代理设备缓存的数据不会超过TCP接收窗口的接收容量。为更好理解,举例如下:假设初始接收窗口的接收容量为W,当前缓存数据量为C,则调整的接收窗口则为W1=W-C。也就是说,不管请求的数据文件有多大,网络代理设备只会缓存调整的接收窗口对应容量的数据。

应该理解的是,上述的计算公式仅仅是反向机制的一种示例,本领域技术人员利用本发明的技术思想,根据其具体需求所提出的其它方式均在本发明的保护范围内,在此不进行一一穷举。

进一步地,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,若发送至接收终端的数据发送成功,本地缓存的数据会删除,使得本地可缓存数据的容量会增大,具体地,参照图6,所述步骤S11包括:

步骤S111,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,若接收到所述接收终端反馈的确认字符,则在本地数据中删除已经被接收的数据;

步骤S112,根据删除后的数据更新本地数据的数据容量。

也就是说,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,若所述接收终端接收到所述网络代理设备转发的数据,那么所述接收终端会向网络代理设备反馈一个确认字符,以表示数据已经被接收到了。

当所述网络代理设备接收到所述接收终端反馈的确认字符,此时,就可以将缓存在本地中的数据进行删除了,以释放出缓存区的存储空间。在所述网络代理设备在本地数据中删除已经被接收的数据之后,即可根据删除后的数据更新本地数据的数据容量,为更好理解,参照图7,在网络代理设备接收端将数据转移到网络代理设备发送端的缓存区之后,仅当数据发送至接收终端(图7中的接收数据方),并接收到接收终端反馈的应答信息,才会更新网络代理设备接收端的窗口,并发送更新窗口的指令至发送终端(图7中的发送数据方)。

可以理解,此时本地数据的数据容量增大,缓存的数据量减小,根据上述举例的计算公式可知,在初始接收窗口的接收容量为W不变的情况下,当前缓存数据量从C减小到C1,则调整的接收窗口则为W2=W–C1,可以理解,W2大于W1。

在本实施例中,使用网络代理设备的缓存数据的容量值反压接收窗口的接收容量,使得接收窗口的接收容量根据网络代理设备的本地数据容量进行动态变化,不论请求的数据文件有多大,网络代理设备都仅缓存一个接收窗口对应容量值的数据,保证了后续并发处理其它操作的效率。

进一步地,为提高数据缓存的智能性,基于第一实施例提出本发明数据缓存方法的第三实施例。

在本实施例中,参照图8,所述步骤S10还包括:

步骤S13,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,确定所述接收终端的带宽流量以及往返时延,其中,所述往返时延是所述网络代理设备从转发数据开始到接收所述接收终端的确认接收字符的时间间隔;

步骤S14,根据所述接收终端的带宽流量以及往返时延,调整接收窗口的接收容量。

可以理解,第二实施例中,解决了网络代理设备不会缓存太多数据的问题,但是,现有技术中,由于网络代理设备与发送终端处于同一个内网,因此,带宽较大,此时,网络代理设备的初始接收窗口会被设置成一个比较大的阈值(如果初始接收窗口设置较小,则带宽会变得非常小),以确保网络代理设备高效性。这样的情况下,即使本地数据对应的数据容量较大,由于初始接收窗口较大,那么调整后的接收窗口的接收窗口还是很大,导致待接收的缓存数据还是较多,对缓存压力减小的效果还是不够明显。

为了解决这个问题,本实施例中,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,先确定所述接收终端的带宽流量以及往返时延,然后根据所述接收终端的带宽流量以及往返时延,调整接收窗口的接收容量。具体地,参照图9,所述步骤S14包括:

步骤S141,根据所述接收终端的带宽流量以及往返时延,计算所述接收终端接收的数据量;

步骤S142,获取接收窗口的原本接收容量,以及预设的期望增长系数;

步骤S143,根据所述接收终端接收的数据量、预设的期望增长系数,以及所述原本接收容量,计算接收窗口的接收容量。

也就是说,所述网络代理设备先根据所述接收终端的带宽流量以及往返时延,计算所述接收终端接收的数据量,如所述接收终端所在端的带宽流量为X(单位:Mbit/s),此时所述网络代理设备从转发数据开始到接收所述接收终端的确认接收字符的时间间隔RTT为Y(单位:s),则所述接收终端接收的数据量用ack_data1表示,ack_data1=X*Y。然后获取接收窗口的原本接收容量w,即上一次调整的接收窗口的接收容量,以及预设的期望增长系数r,本实施例中,所述期望增长系数是根据实验计算结果统计出来的数值,具体数值根据实际情况进行设定,此处不做赘述。

在得到所述接收终端接收的数据量、接收窗口的原本接收容量,以及预设的期望增长系数之后,根据所述接收终端接收的数据量、预设的期望增长系数,以及所述原本接收容量,计算接收窗口的接收容量,所述计算公式优选为:

rcv_wnd=w+r*ack_data1。

为更好理解,举例应用场景如下:参照图10,网络代理设备会根据前端网络的带宽流量以及往返时延,计算所述接收终端(图10中的接收数据方)接收的数据量,然后再获取网络代理设备的接收窗口的原本接收容量,以及预设的期望增长系数,最终根据所述接收终端接收的数据量、预设的期望增长系数,以及所述原本接收容量,计算出接收窗口的接收容量,再将计算出的接收容量发送至发送终端(图10中的发送数据方)中,以便后续所述发送终端在发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存。

应该理解的是,计算接收窗口的接收容量的方法有多种,这里仅列出其中一种,本领域技术人员利用本发明的技术思想,根据其具体需求所提出的其它计算接收窗口的接收容量的方法均在本发明的保护范围内,在此不进行一一穷举。

本实施例中,相当于是根据接收终端的带宽流量以及往返时延,以及当前配置的默认TCP接收窗口,来确定最合适的接收窗口大小,这样,就会为网络代理设备提供一种最适用当前实际带宽的TCP接收窗口,而不是协议规定的最大值来调整,使得对接收窗口的接收容量调整更加准确。

综上,本发明中,根据网络代理设备的缓存大小,动态调整TCP接收窗口,反压发送终端发送的数据,使网络代理设备不会缓存太多的数据而占用太多内存。进一步地,根据接收终端的网络质量差,根据接收终端的网络质量,来调整TCP接收窗口的接收容量,将前端的网络质量反映到后端,从而限制后端数据发送的速率,来达到代理设备缓存数据量最小化,也就是说,在请求大文件的情况下,可以将缓存数据的压力很好的转移到服务器,极端差的网络环境下,可以支持代理设备更高的并发量而不占用大量内存来缓存数据。

本发明进一步提供一种网络代理设备。

参照图11,图11为本发明网络代理设备第一实施例的功能模块示意图。

需要强调的是,对本领域的技术人员来说,图11所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图11所示的网络代理设备的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该网络代理设备的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。

本实施例提出一种网络代理设备,所述网络代理设备包括:

调整模块10,用于在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时调整接收窗口的接收容量;

应当理解的是,网络代理设备是一种代理网络连接中发送终端和接收终端之间的数据转发的设备,根据接收终端中使用者的的需求,从发送终端中将数据转发到接收终端上。当然,这个网络代理设备需要从硬件层到应用层整个协议都有一套自己的处理逻辑,其中TCP协议的处理是用来确保整个连接数据传输的时效性和可靠性。

本实施例中,所述发送终端和所述接收终端不做限定,可以是所述发送终端为服务器,所述接收终端为客户端;当然,也可以是所述发送终端为客户端,所述接收终端为服务器。也就是说,所述网络代理设备是双向机制的,既可以将服务器的数据转发至客户端,也可以将客户端的数据转发至服务器。本发明中,为清楚理解,优选以所述发送终端为服务器,所述接收终端为客户端为例展开详述,即本文中的所述发送终端为服务器,所述接收终端为客户端,后续不再赘述。

在本实施例中,接收终端先向发送终端发送数据下载指令,当所述发送终端接收到所述数据下载指令时,所述发送终端根据所述下载指令确定待发送的数据,然后开始将待发送的数据缓存到网络代理设备中。

可以理解,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,由于数据缓存到所述网络代理设备中的速度,比数据从网络代理设备中转发至接收终端的速度快。为了防止网络代理设备中的缓存区被大量占用,所述调整模块10在转发数据的过程中,实时调整接收窗口的接收容量,包括:在当前缓存区中的缓存数据较多时,将接收窗口的接收容量调小;在当前缓存区中的缓存数据较少时,将接收窗口的接收容量调大等等,所述调整模块10实时调整接收窗口的接收容量的具体方式在下文中进行详述。

为更好理解本实施例,参照图3,相当于是在网络代理设备与发送终端交互的一端中,配置有一个TCP接收窗口,这个接收窗口决定了所述网络代理设备最大能缓存多少字节的数据,后续在数据传输过程中,接收窗口会动态调整,以表示当前还可以接受多少容量的数据,当所述网络代理设备接收的数据超过这个窗口的接收容量,就会告知发送终端即服务器零窗口,来中断所述发送终端进行数据的发送,以保证所述网络代理设备缓存的数据不至于太多。

发送模块20,用于将调整后的接收容量反馈至所述发送终端,以供所述发送终端在发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存。

在本实施例中,在对接收窗口的接收容量进行调整之后,发送模块20将调整后的接收容量反馈至所述发送终端,以供所述发送终端再次发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存。其中,所述发送模块20将调整后的接收容量反馈所述发送终端中的方式包括两种:

a、若所述网络代理设备当前接收到发送终端发送的数据,则需要反馈一个确认字符至所述发送终端,那么,此时可将调整后的接收容量添加到所述确认字符中,以反馈至所述发送终端中,具体可参照图4。

b、若所述网络代理设备当期并未接收到发送终端发送的数据,那么,所述发送模块20根据调整后的接收容量生成一个更新包,然后反馈该更新包至所述发送终端。

在本实施例中,相当于是只要数据还在网络代理设备上,占用了网络代理设备的缓冲区,该网络代理设备就会根据占用的缓冲区大小去反压发送终端的数据发送量,达到限制网络代理设备缓存过多数据的情况。

本实施例提出的网络代理设备,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时调整接收窗口的接收容量,然后将调整后的接收容量反馈至所述发送终端,以供所述发送终端在发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存,防止了发送终端一次性将所有数据都发送至所述网络代理设备进行缓存,本发明在数据缓存转发过程中,动态的调整接收窗口的接收容量并反馈至发送终端,以便发送终端仅发送网络代理设备所能接收容量的数据进行缓存,减少了网络代理设备缓存数据的压力,便于后续正常处理高并发流量的操作。

进一步地,为提高数据缓存的智能性,基于第一实施例提出本发明网络代理设备的第二实施例。

在本实施例中,参照图12,所述调整模块10包括:

检测子模块11,用于在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,实时检测本地数据的数据容量;

第一调整子模块12,用于根据本地数据的数据容量,调整接收窗口的接收容量。

在本实施例中,应当注意的是,所述网络代理设备包括两个端口,一个端口是与接收终端进行交互(用网络代理设备发送端表示),另一个是与发送终端进行交互(用网络代理设备接收端表示)。所述网络代理设备接收端接收到所述发送终端的数据之后,传至网络代理设备发送端的缓存区中进行缓存,后续便于从所述缓存区中提取出数据转发至发送终端。

由于传统的网络代理设备接收端接收到所述发送终端发送的数据之后,把接收到的数据传输至网络代理设备发送端的缓存区,不管数据是否还在所述网络代理设备中,都会直接把TCP接收窗口扩大,这样就会导致发送终端继续发送数据到网络代理设备中,很明显,这样会导致缓存区中的缓存压力过大。本实施例中,只要所述检测子模块11检测到本地数据的数据容量没有减少,就不会扩大。相反,若所述网络代理设备接收端接收到新的数据,而所述网络代理设备发送端发送至接收终端的数据还没发送成功,此时,由于缓存区中的数据量增大了,因此,第一调整子模块12需要缩小所述接收窗口的接收容量。

即本实施例中,相当于是用网络代理设备中的缓存数据容量来决定接收窗口的接收容量,并且是一种流量反压机制,即根据目前缓存的需要发送的数据量大小和接收窗口成反比的关系来确保网络代理设备缓存的数据不会超过TCP接收窗口的接收容量。为更好理解,举例如下:假设初始接收窗口的接收容量为W,当前缓存数据量为C,则调整的接收窗口则为W1=W-C。也就是说,不管请求的数据文件有多大,网络代理设备只会缓存调整的接收窗口对应容量的数据。

应该理解的是,上述的计算公式仅仅是反向机制的一种示例,本领域技术人员利用本发明的技术思想,根据其具体需求所提出的其它方式均在本发明的保护范围内,在此不进行一一穷举。

进一步地,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,若发送至接收终端的数据发送成功,本地缓存的数据会删除,使得本地可缓存数据的容量会增大,具体地,参照图13,所述检测子模块11包括:

删除单元111,用于在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,若接收到所述接收终端反馈的确认字符,则在本地数据中删除已经被接收的数据;

更新单元112,用于根据删除后的数据更新本地数据的数据容量。

也就是说,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,若所述接收终端接收到所述网络代理设备转发的数据,那么所述接收终端会向网络代理设备反馈一个确认字符,以表示数据已经被接收到了。当所述网络代理设备接收到所述接收终端反馈的确认字符,此时,删除单元111就可以将缓存在本地中的数据进行删除了,以释放出缓存区的存储空间。在所述网络代理设备在本地数据中删除已经被接收的数据之后,更新单元112即可根据删除后的数据更新本地数据的数据容量,为更好理解,参照图7,在网络代理设备接收端将数据转移到网络代理设备发送端的缓存区之后,仅当数据发送至接收终端(图7中的接收数据方),并接收到接收终端反馈的应答信息,才会更新网络代理设备接收端的窗口,并发送更新窗口的指令至发送终端(图7中的发送数据方)。

可以理解,此时本地数据的数据容量增大,缓存的数据量减小,此时,根据上述举例的计算公式可知,在初始接收窗口的接收容量为W不变的情况下,当前缓存数据量从C减小到C1,则调整的接收窗口则为W2=W–C1,可以理解,W2大于W1。

在本实施例中,使用网络代理设备的缓存数据的容量值反压接收窗口的接收容量,使得接收窗口的接收容量根据网络代理设备的本地数据容量进行动态变化,不论请求的数据文件有多大,网络代理设备都仅缓存一个接收窗口对应容量值的数据,保证了后续并发处理其它操作的效率。

进一步地,为提高数据缓存的智能性,基于第一实施例提出本发明网络代理设备的第三实施例。

在本实施例中,参照图14,所述调整模块10还包括:

确定子模块13,用于在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,确定所述接收终端的带宽流量以及往返时延,其中,所述往返时延是所述网络代理设备从转发数据开始到接收所述接收终端的确认接收字符的时间间隔;

第二调整子模块14,用于根据所述接收终端的带宽流量以及往返时延,调整接收窗口的接收容量。

可以理解,第二实施例中,解决了网络代理设备不会缓存太多数据的问题,但是,现有技术中,由于网络代理设备与发送终端处于同一个内网,因此,带宽较大,此时,网络代理设备的初始接收窗口会被设置成一个比较大的阈值(如果初始接收窗口设置较小,则带宽会变得非常小),以确保网络代理设备高效性。这样的情况下,即使本地数据对应的数据容量较大,由于初始接收窗口较大,那么调整后的接收窗口的接收窗口还是很大,导致待接收的缓存数据还是较多,对缓存压力减小的效果还是不够明显。

为了解决这个问题,本实施例中,在网络代理设备将发送终端缓存在本地的数据转发至接收终端的过程中,确定子模块13先确定所述接收终端的带宽流量以及往返时延,然后第二调整子模块14根据所述接收终端的带宽流量以及往返时延,调整接收窗口的接收容量。具体地,参照图15,所述第二调整子模块14包括:

计算单元141,用于根据所述接收终端的带宽流量以及往返时延,计算所述接收终端接收的数据量;

获取单元142,用于获取接收窗口的原本接收容量,以及预设的期望增长系数;

所述计算单元141,用于根据所述接收终端接收的数据量、预设的期望增长系数,以及所述原本接收容量,计算接收窗口的接收容量。

也就是说,计算单元141先根据所述接收终端的带宽流量以及往返时延,计算所述接收终端接收的数据量,如所述接收终端所在端的带宽流量为X(单位:Mbit/s),此时所述网络代理设备从转发数据开始到接收所述接收终端的确认接收字符的时间间隔RTT为Y(单位:s),则所述接收终端接收的数据量用ack_data1表示,ack_data1=X*Y。然后获取单元142获取接收窗口的原本接收容量w,即上一次调整的接收窗口的接收容量,以及预设的期望增长系数r,本实施例中,所述期望增长系数是根据实验计算结果统计出来的数值,具体数值根据实际情况进行设定,此处不做赘述。

在得到所述接收终端接收的数据量、接收窗口的原本接收容量,以及预设的期望增长系数之后,所述计算单元141根据所述接收终端接收的数据量、预设的期望增长系数,以及所述原本接收容量,计算接收窗口的接收容量,所述计算公式优选为:

rcv_wnd=w+r*ack_data1。

为更好理解,举例应用场景如下:参照图10,网络代理设备会根据前端网络的带宽流量以及往返时延,计算所述接收终端(图10中的接收数据方)接收的数据量,然后再获取网络代理设备的接收窗口的原本接收容量,以及预设的期望增长系数,最终根据所述接收终端接收的数据量、预设的期望增长系数,以及所述原本接收容量,计算出接收窗口的接收容量,再将计算出的接收容量发送至发送终端(图10中的发送数据方)中,以便后续所述发送终端在发送数据时,仅发送所述接收容量对应的数据至所述网络代理设备中进行缓存。

应该理解的是,计算接收窗口的接收容量的方法有多种,这里仅列出其中一种,本领域技术人员利用本发明的技术思想,根据其具体需求所提出的其它计算接收窗口的接收容量的方法均在本发明的保护范围内,在此不进行一一穷举。

本实施例中,相当于是根据接收终端的带宽流量以及往返时延,以及当前配置的默认TCP接收窗口,来确定最合适的接收窗口大小,这样,就会为网络代理设备提供一种最适用当前实际带宽的TCP接收窗口,而不是协议规定的最大值来调整,使得对接收窗口的接收容量调整更加准确。

综上,本发明中,根据网络代理设备的缓存大小,动态调整TCP接收窗口,反压发送终端发送的数据,使网络代理设备不会缓存太多的数据而占用太多内存。进一步地,根据接收终端的网络质量差,根据接收终端的网络质量,来调整TCP接收窗口的接收容量,将前端的网络质量反映到后端,从而限制后端数据发送的速率,来达到代理设备缓存数据量最小化,也就是说,在请求大文件的情况下,可以将缓存数据的压力很好的转移到服务器,极端差的网络环境下,可以支持代理设备更高的并发量而不占用大量内存来缓存数据。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

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

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

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