CN112437169B - 一种nat穿透方法及系统 - Google Patents
一种nat穿透方法及系统 Download PDFInfo
- Publication number
- CN112437169B CN112437169B CN202011286372.7A CN202011286372A CN112437169B CN 112437169 B CN112437169 B CN 112437169B CN 202011286372 A CN202011286372 A CN 202011286372A CN 112437169 B CN112437169 B CN 112437169B
- Authority
- CN
- China
- Prior art keywords
- machine
- intranet
- server
- communication
- intranet machine
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及互联网技术领域,提供一种NAT穿透方法,包括:第一内网机及第二内网机分别与服务器建立通信连接;第一内网机接收到服务器发送的穿透开始指令及第二内网机的通信信息时,通过第一NAT网关向预设通信地址发送消息;第二内网机接收到服务器发送的穿透开始指令及第一内网机的通信信息时,通过第二NAT网关向预设通信地址发送消息;第一内网机断开与服务器的通信连接,并根据第二内网机的通信信息与第二内网机建立通信连接;第二内网机断开与服务器的通信连接,并根据第一内网机的通信信息与第一内网机建立通信连接。本发明还提供了一种NAT穿透系统。实施本发明,可提高对称型NAT网络的穿透成功率。
Description
技术领域
本发明涉及互联网技术领域,尤其提供一种NAT穿透方法及系统。
背景技术
NAT即“网络地址转换”技术(Network Address Translation,简称NAT),该技术允许一个整体机构,如局域网,以一个公用IP地址出现在Internet上,并可把内部私有网络地址翻译成合法网络IP地址。当内部节点要与外部网络进行通讯时,通过NAT技术将内部地址替换成公用地址,从而在外部公网上正常使用,NAT技术可以使多台计算机共享Internet连接,很好地解决了公共IP地址紧缺的问题。由于NAT技术屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户不会意识到NAT技术的存在。
NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)以及网络地址端口转换NAPT。其中静态NAT是内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址,动态地址NAT则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络,NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。
典型的NAPT有以下四种类型:Full Cone NAT,Restricted Cone NAT,PortRestricted Cone NAT和Symmetric NAT,前三种为锥形NAT,最后一种为对称NAT。
NAT功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。
在NAPT方式下,由于NAT的存在,两台分属不同内网的主机不能看到对方,因此有些情况下不能直接通信。要实现通信,需借助双方都可以直接进行通信的主机进行转发,但由于带宽等因素的限制,现在又发展出了一种“穿透”技术。
目前,针对端口受限型NAT和对称型NAT之间的内网主机互通,传输链路建立的成功率较低。
发明内容
本发明的目的在于提供一种,旨在解决现有的问题,即对称型NAT网络中的穿透成功率低。
为实现上述目的,本发明采用的技术方案是:
一种NAT穿透方法,应用于由第一内网、第二内网及服务器组成的通信架构,第一内网包括第一内网机及第一NAT网关,第二内网包括第二内网机及第二NAT网关,方法包括:第一内网机及第二内网机分别与服务器建立通信连接,以使服务器获得第一内网机及第二内网机的通信信息;第一内网机接收到服务器发送的穿透开始指令及第二内网机的通信信息时,通过第一NAT网关向预设通信地址发送消息,以使第一NAT网关的所有外网端口均被消耗;第二内网机接收到服务器发送的穿透开始指令及第一内网机的通信信息时,通过第二NAT网关向预设通信地址发送消息,以使第二NAT网关的所有外网端口均被消耗;第一内网机断开与服务器的通信连接,并根据第二内网机的通信信息与第二内网机建立通信连接;第二内网机断开与服务器的通信连接,并根据第一内网机的通信信息与第一内网机建立通信连接。
作为上述方案的改进,在第一内网机接收到服务器发送的穿透开始指令及第二内网机的通信信息之前,包括:当第一内网机在接收到服务器发送的通信连接成功消息后,向服务器发送第一就绪消息。
作为上述方案的改进,在第二内网机接收到服务器发送的穿透开始指令及第一内网机的通信信息之前,包括:当第二内网机在接收到服务器发送的通信连接成功消息后,向服务器发送第二就绪消息,以使服务器均接收到第一就绪消息和第二就绪消息时,向第二内网机返回穿透开始指令及第一内网机的通信信息,并向第一内网机返回穿透开始指令及第二内网机的通信信息。
作为上述方案的改进,第一内网机及第二内网机与服务器建立通信连接所采用的通信协议均为TCP协议。
作为上述方案的改进,第一内网机通过第一NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议;第二内网机通过第二NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议。
相应地,本发明刚公开了一种NAT穿透系统,包括第一内网、第二内网及服务器,第一内网包括第一内网机及第一NAT网关,第二内网包括第二内网机第二NAT网关,第一内网机、第一NAT网关、服务器、第二NAT网关及第二内网机依次电连接,第一内网机包括:一机连接模块,用于与服务器建立通信连接,以使服务器获得第一内网机的通信信息;一网端口消耗模块,用于接收到服务器发送的穿透开始指令及第二内网机的通信信息时,通过第一NAT网关向预设通信地址发送消息,以使第一NAT网关的所有外网端口均被消耗;一机穿透模块,用于断开与服务器的通信连接,并根据第二内网机的通信信息与第二内网机建立通信连接;第二内网机包括:二机连接模块,用于与服务器建立通信连接,以使服务器获得第二内网机的通信信息;二网端口消耗模块,用于接收到服务器发送的穿透开始指令及第一内网机的通信信息时,通过第二NAT网关向预设通信地址发送消息,以使第二NAT网关的所有外网端口均被消耗;二机穿透模块,用于断开与服务器的通信连接,并根据第一内网机的通信信息与第一内网机建立通信连接。
作为上述方案的改进,第一内网机还包括:一机就绪信息发送模块,用于当第一内网机在接收到服务器发送的通信连接成功消息后,向服务器发送第一就绪消息。
作为上述方案的改进,第二内网机还包括:二机就绪信息发送模块,用于当第二内网机在接收到服务器发送的通信连接成功消息后,向服务器发送第二就绪消息,以使服务器均接收到第一就绪消息和第二就绪消息时,向第二内网机返回穿透开始指令及第一内网机的通信信息,并向第一内网机返回穿透开始指令及第二内网机的通信信息。
作为上述方案的改进,一机连接模块及二机连接模块与服务器建立通信连接所采用的通信协议均为TCP协议。
作为上述方案的改进,一网端口消耗模块通过第一NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议;二网端口消耗模块通过第二NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议。
本发明的有益效果:
本发明的提供的一种NAT穿透方法及系统,可有效提高对称型NAT网络的穿透成功率。
具体来说,第一内网机及第二内网机分别与服务器建立通信连接,以使服务器获得第一内网机及第二内网机的通信信息。第一内网机及第二内网机与服务器建立通信连接所使用的NAT网关端口也是后面的预留端口。
第一内网机接收到所述服务器发送的穿透开始指令及所述第二内网机的通信信息时,通过所述第一NAT网关向预设通信地址发送消息。这样包括之前与服务器建立通信连接所使用端口在内,所述第一NAT网关的所有外网端口均被消耗。第二内网机接收到所述服务器发送的穿透开始指令及所述第一内网机的通信信息时也做类似操作。
通信信息包括外网地址及端口号。第一内网机根据第二内网机的外网地址及端口号可以尝试与第二内网机直接建立通信连接,第二内网机也可以根据第一内网机的外网地址及端口号尝试与第一内网机直接建立通信连接。第一内网机与第二内网机在建立直接通信连接前,要分别断开与服务器建立的连接。这样,除了断开与服务器连接所释放的端口外,其他端口已经被消耗,第一内网机与第二内网机建立直接的通信连接时,第一NAT网关只剩下一个可分配的端口,第二NAT网关也是类似情况因此,从而有效提高通信连接的成功率。另外,由于第一内网机及第二内网机都在尝试与对方建立直接的通信连接,也有助于提高通信连接的成功率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明NAT穿透方法的流程图;
图2为本发明NAT穿透方法实施例的网络架构及通信示意图;
图3为本发明NAT穿透系统的结构示意图;
其中,图中各附图标记:
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
对等网络(peer to peer,简称P2P)技术根据客户端不同,传输的方式也不同,主要有中继,逆向连接,NAT穿透等技术。目前,NAT穿透技术主要针对锥形NAT类型,比如全锥形NAT技术(Full Cone NAT)、受限锥型NAT技术(Address-Restricted Cone NAT)、端口受限锥型技术(Port-Restricted Cone NAT)。
对于对称型NAT(Symmetric NAT),还没有可靠NAT穿透方案。对称型NAT一般有两种通信连接方式:其一,采用中继的方式进行传输,这需要一个中继服务器,但该中继服务器的带宽压力非常大;其二是采用猜测端口号的方式,但针对复杂的网络环境,成功率不大。
为解决上述问题,本发明提供了一种NAT穿透方法,应用在由第一内网、第二内网及服务器组成的通信架构。其中,第一内网包括第一内网机及第一NAT网关,第二内网包括第二内网机及第二NAT网关。
图1是本发明NAT穿透方法的流程图,该方法具体步骤包括:
S101、第一内网机及第二内网机分别与服务器建立通信连接,以使服务器获得第一内网机及第二内网机的通信信息。
在第一内网机及第二内网机分别与服务器连接后,服务器会获得第一内网机及第二内网机的通信信息。通信信息包括但不限于通信协议类型,外网地址及端口号等建立通信连接所必需的信息。在本发明中,通信信息中包含的端口号标识了第一内网机及第二内网机与服务器连接时使用的端口,该端口也将是后续第一内网机及第二内网机直接建立通信连接时预留的端口。
S102、第一内网机接收到服务器发送的穿透开始指令及第二内网机的通信信息时,通过第一NAT网关向预设通信地址发送消息,以使第一NAT网关的所有外网端口均被消耗。
S103、第二内网机接收到服务器发送的穿透开始指令及第一内网机的通信信息时,通过第二NAT网关向预设通信地址发送消息,以使第二NAT网关的所有外网端口均被消耗。
第一内网机接收到所述服务器发送的穿透开始指令及所述第二内网机的通信信息时,通过所述第一NAT网关向预设通信地址发送消息。这样包括之前与服务器建立通信连接所使用端口在内,所述第一NAT网关的所有外网端口均被消耗。第二内网机接收到所述服务器发送的穿透开始指令及所述第一内网机的通信信息时也做类似操作。
需要说明的是,第一内网机每次通过第一NAT网关向预设通信地址发送消息时,第一NAT网关会随机分配一个可用的端口以进行发送。虽然第一内网机不知道第一NAT网关有几个可用的端口,也不知道每次通过第一NAT网关发送消息时具体哪个端口会被分配,但是只要第一内网机发送足够多的消息,就能够确保第一NAT网关的所有端口均被消耗。比如,第一NAT网关共有100个端口(包含可用的端口及已被消耗的端口),则第一内网机通过第一NAT网关向预设通信地址发送100条消息,就能够确保第一NAT网关的所有端口均被消耗。当然,这100条消息中可能会有部分消息因端口全部耗尽而未能成功发送,但这个过程只是要确保所有端口被耗尽,而不是确保100条消息全部被成功发送。端口全部耗尽的状态只能维持一段时间,当有端口被释放,这种状态就会结束。
第二内网机通过第二NAT网关向预设通信地址发送消息也是与上述类似的情况,在此不再赘述。
S104、第一内网机断开与服务器的通信连接,并根据第二内网机的通信信息与第二内网机建立通信连接。
S105、第二内网机断开与服务器的通信连接,并根据第一内网机的通信信息与第一内网机建立通信连接。
由于通信信息中包括通信协议类型、外网地址及端口号等信息。第一内网机根据第二内网机的外网地址及端口号可以尝试与第二内网机直接建立通信连接,第二内网机也可以根据第一内网机的外网地址及端口号尝试与第一内网机直接建立通信连接。第一内网机与第二内网机在建立直接通信连接前,要分别断开与服务器建立的连接。这样,在第一内网机尝试与第二内网机建立直接的通信连接时,除了断开与服务器通信连接所释放的端口外,第一NAT网关只剩下一个可分配的端口,第二NAT网关也是类似情况,这样就无需采取猜测端口的方式建立通信连接,从而有效提高通信连接的成功率。
另外,由于第一内网机及第二内网机都在尝试与对方建立直接的通信连接,也有助于提高通信连接的成功率。
进一步地,在第一内网机接收到服务器发送的穿透开始指令及第二内网机的通信信息之前,包括:当第一内网机在接收到服务器发送的通信连接成功消息后,向服务器发送第一就绪消息。
在第二内网机接收到服务器发送的穿透开始指令及第一内网机的通信信息之前,包括:当第二内网机在接收到服务器发送的通信连接成功消息后,向服务器发送第二就绪消息,以使服务器均接收到第一就绪消息和第二就绪消息时,向第二内网机返回穿透开始指令及第一内网机的通信信息,并向第一内网机返回穿透开始指令及第二内网机的通信信息。
需要说明的是,第一内网机及第二内网机发送的就绪消息分别用于确认第一内网机及第二内网机已准备好了待传输的信息以及已经进入通信连接就绪状态。服务器需要确保都接收到第一内网机及第二内网机的就绪消息后,才能向第二内网机返回穿透开始指令及第一内网机通信信息,并向第一内网机返回穿透开始指令及第二内网机的通信信息。
另外,第一内网机及第二内网机与服务器建立连接时,均通过向服务器发送连接请求,然后服务器向第一内网机返回成功连接消息。第二内网机与服务器建立连接时也进行类似操作。
具体地,第一内网机及第二内网机与服务器建立通信连接所采用的通信协议均为TCP协议。
第一内网机通过第一NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议;第二内网机通过第二NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议。
TCP协议即传输控制协议(Transmission Control Protocol,简称TCP),UDP协议即用户数据报协议(User Datagram Protocol,简称UDP)。建立一个UDP协议连接,通常从分配端口到该端口失效有120秒。建立一个TCP协议连接后,若该连接正常断开,相应的端口立即失效,可立即再利用。因此,利用UDP协议连接的端口失效的时间差,使得该段时间内只有TCP协议连接断开后释放的端口是唯一可分配的外网端口,第一内网机与第二内网机建立直接连接时,无需再猜测端口,进而提高第一内网机与第二内网机在突破NAT内网直接建立连接的成功率。
下面结合一个实施例作进一步的说明。
图2是本发明NAT穿透方法实施例的网络架构及通信示意图。
本发明NAT穿透方法实施例的网络架构包括第一内网1、第二内网2及服务器3,其中第一内网包括第一内网机11及第一NAT网关12,第二内网包括第二内网机21及第二NAT网关22。
该网络架构实施本发明NAT穿透方法的步骤如下:
S201、第一内网机11通过TCP协议连接服务器3的指定端口,以使服务器3得到第一内网机11此时的TCP协议类型、外网地址与端口号;
S202、服务器3返回响应(成功连接消息)给第一内网机11;
S203、第二内网机21通过TCP协议连接服务器3的指定端口,以使服务器3得到第二内网机21此时的TCP协议类型、外网地址与端口号;
S204、服务器3返回响应(成功连接消息)给第二内网机21;
S205、第一内网机11收到服务器3返回的成功连接消息后向服务器3发送第一就绪消息“第一内网机准备好了信息”给服务器3;
S206、第二内网机21收到服务器3返回的成功连接消息后向服务器3发送第二就绪消息“第二内网机准备好了信息”给服务器3;
S207、服务器3接收到了第一内网机11及第二内网机21发送的就绪消息后,发送穿透开始指令“开始穿透信息”,第二内网机21的TCP协议类型、外网地址及端口号给第一内网机11,并发送穿透开始指令“开始穿透信息”,以及第一内网机11的TCP协议类型、外网地址及端口号给第二内网机21;
S208、第一内网机11接到服务器3发送的穿透开始指令“开始穿透信息”以及第二内网机21的TCP协议类型、外网地址及端口号后,通过第一NAT网关给预设通信地址114.114.114.114的不同端口发送随意的UDP协议消息,确保将第一NAT网关的所有外网端口消耗完;
S209、第二内网机21接到服务器3发送的穿透开始指令“开始穿透信息”以及第一内网机11的TCP协议类型、外网地址及端口号后,通过第一NAT网关给预设通信地址114.114.114.114的不同端口发送随意的UDP协议消息,确保将第二NAT网关的所有外网端口消耗完;
S210、第一内网机11断开之前跟服务器3维持的TCP连接,并根据第二内网机21的TCP协议类型、外网地址及端口号,尝试与第二内网机21直接建立连接;
S211、第二内网机21断开之前跟服务器3维持的TCP连接,并根据第一内网机11的TCP协议类型、外网地址及端口号,尝试与第一内网机11直接建立连接。
经过上述步骤,如前文所述,由于第一NAT网关仅剩一个端口可分配,即第一内网机11断开与服务器3的连接后释放的端口,第二NAT网关也是仅有一个端口可分配,此时,第一内网机11与第二内网机21直接建立通信连接,无需猜测端口,连接成功率将有效提高。
需要说明的是,UDP协议通信端口的老化时间根据环境不同会不一样,缺省情况下通常为120秒,第一内网机与第二内网机成功建立直接连接后,该内网环境会有比较长一段时间无法与外网产生新连接。针对这一情况可以在实施步骤S201之前,建立若干TCP协议的通信连接,在第一内网机与第二内网机尝试建立直接连接时断开这些TCP协议通信连接,进而释放新的外网端口进行分配。此时内网环境无法新建外网连接的时间为经过步骤S208、S209耗尽了所有NAT网关的外网端口后到释放预存的TCP协议通信连接的这段时间,这无疑缩短了无法建立新连接的时间。
上述情况下,在消耗完所有NAT网关的外网端口后到第一内网机与第二内网机尝试建立直接连接的这段时间,可能会有其他TCP协议通信连接断开,或此前被消耗的部分外网端口到达老化时间,导致此时可分配的外网端口并非只有预留的外网端口,使得第一内网机与第二内网机建立直接连接的成功率大幅降低。此时只能进行重试。重试的时候,可能由于出现其他新的TCP协议通信连接占用了外网端口,导致可建立的预存外网端口数量减少,这时可把预存外网端口的建立数量相应调整,仍能取得释放预存外网端口资源以备其他应用使用的有益效果。
另外,步骤S208、S209在消耗外网端口时使用UDP协议发送消息,无需进行TCP连接时要经过的俗称“三次握手”的连接步骤,虽然用时较短,但也不能得知何时已将端口消耗尽,难以适应NAT网关有多个IP地址的情形。为此,也可以在步骤S208、S209中改为使用TCP协议发送消息以耗尽NAT网关的外网端口。虽然整体时间较长,但无法建立新的外网连接的时间并因此未增加,反而因为可以得知消耗尽外网端口的状况,能及时进行之后的步骤,有助于缩短无法建立新的外网连接的时间。
相应地,本发明还公开了一种NAT穿透系统。
图3是本发明NAT穿透系统的结构示意图,包括第一内网1、第二内网2及服务器3,第一内网1包括第一内网机11及第一NAT网关12,第二内网2包括第二内网机21及第二NAT网关22,第一内网机11、第一NAT网关12、服务器3、第二NAT网关22及第二内网机21依次电连接,第一内网机11包括:
一机连接模块111,用于与服务器建立通信连接,以使服务器获得第一内网机的通信信息;
一网端口消耗模块112,用于接收到服务器发送的穿透开始指令及第二内网机的通信信息时,通过第一NAT网关向预设通信地址发送消息,以使第一NAT网关的所有外网端口均被消耗;
一机穿透模块113,用于断开与服务器的通信连接,并根据第二内网机的通信信息与第二内网机建立通信连接;
第二内网机21包括:
二机连接模块211,用于与服务器建立通信连接,以使服务器获得第二内网机的通信信息;
二网端口消耗模块212,用于接收到服务器发送的穿透开始指令及第一内网机的通信信息时,通过第二NAT网关向预设通信地址发送消息,以使第二NAT网关的所有外网端口均被消耗;
二机穿透模块213,用于断开与服务器的通信连接,并根据第一内网机的通信信息与第一内网机建立通信连接。
进一步地,第一内网机还包括:一机就绪信息发送模块114,用于当第一内网机在接收到服务器发送的通信连接成功消息后,向服务器发送第一就绪消息。
第二内网机还包括:二机就绪信息发送模块214,用于当第二内网机在接收到服务器发送的通信连接成功消息后,向服务器发送第二就绪消息,以使服务器均接收到第一就绪消息和第二就绪消息时,向第二内网机返回穿透开始指令及第一内网机的通信信息,并向第一内网机返回穿透开始指令及第二内网机的通信信息。
具体地,一机连接模块及二机连接模块与服务器建立通信连接所采用的通信协议均为TCP协议。
一网端口消耗模块通过第一NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议;二网端口消耗模块通过第二NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议。
本发明NAT穿透系统用于实现NAT穿透方法,本说明书中关于本发明NAT穿透方法的说明内容均可用于解释本发明NAT穿透系统的有益效果、功能限定、专业术语以及其他内容,在此不再赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种NAT穿透方法,应用于由第一内网、第二内网及服务器组成的通信架构,所述第一内网包括第一内网机及第一NAT网关,第二内网包括第二内网机及第二NAT网关,其特征在于,所述方法包括:
所述第一内网机及第二内网机分别与所述服务器建立通信连接,以使所述服务器获得所述第一内网机及第二内网机的通信信息;
所述第一内网机接收到所述服务器发送的穿透开始指令及所述第二内网机的通信信息时,通过所述第一NAT网关向预设通信地址发送消息,以使所述第一NAT网关的所有外网端口均被消耗;
所述第二内网机接收到所述服务器发送的穿透开始指令及所述第一内网机的通信信息时,通过所述第二NAT网关向预设通信地址发送消息,以使所述第二NAT网关的所有外网端口均被消耗;
所述第一内网机断开与所述服务器的通信连接,并根据所述第二内网机的通信信息与所述第二内网机建立通信连接;
所述第二内网机断开与所述服务器的通信连接,并根据所述第一内网机的通信信息与所述第一内网机建立通信连接。
2.根据权利要求1所述的NAT穿透方法,其特征在于,在第一内网机接收到所述服务器发送的穿透开始指令及所述第二内网机的通信信息之前,包括:
当所述第一内网机在接收到所述服务器发送的通信连接成功消息后,向所述服务器发送第一就绪消息。
3.根据权利要求2所述的NAT穿透方法,其特征在于,在第二内网机接收到所述服务器发送的穿透开始指令及所述第一内网机的通信信息之前,包括:
当所述第二内网机在接收到所述服务器发送的通信连接成功消息后,向所述服务器发送第二就绪消息,以使所述服务器均接收到所述第一就绪消息和所述第二就绪消息时,向所述第二内网机返回所述穿透开始指令及所述第一内网机的通信信息,并向所述第一内网机返回所述穿透开始指令及所述第二内网机的通信信息。
4.根据权利要求1所述的NAT穿透方法,其特征在于,所述第一内网机及第二内网机与所述服务器建立通信连接所采用的通信协议均为TCP协议。
5.根据权利要求1所述的NAT穿透方法,其特征在于,所述第一内网机通过所述第一NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议;
所述第二内网机通过所述第二NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议。
6.一种NAT穿透系统,包括第一内网、第二内网及服务器,所述第一内网包括第一内网机及第一NAT网关,所述第二内网包括第二内网机第二NAT网关,所述第一内网机、第一NAT网关、服务器、第二NAT网关及第二内网机依次电连接,其特征在于,
所述第一内网机包括:
一机连接模块,用于与所述服务器建立通信连接,以使所述服务器获得所述第一内网机的通信信息;
一网端口消耗模块,用于接收到所述服务器发送的穿透开始指令及所述第二内网机的通信信息时,通过所述第一NAT网关向预设通信地址发送消息,以使所述第一NAT网关的所有外网端口均被消耗;
一机穿透模块,用于断开与所述服务器的通信连接,并根据所述第二内网机的通信信息与所述第二内网机建立通信连接;
所述第二内网机包括:
二机连接模块,用于与所述服务器建立通信连接,以使所述服务器获得所述第二内网机的通信信息;
二网端口消耗模块,用于接收到所述服务器发送的穿透开始指令及所述第一内网机的通信信息时,通过所述第二NAT网关向预设通信地址发送消息,以使所述第二NAT网关的所有外网端口均被消耗;
二机穿透模块,用于断开与所述服务器的通信连接,并根据所述第一内网机的通信信息与所述第一内网机建立通信连接。
7.根据权利要求6所述的NAT穿透系统,其特征在于,所述第一内网机还包括:
一机就绪信息发送模块,用于当所述第一内网机在接收到所述服务器发送的通信连接成功消息后,向所述服务器发送第一就绪消息。
8.根据权利要求7所述的NAT穿透系统,其特征在于,所述第二内网机还包括:
二机就绪信息发送模块,用于当所述第二内网机在接收到所述服务器发送的通信连接成功消息后,向所述服务器发送第二就绪消息,以使所述服务器均接收到所述第一就绪消息和所述第二就绪消息时,向所述第二内网机返回所述穿透开始指令及所述第一内网机的通信信息,并向所述第一内网机返回所述穿透开始指令及所述第二内网机的通信信息。
9.根据权利要求6所述的NAT穿透系统,其特征在于,所述一机连接模块及二机连接模块与所述服务器建立通信连接所采用的通信协议均为TCP协议。
10.根据权利要求6所述的NAT穿透系统,其特征在于,所述一网端口消耗模块通过所述第一NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议;
所述二网端口消耗模块通过所述第二NAT网关向预设通信地址发送消息所采用的通信协议为UDP协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011286372.7A CN112437169B (zh) | 2020-11-17 | 2020-11-17 | 一种nat穿透方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011286372.7A CN112437169B (zh) | 2020-11-17 | 2020-11-17 | 一种nat穿透方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112437169A CN112437169A (zh) | 2021-03-02 |
CN112437169B true CN112437169B (zh) | 2022-10-25 |
Family
ID=74700253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011286372.7A Active CN112437169B (zh) | 2020-11-17 | 2020-11-17 | 一种nat穿透方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112437169B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037890A (zh) * | 2021-03-20 | 2021-06-25 | 张晋 | 一种能够确保穿透对称型nat设备的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104660728A (zh) * | 2015-02-13 | 2015-05-27 | 上海交通大学 | 基于智能家居控制系统的nat穿透方法 |
WO2017166808A1 (zh) * | 2016-03-30 | 2017-10-05 | 上海斐讯数据通信技术有限公司 | 一种通过穿透nat实现p2p通信的方法、设备、服务器及系统 |
CN109831547A (zh) * | 2019-03-14 | 2019-05-31 | 腾讯科技(深圳)有限公司 | Nat穿透方法、装置、设备及存储介质 |
CN111405052A (zh) * | 2020-03-20 | 2020-07-10 | 深圳市网心科技有限公司 | 基于端口预测的p2p穿透方法、电子设备及介质 |
-
2020
- 2020-11-17 CN CN202011286372.7A patent/CN112437169B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104660728A (zh) * | 2015-02-13 | 2015-05-27 | 上海交通大学 | 基于智能家居控制系统的nat穿透方法 |
WO2017166808A1 (zh) * | 2016-03-30 | 2017-10-05 | 上海斐讯数据通信技术有限公司 | 一种通过穿透nat实现p2p通信的方法、设备、服务器及系统 |
CN109831547A (zh) * | 2019-03-14 | 2019-05-31 | 腾讯科技(深圳)有限公司 | Nat穿透方法、装置、设备及存储介质 |
CN111405052A (zh) * | 2020-03-20 | 2020-07-10 | 深圳市网心科技有限公司 | 基于端口预测的p2p穿透方法、电子设备及介质 |
Non-Patent Citations (1)
Title |
---|
基于探测对Symmetric NAT与端口受限NAT的穿透方案;王勇;《计算机应用》;20060401;第26卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112437169A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2645679B1 (en) | Method and apparatus for message transmission | |
Cheshire et al. | Nat port mapping protocol (nat-pmp) | |
EP3958534B1 (en) | Method and apparatus for establishing end-to-end network connection, and network system | |
US9191362B2 (en) | Determining the type of upstream network address translation from a home gateway | |
US20130058256A1 (en) | Port mapping method and apparatus, and communication system | |
US8611354B2 (en) | Method and apparatus for relaying packets | |
US20130308628A1 (en) | Nat traversal for voip | |
EP2896160B1 (en) | Bandwidth probing messages | |
KR20100117651A (ko) | 동시 다중 연결을 위한 대칭형 네트워크 주소 변환기 통과 방법 | |
WO2006089481A1 (fr) | Méthode de contrôle de communication de pénétration directe dont deux parties sont dans différents nat et dispositif correspondant | |
CN111800341B (zh) | 一种跨路由器终端通信方法及装置 | |
Wacker et al. | A nat traversal mechanism for peer-to-peer networks | |
KR100342514B1 (ko) | 사설 인터넷 프로토콜 주소 도메인에서 고유 인터넷프로토콜 주소 사용방법 | |
CN112437169B (zh) | 一种nat穿透方法及系统 | |
Thaler | Teredo extensions | |
Phuoc et al. | NAT traversal techniques in peer-to-peer networks | |
EP3264730A1 (en) | Method and apparatus for terminal application accessing nas | |
EP2052514A1 (en) | Pervasive inter-domain dynamic host configuration | |
JP6293902B2 (ja) | ブラウザ発信プロシージャのためのモバイルデバイスベースのプロキシ | |
CN108337331B (zh) | 网络穿透方法、装置、系统及网络连通性检查方法 | |
Cheshire et al. | RFC 6886: Nat port mapping protocol (NAT-PMP) | |
CN113067908B (zh) | 一种nat穿越方法、装置、电子设备和存储介质 | |
CN106027689B (zh) | 一种通信方法和通信装置 | |
KR20180058539A (ko) | 분리망 연계 시스템 및 그 제어방법 | |
Duarte Jr et al. | Transparent communications for applications behind NAT/firewall over any transport protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |