数据传输方法、系统及代理设备与流程

文档序号:13891128阅读:241来源:国知局
数据传输方法、系统及代理设备与流程

本发明实施例涉及通信技术,尤其涉及一种数据传输方法、系统及代理设备。



背景技术:

客户端通过移动通信网络与互联网服务器建立传输控制协议(Transmission Control Protocol,简称为TCP)连接。其中,客户端与移动通信网络之间是通过无线链路连接的,而移动通信网络与互联网服务器之间一般通过有线网络连接。由于无线链路的时变特性明显,客户端与移动通信网络之间的数据传输速率、丢包率等随时间变化较为剧烈,此时会采用针对有线网络的TCP拥塞控制方法,调整传输策略。但是由于无线网络与有线网络传输特性的不同,针对有线网络提出的TCP拥塞控制方法不太适用于无线网络。

针对上述问题,现有技术提出一种网络代理技术,将客户端与互联网服务器之间的TCP连接分为两部分,一部分是客户端与网络代理之间建立的、针对无线网络的TCP连接,一部分是网络代理与互联网服务器之间建立的、针对有线网络的TCP连接。这样客户端到网络代理之间可以采用适用于无线网络的TCP拥塞控制方法,而在网络代理与互联网服务器之间可以采用传统的TCP拥塞控制方法。现有网络代理技术可能会降低无线网络的服务质量,所以需要一种新的数据传输技术。



技术实现要素:

本发明实施例提供一种数据传输方法、系统及代理设备,用以提供不同于现有技术的、且仍然通过代理设备进行数据传输的技术。

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

第一设备与第二设备之间建立传输控制协议TCP的连接,其中,所述第一设备为客户端,所述第二设备为互联网服务器,或者,所述第一设备为互联网服务器,所述第二设备为客户端;代理设备与所述客户端通过无线方式交互,所述代理设备与所述互联网服务器通过有线方式交互;

所述代理设备获取对应第一方向的第一方向起始序列号、第一方向应答序列号和对应第二方向的第二方向起始序列号,其中,

所述第一方向为所述第一设备向所述第二设备发送数据的方向,所述第二方向为所述第二设备向所述第一设备发送数据的方向;其中,所述第一方向起始序列号为所述第一方向的起始数据所对应的起始序号,所述第一方向的起始数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的第一个数据;所述第一方向应答序列号为所述第一方向的终止数据所对应的终止序号加1,所述第一方向的终止数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的最后一个数据;所述第二方向起始序列号为所述第二方向的起始数据所对应的起始序号,所述第二方向的起始数据为上一次缓存在所述代理设备中、且在所述第二方向上传输的第一个数据;

所述代理设备接收所述第一设备在所述第一方向上发送给所述第二设备的第一数据,将所述第一方向应答序列号更新为所述第一数据的终止序号加1;所述代理设备根据所述更新后的第一方向应答序列号和所述第二方向起始序列号向所述第一设备发送第一确认应答;所述代理设备将所述第一数据转发给所述第二设备,并将所述第一方向起始序列号更新为所述第一方向应答序列号。

结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:

所述代理设备获取对应第二方向的第二方向应答序列号;其中,所述第二方向应答序列号为所述第二方向的终止数据所对应的终止序号加1,所述第二方向的终止数据为上一次缓存在所述代理设备中、且在所述第二方向上的最后一个数据;

所述代理设备接收所述第二设备在所述第二方向上发送给所述第一设备的第二数据,将所述第二方向应答序列号更新为所述第二数据的终止序号加1;所述代理设备根据所述更新后的第二方向应答序列号和所述第一方向的起始序列号向所述第二设备发送第二确认应答;所述代理设备将所述第二数据转发给所述第一设备,并将所述第二方向起始序列号更新为所述第二方向应答序列号。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述代理设备将所述第二方向应答序列号更新为所述第二数据的终止序号加1之前,还包括:所述代理设备确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述代理设备确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同,包括:所述代理设备判断本地是否缓存有所述第一数据,如果判断结果为是,确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:所述代理设备记录所述第一确认应答中的应答序列号;

所述代理设备确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同,包括:如果所述代理设备确定出所述第一确认应答中的应答序列号与所述第二数据中的应答序列号不相同,则确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述代理设备获取对应第一方向的第一方向起始序列号、第一方向应答序列号、对应第二方向的第二方向起始序列号及第二方向应答序列号,包括:

所述代理设备在所述客户端从源网络侧设备切换到所述代理设备时,接收下行数据,从所述下行数据中获取所述第一方向起始序列号、所述第一方向应答序列号、所述第二方向起始序列号和所述第二方向应答序列号,其中,所述下行数据包括源网络侧设备转发的、且缓存于所述源网络侧设备的所述互联网服务器向所述客户端发送的下行数据,所述源网络侧设备是在发生切换前所述客户端所附着的网络侧设备,所述代理设备是发生切换后所述客户端所附着的网络侧设备。

结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述方法还包括:

所述代理设备在所述客户端从所述代理设备切换到目标网络侧设备时,向所述目标网络侧设备发送尚缓存于所述代理设备的、且所述互联网服务器向所述客户端发送的下行数据,以使所述目标网络侧设备继续转发所接收的下行数据至所述客户端;其中,所述代理设备是发生切换前所述客户端所附着的网络侧设备,所述目标网络侧设备是发生切换后所述客户端所附着的网络侧设备。

第二方面提供一种代理设备,包括:

获取模块,用于获取对应第一方向的第一方向起始序列号、第一方向应答序列号和对应第二方向的第二方向起始序列号;其中,第一设备与第二设备之间建立传输控制协议TCP的连接,所述第一设备为客户端,所述第二设备为互联网服务器,或者,所述第一设备为互联网服务器,所述第二设备为客户端;所述代理设备与所述客户端通过无线方式交互,所述代理设备与所述互联网服务器通过有线方式交互;其中,

所述第一方向为所述第一设备向所述第二设备发送数据的方向,所述第二方向为所述第二设备向所述第一设备发送数据的方向;

所述第一方向起始序列号为所述第一方向的起始数据所对应的起始序号,所述第一方向的起始数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的第一个数据;

所述第一方向应答序列号为所述第一方向的终止数据所对应的终止序号加1,所述第一方向的终止数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的最后一个数据;

所述第二方向起始序列号为所述第二方向的起始数据所对应的起始序号,所述第二方向的起始数据为上一次缓存在所述代理设备中、且在所述第二方向上传输的第一个数据;

接收模块,用于接收所述第一设备在所述第一方向上发送给所述第二设备的第一数据;

更新模块:用于将所述获取模块获取的所述第一方向应答序列号更新为所述接收模块接收的第一数据的终止序号加1;

发送模块,用于根据所述更新模块更新后的第一方向应答序列号和所述获取模块获取的所述第二方向起始序列号向所述第一设备发送第一确认应答;

所述发送模块,还用于将所述接收模块接收的第一数据转发给所述第二设备;

所述更新模块,还用于将所述获取模块获取的第一方向起始序列号更新为所述第一方向应答序列号。

结合第二方面,在第二方面的第一种可能的实现方式中,所述获取模块,还用于获取对应第二方向的第二方向应答序列号;其中,

所述第二方向应答序列号为所述第二方向的终止数据所对应的终止序号加1,所述第二方向的终止数据为上一次缓存在所述代理设备中、且在所述第二方向上的最后一个数据;

所述接收模块,还用于接收所述第二设备在所述第二方向上发送给所述第一设备的第二数据;

所述更新模块,还用于将所述获取模块获取的第二方向应答序列号更新为所述接收模块接收的第二数据的终止序号加1;

所述发送模块,还用于根据所述更新模块更新后的第二方向应答序列号和所述获取模块获取的第一方向起始序列号向所述第二设备发送第二确认应答;

所述发送模块,还用于将所述接收模块接收的第二数据转发给所述第一设备;

所述更新模块,还用于将所述获取模块获取的所述第二方向起始序列号更新为所述第二方向应答序列号。

结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述代理设备还包括:判断模块,用于确定所述第二数据中的应答序列号与所述第二方向应答序列号是否相同。

结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述判断模块具体用于判断本地是否缓存有所述第一数据,如果判断结果为是,确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

结合第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述代理设备还包括:记录模块,用于记录所述第一确认应答中的应答序列号;

所述判断模块具体用于:如果确定出所述记录模块记录的第一确认应答中的应答序列号与所述接收模块接收的第二数据中的应答序列号不相同,则确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述获取模块具体用于:从所述接收模块在所述客户端从源网络侧设备切换到所述代理设备时,接收的下行数据中获取所述第一方向起始序列号、所述第一方向应答序列号、所述第二方向起始序列号和所述第二方向应答序列号,其中,所述下行数据包括所述源网络侧设备转发的、且缓存于所述源网络侧设备的所述互联网服务器向所述客户端发送的下行数据,所述源网络侧设备是在发生切换前所述客户端所附着的网络侧设备,所述代理设备是发生切换后所述客户端所附着的网络侧设备。

结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式或第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述发送模块,还用于在所述客户端从所述代理设备切换到目标网络侧设备时,向所述目标网络侧设备发送尚缓存于所述代理设备的、且所述互联网服务器向所述客户端发送的下行数据,以使所述目标网络侧设备继续转发所接收的下行数据至所述客户端;其中,所述代理设备是发生切换前所述客户端所附着的网络侧设备,所述目标网络侧设备是发生切换后所述客户端所附着的网络侧设备。

第三方面提供一种数据传输系统,包括:第一设备、第二设备及第二方面提供的任一代理设备。

第四方面提供一种代理设备,包括:

处理器,用于获取对应第一方向的第一方向起始序列号、第一方向应答序列号和对应第二方向的第二方向起始序列号;其中,第一设备与第二设备之间建立传输控制协议TCP的连接,所述第一设备为客户端,所述第二设备为互联网服务器,或者,所述第一设备为互联网服务器,所述第二设备为客户端;所述代理设备与所述客户端通过无线方式交互,所述代理设备与所述互联网服务器通过有线方式交互;其中,

所述第一方向为所述第一设备向所述第二设备发送数据的方向,所述第二方向为所述第二设备向所述第一设备发送数据的方向;

所述第一方向起始序列号为所述第一方向的起始数据所对应的起始序号,所述第一方向的起始数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的第一个数据;

所述第一方向应答序列号为所述第一方向的终止数据所对应的终止序号加1,所述第一方向的终止数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的最后一个数据;

所述第二方向起始序列号为所述第二方向的起始数据所对应的起始序号,所述第二方向的起始数据为上一次缓存在所述代理设备中、且在所述第二方向上传输的第一个数据;

接收器,用于接收所述第一设备在所述第一方向上发送给所述第二设备的第一数据;

所述处理器,还用于将所述第一方向应答序列号更新为所述接收器接收的第一数据的终止序号加1;

发射器,用于根据所述处理器更新后的第一方向应答序列号和所述处理器获取的所述第二方向起始序列号向所述第一设备发送第一确认应答;

所述发射器,还用于将所述接收器接收的第一数据转发给所述第二设备;

所述处理器,还用于将所述第一方向起始序列号更新为所述第一方向应答序列号。

结合第四方面,在第四方面的第一种可能的实现方式中,所述处理器,还用于获取对应第二方向的第二方向应答序列号;其中,

所述第二方向应答序列号为所述第二方向的终止数据所对应的终止序号加1,所述第二方向的终止数据为上一次缓存在所述代理设备中、且在所述第二方向上的最后一个数据;

所述接收器,还用于接收所述第二设备在所述第二方向上发送给所述第一设备的第二数据;

所述处理器,还用于将所述获取的第二方向应答序列号更新为所述接收器接收的第二数据的终止序号加1;

所述发射器,还用于根据所述处理器更新后的第二方向应答序列号和所述第一方向起始序列号向所述第二设备发送第二确认应答;

所述发射器,还用于将所述接收器接收的第二数据转发给所述第一设备;

所述处理器,还用于将所述第二方向起始序列号更新为所述第二方向应答序列号。

结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述处理器还用于确定所述第二数据中的应答序列号与所述第二方向应答序列号是否相同。

结合第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述处理器具体用于判断本地是否缓存有所述第一数据,如果判断结果为是,确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

结合第四方面的第二种可能的实现方式,在第四方面的第四种可能的实现方式中,所述处理器,还用于记录所述第一确认应答中的应答序列号;

所述处理器具体用于:如果确定出所述记录的第一确认应答中的应答序列号与所述第二数据中的应答序列号不相同,则确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

结合第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式或第四方面的第三种可能的实现方式或第四方面的第四种可能的实现方式,在第四方面的第五种可能的实现方式中,所述处理器具体用于从所述接收器在所述客户端从源网络侧设备切换到所述代理设备时,接收的下行数据中获取所述第一方向起始序列号、所述第一方向应答序列号、所述第二方向起始序列号和所述第二方向应答序列号,其中,所述下行数据包括所述源网络侧设备转发的、且缓存于所述源网络侧设备的所述互联网服务器向所述客户端发送的下行数据,所述源网络侧设备是在发生切换前所述客户端所附着的网络侧设备,所述代理设备是发生切换后所述客户端所附着的网络侧设备。

结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式或第四方面的第三种可能的实现方式或第四方面的第四种可能的实现方式或第四方面的第五种可能的实现方式,在第四方面的第六种可能的实现方式中,所述发送器还用于,在所述客户端从所述代理设备切换到目标网络侧设备时,向所述目标网络侧设备发送尚缓存于所述代理设备的、且所述互联网服务器向所述客户端发送的下行数据,以使所述目标网络侧设备继续转发所接收的下行数据至所述客户端;其中,所述代理设备是发生切换前所述客户端所附着的网络侧设备,所述目标网络侧设备是发生切换后所述客户端所附着的网络侧设备。

本发明实施例提供的数据传输方法、系统及代理设备,客户端与互联网服务器之间建立TCP的连接,代理设备与客户端通过无线方式交互,代理设备与互联网服务器之间通过有线方式交互,代理设备获取客户端向互联网服务器发送数据的方向上的起始序列号和应答序列号以及互联网服务器向客户端发送数据的方向上的起始序列号,或者获取互联网服务器向客户端发送数据的方向上的起始序列号和应答序列号以及客户端向互联网服务器发送数据的方向上的起始序列号,并根据所获取的相应方向上的起始序列号和应答序列号,将互联网服务器发送给客户端的数据转发给客户端或者将客户端发送给互联网服务器的数据转发给互联网服务器,并更新相应的起始序列号和应答序列号,实现对互联网服务器与客户端之间的数据的转发,由于代理设备并未分别与客户端和互联网服务器真正建立TCP的连接,数据的传输都是基于客户端与互联网服务器之间的TCP连接进行的,在数据传输过程中并未涉及TCP连接的中断与重新建立,所以不会影响无线网络的服务质量。

附图说明

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

图1为本发明各实施例所基于的客户端通过移动通信网络访问互联网内容的网络结构示意图;

图2A为本发明实施例提供的一种数据传输方法的流程图;

图2B为本发明实施例提供的另一种数据传输方法的流程图;

图3为本发明实施例提供的又一种数据传输方法的流程图;

图4为本发明实施例提供的又一种数据传输方法的流程图;

图5为本发明实施例提供的又一种数据传输方法的流程图;

图6为本发明实施例提供的又一种数据传输方法的流程图;

图7为本发明实施例提供的一种代理设备的结构示意图;

图8为本发明实施例提供的另一种代理设备的结构示意图;

图9为本发明实施例提供的又一种代理设备的结构示意图。

具体实施方式

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

图1为本发明各实施例所基于的客户端通过移动通信网络访问互联网内容的网络结构示意图。图2A为本发明实施例提供的一种数据传输方法的流程图。如图1所示,客户端与互联网服务器之间移动通信网络建立TCP的连接。在本实施例中,为了不对上下行进行限制,用第一设备和第二设备表示客户端与互联网服务器,即第一设备与第二设备之间建立TCP的连接,其中,所述第一设备为客户端,则所述第二设备为互联网服务器,或者,所述第一设备为互联网服务器,则所述第二设备为客户端。另外,代理设备与所述客户端通过无线方式交互,所述代理设备与所述互联网服务器通过有线方式交互。如图2A所示,本实施例的方法包括:

201、所述代理设备获取对应第一方向的第一方向起始序列号、第一方向应答序列号和对应第二方向的第二方向起始序列号,其中,所述第一方向为所述第一设备向所述第二设备发送数据的方向,所述第二方向为所述第二设备向所述第一设备发送数据的方向。

其中,所述第一方向起始序列号为所述第一方向的起始数据所对应的起始序号,所述第一方向的起始数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的第一个数据;

所述第一方向应答序列号为所述第一方向的终止数据所对应的终止序号加1,所述第一方向的终止数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的最后一个数据;

所述第二方向起始序列号为所述第二方向的起始数据所对应的起始序号,所述第二方向的起始数据为上一次缓存在所述代理设备中、且在所述第二方向上传输的第一个数据。

第一设备向第二设备发送的数据或者第二设备向所述第一设备发送的数据都携带一个起始序列号和一个应答序列号。将第一方向的起始数据所对应的起始序号称为第一方向起始序列号;将第一方向的终止数据所对应的终止序号加1称为第一方向应答序列号;将第二方向的起始数据所对应的起始序号称为第二方向起始序列号。

在本发明各实施例中,所述第一方向的起始数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的第一个数据,所述第一方向的终止数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的最后一个数据。第一方向的第一个数据至最后一个数据缓存于该代理设备,且尚未发送至第二设备。当代理设备将缓存的第一方向的第一个数据至最后一个数据发送给第二设备,并且被第二设备通过TCP确认收到后,代理设备可以删除所缓存的第一方向的第一个数据至最后一个数据。

同理,在本发明各实施例中,所述第二方向的起始数据为上一次缓存在所述代理设备中、且在所述第二方向上传输的第一个数据,相应的,将上一次缓存在所述代理设备中、且在所述第二方向上传输的最后一个数据称为第二方向的终止数据。第二方向的第一个数据至最后一个数据缓存于该代理设备,尚未发送至第一设备。当代理设备将缓存的第二方向的第一个数据至最后一个数据发送给第一设备,并且被第一设备通过TCP确认收到后,代理设备可以删除所缓存的第二方向的第一个数据至最后一个数据。在此说明,本发明各实施例中所述的“缓存”包括较长时间的缓存,也包括临时的缓存。

在本实施例中,客户端通过移动通信网络访问互联网中的互联网服务器,客户端与互联网服务器之间建立TCP的连接;而移动通信网络中的代理设备与客户端通过无线方式交互,并与互联网服务器通过有线方式交互。代理设备会在客户端与互联网服务器之间建立好TCP连接后,在开始或未开始传输数据时启动TCP代理功能,在确定启动TCP代理功能后,会利用客户端与互联网服务器之间已经存在的TCP连接分别与客户端和互联网服务器进行通信,进而完成对客户端与互联网服务器之间的数据的转发。

上述移动通信网络可以是长期演进(Long Term Evolution,简称为LTE)网络、通用移动通信系统(Universal Mobile Telecommunications System,简称为UMTS)或全球微波互联接入(Worldwide Interoperability for Microwave Access,简称为WiMax)网络等。以UMTS网络为例,则代理设备可以是UMTS陆地无线接入网(UMTS Terrestrial Radio Access Network,简称为UTRAN)设备或无线网络控制器(Radio Network Controller,简称为RNC)等。以LTE网络为例,则代理设备可以是演进的UTRAN(Evolved-UTRAN,简称为E-UTRAN)设备、服务网关(Serving Gateway,简称为SGW)或分组数据网络网关(Packet Data Network Gateway,简称为PDN GW)等。

202、所述代理设备接收所述第一设备在所述第一方向上发送给所述第二设备的第一数据,将所述第一方向应答序列号更新为所述第一数据的终止序号加1。

其中,第一数据可以为客户端向互联网服务器发送的上行数据;或者第一数据可以为互联网服务器向客户端发送的下行数据。

代理设备在获取第一方向起始序列号、第一方向应答序列号和第二方向起始序列号之后,会接收第一设备发送给第二设备的第一数据,并将第一方向应答序列号更新为第一数据的终止序号加1。

可选的,如果第一设备向代理设备发送第一数据的速度大于代理设备向第二设备转发第一数据的速度,则代理设备在接收到第一设备发送给第二设备的第一数据后,可以将所接收的第一数据缓存在本地。

203、所述代理设备根据所述更新后的第一方向应答序列号和所述第二方向起始序列号向所述第一设备发送第一确认应答。

代理设备接收到第一设备发送给第二设备的第一数据之后,代理第二设备向第一设备发送确认应答,为便于区分这里的确认应答称为第一确认应答。

由于客户端与互联网服务器之间存在代理设备,代理设备负责客户端与互联网服务器之间数据的缓存与转发,在该转发过程中,代理设备将客户端与互联网服务器之间的数据发送切分为两个处理过程,一个是代理设备与互联网服务器之间的处理过程,一个是代理设备与客户端之间的处理过程,在上述处理过程中,代理设备还要代替客户端向互联网服务器返回确认应答,或者代替互联网服务器向客户端返回确认应答,另外互联网服务器或客户端也会向代理设备发送确认应答。由于确认应答是代理设备与客户端之间交互的数据,或者是代理设备与互联网服务器之间交互的数据,因此不属于本实施例所述的第一数据或后面涉及的第二数据。

204、所述代理设备将所述第一数据转发给所述第二设备,并将所述第一方向起始序列号更新为所述第一方向应答序列号。

在此说明,步骤204中的第一方向应答序列号是指更新之前的第一方向应答序列号。至此,代理设备完成了第一设备向第二设备发送的数据的转发。

进一步,如图2B所示,该实施例提供的数据传输方法还包括:

205、所述代理设备获取对应第二方向的第二方向应答序列号;其中,所述第二方向应答序列号为所述第二方向的终止数据所对应的终止序号加1,所述第二方向的终止数据为上一次缓存在所述代理设备中、且在所述第二方向上传输的最后一个数据。

206、所述代理设备接收所述第二设备在所述第二方向上发送给所述第一设备的第二数据,将所述第二方向应答序列号更新为所述第二数据的终止序号加1。

其中,第二数据可以为客户端向互联网服务器发送的上行数据;或者第二数据可以为互联网服务器向客户端发送的下行数据。

207、所述代理设备根据所述更新后的第二方向应答序列号和所述第一方向起始序列号向所述第二设备发送第二确认应答。

208、所述代理设备将所述第二数据转发给所述第一设备,并将所述第二方向起始序列号更新为所述第二方向应答序列号。

同理,步骤208中的第二方向应答序列号是指更新之前的第二方向应答序列号。

代理设备除了接收第一设备发送给第二设备的第一数据,并代替第二设备向第一设备返回第一确认应答之外,还会接收第二设备发送给第一设备的第二数据,并代替第一设备向第二设备返回确认应答,将这里的确认应答称之为第二确认应答,并将第二数据转发至第一设备。代理设备接收并向第一设备转发第二数据的过程,与代理设备接收并向第二设备转发第一数据的过程是独立的过程。

在一可选实施方式中,第一设备接收到代理设备发送的第二数据之后,可以不向代理设备返回确认应答。

在一可选实施方式中,第一设备接收到代理设备发送的第二数据之后,向代理设备返回确认应答,这里的确认应答称为第三确认应答。第三确认应答中的起始序列号为第一方向应答序列号,第三确认应答中的应答序列号为第二方向起始序列号加上第二数据的长度,即为更新后的第二方向起始序列号。

进一步,本实施例提供的数据传输方法还可以包括:

所述代理设备在将第二方向应答序列号更新为第二数据的终止序号加1之前,需要确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

可选的,代理设备确定第二数据中的应答序列号与所述第二方向应答序列号不相同,包括:

所述代理设备判断本地是否缓存有所述第一数据(这里的第一数据是指第一设备需要发送给第二设备的数据);如果判断结果为是,确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

进一步,本实施例提供的数据传输方法还包括:

所述代理设备记录所述第一确认应答中的应答序列号。基于此,所述代理设备确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同,包括:

如果所述代理设备确定出所述第一确认应答中的应答序列号与所述第二数据中的应答序列号不相同,则确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

在此说明,在不同的应用场景中,代理设备获取对应第一方向的第一方向起始序列号、第一方向应答序列号和对应第二方向的第二方向起始序列号和第二方向应答序列号的方式会有所不同。

例如,在一种应用场景中,代理设备作为第一设备当前的且初始所附着的网络侧设备,且第一设备与第二设备通过该代理设备建立TCP连接,则代理设备可以通过记录TCP连接建立过程中的参数,从所记录的参数中获取第一方向起始序列号、第一方向应答序列号和第二方向起始序列号和第二方向应答序列号,这里所述的TCP连接建立过程是指第一设备与第二设备通过该代理设备建立TCP连接的过程。代理设备所记录的参数包括但不限于:该TCP连接对应的源IP地址和目的IP地址,TCP连接建立过程中第一设备向第二设备发送数据的起始序列号,TCP连接建立过程中第二设备向第一设备发送数据的起始序列号,TCP连接建立过程中第一设备应答第二设备发送数据的应答序列号以及TCP连接建立过程中第二设备应答第一设备发送数据的应答序列号。

在另一应用场景中,以客户端初始附着的网络侧设备为源网络侧设备,代理设备是客户端发生切换后附着的网络侧设备,其中,客户端可以作为第一设备,则第二设备为互联网服务器,或者客户端可以作为第二设备,则互联网服务器为第一设备。客户端从一个服务小区切换到另一个服务小区,即从源网络侧设备切换到代理设备,则源网络侧设备是发生切换前客户端所附着的网络侧设备,而代理设备是发生切换后客户端所附着的网络侧设备。在发生切换时,源网络侧设备向代理设备发送缓存于该源网络侧设备的、且互联网服务器向客户端发送的下行数据。其中,在发生切换之前,源网络侧设备会缓存互联网服务器向客户端发送的且尚未发送至客户端的下行数据,在发生切换时,代理设备接收源网络侧设备转发的、且缓存于源网络侧设备的互联网服务器向客户端发送的下行数据,代理设备接收到源网络侧设备转发的下行数据之后,代理设备可以从所接收的下行数据中获取第一方向起始序列号、第一方向应答序列号、第二方向起始序列号和第二方向应答序列号。即在该应用场景中,所述代理设备获取对应第一方向的第一方向起始序列号、第一方向应答序列号、对应第二方向的第二方向起始序列号及第二方向应答序列号包括:所述代理设备在所述客户端从源网络侧设备切换到所述代理设备时,接收所述源网络侧设备转发的、且缓存于所述源网络侧设备的所述互联网服务器向所述客户端发送的第三数据,从所述源网络侧设备转发的第三数据中获取所述第一方向起始序列号、所述第一方向应答序列号、所述第二方向起始序列号和所述第二方向的终止序列号,其中,所述源网络侧设备是在发生切换前所述客户端所附着的网络侧设备,所述代理设备是发生切换后所述客户端所附着的网络侧设备。

在此说明,在该应用场景中,源网络侧设备可以具有TCP代理功能,也可以不具有TCP代理功能;如果源网络侧设备具有TCP代理功能,则源网络侧设备可以启动了TCP代理功能,也可以没有启动TCP代理功能。在本应用场景中,所述TCP代理功能包括但不限于以下功能:接收互联网服务器发送给客户端的下行数据,在接收到互联网服务器发送给客户端的下行数据后,根据所接收的下行数据将互联网服务器向客户端发送的终止数据所对应的应答序列号更新为所接收的下行数据的终止序号加1,并根据更新后的应答序列号和客户端发送给互联网服务器的起始数据所对应的起始序号向互联网服务器发送确认应答,将所接收的下行数据转发给客户端,并将互联网服务器发送给客户端的起始数据所对应的起始序号更新为所接收的下行数据的终止序号加1(即上述更新后的应答序列号)。在此说明,上述所接收的下行数据的终止序号是指该下行数据中最后一个字节的序号。

从广义角度来看,所述TCP代理功能包括但不限于以下功能:接收所述第一设备在所述第一方向上发送给所述第二设备的第一数据,将所述第一方向应答序列号更新为所述第一数据的终止序号加1,根据所述更新后的第一方向应答序列号和所述第二方向起始序列号向所述第一设备发送第一确认应答,将所述第一数据转发给所述第二设备,并将所述第一方向起始序列号更新为所述第一方向应答序列号。

进一步可选的,如果源网络侧设备具有TCP代理功能且启动了TCP代理功能,则源网络侧设备除了将尚未发送至客户端的下行数据转发给代理设备之外,还可以在代理设备获取第一方向起始序列号、第一方向应答序列号、第二方向起始序列号之后,且在接收互联网服务器发送给客户端的第一数据之前,向代理设备发送第一启动代理指示,第一启动代理指示用于指示代理设备启动TCP代理功能。基于此,代理设备还会在获取第一方向起始序列号、第一方向应答序列号和第二方向起始序列号之后,且在接收互联网服务器发送给客户端的第一数据之前,接收源网络侧设备发送的第一启动代理指示,并根据第一启动代理指示启动TCP代理功能。

代理设备除了根据源网络侧设备发送的第一启动代理指示启动TCP代理功能之外,还可以根据客户端与互联网服务器之间的TCP连接对应的服务质量分类标识(QoS Class Identifier,简称为QCI)等参数,确定启动TCP代理功能,例如,代理设备仅针对某些QCI等级的承载中的TCP连接提供TCP代理功能,则当客户端与互联网服务器之间的TCP连接所在承载的QCI等级满足启动TCP代理功能的要求时,代理设备确定启动TCP代理功能。或者,代理设备可以直接启动TCP代理功能,即代理设备在未获得来自源网络侧设备的启动TCP代理的明确指示,同时也无需查看有关QCI等参数,可以对切换到代理设备所在网络的客户端均立即、无条件地启动TCP代理功能。

进一步,本实施例提供的数据传输方法还可以包括:

所述代理设备在所述客户端从所述代理设备切换到目标网络侧设备时,向所述目标网络侧设备发送、且尚缓存于所述代理设备的所述互联网服务器向所述客户端发送的下行数据,以使所述目标网络侧设备继续转发所接收的下行数据至所述客户端;其中,所述代理设备是发生切换前所述客户端所附着的网络侧设备,所述目标网络侧设备是发生切换后所述客户端所附着的网络侧设备。例如,客户端与互联网服务器之间的TCP连接可以是通过代理设备建立的,客户端从代理设备切换到目标网络侧设备。

在该应用场景中,对目标网络侧设备来说,可以具有TCP代理功能,也可以不具有TCP代理功能,如果目标网络侧设备具有TCP代理功能,目标网络侧设备可以开启了TCP代理功能,也可以没有开启TCP代理功能。如果目标网络侧设备具有且开启了TCP代理功能,则目标网络侧设备接收到代理设备转发的互联网服务器向客户端发送的下行数据后,转发所接收的下行数据的过程与本实施例中代理设备转发第一数据或第二数据的过程相同,在此不再赘述。如果目标网络侧设备不具有TCP代理功能,或者具有TCP代理功能但未开启TCP代理功能,目标网络侧设备可以作为中继设备,直接转发所接收的下行数据,并转发客户端针对所接收的下行数据返回的确认应答。

进一步,如果在发生切换时,代理设备上还缓存有客户端发送给互联网服务器的上行数据,则代理设备在发生切换之前,可以将所缓存的上行数据全部转发给互联网服务器。其中,代理设备在切换前向互联网服务器转发上行数据的过程,具体可参见上述代理设备转发第一数据或第二数据的过程,在此不再赘述。

在一可选实施方式中,可以默认目标网络侧设备是具有TCP代理功能的,例如,代理设备在客户端从该代理设备切换到目标网络侧设备时,除了向目标网络侧设备发送尚缓存于代理设备,且互联网服务器发送给客户端的下行数据之外,还可以向目标网络侧设备发送第二启动代理指示,该第二启动代理指示用于指示目标网络侧设备启动TCP代理功能。

由上述可见,本实施例的代理设备维护第一方向的第一方向起始序列号、第一方向应答序列号和对应第二方向的第二方向起始序列;代理设备每接收到一个数据或者每发送一个数据包就要更新第一方向应答序列号和对应第二方向的第二方向起始序列号。具体的,所述代理设备接收所述第一设备在所述第一方向上发送给所述第二设备的第一数据,更新第一方向应答序列号;所述代理设备将所述第一数据转发给所述第二设备,更新所述第一方向起始序列号。进一步,代理设备还维护第二方向的第二方向应答序列号,所述代理设备接收所述第二设备在所述第二方向上发送给所述第一设备的第二数据,更新所述第二方向应答序列号,所述代理设备将所述第二数据转发给所述第二设备,更新所述第二方向起始序列号。

在本实施例中,客户端与互联网服务器之间建立TCP的连接,代理设备与客户端通过无线方式交互,代理设备与互联网服务器之间通过有线方式交互,代理设备获取客户端向互联网服务器发送数据的方向上的起始序列号和应答序列号以及互联网服务器向客户端发送数据的方向上的起始序列号,或者获取互联网服务器向客户端发送数据的方向上的起始序列号和应答序列号以及客户端向互联网服务器发送数据的方向上的起始序列号,并根据所获取的相应方向上的起始序列号和应答序列号,将互联网服务器发送给客户端的数据转发给客户端或者将客户端发送给互联网服务器的数据转发给互联网服务器,并更新相应的起始序列号和应答序列号,实现对互联网服务器与客户端之间的数据的转发,由于代理设备并未分别与客户端和互联网服务器真正建立TCP的连接,数据的传输都是基于客户端与互联网服务器之间的TCP连接进行的,在数据传输过程中并未涉及到由于客户端的移动性引起的TCP连接的中断与重新建立,所以数据传输不会造成中断,不会影响无线网络的服务质量。

图3为本发明实施例提供的又一种数据传输方法的流程图。如图3所示,本实施例的方法包括:

3a、客户端与互联网服务器通过代理设备建立TCP连接,代理设备记录该TCP连接建立过程中的参数。

TCP连接建立需要三次握手过程。具体的,客户端首先向互联网服务器发送同步(SYN)请求,随机生成一个初始序列号m,首次应答序列号置为0,同时同步请求占据1个字节。互联网服务器接收到客户端发送的同步请求后发送同步确认(SYN ACK)应答,该同步确认应答也占据1个字节。互联网服务器随机生成一个初始序列号n,由于同步请求已经占了1个字节,所以互联网服务器的同步确认应答中的应答序列号置为m+1,即表示序列号为m的数据已经成功接收,希望接收到下一个字节。客户端应答互联网服务器完成TCP连接的建立,该应答携带有零字节的数据。客户端已经向互联网服务器发送了1个字节的数据,因此该应答中的起始序号为m+1,另外,互联网服务器也已经向客户端发送了1个字节的数据,该应答中的应答序列号为n+1,即通知互联网服务器序列号为n的数据已经收到,希望收到接下来的数据。

在本实施例中,上述三次握手过程均通过代理设备这个实体,代理设备记录该TCP连接建立过程中的参数,例如该TCP连接的源IP地址(即客户端的IP地址)、目的IP地址(即互联网服务器的IP地址)、第一方向起始序列号m、第一方向应答序列号0、第二方向起始序列号n以及第二方向应答序列号m+1,并会在客户端应答互联网服务器完成TCP连接的建立的应答消息之后,将第一方向起始序列号m更新为m+1,将第一方向应答序列号0更新为n+1。

在上述三次握手过程中,代理设备仅起到中继的作用。

3b、客户端与互联网服务器之间建立TCP连接之后,代理设备启动TCP代理功能。

在本实施例中,所述TCP代理功能包括两部分,一部分是代理互联网服务器保持与客户端之间的TCP连接,即代理互联网服务器发送到客户端的数据或者接收来自客户端的数据,在发送或接收过程中保持互联网服务器的IP地址、TCP端口号及互联网服务器发送或接收数据的起始序列号和应答序列号;另一部分是代理客户端保持与互联网服务器之间的TCP连接,即代理客户端发送到互联网服务器的数据或者接收来自互联网服务器的数据,并在发送或接收过程中保持客户端的IP地址、TCP端口号及客户端发送或接收数据的起始序列号和应答序列号。其中,代理设备的TCP代理功能对于客户端和互联网服务器是透明的。

由于本实施例的TCP代理功能是在客户端与互联网服务器之间建立TCP连接之后才启动的,且客户端和互联网服务器与代理设备之间并未建立独立的TCP连接,为了区别于现有技术中的代理技术,可以将现有技术中的代理技术称为前TCP代理技术,而将本实施例的代理技术称为后TCP代理技术。

3c、互联网服务器将向客户端发送的下行数据发送给代理设备。

例如,互联网服务器向客户端发送k字节的下行数据。

3d、代理设备缓存互联网服务器发送的下行数据,并根据所记录的参数代替客户端对收到的下行数据进行确认应答。

代理设备接收到了来自互联网服务器的k字节的下行数据,缓存k字节的下行数据,并向互联网服务器发送确认应答,该确认应答占据零字节。代理设备收到k字节的下行数据,下行数据的初始序列号为n+1,下行数据的应答序列号为m+1;则代理设备将向互联网服务器发送的确认应答中的初始序列号置为m+1,将其应答序列号置为n+k+1,代替客户端通知互联网服务器已经成功接收这k字节的数据,并希望接收后续的下行数据,同时代理设备会保持第二方向起始序列号为n,将第二方向应答序列号m+1更新为n+k+1。

可选的,代理设备可以每接收一个下行数据就进行一次确认应答,也可以在接收到多个下行数据后进行一次确认应答。

由于代理设备与客户端之间的无线空口速率可能小于代理设备与互联网服务器之间的固网速率,所以可能会出现网络拥塞,而本实施例的代理设备通过缓存互联网服务器发送给客户端的下行数据,有利于解决网络拥塞的问题。

3e、代理设备根据所记录的参数,将缓存的下行数据下发给客户端。

代理设备在将缓存的下行数据下发给客户端的过程中,还会更新所记录的第二方向起始序列号n,将第二方向起始序列号n更新为所发送的下行数据的终止序列号加1。

3f、代理设备接收来自客户端的确认应答。

在步骤3d和3e描述的通信过程中,代理设备往往会缓存一部分互联网服务器发送给客户端的下行数据,同时代理设备已经代替客户端向互联网服务器发送了这部分下行数据的确认应答,这样互联网服务器继续发送的下行数据的起始序列号与客户端针对代理设备发送的下行数据进行的确认应答的应答序列号将不对应,也即发生序列号失步。所述序列号同步是指互联网服务器发送下行数据使用的起始序列号与客户端应答互联网服务器使用的应答序列号一致,客户端向互联网服务器发送上行数据使用的起始序列号与互联网服务器应答客户端使用的应答序列号一致。但是,互联网服务器继续下发的下行数据的起始序列号与代理设备代替客户端针对该下行数据向互联网服务器发送的确认应答的应答序列号之间是对应的,即保持序列号同步;代理设备向客户端发送的下行数据的起始序列号与客户端针对代理设备发送的下行数据进行的确认应答的应答序列号之间是对应的,即保持序列号同步。

当代理设备将缓存的下行数据全部下发给客户端之后,则互联网服务器发送的下行数据与客户端收到的下行数据的数量相同,此时客户端针对接收到的下行数据进行的确认应答的应答序列号将与互联网服务器继续发送的下行数据的起始序列号恢复对应关系,即恢复客户端与互联网服务器之间的序列号同步。

在上面实施例中提到代理设备与客户端之间的无线空口速率可能会小于代理设备与互联网服务器之间的固网速率,除此之外,在某些部署情形下或者在某些特殊的情形下,还可能出现代理设备与客户端之间的无线空口速率大于代理设备与互联网服务器之间的固网速率的情景,例如,可能是固网出现了一定的拥塞。在这种情景下,代理设备也需要缓存客户端发送给互联网服务器的上行数据。由于代理设备可能会缓存一部分互联网服务器发送给客户端的下行数据,这可能会导致客户端发送上行数据使用的应答序列号与互联网服务器发送下行数据的起始序列号暂时失步。也就是说,客户端发送的上行数据携带的应答序列号仅能体现了客户端接收到的下行数据,而不能体现代理设备缓存的下行数据,基于此,代理设备将客户端发送的上行数据转发给互联网服务器时需要修改该上行数据携带的应答序列号,具体修改为代理设备对互联网服务器发送的最后一个下行数据进行确认应答时使用的应答序列号。下面通过详细实施例说明通过代理设备进行上行数据转发的过程。

图4为本发明实施例提供的又一种数据传输方法的流程图。如图4所示,本实施例的方法包括:

4a、客户端与互联网服务器通过代理设备建立TCP连接,代理设备记录该TCP连接建立过程中的参数。

4b、客户端与互联网服务器之间建立TCP连接之后,代理设备启动TCP代理功能。

上述步骤4a和4b可参见步骤3a和3b,在此不再赘述。

4c、互联网服务器通过代理设备向客户端发送的下行数据。

步骤4c的具体实现可参见上述步骤3c-步骤3f的描述,在此不再赘述。

4d、客户端将向互联网服务器发送的上行数据发送给代理设备。

4e、代理设备判断客户端发送的上行数据中的应答序列号与第二应答序列号是否相同,若不相同,则修改客户端发送的上行数据中的应答序列号为第二应答序列号。其中,第二应答序列号是指互联网服务器发送的最后一个下行数据的终止序号加1,最后一个下行数据的终止序号可由最后一个下行数据的起始序号加上最后一个下行数据的长度再减1获得。

其中,代理设备判断客户端发送的上行数据中的应答序列号与第二应答序列号是否相同方法有多种。例如,一种方式是:检查代理设备本地是否缓存有互联网服务器发送的下行数据,如果缓存有下行数据,可以确定客户端发送的上行数据中的应答序列号与第二应答序列号不相同。另一种方法是:检查代理设备记录的代理设备针对最后一个下行数据进行的确认应答中的应答序列号与客户端发送的上行数据中的应答序列号是否一致;若序号不一致,可以确定客户端发送的上行数据中的应答序列号与第二应答序列号不相同。

可选的,如果代理设备本地没有缓存互联网服务器发送给客户端的下行数据,或者是代理设备针对最后一个下行数据进行的确认应答中的应答序列号与客户端发送的上行数据中的应答序列号一致,则代理设备可以不作修改,直接将客户端发送的上行数据转发给互联网服务器。

4f、代理设备将客户端发送的上行数据或修改应答序列号的上行数据发送给互联网服务器。

图5是针对图4所示实施例的举例说明。在图5中,UESN表示客户端发送上行数据的起始序列号,客户端每发送1个字节的上行数据该起始序列号自动增加1;SrSN表示互联网服务器向客户端发送下行数据的起始序列号,互联网服务器每发送1个字节的下行数据该起始序列号自动增加1。如图5所示,互联网服务器向客户端发送的首个下行数据的起始序列号是Y,终止编号是Y+a1;第二个下行数据的起始序列号是Y+a1+1,终止序列号是Y+a2;依次类推,最后一个下行数据的起始序列号是Y+a6+1,终止序列号是Y+a7。终止序列号是起始序列号与下行数据长度相加再减去1。

从图5中可以看出,客户端接收到起始序列号为Y+a4+1的下行数据(即终止序列号为Y+a5的下行数据)后向代理设备发送了一个长度为k字节的上行数据。此时客户端未收到起始序列号为Y+a5+1、Y+a6+1的下行数据,所以客户端认为互联网服务器一侧的起始序列号为Y+a5+1,在向互联网服务器发送上行数据时会针对该起始序列号Y+a4+1的下行数据进行应答,即会在上行数据中携带应答序列号Y+a5+1;而互联网服务器已经收到代理设备对起始序列号为Y+a5+1、Y+a6+1的确认应答,因此互联网服务器认为的起始序列号已经更新为Y+a7+1,由此可见,客户端认为互联网服务器一侧的起始序列号与互联网服务器一侧认为的起始序列号不再对应,所以代理设备在接收到客户端发送的上行数据后,需要将上行数据中的应答序列号Y+a5+1修改为Y+a7+1。显然,客户端成功接收到起始序列号为Y+a5+1、Y+a6+1的两个下行数据后客户端针对互联网服务器的下行数据进行应答的应答序列号与互联网服务器认为的起始序列号将保持一致。

由于客户端的移动性,客户端可能会从源网络切换到目标网络。在发生切换的情景下,将客户端在源网络中所附着的网络侧设备称为源网络侧设备,将客户端在目标网络中所附着的网络侧设备称为目标网络侧设备。从TCP代理功能来看,客户端从源网络切换到目标网络包括以下四种情形:1)源网络侧设备支持并启动了TCP代理功能,目标网络侧设备支持并启动TCP代理功能;2)源网络侧设备支持但没有启动TCP代理功能,目标网络侧设备支持并启动了TCP代理功能;3)源网络侧设备支持并启动了TCP代理功能,目标网络侧设备不支持TCP代理功能或者是支持但没有启动TCP代理功能;4)源网络侧设备与目标网络侧设备均不支持TCP代理功能或者支持但均没有启动TCP代理功能。在上述四种情形中,本发明实施例仅关注前三种情形,下面将通过具体实施例说明基于TCP代理功能的切换流程。

图6为本发明实施例提供的又一种数据传输方法的流程图。如图6所示,本实施例的方法包括:

6a、客户端与互联网服务器之间建立端到端的TCP连接,并通过该TCP连接进行数据传输,本实施例以互联网服务器向客户端发送下行数据为例进行说明。

具体的,源网络侧设备可能支持并启动了TCP代理功能,也可能不支持TCP代理功能或者支持但没有启动TCP代理功能。如果源网络侧设备支持并启动了TCP代理功能,则源网络侧设备可以按照图1-图3所示实施例中的有关流程负责转发互联网服务器与客户端之间的数据,具体不再赘述。如果源网络侧设备不支持或者支持但没有启动TCP代理功能,则源网络侧设备可以像现有技术那样负责互联网服务器与客户端之间的数据传输。无论是哪种情况,源网络侧设备都可以缓存客户端与互联网服务器之间的数据。

在此说明,源网络侧设备是否启动TCP代理功能对客户端与互联网服务器来说是透明的。

6b、客户端与源网络侧设备进行协商,确定切换到目标网络侧设备上。

6c、源网络侧设备将缓存的互联网服务器发送给客户端的下行数据提供给目标网络侧设备。

在该步骤中,源网络侧设备可能不支持TCP代理功能,或者支持但没有启动TCP代理功能,此时,源网络侧设备可以仅将缓存的下行数据转发给目标网络侧设备。

或者,源网络侧设备也可能支持并启动了TCP代理功能,则源网络侧设备可以仅将缓存的下行数据转发给目标网络侧设备,或者将缓存的下行数据转发给目标网络侧设备,并向目标网络侧设备发送启动代理指示,以指示目标网络侧设备启动TCP代理功能。可选的,源网络侧设备可以通过独立的步骤分别向目标网络侧设备发送缓存的下行数据和启动代理指示,或者,源网络侧设备也可以通过同一步骤向目标网络侧设备发送所缓存的下行数据和启动代理指示。

6d、目标网络侧设备确定是否启动TCP代理功能。

源网络侧设备提供的下行数据携带有源IP地址、目的IP地址、源端口号、目的端口号、起始序列号以及应答序列号等信息,故目标网络侧设备可以根据源网络侧设备转发的下行数据,获得客户端的IP地址与端口号、互联网服务器的IP地址与端口号,客户端发送数据的起始序列号,互联网服务器发送数据的起始序号等参数。

可选的,如果源网络侧设备向目标网络侧设备发送启动代理指示,则目标网络侧设备可以根据源网络侧设备下发的启动代理指示,确定启动TCP代理功能。或者,目标网络侧设备可以根据客户端与互联网服务器之间的TCP连接对应的QCI等参数,确定启动TCP代理功能。目标网络侧设备可以获知客户端与互联网服务器之间的TCP连接对应的QCI等参数。或者,预先约定目标网络侧设备对切换到其所在网络的客户端无条件启动TCP代理功能,则目标网络侧设备可以直接确定启动TCP代理功能。

6e、目标网络侧设备转发互联网服务器发送给客户端的下行数据至客户端。

具体的,如果目标网络侧设备确定启动TCP代理功能,则可以根据从源网络侧设备转发过来的下行数据中获取的客户端的IP地址与端口号、互联网服务器的IP地址与端口号,客户端发送数据的起始序列号,互联网服务器发送数据的起始序号等参数,按照图2A-图4所示实施例中的有关流程,将互联网服务器发送给客户端的下行数据转发至客户端。如果目标网络侧设备不启动TCP代理功能,则可以通过客户端与互联网服务器之间的TCP连接,将互联网服务器发送给客户端的下行数据转发给客户端;在该过程中,目标网络侧设备仅起到中继的作用。

6f、客户端向目标网络侧设备发送确认应答。

由于源网络侧设备可能启动了TCP代理功能,并且已经代替客户端对转发给目标网络侧设备的下行数据向互联网服务器发送了确认应答,此时目标网络侧设备无需再次向互联网服务器发送确认应答。

6g、目标网络侧设备继续接收互联网服务器发送的下行数据,并将接收到的下行数据转发客户端。

在该步骤中,如果目标网络侧设备启动了TCP代理功能,则可以按照图2A-图4所示实施例中的流程,将互联网服务器发送的下行数据转发至客户端并代替客户端向互联网服务器进行确认等。

在此说明,如果源网络侧设备支持并启动了TCP代理功能,可以作为上述实施例中的客户端所在源网络中的代理设备实现;如果目标网络侧设备支持并启动了TCP代理功能,可以作为上述实施例中的客户端所在目标网络中的代理设备实现。

本发明实施例提供的数据传输方法,由于客户端与互联网服务器之间建立TCP的连接,且代理设备与客户端通过无线方式交互,代理设备与互联网服务器之间通过有线方式交互,代理设备基于客户端与互联网服务器之间的TCP连接实现TCP代理功能,代理设备与客户端之间以及代理设备与互联网服务器之间均不需要建立独立的TCP连接,因此,在客户端因为移动性发生网络切换时,客户端与互联网服务器之间的TCP连接不会中断,不需要重新建立TCP连接,解决了现有技术中由于客户端的移动性造成客户端与代理设备以及互联网服务器与代理设备之间的TCP连接需要中断后重新建立的问题,提供了一种不同于现有技术的、且仍然通过代理设备进行数据传输的技术。

图7为本发明一实施例提供的代理设备的结构示意图。如图7所示,所述代理设备包括:获取模块71、接收模块72、更新模块73和发送模块74。

获取模块71,用于获取对应第一方向的第一方向起始序列号、第一方向应答序列号和对应第二方向的第二方向起始序列号;其中,第一设备与第二设备之间建立传输控制协议TCP的连接,所述第一设备为客户端,所述第二设备为互联网服务器,或者,所述第一设备为互联网服务器,所述第二设备为客户端;所述代理设备与所述客户端通过无线方式交互,所述代理设备与所述互联网服务器通过有线方式交互;其中,

所述第一方向为所述第一设备向所述第二设备发送数据的方向,所述第二方向为所述第二设备向所述第一设备发送数据的方向;其中,

所述第一方向起始序列号为所述第一方向的起始数据所对应的起始序号,所述第一方向的起始数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的第一个数据;

所述第一方向应答序列号为所述第一方向的终止数据所对应的终止序号加1,所述第一方向的终止数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的最后一个数据;

所述第二方向起始序列号为所述第二方向的起始数据所对应的起始序号,所述第二方向的起始数据为上一次缓存在所述代理设备中、且在所述第二方向上传输的第一个数据。

接收模块72,与获取模块71连接,用于在获取模块71获取所述第一方向起始序列号、所述第一方向应答序列号和所述第二方向起始序列号之后,接收所述第一设备在所述第一方向上发送给所述第二设备的第一数据。其中,所述第一数据可以是客户端发送给互联网服务器的上行数据,或者可以是互联网服务器发送给客户端的下行数据。

更新模块73,与获取模块71和接收模块72连接,用于将获取模块71获取的所述第一方向应答序列号更新为接收模块72接收的所述第一数据的终止序号加1。

发送模块74,与获取模块71和更新模块73连接,用于根据更新模块73更新后的第一方向应答序列号和获取模块71获取的所述第二方向起始序列号向所述第一设备发送第一确认应答。

发送模块74,还与接收模块72连接,还用于将接收模块72接收的所述第一数据转发给所述第二设备。

更新模块73,还用于将获取模块71获取的所述第一方向起始序列号更新为所述第一方向应答序列号。这里的第一方向应答序列号是获取模块71所获取的第一方向应答序列号,而不是更新后的第一方向应答序列号。

在一可选实施方式中,获取模块71,还用于获取对应第二方向的第二方向应答序列号;其中,所述第二方向应答序列号为所述第二方向的终止数据所对应的终止序号加1,所述第二方向的终止数据为上一次缓存在所述代理设备中、且在所述第二方向上的最后一个数据。

基于此,接收模块72,还用于在获取模块71获取所述第二方向应答序列号之后,接收所述第二设备在所述第二方向上发送给所述第一设备的第二数据。更新模块73,还用于将获取模块71获取的所述第二方向应答序列号更新为接收模块72接收的所述第二数据的终止序号加1。发送模块74还用于根据更新模块73更新后的第二方向应答序列号和获取模块71获取的所述第一方向起始序列号向所述第二设备发送第二确认应答。发送模块74还用于将接收模块72接收的第二数据转发给所述第一设备。更新模块73还用于将获取模块71获取的所述第二方向起始序列号更新为所述第二方向应答序列号。这里的第二方向应答序列号是获取模块71所获取的第二方向应答序列号,而不是更新后的第二方向应答序列号。

进一步,如图8所示,所述代理设备还包括:判断模块75。该判断模块75,用于确定所述第二数据中的应答序列号与所述第二方向应答序列号是否相同。更新模块73用于将获取模块71获取的所述第二方向应答序列号更新为接收模块72接收的所述第二数据的终止序号加1,包括:更新模块73具体用于在判断模块75确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同时,将所述第二方向应答序列号更新为所述第二数据的终止序号加1。判断模块75与接收模块72、获取模块71以及更新模块73连接。

可选的,判断模块75具体可用于:判断本地是否缓存有所述第一数据,如果判断结果为是,确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

进一步,如图8所示,所述代理设备还包括:记录模块76。记录模块76,用于记录所述第一确认应答中的应答序列号。基于此,判断模块75具体可用于:如果确定出记录模块76记录的第一确认应答中的应答序列号与接收模块72接收的第二数据中的应答序列号不相同,则确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。判断模块75还与记录模块76连接。

在一可选实施方式中,获取模块71具体可用于:记录TCP连接建立过程中的参数,从所记录的参数中获取所述第一方向起始序列号、所述第一方向应答序列号、所述第二方向起始序列号和所述第二方向应答序列号;所述TCP连接建立过程是指所述客户端与所述互联网服务器通过所述代理设备建立所述TCP连接的过程。在该实施方式中,客户端与互联网服务器通过所述代理设备建立TCP连接。

在一可选实施方式中,获取模块71具体可用于:从接收模块72在所述客户端从源网络侧设备切换到所述代理设备时,接收的下行数据中获取所述第一方向起始序列号、所述第一方向应答序列号、所述第二方向起始序列号和所述第二方向应答序列号,其中,所述下行数据是所述互联网服务器向所述客户端发送的、且通过所述源网络侧设备转发的并缓存于所述源网络侧设备中的下行数据,所述源网络侧设备是在发生切换前所述客户端所附着的网络侧设备,所述代理设备是发生切换后所述客户端所附着的网络侧设备。相应地,接收模块72,还用于在所述客户端从源网络侧设备切换到所述代理设备时,接收所述源网络侧设备转发的、且缓存于所述源网络侧设备的所述互联网服务器向所述客户端发送的下行数据,并提供给获取模块71。

在一可选实施方式中,发送模块74,还用于在所述客户端从所述代理设备切换到目标网络侧设备时,向所述目标网络侧设备发送尚缓存于所述代理设备的、且所述互联网服务器向所述客户端发送的下行数据,以使所述目标网络侧设备继续转发所接收的下行数据至所述客户端;其中,所述代理设备是发生切换前所述客户端所附着的网络侧设备,所述目标网络侧设备是发生切换后所述客户端所附着的网络侧设备。

本实施例提供的代理设备的各功能模块可用于执行图2A-图6所示方法实施例中的流程,其具体工作原理不再赘述,详见方法实施例的描述。

本实施例提供的代理设备,与客户端通过无线方式交互,与互联网服务器之间通过有线方式交互,客户端与互联网服务器之间建立TCP的连接,本实施例的代理设备获取客户端向互联网服务器发送数据的起始序列号和应答序列号以及互联网服务器向客户端发送数据的起始序列号,或者获取互联网服务器向客户端发送数据的起始序列号和应答序列号以及客户端向互联网服务器发送数据的起始序列号,并根据所获取的相应起始序列号和应答序列号,将互联网服务器发送给客户端的数据转发给客户端或者将客户端发送给互联网服务器的数据转发给互联网服务器,并更新相应的起始序列号和应答序列号,实现对互联网服务器与客户端之间的数据的转发,由于本实施例的代理设备并未分别与客户端和互联网服务器真正建立TCP的连接,数据的传输都是基于客户端与互联网服务器之间的TCP连接进行的,在数据传输过程中并未涉及到由于客户端的移动性引起的TCP连接的中断与重新建立,所以数据传输不会造成中断,不会影响无线网络的服务质量。

图9为本发明实施例提供的又一种代理设备的结构示意图。如图9所示,所述代理设备包括:处理器91、接收器92和发射器93。

处理器91,用于获取对应第一方向的第一方向起始序列号、第一方向应答序列号和对应第二方向的第二方向起始序列号;其中,第一设备与第二设备之间建立传输控制协议TCP的连接,所述第一设备为客户端,所述第二设备为互联网服务器,或者,所述第一设备为互联网服务器,所述第二设备为客户端;所述代理设备与所述客户端通过无线方式交互,所述代理设备与所述互联网服务器通过有线方式交互;其中,

所述第一方向为所述第一设备向所述第二设备发送数据的方向,所述第二方向为所述第二设备向所述第一设备发送数据的方向;其中,

所述第一方向起始序列号为所述第一方向的起始数据所对应的起始序号,所述第一方向的起始数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的第一个数据;

所述第一方向应答序列号为所述第一方向的终止数据所对应的终止序号加1,所述第一方向的终止数据为上一次缓存在所述代理设备中、且在所述第一方向上传输的最后一个数据;

所述第二方向起始序列号为所述第二方向的起始数据所对应的起始序号,所述第二方向的起始数据为上一次缓存在所述代理设备中、且在所述第二方向上传输的第一个数据。

接收器92,用于接收所述第一设备在所述第一方向上发送给所述第二设备的第一数据。

处理器91,还用于将所述第一方向应答序列号更新为所述接收器接收的第一数据的终止序号加1。

发射器93,用于根据处理器91更新后的第一方向应答序列号和处理器91获取的所述第二方向起始序列号向所述第一设备发送第一确认应答。

发射器93,还用于将接收器92接收的第一数据转发给所述第二设备。

处理器91,还用于将所述第一方向起始序列号更新为所述第一方向应答序列号。这里的第一方向应答序列号是处理器91所获取的第一方向应答序列号,而不是更新后的第一方向应答序列号。

可选的,处理器91还用于获取对应第二方向的第二方向应答序列号;其中,所述第二方向应答序列号为所述第二方向的终止数据所对应的终止序号加1,所述第二方向的终止数据为上一次缓存在所述代理设备中、且在所述第二方向上的最后一个数据。基于此,接收器92还用于在处理器91获取所述第二方向应答序列号之后,接收所述第二设备在所述第二方向上发送给所述第一设备的第二数据。处理器91,还用于将所述第二方向应答序列号更新为所述第二数据的终止序号加1。发射器93,还用于根据处理器91更新后的第二方向应答序列号和所述第一方向起始序列号向所述第二设备发送第二确认应答。发射器93,还用于将接收器92所接收的第二数据转发给所述第一设备。处理器91,还用于将所述第二方向起始序列号更新为所述第二方向应答序列号。这里的第二方向应答序列号是处理器91所获取的第二方向应答序列号,而不是更新后的第二方向应答序列号。

可选的,处理器91,还用于确定所述第二数据中的应答序列号与所述第二方向应答序列号是否相同。处理器91用于将所述第二方向应答序列号更新为所述第二数据的终止序号加1,包括:处理器91具体用于在确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同时,将所述第二方向应答序列号更新为所述第二数据的终止序号加1。

可选的,处理器91具体可用于:判断本地是否缓存有所述第一数据,如果判断结果为是,确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同,然后将所述第二方向应答序列号更新为所述第二数据的终止序号加1。或者,

处理器92还用于在发射器93发送所述第一确定应答之后,记录所述第一确认应答中的应答序列号。基于此,处理器92具体可用于:如果确定出所述记录的第一确认应答中的应答序列号与所述第二数据中的应答序列号不相同,则确定所述第二数据中的应答序列号与所述第二方向应答序列号不相同。

在一可选实施方式中,处理器91用于获取第一方向起始序列号、第一方向应答序列号、第二方向起始序列号和第二方向应答序列号,包括:处理器91具体可用于记录TCP连接建立过程中的参数,从所记录的参数中获取所述第一方向起始序列号、所述第一方向应答序列号、所述第二方向起始序列号和所述第二方向应答序列号;所述TCP连接建立过程是指所述客户端与所述互联网服务器通过所述代理设备建立所述TCP连接的过程。在该实施方式中,客户端与互联网服务器通过所述代理设备建立TCP连接。

在一可选实施方式中,处理器91用于获取第一方向起始序列号、第一方向应答序列号、第二方向起始序列号和第二方向应答序列号,包括:处理器91具体可用于从接收器92在所述客户端从源网络侧设备切换到所述代理设备时,所接收的下行数据中获取所述第一方向起始序列号、所述第一方向应答序列号、所述第二方向起始序列号和所述第二方向应答序列号,所述下行数据为所述源网络侧设备转发的、且缓存于所述源网络侧设备的所述互联网服务器向所述客户端发送的下行数据,其中,所述源网络侧设备是在发生切换前所述客户端所附着的网络侧设备,所述代理设备是发生切换后所述客户端所附着的网络侧设备。接收器92还用于在所述客户端从源网络侧设备切换到所述代理设备时,接收所述源网络侧设备转发的、且缓存于所述源网络侧设备的所述互联网服务器向所述客户端发送的下行数据,并提供给处理器91。

进一步,发送器92还用于在所述客户端从所述代理设备切换到目标网络侧设备时,向所述目标网络侧设备发送尚缓存于所述代理设备的、且所述互联网服务器向所述客户端发送的下行数据,以使所述目标网络侧设备继续转发所接收的下行数据至所述客户端;其中,所述代理设备是发生切换前所述客户端所附着的网络侧设备,所述目标网络侧设备是发生切换后所述客户端所附着的网络侧设备。

进一步,如图9所示,所述代理设备还包括:存储器94。存储器94,用于存储程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器94可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

可选的,在具体实现上,如果处理器91、接收器92、发射器93和存储器94独立实现,则处理器91、接收器92、发射器93和存储器94可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果处理器91、接收器92、发射器93和存储器94集成在一块芯片上实现,则处理器91、接收器92、发射器93和存储器94可以通过内部接口完成相同间的通信。

本实施例提供的代理设备可用于执行图2A-图6所示方法实施例中的流程,其具体工作原理不再赘述,详见方法实施例的描述。

本实施例提供的代理设备,与客户端通过无线方式交互,与互联网服务器之间通过有线方式交互,客户端与互联网服务器之间建立TCP的连接,本实施例的代理设备获取客户端向互联网服务器发送数据的方向上的起始序列号和应答序列号以及互联网服务器向客户端发送数据的方向上的起始序列号,或者获取互联网服务器向客户端发送数据的方向上的起始序列号和应答序列号以及客户端向互联网服务器发送数据的方向上的起始序列号,并根据所获取的相应方向上的起始序列号和应答序列号,将互联网服务器发送给客户端的数据转发给客户端或者将客户端发送给互联网服务器的数据转发给互联网服务器,并更新相应的起始序列号和应答序列号,实现对互联网服务器与客户端之间的数据的转发,由于本实施例的代理设备并未分别与客户端和互联网服务器真正建立TCP的连接,数据的传输都是基于客户端与互联网服务器之间的TCP连接进行的,在数据传输过程中并未涉及到由于客户端的移动性引起的TCP连接的中断与重新建立,所以数据传输不会造成中断,不会影响无线网络的服务质量。

本发明实施例提供一种数据传输系统,包括:第一设备、第二设备、以及图7或图8所示的代理设备。

进一步,所述第一设备可以是客户端,所述第二设备可以是互联网服务器,或者所述第一设备可以是互联网服务器,则所述第二设备可以是客户端。关于客户端、服务器以及代理设备相互配合进行数据传输的过程可参见上述方法实施例的描述,在此不再赘述。本实施例提供的数据传输系统同样不会影响无线网络的服务质量。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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