首页> 中国专利> 一种卫星网络环境下实现TCP传输的方法及相应的网关

一种卫星网络环境下实现TCP传输的方法及相应的网关

摘要

一种卫星网络环境下实现TCP传输的方法及相应的网关,包括:PEP中与客户机连接的网关执行以下处理:截取客户机发送给服务器的TCP连接请求,从中提取第一连接信息并向客户机发送伪应答,与客户机建立第一TCP连接;以第一连接信息为数据部分并封装TMSG头,生成请求建立连接的报文并通过卫星链路发送给与服务器连接的对端网关,TMSG头携带第一TCP连接标识;接收到对端网关返回的连接建立成功的应答报文后,记录其中TMSG头携带的第二TCP连接标识并与第一TCP连接标识关联。本发明无需对服务器和客户机的协议栈进行改动,实现了客户机和服务器之间TCP传输的相关处理。

著录项

  • 公开/公告号CN105897665A

    专利类型发明专利

  • 公开/公告日2016-08-24

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201510038936.8

  • 发明设计人 常伟;唐雄;麦伟鹏;晏文彬;

    申请日2015-01-26

  • 分类号H04L29/06(20060101);H04L12/66(20060101);

  • 代理机构11262 北京安信方达知识产权代理有限公司;

  • 代理人解婷婷;龙洪

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-06-19 00:23:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-14

    授权

    授权

  • 2018-02-16

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20150126

    实质审查的生效

  • 2016-08-24

    公开

    公开

说明书

技术领域

本发明涉及卫星通信,更具体地,涉及一种基于卫星网络环境下实现TCP传输的方法及相应的网关。

背景技术

由于卫星技术在现代通讯基础设施中发挥越来越重要的作用,卫星网与地面IP网的结合是当今卫星通信领域最热门的发展趋势。TCP协议是面向连接的传输层协议,向有关应用提供可靠的数据传输。据统计,目前Internet上95%以上的数据流使用TCP作为传输协议。然而当将TCP协议应用于卫星网络环境时,由于卫星信道区别于地面链路的一些固有特点,严重影响了TCP的性能,降低了卫星信道带宽的利用率。

关于如何提高卫星网络环境下TCP的性能,人们已经进行了许多研究,目前常用的提高卫星系统中TCP性能的方法主要采取加速代理(PEP,Performe Enhancment Proxy)的方式,该方式分为单端和双端两种。其中,双端PEP包括分别放置在卫星网络两端的两个网关,如图1所示,所有的TCP连接分割成三段:服务器和主站端PEP(设置在与服务器连接的网关中)连接,主站端PEP和小站端PEP(设置在与客户机连接的网关中)连接,小站端PEP和客户机连接。双端PEP方案不对通信双方的协议栈和应用程序做改动,但是,为了适合于卫星链路的特点,两个网关之间采用不同于TCP的其他协议进行数据传输,此时如何实现客户机和服务器之间的TCP传输,是急待解决的技术问题。

发明内容

有鉴于此,本发明提供了一种卫星网络环境下实现TCP传输的方法,应用于双端加速代理PEP中与客户机连接的网关,所述方法包括以下连接建立的处理:

截取客户机发送给服务器的TCP连接请求,从中提取第一连接信息并向所述客户机发送伪应答,与所述客户机建立第一TCP连接;

以所述第一连接信息为数据部分并封装转换消息TMSG头,生成请求建立连接的报文并通过卫星链路发送给与所述服务器连接的对端网关,所述TMSG头携带用于标识所述第一TCP连接的第一TCP连接标识;

接收到所述对端网关返回的连接建立成功的应答报文后,记录其中TMSG头携带的第二TCP连接标识并与所述第一TCP连接标识关联,所述第二TCP连接标识为所述对端网关和所述服务器建立的TCP连接的标识。

较佳地,

所述TMSG头包括消息类型、连接标识和消息长度字段,其长度小于TCP头的长度。

较佳地,

所述方法还包括以下数据传输的处理:

截取所述客户机通过第一TCP连接发送给所述服务器的TCP数据报文并进行应答,从所述TCP数据报文中提取数据部分并封装TMSG头,生成的数据发送报文通过所述卫星链路发送给所述对端网关,所述TMSG头携带与所述第一TCP连接标识关联的所述第二TCP连接标识;及

从所述卫星链路接收数据发送报文,如其中TMSG头的连接标识为所述第一TCP连接标识,则从所述数据发送报文中提取数据部分并封装相应的TCP头,生成的TCP数据报文通过所述第一TCP连接发送给所述客户机。

较佳地,

所述方法还包括以下连接断开的处理:

检测到所述第一TCP连接的通信中断;

通过所述卫星链路向所述对端网关发送请求关闭连接的报文,其中的TMSG头携带所述第二TCP连接标识;

接收到所述对端网关返回的连接关闭成功的应答报文后,断开所述第一TCP连接。

较佳地,

所述连接建立的处理还包括:将所述第一TCP连接与所述卫星链路关联;

所述方法还包括以下连接断开的处理:检测到所述卫星链路断开,将与所述卫星链路关联的所有TCP连接断开。

有鉴于此,本发明还提供了一种应用于双端加速代理PEP中与客户机连接的网关,包括用户侧协议实体和卫星侧协议实体,其中:

所述用户侧协议实体包括底层的包过滤模块和上层的Socket服务器;

所述包过滤模块包括:

反向转发单元,用于截取客户机与服务器建立TCP连接时发送的连接请求报文和ACK报文,将报文中的目的IP地址和目的端口替换为所述Socket服务器的IP地址和端口后发送给所述Socket服务器;其中,截取所述连接请求报文时,还记录其中包括源IP地址、源端口、目的IP地址和目的端口的第一连接信息并发送给所述Socket服务器;

前向转发单元,用于将所述Socket服务器发送给所述客户机的ACK报文中的源IP地址和源端口替换为所述第一连接信息中的目的IP地址和目的端口后,发送给所述客户机;

所述Socket服务器包括:连接建立模块,用于收到包过滤模块发送的所述连接请求报文和第一连接信息后,向客户机发送ACK报文;及在收到包过滤模块发送的所述ACK报文后,建立与所述客户机的第一TCP连接并生成第一TCP连接标识,通知所述卫星侧协议实体第一TCP连接建立成功,携带所述第一连接信息;

所述卫星侧协议实体包括:连接建立模块,用于收到所述Socket服务器的第一TCP连接建立成功的通知后,以所述第一连接信息为数据部分并封装转换消息TMSG头,生成请求建立连接的报文并通过卫星链路发送给对端网关,所述TMSG头携带所述第一TCP连接标识;及用于收到所述对端网关通过所述卫星链路返回的连接建立成功的应答报文后,记录其中TMSG头携带的第二TCP连接标识并与所述第一TCP连接标识关联,所述第二TCP连接标识为所述对端网关和所述服务器建立的TCP连接的标识。

较佳地,

所述卫星侧协议实体的连接建立模块封装的所述TMSG头包括消息类型、连接标识和消息长度字段,其长度小于TCP头的长度。

较佳地,

所述包过滤模块中的反向转发单元还用于截取经过的TCP数据报文,如其中的连接信息与所述第一连接信息匹配,则所述TCP数据报文来自第一TCP连接,将所述TCP数据报文中的目的IP地址和目的端口替换为所述Socket服务器的IP地址和端口,发送给所述Socket服务器;

所述Socket服务器还包括:报文处理模块,用于接收来自第一TCP连接的所述TCP数据报文并发送TCP应答报文;

所述包过滤模块中的前向转发单元还用于将所述Socket服务器发送给所述客户机的TCP应答报文中的源IP地址和源端口替换为所述第一连接信息中的目的IP地址和目的端口后,发送给所述客户机;

所述卫星侧协议实体还包括:报文收发模块,用于在来自第一TCP连接的所述TCP数据报文的数据部分前封装TMSG头,生成的数据发送报文通过所述卫星链路发送给所述对端网关,所述TMSG头携带与所述第一TCP连接标识关联的所述第二TCP连接标识。

较佳地,

所述卫星侧协议实体的报文收发模块还用于从所述卫星链路接收发送给所述客户机的数据发送报文;

所述Socket服务器中的报文处理模块还用于识别所述卫星侧协议实体接收的数据发送报文,如其中TMSG头的连接标识为所述第一TCP连接标识,则从所述数据发送报文中提取数据部分并封装相应的TCP头,生成的TCP数据报文并通过所述第一TCP连接发送给所述客户机;

所述包过滤模块中的前向转发单元还用于将所述Socket服务器发送给所述客户机的TCP数据报文中的源IP地址和源端口替换为所述第一连接信息中的目的IP地址和目的端口后,发送给所述客户机。

较佳地,

所述Socket服务器还包括:连接维护模块,用于检测到所述第一TCP连接通信中断时,通知所述卫星侧协议实体第一TCP连接中断;及收到所述卫星侧协议实体的连接关闭成功的通知后,断开所述第一TCP连接;

所述卫星侧协议实体还包括:连接维护模块,用于收到所述Socket服务器的第一TCP连接中断的通知后,通过所述卫星链路向所述对端网关发送请求关闭连接的报文,其中的TMSG头携带所述第二TCP连接标识;及用于在接收到所述对端网关返回的连接关闭成功的应答报文后,通知所述Socket服务器连接关闭成功。

较佳地,

所述卫星侧协议实体的连接维护模块还用于在检测到所述卫星链路断开时,向所述Socket服务器发送所述卫星链路断开的通知;

所述Socket服务器的连接维护模块还用于将所述第一TCP连接与所述卫星链路关联;收到所述卫星链路断开的通知后,将与所述卫星链路关联的所有TCP连接断开。

有鉴于此,本发明还提供一种卫星网络环境下实现TCP传输的方法,应用于双端加速代理PEP中与服务器连接的网关,所述方法包括以下连接建立的处理:

接收到与客户机连接的对端网关经卫星链路发送的连接建立请求的报文后,记录其中转换消息TMSG头携带的第一TCP连接标识及数据部分携带所述客户机与所述对端网关建立的第一TCP连接的第一连接信息,所述第一TCP连接标识用于标识所述第一TCP连接;

与所述服务器建立第二TCP连接,连接建立完成后,通过所述卫星链路向所述对端网关返回连接建立成功的应答报文,其中的TMSG头携带用于标识所述第二TCP连接的第二TCP连接标识;将所述第二TCP连接标识和所述第一TCP连接标识关联。

较佳地,

所述TMSG头包括消息类型、连接标识和消息长度字段,其长度小于TCP头的长度。

较佳地,

所述方法还包括以下数据传输的处理:

接收到所述服务器通过所述第二TCP连接发送给所述客户机的TCP数据报文后进行应答,从所述TCP数据报文中提取数据部分并封装TMSG头,生成数据发送报文并通过所述卫星链路发送给所述对端网关,所述TMSG头携带与所述第二TCP连接标识关联的所述第一TCP连接标识;及

从所述卫星链路接收到发送给所述服务器的数据发送报文,如其中TMSG头携带的连接标识为所述第二TCP连接标识,从所述数据发送报文中提取数据部分并封装相应的TCP头,生成的TCP数据报文通过所述第二TCP连接发送给所述服务器。

较佳地,

所述方法还包括以下连接断开的处理:

检测到所述第二TCP连接的通信中断;

通过所述卫星链路向所述对端网关发送请求关闭连接的报文,其中的TMSG头携带所述第一TCP连接标识;

接收到所述对端网关经所述卫星链路返回的连接关闭成功的应答报文后,断开所述第二TCP连接。

较佳地,

所述连接建立的处理还包括:将所述第二TCP连接与所述卫星链路相关联;

所述方法还包括以下连接断开的处理:检测到所述卫星链路断开后,将所述卫星链路关联的所有TCP连接断开。

有鉴于此,本发明还提供了一种应用于双端加速代理PEP中与服务器连接的网关,包括服务器侧协议实体和卫星侧协议实体,其中:

所述卫星侧协议实体包括:连接建立模块,用于接收到与客户机连接的对端网关经卫星链路发送的连接建立请求的报文后,记录其中转换消息TMSG头携带的第一TCP连接标识及数据部分携带的第一连接信息,并通知所述服务器侧协议实体建立与服务器的第二TCP连接;所述第一连接信息为所述对端网关与所述客户机建立的第一TCP连接的连接信息,所述第一TCP连接标识用于标识所述第一TCP连接;

所述服务器侧协议实体包括:连接建立模块,用于收到所述建立TCP连接的通知后,与所述服务器建立所述第二TCP连接,生成用于标识所述第二TCP连接的第二TCP连接标识,通过所述卫星链路向所述对端网关返回连接建立成功的应答报文,携带所述第二TCP连接标识,并通知所述卫星侧协议实体第二TCP连接建立成功,携带所述第二TCP连接标识;

所述卫星侧协议实体的连接建立模块还用于收到服务器侧协议实体所述第二TCP连接建立成功的通知后,通过所述卫星链路向所述对端网关返回连接建立成功的应答报文,其中的TMSG头携带所述第二TCP连接标识;将所述第二TCP连接标识和所述第一TCP连接标识关联。

较佳地,

所述服务器侧协议实体还包括:报文收发模块,用于接收所述服务器通过所述第二TCP连接发送给所述客户机的TCP数据报文并进行应答;

所述卫星侧协议实体还包括:报文收发模块,用于从所述服务器侧协议实体接收的所述TCP数据报文中提取数据部分并封装TMSG头,生成的数据发送报文通过所述卫星链路发送给所述对端网关,其中的TMSG头携带与所述第二TCP连接标识关联的所述第一TCP连接标识。

较佳地,

所述卫星侧协议实体的报文收发模块还用于从所述卫星链路接收发送给所述服务器的数据发送报文;

所述服务器侧协议实体的报文收发模块还用于识别所述卫星侧协议实体接收的数据发送报文,如其中的TMSG头携带的连接标识为所述第二TCP连接标识,则从所述数据发送报文中提取数据部分并封装相应的TCP头,生成的TCP数据报文通过所述第二TCP连接发送给所述服务器。

较佳地,

所述卫星侧协议实体的报文收发模块封装的所述TMSG头包括消息类型、连接标识和消息长度字段,其长度小于TCP头的长度。

较佳地,

所述服务器侧协议实体还包括:连接维护模块,用于检测到所述第二TCP连接的通信中断时,通知所述卫星侧协议实体第二TCP连接中断;及收到所述卫星侧协议实体的连接关闭成功的通知后,断开所述第二TCP连接;

所述卫星侧协议实体还包括:连接维护模块,用于收到第二TCP连接中断的通知后,通过所述卫星链路向所述对端网关发送请求关闭连接的报文,其中的TMSG头携带所述第一TCP连接标识;及收到所述对端网关返回的连接关闭成功的应答报文后,通知所述服务器侧协议实体连接关闭成功。

较佳地,

所述卫星侧协议实体的连接维护模块还用于在检测到所述卫星链路断开时,向所述服务器侧协议实体发送所述卫星链路断开的通知;

所述服务器侧协议实体的连接维护模块还用于将所述第二TCP连接与所述卫星链路关联;在收到所述卫星链路断开的通知后,将与所述卫星链路关联的所有TCP连接断开。

上述方案在双端PEP场景下,两个网关分别针对服务器和客户机使用TCP欺骗,在无需对服务器和客户机的协议栈进行改动的情况下,实现了客户机和服务器之间TCP传输的相关处理,还可以通过将TCP头置换为更为简单的TMSG头,减少了对带宽的占用。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明典型的卫星通讯应用场景的示意图;

图2是本发明实施例一方法的连接建立的流程图;

图3是本发明实施例一TMSG头结构的示意图;

图4是本发明实施例一方法的数据传输的流程图;

图5是本发明实施例一方法的连接断开处理的流程图;

图6是本发明实施例一与客户机连接的网关的模块图;

图7是本发明实施例二方法的连接建立的流程图;

图8是本发明实施例二方法的数据传输的流程图;

图9是本发明实施例二方法的连接断开处理的流程图;

图10是本发明实施例二与服务器连接的网关的模块图;

图11是本发明应用示例各网元的协议栈的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

实施例一

本实施例涉及卫星网络环境下实现TCP传输的方法,应用于双端加速代理PEP中与客户机连接的网关。

如图2所示,所述方法包括以下连接建立的处理:

步骤110,截取客户机发送给服务器的TCP连接请求,从中提取第一连接信息并向所述客户机发送伪应答,与所述客户机建立第一TCP连接;

步骤120,以所述第一连接信息为数据部分并封装转换消息TMSG头,生成请求建立连接的报文并通过卫星链路发送给与所述服务器连接的对端网关,所述TMSG头携带第一TCP连接标识;

上述第一TCP连接标识用于标识所述第一TCP连接。

如图3所示,本实施例的TMSG头包括消息类型、连接标识和消息长度字段,其长度小于TCP头的长度。其中:

消息类型,包括请求建立连接消息,连接建立成功应答消息,请求关闭连接消息,关闭连接成功应答消息,关闭所有连接消息,数据发送报文等类型的消息,但本发明对消息名称并不限制。

连接标识,包括用于标识客户机与网关之间的第一TCP连接的第一TCP连接标识,及用于标识网关与服务器之间的第二TCP连接的第二TCP连接标识。

消息长度–报文长度,即包含TMSG在内的消息长度。

步骤130,接收到对端网关返回的连接建立成功的应答报文后,记录其中TMSG头携带的第二TCP连接标识并与所述第一TCP连接标识关联。

所述第二TCP连接标识为所述对端网关和所述服务器建立的TCP连接的标识。

如图4所示,本实施例方法还包括与客户机连接的网关传输数据的以下处理:

步骤210,截取所述客户机通过第一TCP连接发送给所述服务器的TCP数据报文并进行应答,从所述TCP数据报文中提取数据部分并封装TMSG头,生成的数据发送报文通过所述卫星链路发送给对端网关,所述TMSG头携带与所述第一TCP连接标识关联的所述第二TCP连接标识;

步骤220,从所述卫星链路接收数据发送报文,如其中TMSG头的连接标识为所述第一TCP连接标识,则从所述数据发送报文中提取数据部分并封装相应的TCP头,生成的TCP数据报文通过所述第一TCP连接发送给所述客户机。

如图5所示,本实施例方法还包括与客户机连接的网关断开连接的以下处理:

步骤310,检测到所述第一TCP连接的通信中断;

步骤320,通过所述卫星链路向所述对端网关发送请求关闭连接的报文,其中的TMSG头携带所述第二TCP连接标识;

步骤330,接收到所述对端网关返回的连接关闭成功的应答报文后,断开所述第一TCP连接。

如果检测到所述卫星链路断开,则与客户机连接的网关将与所述卫星链路关联的所有TCP连接断开。当然在此之前,需要在建立第一TCP连接后将所述第一TCP连接与所述卫星链路关联。

相应地,本实施例还提供了一种应用于双端加速代理PEP中与客户机连接的网关,如图6所示,包括用户侧协议实体10和卫星侧协议实体20,其中:

所述用户侧协议实体10包括底层(指物理层)的包过滤模块101和上层(TCP协议层)的Socket服务器103;

所述包过滤模块101包括:

反向转发单元1011,用于截取客户机与服务器建立TCP连接时发送的连接请求报文和ACK报文,将报文中的目的IP地址和目的端口替换为所述Socket服务器的IP地址和端口后发送给所述Socket服务器;其中,截取所述连接请求报文时,还记录其中包括源IP地址、源端口、目的IP地址和目的端口的第一连接信息并发送给所述Socket服务器;

前向转发单元1013,用于将所述Socket服务器发送给所述客户机的ACK报文中的源IP地址和源端口替换为所述第一连接信息中的目的IP地址和目的端口后,发送给所述客户机;

所述Socket服务器103包括:

连接建立模块1031,用于收到包过滤模块发送的所述连接请求报文和第一连接信息后,向客户机发送ACK报文;及在收到包过滤模块发送的所述ACK报文后,建立与所述客户机的第一TCP连接并生成第一TCP连接标识,通知所述卫星侧协议实体第一TCP连接建立成功,携带所述第一连接信息;

所述卫星侧协议实体20包括:

连接建立模块201,用于收到所述Socket服务器的第一TCP连接建立成功的通知后,以所述第一连接信息为数据部分并封装转换消息TMSG头,生成请求建立连接的报文并通过卫星链路发送给对端网关,所述TMSG头携带所述第一TCP连接标识;及用于收到所述对端网关通过所述卫星链路返回的连接建立成功的应答报文后,记录其中TMSG头携带的第二TCP连接标识并与所述第一TCP连接标识关联,所述第二TCP连接标识为所述对端网关和所述服务器建立的TCP连接的标识。较佳地,所述TMSG头包括消息类型、连接标识和消息长度字段,其长度小于TCP头的长度。

较佳地,

所述包过滤模块101中的反向转发单元1011还用于截取经过的TCP数据报文,如其中的连接信息与所述第一连接信息匹配,则所述TCP数据报文来自第一TCP连接,将所述TCP数据报文中的目的IP地址和目的端口替换为所述Socket服务器的IP地址和端口,发送给所述Socket服务器;

所述Socket服务器103还包括:

报文处理模块1033,用于接收来自第一TCP连接的所述TCP数据报文并发送TCP应答报文;

所述包过滤模块101中的前向转发单元1013还用于将所述Socket服务器发送给所述客户机的TCP应答报文中的源IP地址和源端口替换为所述第一连接信息中的目的IP地址和目的端口后,发送给所述客户机;

所述卫星侧协议实体20还包括:

报文收发模块203,用于在来自第一TCP连接的所述TCP数据报文的数据部分前封装TMSG头,生成的数据发送报文通过所述卫星链路发送给所述对端网关,所述TMSG头携带与所述第一TCP连接标识关联的所述第二TCP连接标识。

较佳地,

所述卫星侧协议实体20的报文收发模块203还用于从所述卫星链路接收发送给所述客户机的数据发送报文;

所述Socket服务器103中的报文处理模块1033还用于识别所述卫星侧协议实体20接收的数据发送报文,如其中TMSG头的连接标识为所述第一TCP连接标识,则从所述数据发送报文中提取数据部分并封装相应的TCP头,生成的TCP数据报文并通过所述第一TCP连接发送给所述客户机;

所述包过滤模块101中的前向转发单元1013还用于将所述Socket服务器发送给所述客户机的TCP数据报文中的源IP地址和源端口替换为所述第一连接信息中的目的IP地址和目的端口后,发送给所述客户机。

较佳地,

所述Socket服务器103还包括:

连接维护模块1035,用于检测到所述第一TCP连接通信中断时,通知所述卫星侧协议实体20第一TCP连接中断;及收到所述卫星侧协议实体20的连接关闭成功的通知后,断开所述第一TCP连接;

所述卫星侧协议实体20还包括:

连接维护模块205,用于收到所述Socket服务器的第一TCP连接中断的通知后,通过所述卫星链路向所述对端网关发送请求关闭连接的报文,其中的TMSG头携带所述第二TCP连接标识;及用于在接收到所述对端网关返回的连接关闭成功的应答报文后,通知所述Socket服务器连接关闭成功。

较佳地,

所述卫星侧协议实体20的连接维护模块205还用于在检测到所述卫星链路断开时,向所述Socket服务器103发送所述卫星链路断开的通知;

所述Socket服务器103的连接维护模块1035还用于将所述第一TCP连接与所述卫星链路关联;收到所述卫星链路断开的通知后,将与所述卫星链路关联的所有TCP连接断开。

实施例二

本实施例涉及卫星网络环境下实现TCP传输的方法,应用于双端加速代理PEP中与服务器连接的网关。

如图7所示,所述方法包括以下连接建立的处理:

步骤410,接收到与客户机连接的对端网关经卫星链路发送的连接建立请求的报文后,记录其中转换消息TMSG头携带的第一TCP连接标识及数据部分携带所述客户机与所述对端网关建立的第一TCP连接的第一连接信息,所述第一TCP连接标识用于标识所述第一TCP连接;

较佳地,所述TMSG头包括消息类型、连接标识和消息长度字段,其长度小于TCP头的长度。

步骤420,与所述服务器建立第二TCP连接,连接建立完成后,通过所述卫星链路向所述对端网关返回连接建立成功的应答报文,其中的TMSG头携带用于标识所述第二TCP连接的第二TCP连接标识;将所述第二TCP连接标识和所述第一TCP连接标识关联。

如图8所示,所述方法还包括以下数据传输的处理:

步骤510,接收到所述服务器通过所述第二TCP连接发送给所述客户机的TCP数据报文后进行应答,从所述TCP数据报文中提取数据部分并封装TMSG头,生成数据发送报文并通过所述卫星链路发送给所述对端网关,所述TMSG头携带与所述第二TCP连接标识关联的所述第一TCP连接标识;

步骤520,从所述卫星链路接收到发送给所述服务器的数据发送报文,如其中TMSG头携带的连接标识为所述第二TCP连接标识,从所述数据发送报文中提取数据部分并封装相应的TCP头,生成的TCP数据报文通过所述第二TCP连接发送给所述服务器。

如图9所示,所述方法还可包括以下连接断开的处理:

步骤610,检测到所述第二TCP连接的通信中断;

步骤620,通过所述卫星链路向所述对端网关发送请求关闭连接的报文,其中的TMSG头携带所述第一TCP连接标识;

步骤630,接收到所述对端网关经所述卫星链路返回的连接关闭成功的应答报文后,断开所述第二TCP连接。

如果检测到所述卫星链路断开后,则与服务器连接的网关将所述卫星链路关联的所有TCP连接断开。当然,该网关需要在建立第二TCP连接后,将所述第二TCP连接与所述卫星链路相关联。

相应地,本实施例还提供了一种应用于双端加速代理PEP中与服务器连接的网关,如图10所示,包括服务器侧协议实体50和卫星侧协议实体60,其中:

所述卫星侧协议实体60包括:

连接建立模块601,用于接收到与客户机连接的对端网关经卫星链路发送的连接建立请求的报文后,记录其中转换消息TMSG头携带的第一TCP连接标识及数据部分携带的第一连接信息,并通知所述服务器侧协议实体建立与服务器的第二TCP连接;所述第一连接信息为所述对端网关与所述客户机建立的第一TCP连接的连接信息,所述第一TCP连接标识用于标识所述第一TCP连接;

所述服务器侧协议实体50包括:

连接建立模块501,用于收到所述建立TCP连接的通知后,与所述服务器建立所述第二TCP连接,生成用于标识所述第二TCP连接的第二TCP连接标识,通过所述卫星链路向所述对端网关返回连接建立成功的应答报文,携带所述第二TCP连接标识,并通知所述卫星侧协议实体第二TCP连接建立成功,携带所述第二TCP连接标识;

所述卫星侧协议实体的连接建立模块601还用于收到服务器侧协议实体所述第二TCP连接建立成功的通知后,通过所述卫星链路向所述对端网关返回连接建立成功的应答报文,其中的TMSG头携带所述第二TCP连接标识;将所述第二TCP连接标识和所述第一TCP连接标识关联。

较佳地,

所述服务器侧协议实体50还包括:

报文收发模块503,用于接收所述服务器通过所述第二TCP连接发送给所述客户机的TCP数据报文并进行应答;

所述卫星侧协议实体60还包括:

报文收发模块603,用于从所述服务器侧协议实体接收的所述TCP数据报文中提取数据部分并封装TMSG头,生成的数据发送报文通过所述卫星链路发送给所述对端网关,其中的TMSG头携带与所述第二TCP连接标识关联的所述第一TCP连接标识。

较佳地,

所述卫星侧协议实体60的报文收发模块603还用于从所述卫星链路接收发送给所述服务器的数据发送报文;

所述服务器侧协议实体50的报文收发模块503还用于识别所述卫星侧协议实体接收的数据发送报文,如其中的TMSG头携带的连接标识为所述第二TCP连接标识,则从所述数据发送报文中提取数据部分并封装相应的TCP头,生成的TCP数据报文通过所述第二TCP连接发送给所述服务器。

较佳地,

所述卫星侧协议实体60的报文收发模块603封装的所述TMSG头包括消息类型、连接标识和消息长度字段,其长度小于TCP头的长度。

较佳地,

所述服务器侧协议实体50还包括:

连接维护模块505,用于检测到所述第二TCP连接的通信中断时,通知所述卫星侧协议实体第二TCP连接中断;及收到所述卫星侧协议实体的连接关闭成功的通知后,断开所述第二TCP连接;

所述卫星侧协议实体60还包括:

连接维护模块605,用于收到第二TCP连接中断的通知后,通过所述卫星链路向所述对端网关发送请求关闭连接的报文,其中的TMSG头携带所述第一TCP连接标识;及收到所述对端网关返回的连接关闭成功的应答报文后,通知所述服务器侧协议实体连接关闭成功。

较佳地,

所述卫星侧协议实体60的连接维护模块605还用于在检测到所述卫星链路断开时,向所述服务器侧协议实体发送所述卫星链路断开的通知;

所述服务器侧协议实体50的连接维护模块505还用于将所述第二TCP连接与所述卫星链路关联;在收到所述卫星链路断开的通知后,将与所述卫星链路关联的所有TCP连接断开。

上述实施例在双端PEP场景下,两个网关分别针对服务器和客户机使用TCP欺骗,在无需对服务器和客户机的协议栈进行改动的情况下,实现了客户机和服务器之间TCP传输的相关处理,还可以通过将TCP头置换为更为简单的TMSG头,对IP+TCP头部进行转换和压缩,减少了对带宽的占用。

下面再以一个应用示例,从整体上对本发明方法和网关做一个说明。

图11示出了上述实施例涉及的客户机、与客户机连接的网关、与服务器连接的网关以及服务器上的协议栈的示意图。

客户机(Client)和服务器上的协议栈均包括TCP、IP和MAC,无需变化。

与客户机连接的网关上,与客户机连接的一侧的协议栈包括:TCP、IP和MAC,物理层协议栈未示出。如上述实施例一中的说明,需要在物理层中设置包过滤模块,与TCP层中的Socket服务器配合,实现对客户机的TCP欺骗(即客户机与该网关通信时,会认为对端就是服务器)。该网关与卫星网络连接一侧的协议栈包括:TMSG和RMAC,TMSG协议用于对报文进行TMSG头的封装和解封装,RMAC协议可以使用各种基于卫星链路的通信协议,如可以是某些针对卫星链路改进的TCP协议,或者专门针对卫星网络而设计的专有协议等,本发明不做局限。

与服务器连接的网关上,与卫星网络连接一侧的协议栈包括:TMSG和RMAC,同样,TMSG协议用于对报文进行TMSG头的封装和解封装,RMAC协议是基于卫星链路的通信协议。

下面描述本示例的连接建立、数据传输以及连接关闭的处理步骤。其中:

建立过程包括:

1)客户机向服务器发起TCP连接请求;

2)连接请求经过GW1时,GW1截获请求报文,记录TCP连接信息;

3)GW1对客户机进行TCP欺骗,发送伪应答,同时向GW2发起建链请求;

4)GW2收到后,记录相关信息,然后根据GW1发送的建链请求里面所带的信息,由GW2与服务器建立TCP连接,TCP建立成功后向GW1回应建链成功消息;

5)双方建立连接成功。

一种示例性的更为具体的处理步骤,包括:

1)客户向服务器发起TCP连接请求;

2)连接请求经过GW1时,GW1底层协议栈包过滤模块截获请求报文,记录TCP连接信息,包括源IP,源端口,目的IP,目的端口;

3)GW1上包过滤模块将该请求报文的目的IP替换GW1的IP,目的端口替换为10086,送到GW1上层的Socket服务器,Socket服务器收到TCP请求消息,对该请求进行应答,应答消息发送给客户机的过程中,经过GW1底层,包过滤模块从记录表里查找第二步中记录的连接信息,如果能找到,则将该应答消息的源IP和源端口替换为表中记录?的服务器的IP和端口;

4)客户机收到该应答消息,认为是真实服务器发送过来的,回应TCP三次握手中的第三条报文,该报文经过GW1时底层抓包模块时同样也被替换掉目的IP和目的端口,发往GW1的上层Socket服务器,至此客户机与GW1之间的TCP连接建立完毕,GW1上会生成一个该连接对应的Socket ID,用作TMSG头中的连接标识;

5)客户机与GW1之间TCP Socket建立完成后,GW1向GW2发送连接请求,封装TMSG头,消息类型为请求建立连接,连接标识填第四步中记录的Socket ID(GW1SID),报文内容为第二步中记录的客户机的源IP源端口,以及服务器的IP和端口;

6)GW2收到后请求,记录报文中携带的源IP,源端口,目的IP,目的端口以及Socket ID,然后向服务器建立TCP连接,TCP三次握手建立成功后,生成一个本端的Socket ID(GW2SID),向GW1回应建链成功消息,封装TMSG头,消息类型为连接建立成功,连接标识填写为GW2SID,报文内容为空;

7)GW1收到连接建立成功的报文,记录下GW2SID;

8)双方建立连接成功。

客户机->服务器方向的数据传输过程包括:

1)客户机发送数据到服务器上;

2)GW1收到后,截获数据报文,取出需要传输的内容,封装TMSG头,通过RMAC协议发送到GW2上去,同时对客户机进行伪应答;

3)GW2收到后,取出数据内容,通过和服务器建好的TCP链路发送给服务器;

4)服务器收到数据后转发到应用层,做进一步处理。

一种示例性的更为具体的处理步骤,包括:

1)客户发送数据到服务器上;

2)GW1收到该报文后,通过包过滤模块收到客户发送的TCP数据报文后,查表通过源IP,源端口,目的IP,目的端口来判断是否存在连接请求记录,不存在则丢弃。存在,则修改TCP数据报文的目的IP地址修改为GW1的IP地址,目的端口修改为10086,送至上层Socket服务器,GW1上层Socket服务器对该数据报文进行应答,至底层包过滤模块,查表替换源IP源端口送至客户机,其处理步骤类似连接建立过程;

3)GW1上层Socket服务器取出TCP报文数据内容,封装TMSG头发送到GW2上,消息类型封装为数据发送,标识连接封装为建立连接时记录的GW2SID;

3)GW2收到该报文后,从中取出数据内容,根据TSMG头中的GW2SID,查找对应的TCP连接,将数据转发到服务器上。

服务器->客户机方向的数据传输过程包括:

1)服务器发送数据到客户机上;

2)GW2收到后,取出数据内容,封装TMSG头,通过RMAC协议发送到GW1上,由于服务器是与GW2建立的TCP连接,所以直接由GW2的协议栈直接给服务器回送应答;

3)GW1收到GW2发送的RMAC报文,取出数据,转换成TCP报文,同时将源IP和源端口换成服务器的源IP和源端口,发送给客户;

4)客户收到数据,转发到应用层,做进一步处理。

一种示例性的更为具体的处理步骤,包括:

1)服务器发送数据到客户机;

2)GW2收到服务器发送过来的数据,取出数据,封装TMSG头发送到GW1上,消息类型为数据发送,标识连接为建立连接时记录的GW1SID;

3)GW1收到该报文后,取出GW1SID,查找对应的TCP连接,将报文发送至客户机;

4)底层包过滤模块截获该报文,后查找连接建立过程中记录的表信息,替换源IP为服务器IP,源端口为服务器端口;

5)客户收到数据后,送至上层应用。

客户机断开连接的过程包括:

1)GW1检测到与客户机之间的TCP连接的通信中断,向GW2发送断开连接请求;

2)GW2收到后关闭与服务器之间的TCP连接,同时清除记录的该连接相关信息,完成后向GW1发送关闭成功消息;

3)GW1收到消息,关闭与客户之间对应的TCP连接,同时清除相关信息。

一种示例性的更为具体的处理步骤,包括:

1)GW1检测到与客户机的TCP连接的通信中断:

2)GW1向GW2发送关闭连接请求,封装TMSG头,消息类型为连接关闭,连接标示符为GW2SID,报文内容为空;

3)GW2收到该请求后,取出GW2SID,关闭与服务器之间的TCP连接,同时向GW1发送关闭成功消息,封装TMSG头,消息类型为连接关闭成功;

4)GW1收到回应消息,关闭与客户机之间的TCP连接。

服务器断开连接的过程包括:

1)GW2检测到与服务器之间的TCP连接的通信中断,向GW1发送断开连接请求;

2)GW1收到请求后,关闭与客户机之间的TCP连接,同时清除记录的该连接相关信息,完成后向GW2发送关闭成功消息;

3)GW2收到消息,关闭与服务器之间的连接,同时清除相关信息。

一种示例性的更为具体的处理步骤,包括:

1)GW2检测到与服务器之间的TCP连接的通信中断;

2)GW2向GW1发送关闭连接请求,封装TMSG头,消息类型为连接关闭,连接标示符为GW1SID,报文内容为空;

3)GW1收到该请求后,取出GW1SID,关闭与客户机之间的TCP连接,同时向GW2发送关闭成功消息,封装TMSG头,消息类型为连接关闭成功;

4)GW2收到回应消息,断开与服务器之间的TCP连接。

卫星链路断开后的处理包括:

1)GW1底层RMAC协议检测到卫星链路断开,关闭与客户机之间所有与该卫星链路关联的TCP连接;

2)GW2底层RMAC协议检测到卫星链路断开,关闭与服务器之间所有与该卫星链路关联的TCP连接。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号