实现tcp反向端口映射的系统和方法

文档序号:8514678阅读:1222来源:国知局
实现tcp反向端口映射的系统和方法
【技术领域】
[0001]本发明涉及一种实现TCP反向端口映射的系统和方法,主要是计算机网络通信技术领域,具体涉及不同NAT网关内的终端设备之间,通过TCP协议进行通信的方法和系统。
【背景技术】
[0002]随着社会进步,科技发展,越来越多的电子产品具备接入互联网的能力。用户需要通过互联网远程访问自己的终端设备。
[0003]但是由于公网IPv4资源的短缺,大部分终端设备都是通过网络地址转换(NAT:Network Address Translat1n)方式接入互联网,其本身不具备公网IP,导致用户在其它外部网络环境下无法直接访问。
[0004]目前通常的做法是在NAT网关上做端口映射或开启UPNP功能,让内网设备的服务端口跟NAT网关的外部端口进行绑定,外部用户通过访问NAT网关的外部端口达到访问内网设备服务端口的目的。但是这必须要求NAT网关本身具备公网IP,而且通常需要绑定一个动态域名,同时也要求用户具备一定的网络知识,能对NAT网关进行修改配置。实际情况是宽带运营商可提供给用户的公网IP资源越来越少,越来越多的NAT网关无法获得公网IP,这就失去了通过在NAT网关上设置端口映射或UPNP访问内网设备的先决条件。
[0005]另外一种做法是将原有的通信协议由TCP改为UDP,通过NAT穿透技术远程访问内网设备。然而这种方法不仅需要修改通信协议,而且需要改造设备端的服务程序和客户端软件,牵涉面广,成本高,兼容性低。何况对于一些基于TCP的通用服务协议(如HTTP、SSH等),是无法改为m)P的。

【发明内容】

[0006]为了克服传统端口映射方法的局限性,以及NAT穿透技术的兼容性等问题,本发明提供了一种实现TCP反向端口映射的系统和方法,全面兼容各种TCP服务协议。
[0007]本发明所采用的技术方案是:一种实现TCP反向端口映射的系统,它包括有服务器模块、通过互联网与服务器模块相连的设备端代理模块和客户端代理模块;
[0008]服务器模块,分别与设备端代理模块和客户端代理模块通信,协助客户端代理模块与设备端代理模块之间建立起UDP通道;
[0009]客户端代理模块,在本地开启至少一个TCP监听端口,通过已建立的UDP通道向设备端代理模块发起反向端口映射请求,将需要连接的目标IP地址和TCP端口一一对应映射为客户端代理模块的本地TCP监听端口。
[0010]所述服务器模块协助客户端代理模块与设备端代理模块之间建立起UDP通道,包括:
[0011]设备端代理模块使用唯一的序列号,向服务器模块注册,并与之保持心跳消息;
[0012]客户端代理模块向服务器模块查询指定序列号的设备端代理模块,并通过服务器模块与设备端代理模块协商,确定NAT穿透方案,进行NAT穿透,并最终建立起点对点的UDP通道。
[0013]所述客户端代理模块在本地开启至少一个TCP监听端口,通过已建立的UDP通道向设备端代理模块发起反向端口映射请求,将需要连接的目标IP地址和TCP端口一一对应映射为客户端代理模块的本地TCP监听端口,包括:
[0014]客户端代理模块通过已建立的UDP通道告知设备端代理模块需要连接的目标IP地址和TCP端口,并在本地开启至少一个TCP监听端口,此时目标IP地址和TCP端口与本地TCP监听端口形成——对应关系,从而将目标IP地址和TCP端口映射为客户端代理模块的本地TCP监听端口。
[0015]所述目标IP地址和TCP端口为设备端代理模块本机的IP地址和TCP端口,或者是设备端代理模块能够访问到的IP地址和TCP端口。
[0016]一种实现TCP反向端口映射的方法,包括:
[0017]客户端代理模块在服务器模块协同作用下,与指定序列号的设备端代理模块建立起UDP通道;
[0018]客户端代理模块通过已建立的UDP通道向设备端代理模块发起反向端口映射请求,并在本地开启至少一个TCP监听端口,将需要连接的目标IP地址和TCP端口映射为客户端代理模块的本地TCP监听端口。
[0019]所述客户端代理模块在服务器模块协同作用下,与指定序列号的设备端代理模块建立起UDP通道,包括:
[0020]设备端代理模块使用唯一的序列号,向服务器模块注册,并与之保持心跳消息;
[0021]客户端代理模块向服务器模块查询指定序列号的设备端代理模块,并通过服务器模块与设备端代理模块协商,确定NAT穿透方案,进行NAT穿透,并最终建立起点对点的UDP通道。
[0022]所述客户端代理模块通过已建立的UDP通道向设备端代理模块发起反向端口映射请求,并在本地开启至少一个TCP监听端口,将需要连接的目标IP地址和TCP端口映射为客户端代理模块的本地TCP监听端口,包括:
[0023]客户端代理模块通过已建立的UDP通道告知设备端代理模块需要连接的目标IP地址和TCP端口,并在本地开启至少一个TCP监听端口,此时目标IP地址和TCP端口与本地TCP监听端口形成——对应关系,从而将目标IP地址和TCP端口映射为客户端代理模块的本地TCP监听端口。
[0024]所述目标IP地址和TCP端口为设备端代理模块本机的IP地址和TCP端口,或者是设备端代理模块能够访问到的IP地址和TCP端口。
[0025]本发明有益效果在于:本发明提出的TCP反向端口映射是指在用户客户端一侧建立映射端口,不仅不需要用户在NAT网关上预先做端口映射,而且也不需要修改设备端原有的TCP通讯协议,甚至不需要重新开发设备端服务程序和客户端软件,即可通过访问本地映射端口的方式达到访问远程内网设备的目的。
【附图说明】
[0026]图1是本发明实现TCP反向端口映射的系统架构图。
[0027]图2是本发明系统建立多个UDP通道的示意图。
【具体实施方式】
[0028]为了对本发明的技术特征和实际效果进行更加清楚的说明,下面参照具体实施例对本发明的技术方案进行详细说明,但不能理解为对本发明的可实施范围的限定。
[0029]如图1、图2所示,本实施例实现TCP反向端口映射的系统,包括有服务器模块1、通过互联网与服务器模块I相连的设备端代理模块2和客户端代理模块3 ;
[0030]服务器模块1,分别与设备端代理模块2和客户端代理模块3通信,协助客户端代理模块3与设备端代理模块2之间建立起UDP通道;具体为:设备端代理模块2使用唯一的序列号(UUID),向服务器模块I注册,并与之保持心跳消息;客户端代理模块3向服务器模块I查询指定序列号(UUID)的设备端代理模块2,并通过服务器模块I与设备端代理模块2协商,确定NAT穿透方案,进行NAT穿透,并最终建立起点对点的UDP通道。此过程可以重复多次,因此客户端代理模块3和设备端代理模块2之间可以建立多个UDP通道。
[0031]客户端代理模块3,在本地开启至少一个TCP监听端口,通过已建立的UDP通道向设备端代理模块2发起反向端口映射请求,将目标IP地址和TCP端口映射为客户端代理模块3的本地TCP监听端口 ;具体为:客户端代理模块3通过已建立的UDP通道告知设备端代理模块2需要连接的目标IP地址和TCP端口,并在本地开启一个TCP监听端口,此时目标IP地址和TCP端口与本地TCP监听端口形成——对应关系,从而将目标IP地址和
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1