一种用于提高应用程序网络穿透能力的系统和方法.pdf

上传人:b*** 文档编号:1094815 上传时间:2018-03-31 格式:PDF 页数:11 大小:439.88KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910056290.0

申请日:

2009.08.12

公开号:

CN101997817A

公开日:

2011.03.30

当前法律状态:

授权

有效性:

有权

法律详情:

专利权的转移IPC(主分类):H04L 29/06登记生效日:20160202变更事项:专利权人变更前权利人:升东网络科技发展(上海)有限公司变更后权利人:上海犀牛互动网络科技有限公司变更事项:地址变更前权利人:201204 上海市浦东新区港城路2号2415室变更后权利人:200080 上海市虹口区长阳路235号7942室|||授权|||实质审查的生效IPC(主分类):H04L 29/06申请日:20090812|||公开

IPC分类号:

H04L29/06

主分类号:

H04L29/06

申请人:

升东网络科技发展(上海)有限公司

发明人:

冯博文; 刘成光; 张伟

地址:

201204 上海市浦东新区港城路2号2415室

优先权:

专利代理机构:

上海新天专利代理有限公司 31213

代理人:

王敏杰

PDF下载: PDF下载
内容摘要

一种用于提高应用程序网络穿透能力的系统和方法,应用程序网络包括发送端实体及远端实体,发送端实体包括HTTP封装组件、SSL封装组件及发送组件,发送端实体及远端实体使用TCP协议传输数据,远端实体包括端口80及端口443,HTTP封装组件封装在发送端实体与远端实体之间传输失败的数据,SSL封装组件封装在发送端实体与远端实体之间传输失败的数据。包括步骤:1,开始创建连接;2,向远端实体发送数据包;3,远端实体判断在设定的时间内是否收到数据包;4,判断传输是否完成;5,结束传输。本发明使得应用能够使用现有的高效率的通讯方案,又能最大可能的提高网络的穿透能力,做到对布署环境的依赖最小化。

权利要求书

1: 一种用于提高应用程序网络穿透能力的系统和方法, 所述的应用程序网络包括发送 端实体及远端实体 ; 其特征在于 : 所述的发送端实体中包括一次连接的 HTTP 封装组件、 SSL 封装组件、 发送组件及穿透模块 ; 远端实体包括相连接的接收组件及判断 POST 请求组件 ; 所述的发送端实体及远端实体使用 TCP 协议传输数据 ; 所述的远端实体包括端口 80 及端口 443 ; 所述的 HTTP 封装组件封装在发送端实体与远端实体之间传输失败的数据, 传输到远 端实体的 80 端口 ; 所述的 SSL 封装组件封装在发送端实体与远端实体之间传输失败的数据, 传输到远端 实体的 443 端口。
2: 根据权利要求 1 所述的一种用于提高应用程序网络穿透能力的系统和方法, 其特征 在于 : 所述的发送端实体与远端实体之间传输的数据是二进制数据。
3: 根据权利要求 1 所述的一种用于提高应用程序网络穿透能力的系统和方法, 其特征 在于 : 所述的 HTTP 封装组件及 SSL 封装组件封装后传输的数据是二进制数据, 作为 POST 请 求的数据体, 所述的判断 POST 请求组件判断接收到的数据是否有 HTTP POST 请求或 HTTPS POST 请求。
4: 根据权利要求 1 所述的一种用于提高应用程序网络穿透能力的系统和方法, 其特征 在于 : 该方法至少包括如下步骤 : 步骤 1, 发送端实体与远端实体开始创建连接 ; 步骤 2, 发送端实体向远端实体发送数据包 ; 步骤 3, 远端实体判断在设定的时间内是否收到数据包 ; 步骤 4, 发送端实体判断传输是否完成 ; 步骤 5, 结束传输。
5: 根据权利要求 4 所述的一种用于提高应用程序网络穿透能力的系统和方法, 其特征 在于 : 所述的步骤 3 中还包括 : 步骤 3.1, 远端实体的接收组件判断在设定的时间内是否收到数据包, 若收到数据包, 则继续发送 ; 步骤 3.2, 接收组件若没有收到数据包, 则选择穿透方案。
6: 根据权利要求 5 所述的一种用于提高应用程序网络穿透能力的系统和方法, 其特征 在于 : 所述的步骤 3.2 中还包括 : 步骤 3.2.1, 应用使用 TCP 协议连接到远端实体的 80 端口时, 选择方案一 ; 若不是, 则 执行步骤 3.2.2 ; 步骤 3.2.2, 应用使用 TCP 协议连接到远端实体的 443 端口时, 选择方案二。
7: 根据权利要求 6 所述的一种用于提高应用程序网络穿透能力的系统和方法, 其特征 在于 : 所述的步骤 3.2.1 中还包括 : 步骤 3.2.1.1, HTTP 封装组件将原始的数据封装到一个 HTTP 协议包中, 作为 POST 请求 的数据体 ; 步骤 3.2.1.2, 发送组件向远端实体发送数据包 ; 步骤 3.2.1.3, 远端实体的判断 POST 请求组件识别数据是否有 HTTP POST 请求封装, 若 有, 则执行步骤 3.2.1.4, 若没有, 则重新连接 ; 2 步骤 3.2.1.4, 发送组件继续发送数据包。
8: 根据权利要求 6 所述的一种用于提高应用程序网络穿透能力的系统和方法, 其特征 在于 : 所述的步骤 3.2.2 中还包括 : 步骤 3.2.2.1, 用 SSL 封装组件, 发送端实体与远端实体进行的 SSL 初始化过程, 并完成 握手过程 ; 步骤 3.2.2.2, 发送组件向远端实体发送数据包 ; 步骤 3.2.2.3, 远端实体的判断 POST 请求组件识别是否有 HTTPS POST 请求, 若是, 则发 送组件根据 SSL 协议继续发送数据包, 若不是, 则重新连接。
9: 根据权利要求 5 所述的一种用于提高应用程序网络穿透能力的系统和方法, 其特征 在于 : 所述的步骤 4 中还包括 : 步骤 4.1, 发送端实体判断传输是否完成, 若完成, 则执行步骤 5 ; 步骤 4.2, 若传输没有完成, 则判断是否启动穿透模块, 若启动穿透模块, 则执行步骤 3, 若不启动穿透模块, 远端实体向发送端实体提示出错信息, 发送失败后执行步骤 5。

说明书


一种用于提高应用程序网络穿透能力的系统和方法

    技术领域 本发明涉及一种远程通讯的系统和方法, 具体涉及一种用于提高应用程序网络穿 透能力的系统和方法。
     背景技术 目前多数网络通信实体, 都是通过 TCP/IP 协议进行通信。在 TCP/IP 协议的使用 上有很多方式 : 直接使用 TCP 连接后 ( 或是 UDP) 进行自定的二进制协议通信 ; 使用 HTTP 协 议进行通信 ; 使用 SOAP 协议, 或是 Web Service 之类的基于 XML 的高级通信方式。
     现有技术主要有两方面的问题 : 效率和穿透能力。 要么效率高, 但穿透能力差 ( 如 直接基于 TCP 的自定二进制协议 ) ; 要么穿透能力强, 但效率底 ( 如使用 SOAP 等高级的基 于文本和 HTTP 的协议 )。 这里的效率主要指通信实体进行协议处理的时间效率和传输过程 中的数据量带来的空间效率。穿透能力则指在不同的网络拓扑环境下, 成功与远程通讯实 体进行通讯的可能性。
     现有穿透能力强的技术如 SOAP( 应用 SOAP 协议的典型应用代表为 WebServices), 这种技术使用 HTTP 协议传输基于 XML 格式的数据。 这种技术问题在于传输的数据量大, XML 格式的数据在生成和解析时效率也很低。
     现有的效率高的技术一般是使用自定的二进制数据格式, 直接基于 TCP 协议发 送。这种技术问题在于网络穿透能力差 : 要么连接远程通信实体时使用的端口号不是 Well-Known 端口, 容易被封 ; 要么使用 Well-Known 端口连接, 但由于发送的数据不符合相 应协议的格式, 导致被安全工具拦截。
     发明内容
     本发明的目的是提供一种用于提高应用程序网络穿透能力的系统和方法, 它引入 一种两者兼顾的方案, 使得应用能够使用现有的高效率的通讯方案, 又能最大可能的提高 网络的穿透能力, 做到对布署环境的依赖最小化。
     本发明一种用于提高应用程序网络穿透能力的系统和方法的目的是通过以下技 术方案实现的 : 一种用于提高应用程序网络穿透能力的系统和方法, 所述的应用程序网络 包括发送端实体及远端实体 ; 所述的发送端实体中包括一次连接的 HTTP 封装组件、 SSL 封 装组件、 发送组件及穿透模块 ; 远端实体包括相连接的接收组件及判断 POST 请求组件。
     所述的发送端实体及远端实体使用 TCP 协议传输数据。
     所述的远端实体包括端口 80 及端口 443。
     所述的 HTTP 封装组件封装在发送端实体与远端实体之间传输失败的数据, 传输 到远端实体的 80 端口。
     所述的 SSL 封装组件封装在发送端实体与远端实体之间传输失败的数据, 传输到 远端实体的 443 端口。
     上述的一种用于提高应用程序网络穿透能力的系统和方法, 其中, 所述的发送端实体与远端实体之间传输的数据是二进制数据。
     上述的一种用于提高应用程序网络穿透能力的系统和方法, 其中, 所述的 HTTP 封 装组件及 SSL 封装组件封装后传输的数据是二进制数据, 作为 POST 请求的数据体, 判断 POST 请求组件判断接收到的数据是否有 HTTP POST 请求或 HTTPS POST 请求。
     上述的一种用于提高应用程序网络穿透能力的系统和方法, 其中, 该方法至少包 括如下步骤 :
     步骤 1, 发送端实体与远端实体开始创建连接。
     步骤 2, 发送端实体向远端实体发送数据包。
     步骤 3, 远端实体判断在设定的时间内是否收到数据包 :
     步骤 3.1, 远端实体判断在设定的时间内是否收到数据包, 若收到数据包, 则继续 发送 ;
     步骤 3.2, 接收组件若没有收到数据包, 则选择穿透方案 :
     步骤 3.2.1, 应用使用 TCP 协议连接到远端实体的 80 端口时, 选择方案一 ; 若不 是, 则执行步骤 3.2.2 :
     步骤 3.2.1.1, HTTP 封装组件将原始的数据封装到一个 HTTP 协议包中, 作为 POST 请求的数据体 ;
     步骤 3.2.1.2, 发送组件向远端实体发送数据包 ;
     步骤 3.2.1.3, 远端实体的判断 POST 请求组件识别数据是否有 HTTP POST 请求封 装, 若有, 则执行步骤 3.2.1.4, 若没有, 则重新连接 ;
     步骤 3.2.1.4, 发送组件继续发送数据包 ;
     步骤 3.2.2, 应用使用 TCP 协议连接到远端实体的 443 端口时, 选择方案二 :
     步骤 3.2.2.1, 用 SSL 封装组件, 发送端实体与远端实体进行的 SSL 初始化过程, 并 完成握手过程 ;
     步骤 3.2.2.2, 发送组件向远端实体发送数据包 ;
     步骤 3.2.2.3, 远端实体的判断 POST 请求组件识别是否有 HTTPS POST 请求, 若是, 则发送组件根据 SSL 协议继续发送数据包, 若不是, 则重新连接。
     步骤 4, 发送端实体判断传输是否完成 :
     步骤 4.1, 发送端实体判断传输是否完成, 若完成, 则执行步骤 5 ;
     步骤 4.2, 若传输没有完成, 则判断是否启动穿透模块, 若启动穿透模块, 则执行步 骤 3, 若不启动穿透模块, 远端实体向发送端实体提示出错信息, 发送失败后执行步骤 5。
     步骤 5, 结束传输。
     本发明一种用于提高应用程序网络穿透能力的系统和方法由于采用了上述方案, 使之与现有技术相比, 具有以下的优点和积极效果 :
     1、 本发明一种用于提高应用程序网络穿透能力的系统和方法能使用现有的高效 率的通讯方案, 又能最大可能的提高网络的穿透能力。
     2、 本发明一种用于提高应用程序网络穿透能力的系统和方法能做到对不熟环境 的依赖最小化。
     3、 本发明一种用于提高应用程序网络穿透能力的系统和方法成本较低, 效益大, 易于普及应用。附图说明 图 1 是本发明一种用于提高应用程序网络穿透能力的系统和方法的流程图。
     图 2 是本发明一种用于提高应用程序网络穿透能力的系统和方法选择方案一的 流程图。
     图 3 是本发明一种用于提高应用程序网络穿透能力的系统和方法选择方案二的 流程图。
     图 4 是本发明一种用于提高应用程序网络穿透能力的系统和方法的模块图。
     具体实施方式
     请参见附图 4 所示, 本发明用于提高应用程序网络穿透能力的系统和方法, 应用 程序网络包括发送端实体及远端实体 ; 发送端实体中包括一次连接的 HTTP 封装组件、 SSL 封装组件、 发送组件及穿透模块 ; 远端实体包括相连接的接收组件及判断 POST 请求组件 ; 发送端实体及远端实体使用 TCP 协议传输数据 ; 远端实体包括端口 80 及端口 443 ; HTTP 封 装组件封装在发送端实体与远端实体之间传输失败的数据, 传输到远端实体的 80 端口 ; SSL 封装组件封装在发送端实体与远端实体之间传输失败的数据, 传输到远端实体的 443 端口, 发送端实体与远端实体之间传输的数据是二进制数据, HTTP 封装组件及 SSL 封装组 件封装后传输的数据是二进制数据, 作为 POST 请求的数据体, 所述的判断 POST 请求组件判 断接收到的数据是否有 HTTP POST 请求或 HTTPSPOST 请求。 请参见附图 1 所示, 本发明用于提高应用程序网络穿透能力的系统和方法, 该方 法至少包括如下步骤 :
     步骤 1, 发送端实体与远端实体开始创建连接。
     步骤 2, 发送端实体向远端实体发送数据包。
     步骤 3, 远端实体判断在设定的时间内是否收到数据包。
     步骤 4, 发送端实体判断传输是否完成 :
     步骤 4.1, 发送端实体判断传输是否完成, 若完成, 则执行步骤 5 ;
     步骤 4.2, 若传输没有完成, 则判断是否启动穿透模块, 若启动穿透模块, 则执行步 骤 3, 若不启动穿透模块, 远端实体向发送端实体提示出错信息, 发送失败后执行步骤 5。
     步骤 5, 结束传输。
     请参见附图 2 所示, 附图 2 是本发明用于提高应用程序网络穿透能力的系统和方 法的穿透方案一 :
     步骤 3.1, 远端实体判断在设定的时间内是否收到数据包, 若收到数据包, 则继续 发送 ;
     步骤 3.2, 接收组件若没有收到数据包, 则选择穿透方案 :
     步骤 3.2.1, 应用使用 TCP 协议连接到远端实体的 80 端口时, 选择方案一 ; 若不 是, 则执行步骤 3.2.2 :
     步骤 3.2.1.1, HTTP 封装组件将原始的数据封装到一个 HTTP 协议包中, 作为 POST 请求的数据体 ;
     步骤 3.2.1.2, 发送组件向远端实体发送数据包 ;
     步骤 3.2.1.3, 远端实体的判断 POST 请求组件识别数据是否有 HTTP POST 请求封 装, 若有, 则执行步骤 3.2.1.4, 若没有, 则重新连接 ;
     步骤 3.2.1.4, 发送组件继续发送数据包。
     应用使用 TCP 协议连接到远端实体的 80 端口, 并在这条链接上发送端实体直接通 过 send 函数直接发送应用程序自定的二进制通信协议进行通信。但在安装了一些安全工 具后, 可能会对连接远端实体 80 端口进行通信的链接上发送的数据进行检验, 如果不符合 HTTP 标准协议, 就认为是不合法数据, 直接丢弃, 导致通讯失败, 接收组件在设定时间内没 有接收到相应的数据包。在这种情况下, 本发明的方案是将原始的二进制数据用 HTTP 封装 组件封装到一个 HTTP 协议包中, 作为 POST 请求的数据体。由于 HTTP POST 请求数据体可 以为二进制数据, 因此, 这个协议包是一个依法的 HTTP 请求, 将可以通过安全工具的检验。 另外, 由于在原始的数据包前只增加了很少的一个 HTTPPOST 请求头部, 只有几十个字节, 基本上带来的开销可以不计了。这种情况要求远端实体在处理通讯协议时, 判断 POST 请求 组件可以识别数据是否有 HTTP POST 请求封装。这可以在通信协议中指明第一个字节是额 外的协议类别字节, 用于指示是否有 HTTP 封装。
     请参见附图 3 所示, 附图 3 是本发明用于提高应用程序网络穿透能力的系统和方 法的穿透方案二 : 步骤 3.2.2, 应用使用 TCP 协议连接到远端实体的 443 端口时, 选择方案二 :
     步骤 3.2.2.1, 用 SSL 封装组件, 发送端实体与远端实体进行的 SSL 初始化过程, 并 完成握手过程 ;
     步骤 3.2.2.2, 发送组件向远端实体发送数据包 ;
     步骤 3.2.2.3, 远端实体的判断 POST 请求组件识别是否有 HTTPS POST 请求, 若是, 则发送组件根据 SSL 协议继续发送数据包, 若不是, 则重新连接。
     应用使用 TCP 协议连接到远端实体的 443 端口, 并在这条链接上发送端实体直接 通过 send 函数直接发送应用程序自定的二进制通信协议进行通信。但在安装了一些安全 工具后, 可能会对连接远端实体 443 端口进行通信的链接上发送的数据进行检验, 如果不 符合 HTTPS(SSL) 标准协议, 就认为是不合法数据, 直接丢弃, 导致通讯失败, 接收组件在设 定时间内没有接收到相应的数据包。在这种情况下, 本发明的方案是首先与远端通信实体 进行标准的 SSL 初始化过程, 得到 SSL 的会话公钥, 之后, 可以直接在这个 SSL 链路上发送 二进制数据, 而不会被安全工具拦截 ( 因为 HTTPS 上传送的数据都是用公钥加密, 没有私钥 安全工具也无法解开传输的数据, 也就无法验证是否发送的是合法的 HTTP 请求 )。这种情 况要求远端实体在处理通讯协议时, 可以识别第一个请求是否是前导的 SSL 标准请求过程 的第一个请求, 判断 POST 请求组件判断是否有 HTTPS POST 请求, 如果是, 则进行标准的 SSL 公钥分发流程。这可以在通信协议中指明第一个字节是额外的协议类别字节, 用于指示是 否是 SSL 请求。
     本发明一种用于提高应用程序网络穿透能力的系统和方法还可以针对其它的网 络环境进行穿透, 只要这种网络环境下, 至少有一种可用的支持传输二进制内容的网络协 议。 总体来说, 本发明一种用于提高应用程序网络穿透能力的系统和方法分为两部分 : 网络 识别和协议适配。网络识别部分主要是通过人工或自动测试得到当前网络支持的, 协议适 配部分可以支持的, 可以以某种方式传输二进制数据的协议。协议适配部分主要是指针对
     特定的几种协议, 在互相通信的实体端以一定的标识方式可以识别协议种类, 并自动选择 合适的协议交互流程, 以相应协议下合法的数据包传输应用自定的数据。
     本发明一种用于提高应用程序网络穿透能力的系统和方法主要是兼顾了效率和 网络穿透能力, 使用自定的二进制数据格式, 保证了数据生成的解析的高效率, 并且得到一 个紧缩, 节省带宽的数据包。 另一方面, 本发明一种用于提高应用程序网络穿透能力的系统 和方法主要使用基于 TCP 的 Well-Known 端口, 并进行网络识别, 如果没有特别的协议格式 限制, 会不做协议适配, 以最少代价发送数据 ; 不然, 进行协议适配, 以尽可能小的代价, 提 升应用通讯的网络穿透能力。
     综上所述, 本发明一种用于提高应用程序网络穿透能力的系统和方法能使用现有 的高效率的通讯方案, 又能最大可能的提高网络的穿透能力 ; 本发明一种用于提高应用程 序网络穿透能力的系统和方法能做到对不熟环境的依赖最小化 ; 本发明一种用于提高应用 程序网络穿透能力的系统和方法成本较低, 效益大, 易于普及应用。

一种用于提高应用程序网络穿透能力的系统和方法.pdf_第1页
第1页 / 共11页
一种用于提高应用程序网络穿透能力的系统和方法.pdf_第2页
第2页 / 共11页
一种用于提高应用程序网络穿透能力的系统和方法.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种用于提高应用程序网络穿透能力的系统和方法.pdf》由会员分享,可在线阅读,更多相关《一种用于提高应用程序网络穿透能力的系统和方法.pdf(11页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101997817A43申请公布日20110330CN101997817ACN101997817A21申请号200910056290022申请日20090812H04L29/0620060171申请人升东网络科技发展上海有限公司地址201204上海市浦东新区港城路2号2415室72发明人冯博文刘成光张伟74专利代理机构上海新天专利代理有限公司31213代理人王敏杰54发明名称一种用于提高应用程序网络穿透能力的系统和方法57摘要一种用于提高应用程序网络穿透能力的系统和方法,应用程序网络包括发送端实体及远端实体,发送端实体包括HTTP封装组件、SSL封装组件及发送组件,发送端实体。

2、及远端实体使用TCP协议传输数据,远端实体包括端口80及端口443,HTTP封装组件封装在发送端实体与远端实体之间传输失败的数据,SSL封装组件封装在发送端实体与远端实体之间传输失败的数据。包括步骤1,开始创建连接;2,向远端实体发送数据包;3,远端实体判断在设定的时间内是否收到数据包;4,判断传输是否完成;5,结束传输。本发明使得应用能够使用现有的高效率的通讯方案,又能最大可能的提高网络的穿透能力,做到对布署环境的依赖最小化。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书5页附图3页CN101997822A1/2页21一种用于提高应用程序网络穿透能力的系统。

3、和方法,所述的应用程序网络包括发送端实体及远端实体;其特征在于所述的发送端实体中包括一次连接的HTTP封装组件、SSL封装组件、发送组件及穿透模块;远端实体包括相连接的接收组件及判断POST请求组件;所述的发送端实体及远端实体使用TCP协议传输数据;所述的远端实体包括端口80及端口443;所述的HTTP封装组件封装在发送端实体与远端实体之间传输失败的数据,传输到远端实体的80端口;所述的SSL封装组件封装在发送端实体与远端实体之间传输失败的数据,传输到远端实体的443端口。2根据权利要求1所述的一种用于提高应用程序网络穿透能力的系统和方法,其特征在于所述的发送端实体与远端实体之间传输的数据是二。

4、进制数据。3根据权利要求1所述的一种用于提高应用程序网络穿透能力的系统和方法,其特征在于所述的HTTP封装组件及SSL封装组件封装后传输的数据是二进制数据,作为POST请求的数据体,所述的判断POST请求组件判断接收到的数据是否有HTTPPOST请求或HTTPSPOST请求。4根据权利要求1所述的一种用于提高应用程序网络穿透能力的系统和方法,其特征在于该方法至少包括如下步骤步骤1,发送端实体与远端实体开始创建连接;步骤2,发送端实体向远端实体发送数据包;步骤3,远端实体判断在设定的时间内是否收到数据包;步骤4,发送端实体判断传输是否完成;步骤5,结束传输。5根据权利要求4所述的一种用于提高应用。

5、程序网络穿透能力的系统和方法,其特征在于所述的步骤3中还包括步骤31,远端实体的接收组件判断在设定的时间内是否收到数据包,若收到数据包,则继续发送;步骤32,接收组件若没有收到数据包,则选择穿透方案。6根据权利要求5所述的一种用于提高应用程序网络穿透能力的系统和方法,其特征在于所述的步骤32中还包括步骤321,应用使用TCP协议连接到远端实体的80端口时,选择方案一;若不是,则执行步骤322;步骤322,应用使用TCP协议连接到远端实体的443端口时,选择方案二。7根据权利要求6所述的一种用于提高应用程序网络穿透能力的系统和方法,其特征在于所述的步骤321中还包括步骤3211,HTTP封装组件。

6、将原始的数据封装到一个HTTP协议包中,作为POST请求的数据体;步骤3212,发送组件向远端实体发送数据包;步骤3213,远端实体的判断POST请求组件识别数据是否有HTTPPOST请求封装,若有,则执行步骤3214,若没有,则重新连接;权利要求书CN101997817ACN101997822A2/2页3步骤3214,发送组件继续发送数据包。8根据权利要求6所述的一种用于提高应用程序网络穿透能力的系统和方法,其特征在于所述的步骤322中还包括步骤3221,用SSL封装组件,发送端实体与远端实体进行的SSL初始化过程,并完成握手过程;步骤3222,发送组件向远端实体发送数据包;步骤3223,远。

7、端实体的判断POST请求组件识别是否有HTTPSPOST请求,若是,则发送组件根据SSL协议继续发送数据包,若不是,则重新连接。9根据权利要求5所述的一种用于提高应用程序网络穿透能力的系统和方法,其特征在于所述的步骤4中还包括步骤41,发送端实体判断传输是否完成,若完成,则执行步骤5;步骤42,若传输没有完成,则判断是否启动穿透模块,若启动穿透模块,则执行步骤3,若不启动穿透模块,远端实体向发送端实体提示出错信息,发送失败后执行步骤5。权利要求书CN101997817ACN101997822A1/5页4一种用于提高应用程序网络穿透能力的系统和方法技术领域0001本发明涉及一种远程通讯的系统和方。

8、法,具体涉及一种用于提高应用程序网络穿透能力的系统和方法。背景技术0002目前多数网络通信实体,都是通过TCP/IP协议进行通信。在TCP/IP协议的使用上有很多方式直接使用TCP连接后或是UDP进行自定的二进制协议通信;使用HTTP协议进行通信;使用SOAP协议,或是WEBSERVICE之类的基于XML的高级通信方式。0003现有技术主要有两方面的问题效率和穿透能力。要么效率高,但穿透能力差如直接基于TCP的自定二进制协议;要么穿透能力强,但效率底如使用SOAP等高级的基于文本和HTTP的协议。这里的效率主要指通信实体进行协议处理的时间效率和传输过程中的数据量带来的空间效率。穿透能力则指在不。

9、同的网络拓扑环境下,成功与远程通讯实体进行通讯的可能性。0004现有穿透能力强的技术如SOAP应用SOAP协议的典型应用代表为WEBSERVICES,这种技术使用HTTP协议传输基于XML格式的数据。这种技术问题在于传输的数据量大,XML格式的数据在生成和解析时效率也很低。0005现有的效率高的技术一般是使用自定的二进制数据格式,直接基于TCP协议发送。这种技术问题在于网络穿透能力差要么连接远程通信实体时使用的端口号不是WELLKNOWN端口,容易被封;要么使用WELLKNOWN端口连接,但由于发送的数据不符合相应协议的格式,导致被安全工具拦截。发明内容0006本发明的目的是提供一种用于提高应。

10、用程序网络穿透能力的系统和方法,它引入一种两者兼顾的方案,使得应用能够使用现有的高效率的通讯方案,又能最大可能的提高网络的穿透能力,做到对布署环境的依赖最小化。0007本发明一种用于提高应用程序网络穿透能力的系统和方法的目的是通过以下技术方案实现的一种用于提高应用程序网络穿透能力的系统和方法,所述的应用程序网络包括发送端实体及远端实体;所述的发送端实体中包括一次连接的HTTP封装组件、SSL封装组件、发送组件及穿透模块;远端实体包括相连接的接收组件及判断POST请求组件。0008所述的发送端实体及远端实体使用TCP协议传输数据。0009所述的远端实体包括端口80及端口443。0010所述的HT。

11、TP封装组件封装在发送端实体与远端实体之间传输失败的数据,传输到远端实体的80端口。0011所述的SSL封装组件封装在发送端实体与远端实体之间传输失败的数据,传输到远端实体的443端口。0012上述的一种用于提高应用程序网络穿透能力的系统和方法,其中,所述的发送端说明书CN101997817ACN101997822A2/5页5实体与远端实体之间传输的数据是二进制数据。0013上述的一种用于提高应用程序网络穿透能力的系统和方法,其中,所述的HTTP封装组件及SSL封装组件封装后传输的数据是二进制数据,作为POST请求的数据体,判断POST请求组件判断接收到的数据是否有HTTPPOST请求或HTT。

12、PSPOST请求。0014上述的一种用于提高应用程序网络穿透能力的系统和方法,其中,该方法至少包括如下步骤0015步骤1,发送端实体与远端实体开始创建连接。0016步骤2,发送端实体向远端实体发送数据包。0017步骤3,远端实体判断在设定的时间内是否收到数据包0018步骤31,远端实体判断在设定的时间内是否收到数据包,若收到数据包,则继续发送;0019步骤32,接收组件若没有收到数据包,则选择穿透方案0020步骤321,应用使用TCP协议连接到远端实体的80端口时,选择方案一;若不是,则执行步骤3220021步骤3211,HTTP封装组件将原始的数据封装到一个HTTP协议包中,作为POST请求。

13、的数据体;0022步骤3212,发送组件向远端实体发送数据包;0023步骤3213,远端实体的判断POST请求组件识别数据是否有HTTPPOST请求封装,若有,则执行步骤3214,若没有,则重新连接;0024步骤3214,发送组件继续发送数据包;0025步骤322,应用使用TCP协议连接到远端实体的443端口时,选择方案二0026步骤3221,用SSL封装组件,发送端实体与远端实体进行的SSL初始化过程,并完成握手过程;0027步骤3222,发送组件向远端实体发送数据包;0028步骤3223,远端实体的判断POST请求组件识别是否有HTTPSPOST请求,若是,则发送组件根据SSL协议继续发送。

14、数据包,若不是,则重新连接。0029步骤4,发送端实体判断传输是否完成0030步骤41,发送端实体判断传输是否完成,若完成,则执行步骤5;0031步骤42,若传输没有完成,则判断是否启动穿透模块,若启动穿透模块,则执行步骤3,若不启动穿透模块,远端实体向发送端实体提示出错信息,发送失败后执行步骤5。0032步骤5,结束传输。0033本发明一种用于提高应用程序网络穿透能力的系统和方法由于采用了上述方案,使之与现有技术相比,具有以下的优点和积极效果00341、本发明一种用于提高应用程序网络穿透能力的系统和方法能使用现有的高效率的通讯方案,又能最大可能的提高网络的穿透能力。00352、本发明一种用于。

15、提高应用程序网络穿透能力的系统和方法能做到对不熟环境的依赖最小化。00363、本发明一种用于提高应用程序网络穿透能力的系统和方法成本较低,效益大,易于普及应用。说明书CN101997817ACN101997822A3/5页6附图说明0037图1是本发明一种用于提高应用程序网络穿透能力的系统和方法的流程图。0038图2是本发明一种用于提高应用程序网络穿透能力的系统和方法选择方案一的流程图。0039图3是本发明一种用于提高应用程序网络穿透能力的系统和方法选择方案二的流程图。0040图4是本发明一种用于提高应用程序网络穿透能力的系统和方法的模块图。具体实施方式0041请参见附图4所示,本发明用于提高。

16、应用程序网络穿透能力的系统和方法,应用程序网络包括发送端实体及远端实体;发送端实体中包括一次连接的HTTP封装组件、SSL封装组件、发送组件及穿透模块;远端实体包括相连接的接收组件及判断POST请求组件;发送端实体及远端实体使用TCP协议传输数据;远端实体包括端口80及端口443;HTTP封装组件封装在发送端实体与远端实体之间传输失败的数据,传输到远端实体的80端口;SSL封装组件封装在发送端实体与远端实体之间传输失败的数据,传输到远端实体的443端口,发送端实体与远端实体之间传输的数据是二进制数据,HTTP封装组件及SSL封装组件封装后传输的数据是二进制数据,作为POST请求的数据体,所述的。

17、判断POST请求组件判断接收到的数据是否有HTTPPOST请求或HTTPSPOST请求。0042请参见附图1所示,本发明用于提高应用程序网络穿透能力的系统和方法,该方法至少包括如下步骤0043步骤1,发送端实体与远端实体开始创建连接。0044步骤2,发送端实体向远端实体发送数据包。0045步骤3,远端实体判断在设定的时间内是否收到数据包。0046步骤4,发送端实体判断传输是否完成0047步骤41,发送端实体判断传输是否完成,若完成,则执行步骤5;0048步骤42,若传输没有完成,则判断是否启动穿透模块,若启动穿透模块,则执行步骤3,若不启动穿透模块,远端实体向发送端实体提示出错信息,发送失败后。

18、执行步骤5。0049步骤5,结束传输。0050请参见附图2所示,附图2是本发明用于提高应用程序网络穿透能力的系统和方法的穿透方案一0051步骤31,远端实体判断在设定的时间内是否收到数据包,若收到数据包,则继续发送;0052步骤32,接收组件若没有收到数据包,则选择穿透方案0053步骤321,应用使用TCP协议连接到远端实体的80端口时,选择方案一;若不是,则执行步骤3220054步骤3211,HTTP封装组件将原始的数据封装到一个HTTP协议包中,作为POST请求的数据体;0055步骤3212,发送组件向远端实体发送数据包;说明书CN101997817ACN101997822A4/5页700。

19、56步骤3213,远端实体的判断POST请求组件识别数据是否有HTTPPOST请求封装,若有,则执行步骤3214,若没有,则重新连接;0057步骤3214,发送组件继续发送数据包。0058应用使用TCP协议连接到远端实体的80端口,并在这条链接上发送端实体直接通过SEND函数直接发送应用程序自定的二进制通信协议进行通信。但在安装了一些安全工具后,可能会对连接远端实体80端口进行通信的链接上发送的数据进行检验,如果不符合HTTP标准协议,就认为是不合法数据,直接丢弃,导致通讯失败,接收组件在设定时间内没有接收到相应的数据包。在这种情况下,本发明的方案是将原始的二进制数据用HTTP封装组件封装到一。

20、个HTTP协议包中,作为POST请求的数据体。由于HTTPPOST请求数据体可以为二进制数据,因此,这个协议包是一个依法的HTTP请求,将可以通过安全工具的检验。另外,由于在原始的数据包前只增加了很少的一个HTTPPOST请求头部,只有几十个字节,基本上带来的开销可以不计了。这种情况要求远端实体在处理通讯协议时,判断POST请求组件可以识别数据是否有HTTPPOST请求封装。这可以在通信协议中指明第一个字节是额外的协议类别字节,用于指示是否有HTTP封装。0059请参见附图3所示,附图3是本发明用于提高应用程序网络穿透能力的系统和方法的穿透方案二0060步骤322,应用使用TCP协议连接到远端。

21、实体的443端口时,选择方案二0061步骤3221,用SSL封装组件,发送端实体与远端实体进行的SSL初始化过程,并完成握手过程;0062步骤3222,发送组件向远端实体发送数据包;0063步骤3223,远端实体的判断POST请求组件识别是否有HTTPSPOST请求,若是,则发送组件根据SSL协议继续发送数据包,若不是,则重新连接。0064应用使用TCP协议连接到远端实体的443端口,并在这条链接上发送端实体直接通过SEND函数直接发送应用程序自定的二进制通信协议进行通信。但在安装了一些安全工具后,可能会对连接远端实体443端口进行通信的链接上发送的数据进行检验,如果不符合HTTPSSSL标准。

22、协议,就认为是不合法数据,直接丢弃,导致通讯失败,接收组件在设定时间内没有接收到相应的数据包。在这种情况下,本发明的方案是首先与远端通信实体进行标准的SSL初始化过程,得到SSL的会话公钥,之后,可以直接在这个SSL链路上发送二进制数据,而不会被安全工具拦截因为HTTPS上传送的数据都是用公钥加密,没有私钥安全工具也无法解开传输的数据,也就无法验证是否发送的是合法的HTTP请求。这种情况要求远端实体在处理通讯协议时,可以识别第一个请求是否是前导的SSL标准请求过程的第一个请求,判断POST请求组件判断是否有HTTPSPOST请求,如果是,则进行标准的SSL公钥分发流程。这可以在通信协议中指明第。

23、一个字节是额外的协议类别字节,用于指示是否是SSL请求。0065本发明一种用于提高应用程序网络穿透能力的系统和方法还可以针对其它的网络环境进行穿透,只要这种网络环境下,至少有一种可用的支持传输二进制内容的网络协议。总体来说,本发明一种用于提高应用程序网络穿透能力的系统和方法分为两部分网络识别和协议适配。网络识别部分主要是通过人工或自动测试得到当前网络支持的,协议适配部分可以支持的,可以以某种方式传输二进制数据的协议。协议适配部分主要是指针对说明书CN101997817ACN101997822A5/5页8特定的几种协议,在互相通信的实体端以一定的标识方式可以识别协议种类,并自动选择合适的协议交互。

24、流程,以相应协议下合法的数据包传输应用自定的数据。0066本发明一种用于提高应用程序网络穿透能力的系统和方法主要是兼顾了效率和网络穿透能力,使用自定的二进制数据格式,保证了数据生成的解析的高效率,并且得到一个紧缩,节省带宽的数据包。另一方面,本发明一种用于提高应用程序网络穿透能力的系统和方法主要使用基于TCP的WELLKNOWN端口,并进行网络识别,如果没有特别的协议格式限制,会不做协议适配,以最少代价发送数据;不然,进行协议适配,以尽可能小的代价,提升应用通讯的网络穿透能力。0067综上所述,本发明一种用于提高应用程序网络穿透能力的系统和方法能使用现有的高效率的通讯方案,又能最大可能的提高网络的穿透能力;本发明一种用于提高应用程序网络穿透能力的系统和方法能做到对不熟环境的依赖最小化;本发明一种用于提高应用程序网络穿透能力的系统和方法成本较低,效益大,易于普及应用。说明书CN101997817ACN101997822A1/3页9图1说明书附图CN101997817ACN101997822A2/3页10图2说明书附图CN101997817ACN101997822A3/3页11图3图4说明书附图CN101997817A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1