CN101141420B - 私网与公网进行数据通信的方法及系统 - Google Patents
私网与公网进行数据通信的方法及系统 Download PDFInfo
- Publication number
- CN101141420B CN101141420B CN2007101213895A CN200710121389A CN101141420B CN 101141420 B CN101141420 B CN 101141420B CN 2007101213895 A CN2007101213895 A CN 2007101213895A CN 200710121389 A CN200710121389 A CN 200710121389A CN 101141420 B CN101141420 B CN 101141420B
- Authority
- CN
- China
- Prior art keywords
- address
- public network
- message
- connection request
- private network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种私网和公网进行数据通信的方法及系统。方法包括:私网客户端向公网服务器发起控制连接请求的第一过程,和公网服务器与私网客户端建立数据连接的第二过程;在所述第一过程中,NAT单元截获私网客户端发给公网服务器的控制连接请求报文,以公网地址和公网端口替换报文的IP头中的私网地址和TCP头中的私网端口,将该报文发送给ALG,ALG以报文的IP头中的所述公网地址替换报文的数据载荷中的私网地址,选择一个公网端口,将公网端口信息放入报文中发送给公网服务器。本发明中ALG不需要依赖NAT单元重新分配私网客户端与公网服务器进行数据通信时所使用的公网地址和公网端口,降低了实现成本。
Description
技术领域
本发明涉及数据通信技术领域,具体涉及私网和公网进行数据通信的方法及系统。
背景技术
网络地址转换(NAT,Network Address Translation)是一种将内部私有网络地址翻译成合法公有网络IP地址的技术。简单地说,NAT就是在局域网内部网络中使用内部地址,而当局域网内部节点要与外部互联网络进行通信时,就在网关处将私网地址替换成公网地址,从而实现与外部互联网的正常通信。
图1为现有的通过NAT实现私网和公网数据通信的流程图,如图1所示,其具体步骤如下:
步骤101:私网的客户端确定要连接到公网的服务器上,向公网服务器发送控制连接请求报文如:登录请求报文,该报文的IP头中的源IP地址为私网客户端与公网服务器进行控制通信时所使用的私网IP地址、目的IP地址为公网服务器的IP地址,报文的TCP头中的源端口号为私网客户端与公网服务器进行控制通信时所使用的私网端口号、目的端口号为公网服务器的端口号,报文的数据载荷中的IP地址、端口号分别为私网客户端与公网服务器进行数据通信时所使用的私网IP地址、私网端口号。
步骤102:NAT单元截获到该控制连接请求报文,根据预先配置的私公网IP地址转换规则,确定该报文的IP头中的源IP地址,即私网客户端与公网服务器进行控制通信时所使用的私网IP地址对应的公网IP地址,并获取一个与该公网IP地址对应且未被使用的公网端口号,以该公网端口号替换该报文的IP头中的源端口号,以所述公网IP地址替换该报文的IP头中的源IP地址,将该报文发送给应用网关(ALG,Application Gateway),并在NAT表项中建立:私网客户端与公网服务器进行控制通信时所使用的私网IP地址、私网端口号,私网客户端与公网服务器进行控制通信时所使用的公网IP地址、公网端口号,以及报文中的传输协议号间的对应关系。
步骤103:ALG收到该控制连接请求报文,对该报文的数据载荷进行解析,得到私网客户端与公网服务器进行数据通信时所使用的私网IP地址、私网端口号,将该私网IP地址、私网端口号发送给NAT单元。
NAT单元和ALG一般位于同一物理设备上。
步骤104:NAT单元收到该私网IP地址、私网端口号,根据预先配置的私公网IP地址转换规则,确定与该私网IP地址对应的公网IP地址,并获取一个与该公网IP地址对应且未被使用的公网端口号,将该公网端口号、公网IP地址返回给ALG。
通常,一个公网IP地址对应216个公网端口。
步骤105:ALG收到该公网IP地址、公网端口号,以该公网端口号和公网IP地址替换控制连接请求报文的数据载荷中的私网IP地址和私网端口号,然后将该控制连接请求报文发送给公网服务器,同时在NAT表项中建立:私网客户端与公网服务器进行数据通信时所使用的私网IP地址、私网端口号,私网客户端与公网服务器进行数据通信时所使用的公网IP地址、公网端口号,以及控制连接请求报文中的传输协议号间的对应关系。
步骤106:公网服务器接收到该控制连接请求报文,根据该控制连接请求报文的数据载荷中的公网IP地址、公网端口号,向私网客户端发送数据连接请求报文,该数据连接请求报文中的目的IP地址、目的端口号分别为控制连接请求报文的数据载荷中的公网IP地址、公网端口号。
公网服务器接收到控制连接请求报文,也可根据控制连接请求报文的IP头中的源IP地址,以及TCP头中的源端口号,向私网客户端发送控制连接响应报文如:登录响应报文,该控制连接响应报文的目的IP地址、目的端口号分别为控制连接请求报文中的源IP地址、源端口号,NAT单元截获到该控制连接响应报文后,会根据步骤102中在NAT表项中建立的对应关系,将该控制连接响应报文中的目的IP地址、目的端口号分别替换为私网客户端与公网服务器进行控制通信时所使用的私网IP地址、私网端口号,然后将该控制连接响应报文发送给私网客户端。
步骤107:NAT单元截获到该数据连接请求报文,在自身的NAT表项中,查找与该报文中的目的IP地址、目的端口号对应的私网IP地址、私网端口号,以该私网IP地址、私网端口号替换报文中的目的IP地址、目的端口号,将该报文发送给私网客户端。
步骤108:私网客户端向公网服务器发送数据连接请求报文,该报文的源IP地址、源端口号分别为私网客户端与公网服务器进行数据通信时所使用的私网IP地址、私网端口号,目的IP地址、目的端口号分别为公网服务器的IP地址、公网服务器的端口号。
步骤109:NAT单元截获到该数据连接请求报文,在自身的NAT表项中,查找到与该报文的源IP地址、源端口号、传输协议号对应的公网IP地址、公网端口号,以该公网IP地址、公网端口号替换该报文中的源IP地址、源端口号,将该报文发送给公网服务器。
可以看出,对从私网发往公网的控制协议报文,ALG对报文的数据载荷中的私网地址、私网端口进行转换时,需要由NAT为该私网地址、私网端口分配公网地址、公网端口,即ALG依赖于NAT对数据连接分配公网地址和公网端口,实现成本较高。另外,NAT分配公网地址、公网端口时,采用端口队列机制,即:一个公网地址的公网端口在同一时刻不能被重复使用,由于端口资源有限,很容易造成:NAT已成功为控制连接分配了公网地址和公网端口,而无法为数据连接分配公网地址和公网端口的情况,从而导致数据连接无法建立。
发明内容
本发明提供一种私网和公网进行数据通信的方法及系统,以降低私网和公网进行数据通信的成本。
本发明的技术方案是这样实现的:
一种私网和公网进行数据通信的方法,包括:私网客户端向公网服务器发起控制连接请求的第一过程,和公网服务器与私网客户端建立数据连接的第二过程;
在所述第一过程中,NAT单元截获私网客户端发起的控制连接请求报文,以公网IP地址和公网端口号替换该报文的IP头中的私网IP地址和TCP头中的私网端口号,然后将该报文发送给ALG,ALG以报文的IP头中的所述替换得到的公网IP地址替换报文的数据载荷中的私网IP地址,并选择一个公网端口号,将该公网端口号放入报文的数据载荷中发送给公网服务器。
所述ALG将公网端口号放入报文的数据载荷中时进一步包括:ALG在已有的会话表项中建立:所述公网IP地址、所述选择的数据载荷中的公网端口号及控制连接请求报文中的传输协议信息的对应关系;
且,所述第一过程,ALG选择的公网端口号满足条件:所述公网IP地址和该公网端口号未包含在会话表项中。
所述会话表项进一步包括:控制连接请求报文的数据载荷中原私网IP地址、原私网端口号,
所述第二过程包括:NAT单元截获公网服务器发起的数据连接请求报文,在由ALG建立的会话表项中,查找与数据连接请求报文的目的IP地址、目的端口号及报文中的传输协议信息对应的私网IP地址、私网端口号,以该私网IP地址、私网端口号替换数据连接请求报文的目的IP地址、目的端口号,将数据连接请求报文发送给私网客户端。
所述NAT单元查找私网IP地址、私网端口号进一步包括:NAT单元建立包括:数据连接请求报文的源IP地址、源端口号,原目的IP地址、原目的端口号,替换后的目的IP地址、目的端口号,传输协议信息的对应关系的NAT表项,
所述NAT单元将数据连接请求报文发送给私网客户端之后进一步包括:
NAT单元截获到私网客户端向公网服务器发送的数据连接请求报文,在NAT表项中,查找该数据连接请求报文的源IP地址、源端口号、目的IP地址、目的端口号、传输协议信息对应的公网IP地址、公网端口号,以该公网IP地址、公网端口号替换数据连接请求报文的源IP地址、源端口号,将数据连接请求报文发送给公网服务器。
所述会话表项进一步包括:控制连接请求报文的数据载荷中原私网IP地址、原私网端口号,
所述第二过程包括:NAT单元截获私网客户端发起的数据连接请求报文,在由ALG建立的会话表项中,查找与数据连接请求报文的源IP地址、源端口号及报文中的传输协议信息对应的公网IP地址、公网端口号,以该公网IP地址、公网端口号替换数据连接请求报文的源IP地址、源端口号,将数据连接请求报文发送给公网服务器。
所述NAT单元查找公网IP地址、公网端口号进一步包括:NAT单元建立包括:数据连接请求报文的原源IP地址、原源端口号,替换后的源IP地址、源端口号,目的IP地址、目的端口号,传输协议信息的对应关系的NAT表项,
所述NAT单元将数据连接请求报文发送给私网客户端之后进一步包括:
NAT单元截获到公网服务器向私网客户端发送的数据连接请求报文,在NAT表项中,查找该数据连接请求报文的源IP地址、源端口号、目的IP地址、目的端口号、传输协议信息对应的私网IP地址、私网端口号,以该私网IP地址、私网端口号替换数据连接请求报文的目的IP地址、目的端口号,将数据连接请求报文发送给私网客户端。
所述第一过程,所述NAT单元以公网端口号替换控制连接请求报文的TCP头中的私网端口号包括:
NAT单元获取一个与所述公网IP地址对应的公网端口号,判断该公网IP地址、该公网端口号以及控制连接请求报文中的目的IP地址、目的端口号、传输协议信息间的对应关系是否包含在NAT表项中,若是,则重新获取一个与所述公网IP地址对应的公网端口号,返回执行所述判断动作;否则,以所获取的公网端口号替换控制连接请求报文的TCP头中的私网端口号。
一种私网和公网进行数据通信的系统,该系统包括:
NAT单元,截获私网客户端发给公网服务器的控制连接请求报文,以公网IP地址和公网端口号替换报文的IP头中的私网IP地址和TCP头中的私网端口号,然后将报文发送给ALG;
ALG,接收NAT单元发来的控制连接请求报文,以报文的IP头中的公网IP地址替换报文的数据载荷中的私网IP地址,选择一个公网端口号,将该公网端口号放入控制连接请求报文中发送给公网服务器。
该系统进一步包括:
会话表项存储单元,存储控制连接请求报文的数据载荷中原有的私网IP地址、私网端口号,控制连接请求报文的数据载荷中的所述替换后的公网IP地址、所述选择的公网端口号,及控制连接请求报文中的传输协议信息间的对应关系,
且,所述ALG选择一个公网端口号进一步包括:该公网端口号满足:所述公网IP地址和该选择的公网端口号间的对应关系未包含在会话表项存储单元中。
所述NAT单元包括:转换模块、数据报文收发模块和NAT表项存储模块,其中:
转换模块,接收私网客户端发来的控制连接请求报文,将报文的IP头中的私网IP地址转换为公网IP地址,获取一个与该公网IP地址对应的公网端口号,且,所述转换后的公网IP地址、获取的公网端口号以及控制连接请求报文中的目的IP地址、目的端口号、传输协议信息间的对应关系未包含在NAT表项存储单元中,以所获取的公网端口号替换控制连接请求报文的TCP头中的私网端口号,并在NAT表项存储模块中建立:控制连接请求报文的IP头中原有的私网IP地址、TCP头中原有的私网端口号,控制连接请求报文的目的IP地址、目的端口号,控制连接请求报文的IP头中替换后的公网IP地址、TCP头中替换后的公网端口号,以及控制连接请求报文中的传输协议信息间的对应关系;
数据报文收发模块,接收公网服务器发起的数据连接请求报文,在会话表项存储单元中查找与报文的目的IP地址、目的端口号对应的私网IP地址、私网端口号,以该私网IP地址、私网端口号替换该目的IP地址、目的端口号,将该报文发送给私网客户端;
或者,接收私网客户端发起的数据连接请求报文,在会话表项存储单元中查找与报文的源IP地址、源端口号对应的公网IP地址、公网端口号,以该公网IP地址、公网端口号替换该源IP地址、源端口号,将该报文发送给公网服务器。
与现有技术相比,本发明通过ALG收到NAT单元发来的控制连接请求报文后,直接以该报文的IP头中的公网IP地址替换报文的数据载荷中的私网IP地址,并选择一个公网端口,将该公网端口号放入报文中发送给公网服务器,使得ALG在为控制连接请求报文的数据载荷分配公网IP地址、公网端口时,不需要依赖NAT单元重新分配公网IP地址和公网端口,降低了实现成本。
另外,本发明通过在NAT单元为控制连接分配与公网IP地址对应的公网端口时,只需考虑该公网IP地址、公网端口信息及公网服务器IP地址、端口信息、传输协议信息是否已包含在NAT表项中,而不是必须选择一个未使用的公网端口,使得一个公网端口在同一时刻被重复使用,实现了控制连接和数据连接的无限连接,提高了私网和公网建立数据连接的成功率。
附图说明
图1为现有的通过NAT实现私网和公网数据通信的流程图;
图2为本发明实施例提供的通过NAT实现私网和公网数据通信的流程图;
图3为本发明实施例提供的私网和公网进行数据通信的系统组成图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图2为本发明实施例提供的通过NAT实现私网和公网数据通信的流程图,如图2所示,其具体步骤如下:
步骤201:私网的客户端确定要连接到公网的服务器上,向公网服务器发送控制连接请求报文如:登录请求报文,该报文的IP头中的源IP地址为私网客户端与公网服务器进行控制通信时所使用的私网IP地址、目的IP地址为公网服务器的IP地址,TCP头中的源端口号为私网客户端与公网服务器进行控制通信时所使用的私网端口号、目的端口号为公网服务器的端口号,数据载荷中的IP地址、端口号为私网客户端与公网服务器进行数据通信时所使用的私网IP地址、私网端口号。
根据协议的不同,控制连接请求报文的数据载荷中可能携带端口号,也可能不携带私网端口号;若不携带端口号,则协议会规定一个默认的私网客户端与公网服务器进行数据通信时所使用的私网端口号。
步骤202:NAT单元截获到该控制连接请求报文,根据预先配置的私公网IP地址转换规则,确定该报文的IP头中的源IP地址,即私网客户端与公网服务器进行控制通信时所使用的私网IP地址对应的公网IP地址,并获取一个与该公网IP地址对应的公网端口号。
步骤203:NAT单元判断所确定的公网IP地址、公网端口号与报文的目的IP地址、目的端口号及传输协议号间的对应关系是否包含在已有的NAT表项中,若是,执行步骤204;否则,执行步骤205。
步骤204:NAT重新获取一个与该公网IP地址对应的公网端口号,转至步骤203。
步骤205:NAT单元以所确定的公网IP地址替换该报文的IP头中的源IP地址,以所确定的公网端口号替换IP头中的源端口号,将该报文发送给ALG,并在NAT表项中建立:控制连接请求报文的IP头中的原源IP地址即:私网客户端与公网服务器进行控制通信时所使用的私网IP地址,TCP头中的原源端口号,替换后的IP头中的源IP地址即:私网客户端与公网服务器进行控制通信时所使用的公网IP地址,替换后的TCP头中的源端口号,IP头中的目的IP地址,TCP头中的目的端口号,报文中的传输协议号间的对应关系。
步骤206:ALG收到该控制连接请求报文,以该报文的IP头中的源IP地址,即私网客户端与公网服务器进行控制通信时所使用的公网IP地址替换该报文的数据载荷中的私网IP地址。
步骤207:ALG判断控制连接请求报文的数据载荷中的公网地址、公网端口号及控制连接请求报文中的传输协议号间的对应关系是否包含在会话表项中,若是,执行步骤208;否则,执行步骤209。
若控制连接请求报文的数据载荷中不携带私网端口号,本步骤中的数据载荷中的私网端口号指的是协议规定的默认的私网客户端与公网服务器进行数据通信时所使用的私网端口号。
步骤208:ALG重新获取一个与公网地址对应的公网端口号,转至步骤207。
步骤209:ALG以获取的公网端口号替换数据载荷中的私网端口号,将控制连接请求报文发送给公网服务器,同时在已有的会话表项中建立:控制连接请求报文数据载荷中原有的私网IP地址、私网端口号,即私网客户端与公网服务器进行数据通信时所使用的私网IP地址、私网端口号,替换后的数据载荷中的公网IP地址、公网端口号,即私网客户端与公网服务器进行数据通信时所使用的公网IP地址、公网端口号,以及控制连接请求报文中的传输协议号间的对应关系。
以上步骤201~209为NAT单元和ALG将私网客户端与公网服务器进行控制、数据通信时所使用的私网IP地址、私网端口号转换为公网IP地址、公网端口号的第一过程,以下步骤210~211给出公网服务器使用私网客户端的公网IP地址、公网端口号向私网客户端发送数据连接请求报文的第二过程。
步骤210:公网服务器接收到该控制连接请求报文,向私网客户端发送数据连接请求报文,该数据连接请求报文中的目的IP地址、目的端口号为控制连接请求报文的数据载荷中的公网IP地址、公网端口号。
公网服务器接收到控制连接请求报文,也可根据控制连接请求报文的IP头中的源IP地址,以及TCP头中的源端口号,向私网客户端发送控制连接响应报文如:登录响应报文,该控制连接响应报文的目的IP地址、目的端口号分别为控制连接请求报文中的源IP地址、源端口号,NAT单元截获到该控制连接响应报文后,会根据步骤205中在NAT表项中建立的对应关系,将该控制连接响应报文中的目的IP地址、目的端口号分别替换为私网客户端与公网服务器进行控制通信时所使用的私网IP地址、私网端口号,然后将该控制连接响应报文发送给私网客户端。
私网客户端收到控制连接响应报文后,可主动向公网服务器发起数据连接请求报文,该报文的源IP地址、源端口号即为步骤201中的控制连接请求报文的数据载荷中的私网IP地址、私网端口号。NAT单元收到该数据连接请求报文后,会在ALG建立的会话表项中,查找该报文的源IP地址、源端口号、传输协议号对应的公网IP地址、公网端口号,以该公网IP地址、公网端口号替换该数据连接请求报文的源IP地址、源端口号,并建立包括:该报文的原有的源IP地址、原有的源端口号、替换后的源IP地址、替换后的源端口号、目的IP地址、目的端口号、传输协议号间的对应关系的NAT表项,然后将该数据连接请求报文发送给公网服务器。此后,若NAT单元收到公网服务器发来的数据连接请求报文,则可根据上述建立的NAT表项中的所述对应关系,将该数据连接请求报文中的目的IP地址、目的端口号转换为私网IP地址、私网端口号,从而将该报文发送给私网客户端。
步骤211:NAT单元截获到该数据连接请求报文,在ALG建立的会话表项中,查找到该报文的目的IP地址、目的端口号、传输协议号对应的私网IP地址、私网端口号,以查找到的私网IP地址、私网端口号替换该报文的目的IP地址、目的端口号,将该报文发送给私网客户端,同时在NAT表项中建立:报文的源IP地址、源端口号即:公网服务器的IP地址、公网服务器的端口号,替换前的目的IP地址、目的端口号,即私网客户端与公网服务器进行数据通信时所使用的公网IP地址、公网端口号,替换后的目的IP地址、目的端口号,即私网客户端与公网服务器进行数据通信时所使用的私网IP地址、私网端口号,以及报文中的传输协议号间的对应关系。
NAT单元和ALG位于同一物理设备上,因此,在步骤209中ALG建立的会话表项会位于ALG和NAT单元都可以访问的存储空间中。
以下步骤212~213为私网客户端向公网服务器发送数据连接请求报文的过程。
步骤212:私网客户端向公网服务器发送数据连接请求报文,该报文的源IP地址、源端口号为私网客户端与公网服务器进行数据通信时所使用的私网IP地址、私网端口号,目的IP地址、目的端口号为公网服务器的IP地址、公网服务器的端口号。
步骤213:NAT单元截获到该数据连接请求报文,在自身的NAT表项中,查找与该报文的源IP地址、源端口号、目的IP地址、目的端口号、传输协议号对应的公网IP地址、公网端口号,以查找到的公网IP地址、公网端口号替换该报文的源IP地址、源端口号,将该报文发送给公网服务器。
可以看出,本步骤中,在NAT表项中查找到公网IP地址、公网端口号是在步骤211中在NAT表项中建立的对应关系中查找到的。
图3为本发明实施例提供的私网和公网进行数据通信的系统组成图,如图3所示,其主要包括:私网客户端31、NAT单元32、ALG33、会话表项存储单元34和公网服务器35,且,NAT单元32包括:控制报文收发模块321、转换模块322、数据报文收发模块323和NAT表项存储模块324,具体功能如下:
私网客户端31:用于在确定要连接到公网服务器35上时,向公网服务器35发送控制连接请求报文;向公网服务器35发送数据连接请求报文。
NAT单元32中的控制报文收发模块321、转换模块322、数据报文收发模块323和NAT表项存储模块324的功能分别如下:
控制报文收发模块321:截获到私网客户端31发来的控制连接请求报文,将该报文发送给转换模块322。
转换模块322:接收到控制报文接收模块321发来的控制连接请求报文,根据预先配置的私公网IP地址转换规则,确定该控制连接请求报文的IP头中的源IP地址,即私网客户端31与公网服务器35进行控制通信时所使用的私网IP地址对应的公网IP地址,并获取一个与该公网IP地址对应的公网端口号,判断所确定的公网IP地址、公网端口号与控制连接请求报文的目的IP地址、目的端口号及传输协议号是否包含在NAT表项存储模块324中存储的NAT表项中,若是,重新获取一个与该公网IP地址对应的公网端口号;否则,以所确定的公网IP地址替换该控制连接请求报文的IP头中的源IP地址,以所确定的公网端口号替换IP头中的源端口号,将该控制连接请求报文发送给ALG33,并在NAT表项存储模块324中建立:控制连接请求报文的原源IP地址即:私网客户端31与公网服务器35进行控制通信时所使用的私网IP地址、原源端口号,替换后的源IP地址即:私网客户端31与公网服务器35进行控制通信时所使用的公网IP地址、替换后的源端口号,控制连接请求报文中的目的IP地址、目的端口号、控制连接请求报文中的传输协议号间的对应关系。
数据报文收发模块323:接收公网服务器35发起的数据连接请求报文,在会话表项存储单元34中,查找到该数据连接请求报文的目的IP地址、目的端口号、传输协议号对应的私网IP地址、私网端口号,以查找到的私网IP地址、私网端口号替换该数据连接请求报文的目的IP地址、目的端口号,将该数据连接请求报文发送给私网客户端31,同时在NAT表项存储模块324中建立:数据连接请求报文的源IP地址、源端口号,即公网服务器的IP地址、公网服务器的端口号,替换前的目的IP地址、目的端口号,即私网客户端31与公网服务器35进行数据通信时所使用的公网IP地址、公网端口号,替换后的目的IP地址、目的端口号,即私网客户端31与公网服务器35进行数据通信时所使用的私网IP地址、私网端口号,以及数据连接请求报文中的传输协议号间的对应关系;接收私网客户端31发来的数据连接请求报文,在NAT表项存储模块324中,查找与该数据连接请求报文的源IP地址、源端口号、目的IP地址、目的端口号、传输协议号对应的公网IP地址、公网端口号,以查找到的公网IP地址、公网端口号替换该数据连接请求报文的源IP地址、源端口号,将该数据连接请求报文发送给公网服务器35。
或者,数据报文收发模块323用于,接收私网客户端31发起的数据连接请求报文,在会话表项存储单元34中,查找该数据连接请求报文的源IP地址、源端口号、传输协议号对应的公网IP地址、公网端口号,以该公网IP地址、公网端口号替换该数据连接请求报文的源IP地址、源端口号,并在NAT表项存储模块324中建立:该报文的原有的源IP地址、原有的源端口号、替换后的源IP地址、替换后的源端口号、目的IP地址、目的端口号、传输协议号间的对应关系,然后将该数据连接请求报文发送给公网服务器35。此后,接收到公网服务器35发来的数据连接请求报文,则在NAT表项存储模块324中查找该报文的源IP地址、源端口号、目的IP地址、目的端口号、传输协议号对应的私网IP地址、私网端口号,以该私网IP地址、私网端口号替换该报文的目的IP地址、目的端口号,然后将该报文发送给私网客户端31。
NAT表项存储模块324:存储NAT表项,该表项包括:私网客户端31与公网服务器35进行控制通信或数据通信时所使用的私网IP地址、端口号,私网客户端31与公网服务器35进行控制通信或数据通信时所使用的公网IP地址、端口号,公网服务器的IP地址、端口号,以及传输协议号。
ALG33:接收NAT单元32发来的控制连接请求报文,以该控制连接请求报文的IP头中的源IP地址,即私网客户端31与公网服务器35进行控制通信时所使用的公网IP地址替换该控制连接请求报文的数据载荷中的私网IP地址,选择一个公网端口,使该公网端口满足:所述公网地址、该公网端口及该控制连接请求报文中的传输协议号未包含在会话表项存储单元34中存储的会话表项中,将该公网端口号放入数据载荷中,然后将该控制连接请求报文发送给公网服务器35,同时在会话表项存储单元34中建立:控制连接请求报文数据载荷中原有的私网IP地址、私网端口号,即私网客户端31与公网服务器35进行数据通信时所使用的私网IP地址、私网端口号,替换后的数据载荷中的公网IP地址、公网端口号,即私网客户端31与公网服务器35进行数据通信时所使用的公网IP地址、公网端口号,以及控制连接请求报文中的传输协议号间的对应关系。
会话表项存储单元34:存储会话表项,该表项包括:私网客户端31与公网服务器35进行数据通信时所使用的私网IP地址、私网端口号,私网客户端31与公网服务器35进行数据通信时所使用的公网IP地址、公网端口号,以及传输协议号。
公网服务器35:接收ALG33发来的控制连接请求报文,向私网客户端31发送数据连接请求报文,该数据连接请求报文中的目的IP地址、目的端口号为控制连接请求报文的数据载荷中的公网IP地址、公网端口号。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种私网和公网进行数据通信的方法,该方法包括:私网客户端向公网服务器发起控制连接请求的第一过程,和公网服务器与私网客户端建立数据连接的第二过程;其特征在于,
在所述第一过程中,网络地址转换NAT单元截获私网客户端发起的控制连接请求报文,确定该报文的IP头中的源IP地址对应的公网IP地址,并获取一个与该公网IP地址对应的公网端口号,判断所确定的公网IP地址、公网端口号与报文的目的IP地址、目的端口号及传输协议信息间的对应关系是否包含在已有的NAT表项中,若否,以公网IP地址和公网端口号替换该报文的IP头中的私网IP地址和TCP头中的私网端口号,然后将该报文发送给应用网关ALG,ALG以报文的IP头中的所述替换得到的公网IP地址替换报文的数据载荷中的私网IP地址,并选择一个公网端口,将该公网端口号放入报文的数据载荷中发送给公网服务器,同时ALG在已有的会话表项中建立:控制连接请求报文数据载荷中原有的私网IP地址、私网端口号、替换后的数据载荷中的公网IP地址、公网端口号以及控制连接请求报文中的传输协议信息间的对应关系。
2.如权利要求1所述的方法,其特征在于,所述第一过程,ALG选择的公网端口满足条件:所述公网IP地址和该公网端口号未包含在会话表项中。
3.如权利要求2所述的方法,其特征在于,
所述第二过程包括:NAT单元截获公网服务器发起的数据连接请求报文,在由ALG建立的会话表项中,查找与数据连接请求报文的目的IP地址、目的端口号及报文中的传输协议信息对应的私网IP地址、私网端口号,以该私网IP地址、私网端口号替换数据连接请求报文的目的IP地址、目的端口号,将数据连接请求报文发送给私网客户端。
4.如权利要求3所述的方法,其特征在于,所述NAT单元查找私网IP地址、私网端口号进一步包括:NAT单元建立包括:数据连接请求报文的源IP地址、源端口号,原目的IP地址、原目的端口号,替换后的目的IP地址、目的端口号,传输协议信息的对应关系的NAT表项,
所述NAT单元将数据连接请求报文发送给私网客户端之后进一步包括:
NAT单元截获到私网客户端向公网服务器发送的数据连接请求报文,在NAT表项中,查找该数据连接请求报文的源IP地址、源端口号、目的IP地址、目的端口号、传输协议信息对应的公网IP地址、公网端口号,以该公网IP地址、公网端口号替换数据连接请求报文的源IP地址、源端口号,将数据连接请求报文发送给公网服务器。
5.如权利要求2所述的方法,其特征在于,
所述第二过程包括:NAT单元截获私网客户端发起的数据连接请求报文,在由ALG建立的会话表项中,查找与数据连接请求报文的源IP地址、源端口号及报文中的传输协议信息对应的公网IP地址、公网端口号,以该公网IP地址、公网端口号替换数据连接请求报文的源IP地址、源端口号,将数据连接请求报文发送给公网服务器。
6.如权利要求5所述的方法,其特征在于,所述NAT单元查找公网IP地址、公网端口号进一步包括:NAT单元建立包括:数据连接请求报文的原源IP地址、原源端口号,替换后的源IP地址、源端口号,目的IP地址、目的端口号,传输协议信息的对应关系的NAT表项,
所述NAT单元将数据连接请求报文发送给私网客户端之后进一步包括:
NAT单元截获到公网服务器向私网客户端发送的数据连接请求报文,在NAT表项中,查找该数据连接请求报文的源IP地址、源端口号、目的IP地址、目的端口号、传输协议信息对应的私网IP地址、私网端口号,以该私网IP地址、私网端口号替换数据连接请求报文的目的IP地址、目的端口号,将数据连接请求报文发送给私网客户端。
7.如权利要求1所述的方法,其特征在于,所述第一过程,所述NAT单元判断所确定的公网IP地址、公网端口号与报文的目的IP地址、目的端口号及传输协议信息间的对应关系是否包含在已有的NAT表项中进一步包括:
若是,则重新获取一个与所述公网IP地址对应的公网端口号,返回执行所述判断动作。
8.一种私网和公网进行数据通信的系统,其特征在于,该系统包括:NAT单元和ALG,NAT单元包括第一模块和第二模块,其中:
第一模块,用于在第一过程中截获私网客户端发给公网服务器的控制连接请求报文,确定该报文的IP头中的源IP地址对应的公网IP地址,并获取一个与该公网IP地址对应的公网端口号,所述第一过程为私网客户端向公网服务器发起控制连接请求的过程,且公网服务器与私网客户端建立数据连接的过程为第二过程;
第二模块,用于判断所确定的公网IP地址、公网端口号与报文的目的IP地址、目的端口号及传输协议信息间的对应关系是否包含在已有的NAT表项中,若否,以公网IP地址和公网端口号替换报文的IP头中的私网IP地址和TCP头中的私网端口号,然后将报文发送给ALG;
ALG,用于接收第二模块发来的控制连接请求报文,以报文的IP头中的公网IP地址替换报文的数据载荷中的私网IP地址,选择一个公网端口,将该公网端口号放入控制连接请求报文中发送给公网服务器,同时在会话表项存储单元中建立:控制连接请求报文数据载荷中原有的私网IP地址、私网端口号、替换后的数据载荷中的公网IP地址、公网端口号以及控制连接请求报文中的传输协议信息间的对应关系。
9.如权利要求8所述的系统,其特征在于,
所述ALG选择一个公网端口进一步包括:该公网端口满足:所述公网IP地址和该选择的公网端口号间的对应关系未包含在会话表项存储单元中。
10.如权利要求9所述的系统,其特征在于,所述NAT单元还包括:数据报文收发模块和NAT表项存储模块,其中:
NAT表项存储模块,用于建立:控制连接请求报文的IP头中原有的私网IP地址、TCP头中原有的私网端口号,控制连接请求报文的目的IP地址、目的端口号,控制连接请求报文的IP头中替换后的公网IP地址、TCP头中替换后的公网端口号,以及控制连接请求报文中的传输协议信息间的对应关系;
数据报文收发模块,用于接收公网服务器发起的数据连接请求报文,在会话表项存储单元中查找与报文的目的IP地址、目的端口号对应的私网IP地址、私网端口号,以该私网IP地址、私网端口号替换该目的IP地址、目的端口号,将该报文发送给私网客户端;
或者,接收私网客户端发起的数据连接请求报文,在会话表项存储单元中查找与报文的源IP地址、源端口号对应的公网IP地址、公网端口号,以该公网IP地址、公网端口号替换该源IP地址、源端口号,将该报文发送给公网服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101213895A CN101141420B (zh) | 2007-09-05 | 2007-09-05 | 私网与公网进行数据通信的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101213895A CN101141420B (zh) | 2007-09-05 | 2007-09-05 | 私网与公网进行数据通信的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101141420A CN101141420A (zh) | 2008-03-12 |
CN101141420B true CN101141420B (zh) | 2012-07-11 |
Family
ID=39193169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101213895A Expired - Fee Related CN101141420B (zh) | 2007-09-05 | 2007-09-05 | 私网与公网进行数据通信的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101141420B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9736316B2 (en) | 2014-04-17 | 2017-08-15 | Institute For Information Industry | Network address translation traversal system and method for real-time communications |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594263B (zh) * | 2009-01-09 | 2011-11-23 | 成都四方信息技术有限公司 | 对网络通信数据包进行监控的系统 |
CN101808074B (zh) * | 2009-02-18 | 2012-11-07 | 成都市华为赛门铁克科技有限公司 | 一种对不同网际协议版本转换的方法及装置 |
CN102035661B (zh) * | 2009-09-24 | 2014-04-30 | 中兴通讯股份有限公司 | 光网络单元的管理方法、装置、和系统 |
CN102055755B (zh) * | 2009-10-29 | 2013-10-23 | 杭州华三通信技术有限公司 | 一种公网与私网进行数据通信的方法和安全插卡 |
CN102149024B (zh) * | 2010-02-04 | 2014-04-16 | 华为技术有限公司 | 一种olt代理管理onu的方法、设备及系统 |
CN102377628B (zh) * | 2010-08-12 | 2015-01-07 | 杭州华三通信技术有限公司 | 建立DS-Lite隧道的方法和DS-Lite CGN |
US8719449B2 (en) * | 2010-11-29 | 2014-05-06 | Telefonaktiebolaget L M Ericsson (Publ) | Identification of a private device in a public network |
CN103024089B (zh) * | 2011-09-20 | 2016-02-17 | 中国电信股份有限公司 | 网络地址转换方法和设备 |
CN103379027B (zh) * | 2012-04-16 | 2016-12-21 | 中兴通讯股份有限公司 | 网关优化方法及装置 |
CN103905579B (zh) * | 2012-12-28 | 2018-01-30 | 中国移动通信集团公司 | 平台与终端间的通信方法、通信系统、平台及相关设备 |
CN103442092B (zh) * | 2013-07-22 | 2016-12-28 | 汉柏科技有限公司 | 网络地址转换的方法 |
CN105827427B (zh) * | 2015-01-08 | 2020-06-23 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN106331200A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | 一种节点间数据传输的方法、网关节点及节点 |
CN106487864B (zh) * | 2015-09-02 | 2019-09-27 | 华为终端有限公司 | 数据连接的建立方法、服务端及移动终端 |
CN107395778B (zh) * | 2016-05-16 | 2020-09-04 | 华为技术有限公司 | 一种用户溯源的方法、装置及系统 |
CN105933221A (zh) * | 2016-07-01 | 2016-09-07 | 北京汉格尚华科技发展有限公司 | 互联网反向路由控制器 |
CN107222408B (zh) * | 2017-06-01 | 2020-08-04 | 杭州迪普科技股份有限公司 | 一种分流方法及装置 |
CN108234325B (zh) * | 2018-01-10 | 2021-09-07 | 北京知道创宇信息技术股份有限公司 | 基于ip任播的系统及报文转发方法 |
CN108712506B (zh) * | 2018-05-31 | 2021-02-02 | 中国联合网络通信集团有限公司 | 区块链节点通信方法、装置及区块链节点 |
CN111327715B (zh) * | 2018-12-17 | 2022-08-23 | 中国移动通信集团四川有限公司 | 实现NB-IoT业务下行数据可达的方法、装置、设备及介质 |
CN111385378A (zh) * | 2020-03-03 | 2020-07-07 | 深圳市网心科技有限公司 | 基于地址交换的报文转发方法、硬件设备、系统及介质 |
CN112333298B (zh) * | 2020-12-01 | 2022-09-02 | 武汉绿色网络信息服务有限责任公司 | 报文传输方法、装置、计算机设备及存储介质 |
CN113573346B (zh) * | 2021-07-12 | 2023-10-20 | 中国联合网络通信集团有限公司 | 一种数据处理方法及装置 |
CN113709242A (zh) * | 2021-08-26 | 2021-11-26 | 华为技术有限公司 | 报文转发方法和通信装置 |
CN113572868B (zh) * | 2021-09-28 | 2021-11-26 | 武汉绿色网络信息服务有限责任公司 | 动态拨号上网方法及系统 |
CN114268470B (zh) * | 2021-12-06 | 2024-06-07 | 深圳飞音时代网络通讯技术有限公司 | 一种报文的传输方法、装置及设备 |
CN115442328B (zh) * | 2022-08-03 | 2023-06-02 | 天翼云科技有限公司 | 一种网络地址转换方法、装置、网关、介质和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1303106A2 (en) * | 2001-09-11 | 2003-04-16 | Hitachi, Ltd. | Address translation method |
CN1574835A (zh) * | 2003-06-06 | 2005-02-02 | 日立通讯技术株式会社 | Ip地址变换装置以及包传送装置 |
CN1592278A (zh) * | 2003-08-28 | 2005-03-09 | 华为技术有限公司 | 以主机代理方式实现地址转换应用网关的方法 |
-
2007
- 2007-09-05 CN CN2007101213895A patent/CN101141420B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1303106A2 (en) * | 2001-09-11 | 2003-04-16 | Hitachi, Ltd. | Address translation method |
CN1574835A (zh) * | 2003-06-06 | 2005-02-02 | 日立通讯技术株式会社 | Ip地址变换装置以及包传送装置 |
CN1592278A (zh) * | 2003-08-28 | 2005-03-09 | 华为技术有限公司 | 以主机代理方式实现地址转换应用网关的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9736316B2 (en) | 2014-04-17 | 2017-08-15 | Institute For Information Industry | Network address translation traversal system and method for real-time communications |
Also Published As
Publication number | Publication date |
---|---|
CN101141420A (zh) | 2008-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101141420B (zh) | 私网与公网进行数据通信的方法及系统 | |
CN101296238B (zh) | 一种保持安全套接层会话持续性的方法及设备 | |
CN101699801B (zh) | 一种数据传输方法及传输数据的虚拟对等网络系统 | |
CN102571749B (zh) | 使用中继服务器的数据传输系统和方法 | |
CN1902877B (zh) | 控制去往无线通信设备的未请求业务的设备及方法 | |
CN101577722B (zh) | 实现强制mac转发功能的方法和装置 | |
CN101572643B (zh) | 实现私网之间转发数据的方法和系统 | |
CN101553796B (zh) | 用于重定向请求的系统和方法 | |
JP2005502238A5 (zh) | ||
US8396027B2 (en) | Communication control system, communication system and communication control method | |
CN101136929B (zh) | 因特网小型计算机系统接口数据传输方法及设备 | |
CN101895589A (zh) | 广域网路由器和广域网路由器中路由表项建立的方法 | |
CN102843391A (zh) | 一种信息发送方法及网关 | |
CN101702718A (zh) | 用户终端设备的管理方法及装置 | |
CN101461198A (zh) | 中继网络系统及终端适配装置 | |
CN116405461A (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
CN113572835B (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
CN102055816A (zh) | 一种通信方法、业务服务器、中间设备、终端及通信系统 | |
CN110247848A (zh) | 发送报文的方法、网络设备及计算机可读存储介质 | |
CN101873330B (zh) | 支持IPv6/IPv4双栈接入的访问控制方法和服务器 | |
CN101796769B (zh) | 用于改善控制服务器性能的因特网协议版本4上的因特网协议版本6转变方法和设备 | |
CN108566446A (zh) | 局域网域名解析方法、装置和系统 | |
CN111182071A (zh) | 一种内网穿透与服务发布的方法 | |
CN101465858B (zh) | 监控业务中实现私网穿越的方法、网络设备和服务器 | |
CN102447724B (zh) | 控制p2p下载的方法、服务器及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120711 Termination date: 20200905 |