TCP流的多路复用系统及其方法、存储介质与终端与流程

文档序号:14179100阅读:447来源:国知局
TCP流的多路复用系统及其方法、存储介质与终端与流程

本发明涉及一种tcp流的多路复用系统及其方法、存储介质与终端,尤其涉及一种tcp流的多路复用系统、tcp流的多路复用方法、应用所述方法的计算机可读存储介质、应用所述方法的计算机终端。



背景技术:

随着私人云技术的兴起,越来越多的位于内网中的设备需要提供基于公网地址的服务接口,以方便用户随时随地访问。但是受限于nat、防火墙等因素的制约,内网里面的设备是无法直接供外部访问的,通过引入一个位于公网的中间服务器,内网设备和用户都通过中间服务器来传递信息。为了节约服务器资源,通常设备和用户与服务器之间只维护保持一条tcp通道,当有数据传输时,串行使用该tcp通道。对于小数据量如控制类消息,是能满足使用要求的,但传输大文件时,会长时间占用通道,导致其他的数据没有机会传输,显然无法满足高并发低延迟的要求。



技术实现要素:

为解决串行传输低效的问题,本发明提供一种tcp流的多路复用系统、tcp流的多路复用方法、应用所述方法的计算机可读存储介质、应用所述方法的计算机终端,所述系统引入并发传输方法,在发送端将多个传输请求分段交替插入到tcp通道内,在接收端重组还原这些请求。

本发明采用以下技术方案实现:一种tcp流的多路复用系统,所述系统的网络构架包括app、设备以及作为所述app与所述设备之间的通信桥梁的中间服务器;其中,

所述app与所述中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

所述设备与所述中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

所述app和所述设备收到对端的握手请求后,检查本端参数,并将其发送给对端;

所述app和所述设备收到对端的握手应答后,检查本端参数,并选择一个共同支持的参数集,完成握手过程;

所述app请求对端绑定的http服务器地址;

所述设备收到所述app发送的http服务器地址请求后,返回自己绑定的ip端口;

所述app收到所述设备返回的ip端口,绑定一个本地地址;

所述app往与本地地址相对应的链接网址的地址发起http请求;

所述app的tcpmux接收http请求,并将请求数据进行分片、封装,然后发往所述中间服务器;

所述中间服务器将数据转发给所述设备;

所述设备的demux从所述中间服务器接收http请求,并将数据重组、解封装,然后发往httpserver。

作为上述方案的进一步改进,所述app集成tcp多路复用与解复用器,通过tcp与所述中间服务器保持长连接。

作为上述方案的进一步改进,所述app主动发起http请求,获取所述设备的信息或者从所述设备拉取文件。

作为上述方案的进一步改进,所述设备集成tcp多路复用与解复用器,通过tcp与所述中间服务器保持长连接。

作为上述方案的进一步改进,所述设备提供httpserver,供所述app使用。

作为上述方案的进一步改进,所述中间服务器分别于所述app和所述设备建立tcp连接,将所述app和所述设备发送过来的数据透传给对端。

本发明还提供一种tcp流的多路复用方法,所述方法应用于一个tcp流的多路复用系统中,所述tcp流的多路复用系统的网络构架包括app、设备、以及作为所述app与所述设备之间的通信桥梁的中间服务器;所述tcp流的多路复用方法包括以下步骤:

将app与中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

将设备与所述中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

在所述app和所述设备收到对端的握手请求后,检查本端参数,并将其发送给对端;

在所述app和所述设备收到对端的握手应答后,检查本端参数,并选择一个共同支持的参数集,完成握手过程;

使所述app请求对端绑定的http服务器地址;

在所述设备收到所述app发送的http服务器地址请求后,返回自己绑定的ip端口;

使所述app收到所述设备端返回的ip端口,绑定一个本地地址;

使所述app往与本地地址相对应的链接网址的地址发起http请求;

使所述app的tcpmux接收http请求,并将请求数据进行分片、封装,然后发往所述中间服务器;

使所述中间服务器将数据转发给所述设备;

使所述设备的demux从所述中间服务器接收http请求,并将数据重组、解封装,然后发往httpserver。

作为上述方案的进一步改进,所述tcp流的多路复用系统为上述任意的tcp流的多路复用系统,tcpmux接收来自httpclient的请求,然后复用到一个单一的tcp通道,将数据发完所述中间服务器,tcpdemux从所述中间服务器接收数据,将其解复用,然后发送给httpserver。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:

将app与中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

将设备与所述中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

在所述app和所述设备收到对端的握手请求后,检查本端参数,并将其发送给对端;

在所述app和所述设备收到对端的握手应答后,检查本端参数,并选择一个共同支持的参数集,完成握手过程;

使所述app请求对端绑定的http服务器地址;

在所述设备收到所述app发送的http服务器地址请求后,返回自己绑定的ip端口;

使所述app收到所述设备端返回的ip端口,绑定一个本地地址;

使所述app往与本地地址相对应的链接网址的地址发起http请求;

使所述app的tcpmux接收http请求,并将请求数据进行分片、封装,然后发往所述中间服务器;

使所述中间服务器将数据转发给所述设备;

使所述设备的demux从所述中间服务器接收http请求,并将数据重组、解封装,然后发往httpserver。

本发明还提供一种计算机终端,其包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现以下步骤:

将app与中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

将设备与所述中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

在所述app和所述设备收到对端的握手请求后,检查本端参数,并将其发送给对端;

在所述app和所述设备收到对端的握手应答后,检查本端参数,并选择一个共同支持的参数集,完成握手过程;

使所述app请求对端绑定的http服务器地址;

在所述设备收到所述app发送的http服务器地址请求后,返回自己绑定的ip端口;

使所述app收到所述设备返回的ip端口,绑定一个本地地址;

使所述app往与本地地址相对应的链接网址的地址发起http请求;

使所述app的tcpmux接收http请求,并将请求数据进行分片、封装,然后发往所述中间服务器;

使所述中间服务器将数据转发给所述设备;

使所述设备的demux从所述中间服务器接收http请求,并将数据重组、解封装,然后发往httpserver。

本发明能解决串行传输低效的问题,通过引入并发传输方法,在发送端将多个传输请求分段交替插入到tcp通道内,在接收端重组还原这些请求。

附图说明

图1为本发明实施例1的tcp流的多路复用系统的网络构架图。

图2为图1中tcp流的多路复用系统内部的功能构架图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

实施例1

如图1所示,本发明的tcp流的多路复用系统,其网络构架包括app、设备以及作为app与设备之间的通信桥梁的中间服务器。tcp为transmissioncontrolprotocol的简写,中文为传输控制协议。

请结合图2,app集成tcp多路复用与解复用器,通过tcp与中间服务器保持长连接。app主动发起http请求,获取设备的信息或者从设备拉取文件。

设备集成tcp多路复用与解复用器,通过tcp与中间服务器保持长连接。设备提供httpserver,供app使用。

中间服务器分别于app和设备建立tcp连接,将app和设备发送过来的数据透传给对端。

tcpmux相当于tcpserver,接收来自httpclient的请求,然后复用到一个单一的tcp通道,将数据发完中间服务器。tcpdemux从中间服务器接收数据,将其解复用,然后发送给httpserver。其中,mux即多路复用,httpclient=hypertexttransferprotocolclient,意思为超文本传输协议,demux意思为解复用器,httpserver意思为网页服务器,tcpmux相当于tcpserver(服务器),

tcp流的多路复用系统在运行流程时,采用以下步骤。

s201,app与中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息。

s202,设备与中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息。

s203,app和设备收到对端的握手请求后,检查本端参数,并将其发送给对端。

s204,app和设备收到对端的握手应答后,检查本端参数,并选择一个共同支持的参数集,完成握手过程。

s205,app请求对端绑定的http服务器地址。

s206,设备收到app发送的http服务器地址请求后,返回自己绑定的ip端口(ip,port)。

s207,app收到设备返回的(ip,port),绑定一个本地地址,如本地地址:127.0.0.1:port2。

s208,app往与本地地址相对应的链接网址的地址发起http请求,如往http://127.0.0.1:port2的地址发起http请求。

s209,app的tcpmux接收http请求,并将请求数据进行分片、封装,然后发往中间服务器。

s210,中间服务器将数据转发给设备。

s211,设备的demux从中间服务器接收http请求,并将数据重组、解封装,然后发往httpserver。

实施例2

实施例2提供了一种tcp流的多路复用方法,所述方法应用于一个tcp流的多路复用系统中,如实施例1中描述的这个tcp流的多路复用系统。

所述tcp流的多路复用方法包括以下步骤:

将app与中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

将设备与所述中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

在所述app和所述设备收到对端的握手请求后,检查本端参数,并将其发送给对端;

在所述app和所述设备收到对端的握手应答后,检查本端参数,并选择一个共同支持的参数集,完成握手过程;

使所述app请求对端绑定的http服务器地址;

在所述设备收到所述app发送的http服务器地址请求后,返回自己绑定的ip端口;

使所述app收到所述设备端返回的ip端口,绑定一个本地地址;

使所述app往与本地地址相对应的链接网址的地址发起http请求;

使所述app的tcpmux接收http请求,并将请求数据进行分片、封装,然后发往所述中间服务器;

使所述中间服务器将数据转发给所述设备;

使所述设备的demux从所述中间服务器接收http请求,并将数据重组、解封装,然后发往httpserver。

实施例3

实施例3提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤。

将app与中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

将设备与所述中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

在所述app和所述设备收到对端的握手请求后,检查本端参数,并将其发送给对端;

在所述app和所述设备收到对端的握手应答后,检查本端参数,并选择一个共同支持的参数集,完成握手过程;

使所述app请求对端绑定的http服务器地址;

在所述设备收到所述app发送的http服务器地址请求后,返回自己绑定的ip端口;

使所述app收到所述设备端返回的ip端口,绑定一个本地地址;

使所述app往与本地地址相对应的链接网址的地址发起http请求;

使所述app的tcpmux接收http请求,并将请求数据进行分片、封装,然后发往所述中间服务器;

使所述中间服务器将数据转发给所述设备;

使所述设备的demux从所述中间服务器接收http请求,并将数据重组、解封装,然后发往httpserver。

实施例4

实施例4提供了一种计算机终端,其包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序。

所述处理器执行所述程序时实现以下步骤:

将app与中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

将设备与所述中间服务器建立tcp长连接,并向对端发出握手请求,协商参数信息;

在所述app和所述设备收到对端的握手请求后,检查本端参数,并将其发送给对端;

在所述app和所述设备收到对端的握手应答后,检查本端参数,并选择一个共同支持的参数集,完成握手过程;

使所述app请求对端绑定的http服务器地址;

在所述设备收到所述app发送的http服务器地址请求后,返回自己绑定的ip端口;

使所述app收到所述设备返回的ip端口,绑定一个本地地址;

使所述app往与本地地址相对应的链接网址的地址发起http请求;

使所述app的tcpmux接收http请求,并将请求数据进行分片、封装,然后发往所述中间服务器;

使所述中间服务器将数据转发给所述设备;

使所述设备的demux从所述中间服务器接收http请求,并将数据重组、解封装,然后发往httpserver。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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