CN101977249B - 穿透nat设备的方法 - Google Patents

穿透nat设备的方法 Download PDF

Info

Publication number
CN101977249B
CN101977249B CN 201010527664 CN201010527664A CN101977249B CN 101977249 B CN101977249 B CN 101977249B CN 201010527664 CN201010527664 CN 201010527664 CN 201010527664 A CN201010527664 A CN 201010527664A CN 101977249 B CN101977249 B CN 101977249B
Authority
CN
China
Prior art keywords
nat
node
port
nat node
outer net
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
Application number
CN 201010527664
Other languages
English (en)
Other versions
CN101977249A (zh
Inventor
邵思瑶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING LONGSHINE TECHNOLOGY CO., LTD.
Original Assignee
BEIJING YSTEN TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING YSTEN TECHNOLOGY Co Ltd filed Critical BEIJING YSTEN TECHNOLOGY Co Ltd
Priority to CN 201010527664 priority Critical patent/CN101977249B/zh
Publication of CN101977249A publication Critical patent/CN101977249A/zh
Application granted granted Critical
Publication of CN101977249B publication Critical patent/CN101977249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种穿透网络地址转换NAT设备的方法,该方法包括:步骤20、检测NAT节点A的设备类型;步骤30、根据NAT节点A的设备类型进行NAT设备穿透。步骤20之前,该方法进一步包括:步骤10、对NAT节点A的指定端口进行通用即插即用UPNP操作。本发明利用UPNP降低了穿透成本,通过划分更细致全面的NAT类型,根据各个NAT类型的映射特性和穿透特性采用适当的穿透方法,从而能够实现NAT设备的穿透,满足企业内部用户的实时网络应用需求,提高用户的网络体验。

Description

穿透NAT设备的方法
技术领域
本发明涉及互联网通信技术领域,特别是涉及一种穿透NAT设备的方法。
背景技术
目前,随着互联网用户的不断增多,互联网所使用的互联网协议第四版(IPv4)地址资源已经非常紧张了,根本不能够满足让每一位用户都拥有一个能够直接访问因特网的IPv4地址,即外网IP地址。大量的企业单位也只拥有少量的外网IP地址,因此企业内部只能使用大量不能直接访问因特网的内网(即本地)IP地址来满足企业内用户的内部网络通信需求,为了让企业内的用户能够使用互联网资源,企业一般会采用NAT(Network Address Translation,网络地址转换)设备将企业内部的内网IP地址转换成能够直接访问互联网的外网IP地址,使得企业内的一个或多个用户可以使用一个外网IP地址来访问互联网。
NAT设备的使用虽然能暂时缓解IPv4地址资源的危机,但是,由于NAT设备会限制互联网用户对位于NAT设备后的企业内部用户的访问,所以其会影响互联网的互通性。为了能够让位于互联网中的用户能够访问位于NAT设备后的企业内部用户,需要采用一些策略来穿透NAT设备。根据互联网工程任务组(IETF)制定的STUN(Simple Traversal ofUDP Through NATs,简单UDP报文穿透NAT)协议的检测流程,能够检测出的NAT设备类型如表1所示:
Figure BSA00000327859900021
表1
由于NAT0映射端口增加规律不规则,只可能让它主动连接NAT3或NAT4,不可能向它进行穿透。NAT1每次向陌生IP或信任IP的陌生端口发送数据,其映射端口都增加1,做到NAT1与NAT2甚至NAT1与NAT1之间的穿透都是非常困难的。NAT2是映射端口固定的NAT,业界很多P2P(peer-to-peer,端到端)软件利用互相打洞的方法做到了如表2所示的各种NAT类型之间的穿透。
Figure BSA00000327859900022
表2
在表2中,可以看出现有技术中不能在NAT0、NAT1和NAT2之间进行穿透,有的软件试图将NAT的指定端口进行UPNP(Universal Plug and Play,通用即插即用)操作,使其转化为NAT3或NAT4;所述UPNP操作为通过向NAT设备发送控制信息添加端口映射将NAT设备转化成NAT3或NAT4,从而优化NAT类型。然而能够进行UPNP操作的网络只是实际网络中很小的一部分,而对于不能转化的NAT将不能完成穿透。在实际网络中,NAT1的节点占据了相当一部分比例,而NAT2的节点更是占据了大约60%以上,这样NAT1与NAT2或NAT1与NAT1之间的穿透障碍就造成了网络中很大一部分的节点不能互联,不利于企业内部用户进行实时的网络应用,降低了用户的网络体验。
发明内容
(一)要解决的技术问题
针对现有NAT穿透技术的缺陷,本发明要解决的技术问题是:如何穿透不同类型的NAT设备,满足企业内部用户进行实时的网络应用需求,从而提高用户的网络体验。
(二)技术方案
为解决上述技术问题,提供一种穿透网络地址转换NAT设备的方法,该方法包括:
步骤20、检测NAT节点A的设备类型;
步骤30、根据NAT节点A的设备类型进行NAT设备穿透。
优选地,步骤20之前,该方法进一步包括:
步骤10、对NAT节点A的指定端口进行通用即插即用UPNP操作。
优选地,步骤20所述的设备类型具体包括:端口不规则型NAT、对称1型NAT、对称2型NAT、受限圆锥型NAT、端口受限圆锥型NAT、全圆锥型NAT和开放网络型NAT;其中,
所述端口不规则型NAT只能被信任IP的信任端口穿透,每次向陌生IP或信任IP的陌生端口发送数据时映射端口增量不规则;
所述对称1型NAT只能被信任IP的信任端口穿透,每次向陌生IP或信任IP的陌生端口发送数据时映射端口增加1;
所述对称2型NAT只能被信任IP的信任端口穿透,每次向陌生IP发送数据时映射端口增加1;
所述受限圆锥型NAT能够被信任IP的任何端口穿透,映射端口固定;
所述端口受限圆锥型NAT只能被信任IP的信任端口穿透,映射端口固定;
所述全圆锥型NAT能够被任何IP的任何端口穿透,映射端口固定;
所述开放网络型NAT能够被任何IP的任何端口穿透,其内网IP和端口与外网IP和端口一致。
优选地,当NAT节点A为对称1型NAT或对称2型NAT,NAT节点B为受限圆锥型NAT或端口受限圆锥型NAT,且NAT节点A已知NAT节点B的NAT信息时,所述步骤30具体包括:
步骤S101:NAT节点A获取本地最新外网端口,并向其连接的所有节点发送寻找NAT节点B的指令,该指令携带NAT节点A的NAT信息;
步骤S102:接收到所述指令的握手节点C,确定自身与NAT节点B相连接后,向NAT节点B发送一个通知指令,该指令携带NAT节点A的NAT信息;
步骤S103:收到所述通知指令后,NAT节点B向NAT节点A打洞,且打洞的目标端口以NAT节点A的最新外网端口为基准连续增长,同时,NAT节点A根据NAT节点B的NAT信息向所述NAT节点B打洞,直到NAT节点A或NAT节点B中任意一方接收到对方的打洞数据,则实现了NAT节点A到NAT节点B的穿透。
优选地,当NAT节点A为对称2型NAT,NAT节点B为对称1型NAT或对称2型NAT,且NAT节点A已知NAT节点B的NAT信息时,所述步骤30具体包括:
步骤S201:NAT节点A向其连接的所有节点发送寻找NAT节点B的指令,该指令携带NAT节点A的NAT信息;
步骤S202:接收到所述指令的握手节点C,确定自身与NAT节点B相连接后,向NAT节点B发送一个通知指令,该指令携带NAT节点A的NAT信息,并同时向NAT节点A发送确认指令,将找到NAT节点B的消息通知NAT节点A;
步骤S203:收到所述通知指令后,NAT节点B获取本地最新外网端口,并通过握手节点C将所述NAT节点B的最新外网端口发送给NAT节点A;同时,收到所述确认指令后,NAT节点A获取本地最新外网端口,并通过握手节点C将所述NAT节点A的最新外网端口发送给NAT节点B;
步骤S204:NAT节点A和NAT节点B分别接收到对方的最新外网端口后同时向对方打洞,且打洞的目标端口以对方的最新外网端口为基准连续增长;
步骤S205:NAT节点A或NAT节点B接收到对方发送来的打洞数据,则实现了NAT节点A到NAT节点B的穿透。
优选地,当NAT节点A和NAT节点B均为对称1型NAT,且NAT节点A已知NAT节点B的NAT信息时,所述步骤30具体包括:
步骤S301:NAT节点A向其连接的所有节点发送寻找NAT节点B的指令,该指令携带NAT节点A的NAT信息;
步骤S302:接收到所述指令的握手节点C,确定自身与NAT节点B相连接后,向NAT节点B发送一个通知指令,该指令携带NAT节点A的NAT信息,并同时向NAT节点A发送确认指令,将找到NAT节点B的消息通知NAT节点A;
步骤S303:收到所述通知指令后,NAT节点B获取本地最新外网端口,并通过握手节点C将所述NAT节点B的最新外网端口发送给NAT节点A;同时,收到所述确认指令后,NAT节点A获取本地最新外网端口,并通过握手节点C将所述NAT节点A的最新外网端口发送给NAT节点B;
步骤S304:NAT节点A和NAT节点B分别接收到对方的最新外网端口后同时向对方打洞,且打洞的目标端口以对方的最新外网端口为基准,由外界因素导致的最新外网端口增加和累计到本次打洞导致的最新外网端口增加而决定;
步骤S305:NAT节点A或NAT节点B接收到对方发送来的打洞数据,则实现了NAT节点A到NAT节点B的穿透。
优选地,步骤S304之后,如果NAT节点A或NAT节点B没有接收到对方的打洞数据,则所述方法进一步包括:NAT节点A通过握手节点C通知NAT节点B获取所述NAT节点B的最新外网端口并发送给所述NAT节点A,同时,NAT节点B通过握手节点C通知NAT节点A获取所述NAT节点A的最新外网端口并发送给所述NAT节点B,并再重复执行一次步骤S304。
优选地,步骤S103中所述NAT节点B向NAT节点A打洞包括:所述NAT节点B依次向所述NAT节点A中,从NAT节点A的最新外网端口开始,连续增长的端口打洞;所述NAT节点A向NAT节点B打洞具体包括;所述NAT节点A向所述NAT节点B的固定外网端口打洞。
优选地,步骤S204中所述NAT节点A和NAT节点B同时向对方打洞包括:
所述NAT节点A依次向所述NAT节点B中,从NAT节点B的最新外网端口开始,连续增长的端口打洞;同时,
所述NAT节点B依次向所述NAT节点A中,从NAT节点A的最新外网端口开始,连续增长的端口打洞。
优选地,所述握手节点C为分别与NAT节点A和NAT节点B已经实现穿透的节点;所述NAT信息包括:NAT类型、本地IP和端口、外网IP和端口。
(三)有益效果
本发明提出了一种穿透NAT设备的方法,利用UPNP操作降低了穿透成本,通过划分更细致全面的NAT类型,根据各个NAT类型的映射特性和穿透特性采用适当的穿透方法,从而能够实现NAT设备的穿透,满足企业内部用户的实时网络应用需求,提高用户的网络体验。
附图说明
图1是本发明所述穿透NAT设备的方法流程图;
图2是本发明所述方法中根据NAT节点A的设备类型进行NAT设备穿透的实施例1的方法流程图;
图3是本发明所述方法中根据NAT节点A的设备类型进行NAT设备穿透的实施例2的方法流程图;
图4是本发明所述方法中根据NAT节点A的设备类型进行NAT设备穿透的实施例3的方法流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明的主要思想为:对NAT节点A的指定端口进行UPNP操作;检测NAT节点A的设备类型;根据NAT节点A的设备类型进行NAT设备穿透。
图1是本发明所述穿透NAT设备的方法流程图。如图1所示,本发明所述方法主要包括:
步骤10、对NAT节点A的指定端口进行UPNP操作。
步骤20、检测NAT节点A的设备类型。
在本步骤中,NAT设备类型的划分如下表3所示。
Figure BSA00000327859900081
表3
参见表3,其中映射端口为NAT的当前工作端口。在STUN检测流程的基础上增加了一些情况下的映射性质的测试,将NAT1(Symmetric NAT)分为两种,即NAT1.1和NAT1.2,以便更有利地穿透。NAT1.1和NAT1.2的共同点都是对于信任的IP的信任端口才能向其穿透。不同点在于当NAT1.1在向陌生IP或者信任IP的陌生端口发送数据时,其映射端口会增加1,而NAT1.2在向陌生IP发送数据时,其映射端口增加1,向信任IP的陌生端口发送数据时,映射端口不变。因此,本方案的检测流程采用向信任IP的陌生端口发送数据返回本地映射的方法区分出NAT1.1和NAT1.2。
步骤30、根据NAT节点A的设备类型进行NAT设备穿透。
在本步骤中,主要在NAT1与NAT2之间以及NAT1之间的穿透。
实施例1:NAT2与NAT1.1或NAT1.2之间的穿透。
图2是本发明所述方法中根据NAT节点A的设备类型进行NAT设备穿透的实施例1的方法流程图,如图2所示,NAT节点A的类型为NAT1.1或NAT1.2,NAT节点B的类型为NAT2,NAT节点A已知NAT节点B的NAT信息,该方法包括:
步骤S101:NAT节点A获取本地最新外网端口,并向其连接的所有节点发送寻找NAT节点B的指令,该指令携带NAT节点A的NAT信息;
所述NAT信息包括:NAT类型、本地IP和端口、外网IP和端口。
步骤S102:接收到所述指令的握手节点C,确定自身与NAT节点B相连接后,向NAT节点B发送一个通知指令,该指令携带NAT节点A的NAT信息;
所述握手节点C为分别与NAT节点A和NAT节点B已经实现穿透的节点。
步骤S103:收到所述通知指令后,NAT节点B向NAT节点A打洞,且打洞的目标端口以NAT节点A的最新外网端口为基准连续增长,同时,NAT节点A根据NAT节点B的NAT信息向其打洞,直到NAT节点A或NAT节点B中任意一方接收到对方的打洞数据,则实现了NAT节点A到NAT节点B的穿透。
由于NAT节点在A取得本地最新NAT信息之后,还可能向其他目标发送数据导致外网端口增长,所以所述NAT节点B向NAT节点A打洞具体包括:所述NAT节点B依次向所述NAT节点A中,从NAT节点A的最新外网端口开始,连续增长的端口打洞;
所述NAT节点A向NAT节点B打洞具体包括;NAT节点A向NAT节点B的固定外网端口打洞。
类似地,可以实现NAT节点B到NAT节点A的穿透。
实施例2:NAT1.2与NAT1.1或NAT1.2之间的穿透。
图3是本发明所述方法中根据NAT节点A的设备类型进行NAT设备穿透的实施例2的方法流程图,如图3所示,NAT节点A的类型为NAT1.2,NAT节点B的类型为NAT1.1或NAT1.2,NAT节点A已知NAT节点B的NAT信息,该方法包括:
步骤S201:NAT节点A向其连接的所有节点发送寻找NAT节点B的指令,该指令携带NAT节点A的NAT信息;
所述NAT信息包括:NAT类型、本地IP和端口、外网IP和端口。
步骤S202:接收到所述指令的握手节点C,确定自身与NAT节点B相连接后,向NAT节点B发送一个通知指令,该指令携带NAT节点A的NAT信息,并同时向NAT节点A发送确认指令,将找到NAT节点B的消息通知NAT节点A;
所述握手节点C为分别与节点A和节点B实现穿透的节点。
步骤S203:收到所述通知指令后,NAT节点B获取本地最新外网端口,并通过握手节点C将所述NAT节点B的最新最外网端口发送给NAT节点A;同时,收到所述确认指令后,NAT节点A获取本地最新外网端口,并通过握手节点C将所述NAT节点A的最新外网端口发送给NAT节点B;
步骤S204:NAT节点A和NAT节点B分别接收到对方的最新外网端口后同时向对方打洞,且打洞的目标端口以对方的最新外网端口为基准连续增长;
所述NAT节点A和NAT节点B同时向对方打洞具体包括:所述NAT节点A依次向所述NAT节点B中,从NAT节点B的最新外网端口开始,连续增长的端口打洞;同时,所述NAT节点B依次向所述NAT节点A中,从NAT节点A的最新外网端口开始,连续增长的端口打洞。
步骤S205:NAT节点A或NAT节点B接收到对方发送来的打洞数据,则实现了NAT节点A到NAT节点B的穿透。
类似地,可以实现NAT节点B到NAT节点A的穿透。
实施例3:NAT1.1与NAT1.1之间的穿透。
图4是本发明所述方法中根据NAT节点A的设备类型进行NAT设备穿透的实施例3的方法流程图,如图4所示,NAT节点A和NAT节点B的类型均为NAT1.1,NAT节点A已知NAT节点B的NAT信息,该方法包括:
步骤S301:NAT节点A向其连接的所有节点发送寻找NAT节点B的指令,该指令携带NAT节点A的NAT信息;
所述NAT信息包括:NAT类型、本地IP和端口、外网IP和端口。
步骤S302:接收到所述指令的握手节点C,确定自身与NAT节点B相连接后,向NAT节点B发送一个通知指令,该指令携带NAT节点A的NAT信息,并同时向NAT节点A发送确认指令,将找到NAT节点B的消息通知NAT节点A;
所述握手节点C为分别与NAT节点A和NAT节点B已经实现穿透的节点。
步骤S303:收到所述通知指令后,NAT节点B获取本地最新外网端口,并通过握手节点C将所述NAT节点B的最新外网端口发送给NAT节点A;同时,收到所述确认指令后,NAT节点A获取本地最新外网端口,并通过握手节点C将所述NAT节点A的最新外网端口发送给NAT节点B;
步骤S304:NAT节点A和NAT节点B分别接收到对方的最新外网端口后同时向对方打洞,且打洞的目标端口以对方的最新外网端口为基准,由外界因素导致的最新外网端口增加和累计到本次打洞导致的最新外网端口增加而决定;
由于NAT节点A和NAT节点B在取得最新端口之后,有可能分别又向陌生节点发送数据导致了多次外网端口增长,同时考虑自身向对方端口打洞所带来的端口增长的结果,由外界因素导致的最新外网端口增加和累计到本次打洞导致的最新外网端口增加确定的打洞的目标端口的增长序列如表4所示。
Figure BSA00000327859900121
表4
如表4中所示,当NAT节点A和NAT节点B取得各自的最新外网端口之后,到开始打洞之前,如果没有向外界发送数据而导致最新端口增加,那么只考虑本次打洞带来的端口增加,例如,假设NAT节点A和NAT节点B的最新外网端口均为10000,此时NAT节点A若向NAT节点B的10001端口打洞,NAT节点A的最新外网端口则变成了10001,同时NAT节点B的10001端口也成为了NAT节点A的信任端口,然后NAT节点B恰好也向NAT节点A的10001端口打洞,打这个洞的同时,NAT节点B最新外网端口变成了10001,即NAT节点A的信任端口,那么NAT节点A必然能够接收到此打洞数据,即穿透成功。
但如果实际情况没有那么顺利,即NAT节点A和NAT节点B的最新外网端口由于外界因素导致了一定增长,我们就由最可能的情况开始,逐渐覆盖各种可能。除了双方的外界因素导致的端口增长均为0的情况之外,最可能的是,两者中一个的外界因素导致外网端口增长为1,另一个的外界因素导致外网端口增长为0,也就是外界因素导致的双方的外网端口增长之和为1,就是表4中第二行和第三行的情况。以此类推,以外界因素导致的双方外网端口增长之和从小到大的顺序得出表4所示的打洞的目标端口的增长序列。
表4中只列举到外界因素导致的双方外网端口增长之和为4的部分,由于篇幅的关系,不再列举其他的打洞的目标端口的增长序列部分。
步骤S305:NAT节点A或NAT节点B接收到对方发送来的打洞数据,则实现了NAT节点A到NAT节点B的穿透。
如果NAT节点A或NAT节点B没有接收到对方发送来的打洞数据,则NAT节点A通过握手节点C通知NAT节点B获取所述NAT节点B的最新外网端口并发送给所述NAT节点A,同时,NAT节点B通过握手节点C通知NAT节点A获取所述NAT节点A的最新外网端口并发送给所述NAT节点B,并再重复执行一次步骤S304,增大打洞成功概率。
类似地,可以实现NAT节点B到NAT节点A的穿透。
由以上实施例可以看出,本发明实施例通过提出了一种穿透NAT设备的方法,利用UPNP降低了穿透成本,通过划分更细致全面的NAT类型,根据各个NAT类型的映射特性和穿透特性采用适当的穿透方法,从而能够实现NAT设备的穿透,满足企业内部用户的实时网络应用需求,提高用户的网络体验。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。

Claims (9)

1.一种穿透网络地址转换NAT设备的方法,其特征在于,该方法包括:
步骤20、检测NAT节点A的设备类型;
步骤30、根据NAT节点A的设备类型进行NAT设备穿透;
其中,步骤20所述的设备类型具体包括:端口不规则型NAT、对称1型NAT、对称2型NAT、受限圆锥型NAT、端口受限圆锥型NAT、全圆锥型NAT和开放网络型NAT;其中,
所述端口不规则型NAT只能被信任IP的信任端口穿透,每次向陌生IP或信任IP的陌生端口发送数据时映射端口增量不规则;
所述对称1型NAT只能被信任IP的信任端口穿透,每次向陌生IP或信任IP的陌生端口发送数据时映射端口增加1;
所述对称2型NAT只能被信任IP的信任端口穿透,每次向陌生IP发送数据时映射端口增加1;
所述受限圆锥型NAT能够被信任IP的任何端口穿透,映射端口固定;
所述端口受限圆锥型NAT只能被信任IP的信任端口穿透,映射端口固定;
所述全圆锥型NAT能够被任何IP的任何端口穿透,映射端口固定;
所述开放网络型NAT能够被任何IP的任何端口穿透,其内网IP和端口与外网IP和端口一致。
2.如权利要求1所述的方法,其特征在于,步骤20之前,该方法进一步包括:
步骤10、对NAT节点A的指定端口进行通用即插即用UPNP操作。
3.如权利要求1所述的方法,其特征在于,当NAT节点A为对称1型NAT或对称2型NAT,NAT节点B为受限圆锥型NAT或端口受限圆锥型NAT,且NAT节点A已知NAT节点B的NAT信息时,所述步骤30具体包括:
步骤S101:NAT节点A获取本地最新外网端口,并向其连接的所有节点发送寻找NAT节点B的指令,该指令携带NAT节点A的NAT信息;
步骤S102:接收到所述指令的握手节点C,确定自身与NAT节点B相连接后,向NAT节点B发送一个通知指令,该指令携带NAT节点A的NAT信息;
步骤S103:收到所述通知指令后,NAT节点B向NAT节点A打洞,且打洞的目标端口以NAT节点A的最新外网端口为基准连续增长,同时,NAT节点A根据NAT节点B的NAT信息向所述NAT节点B打洞,直到NAT节点A或NAT节点B中任意一方接收到对方的打洞数据,则实现了NAT节点A到NAT节点B的穿透。
4.如权利要求1所述的方法,其特征在于,当NAT节点A为对称2型NAT,NAT节点B为对称1型NAT或对称2型NAT,且NAT节点A已知NAT节点B的NAT信息时,所述步骤30具体包括:
步骤S201:NAT节点A向其连接的所有节点发送寻找NAT节点B的指令,该指令携带NAT节点A的NAT信息;
步骤S202:接收到所述指令的握手节点C,确定自身与NAT节点B相连接后,向NAT节点B发送一个通知指令,该指令携带NAT节点A的NAT信息,并同时向NAT节点A发送确认指令,将找到NAT节点B的消息通知NAT节点A;
步骤S203:收到所述通知指令后,NAT节点B获取本地最新外网端口,并通过握手节点C将所述NAT节点B的最新外网端口发送给NAT节点A;同时,收到所述确认指令后,NAT节点A获取本地最新外网端口,并通过握手节点C将所述NAT节点A的最新外网端口发送给NAT节点B;
步骤S204:NAT节点A和NAT节点B分别接收到对方的最新外网端口后同时向对方打洞,且打洞的目标端口以对方的最新外网端口为基准连续增长;
步骤S205:NAT节点A或NAT节点B接收到对方发送来的打洞数据,则实现了NAT节点A到NAT节点B的穿透。
5.如权利要求1所述的方法,其特征在于,当NAT节点A和NAT节点B均为对称1型NAT,且NAT节点A已知NAT节点B的NAT信息时,所述步骤30具体包括:
步骤S301:NAT节点A向其连接的所有节点发送寻找NAT节点B的指令,该指令携带NAT节点A的NAT信息;
步骤S302:接收到所述指令的握手节点C,确定自身与NAT节点B相连接后,向NAT节点B发送一个通知指令,该指令携带NAT节点A的NAT信息,并同时向NAT节点A发送确认指令,将找到NAT节点B的消息通知NAT节点A;
步骤S303:收到所述通知指令后,NAT节点B获取本地最新外网端口,并通过握手节点C将所述NAT节点B的最新外网端口发送给NAT节点A;同时,收到所述确认指令后,NAT节点A获取本地最新外网端口,并通过握手节点C将所述NAT节点A的最新外网端口发送给NAT节点B;
步骤S304:NAT节点A和NAT节点B分别接收到对方的最新外网端口后同时向对方打洞,且打洞的目标端口以对方的最新外网端口为基准,由外界因素导致的最新外网端口增加和累计到本次打洞导致的最新外网端口增加而决定;
步骤S305:NAT节点A或NAT节点B接收到对方发送来的打洞数据,则实现了NAT节点A到NAT节点B的穿透。
6.如权利要求5所述的方法,其特征在于,步骤S304之后,如果NAT节点A或NAT节点B没有接收到对方的打洞数据,则所述方法进一步包括:NAT节点A通过握手节点C通知NAT节点B获取所述NAT节点B的最新外网端口并发送给所述NAT节点A,同时,NAT节点B通过握手节点C通知NAT节点A获取所述NAT节点A的最新外网端口并发送给所述NAT节点B,并再重复执行一次步骤S304。
7.如权利要求3所述的方法,其特征在于,步骤S 103中所述NAT节点B向NAT节点A打洞包括:所述NAT节点B依次向所述NAT节点A中,从NAT节点A的最新外网端口开始,连续增长的端口打洞;所述NAT节点A向NAT节点B打洞具体包括;所述NAT节点A向所述NAT节点B的固定外网端口打洞。
8.如权利要求4所述的方法,其特征在于,步骤S204中所述NAT节点A和NAT节点B同时向对方打洞包括:
所述NAT节点A依次向所述NAT节点B中,从NAT节点B的最新外网端口开始,连续增长的端口打洞;同时,
所述NAT节点B依次向所述NAT节点A中,从NAT节点A的最新外网端口开始,连续增长的端口打洞。
9.如权利要求3-8中任一项所述的方法,其特征在于,所述握手节点C为分别与NAT节点A和NAT节点B已经实现穿透的节点;所述NAT信息包括:NAT类型、本地IP和端口、外网IP和端口。
CN 201010527664 2010-10-27 2010-10-27 穿透nat设备的方法 Active CN101977249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010527664 CN101977249B (zh) 2010-10-27 2010-10-27 穿透nat设备的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010527664 CN101977249B (zh) 2010-10-27 2010-10-27 穿透nat设备的方法

Publications (2)

Publication Number Publication Date
CN101977249A CN101977249A (zh) 2011-02-16
CN101977249B true CN101977249B (zh) 2013-02-13

Family

ID=43577092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010527664 Active CN101977249B (zh) 2010-10-27 2010-10-27 穿透nat设备的方法

Country Status (1)

Country Link
CN (1) CN101977249B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291473B (zh) * 2011-09-09 2013-08-21 中山大学 一种家庭网络设备管理系统穿透nat方法
CN102571797B (zh) * 2012-01-16 2015-03-18 何建亿 一种通过UPnP改善STUN-P2P穿透率与稳定性的方法
CN105282264B (zh) * 2014-07-17 2019-01-25 中国电信股份有限公司 非对称nat环境下进行tcp通信的方法、终端、nps和系统
CN105141711B (zh) * 2015-08-24 2019-03-26 北京息通网络技术有限公司 一种基于大数据分析的对称nat穿越方法及系统
CN105049300B (zh) * 2015-08-28 2018-08-07 北京奇艺世纪科技有限公司 一种检测nat网络类型的方法及装置
CN105635346B (zh) * 2016-03-31 2018-12-14 北京奇艺世纪科技有限公司 一种nat网络类型检测方法及装置
CN109194778B (zh) * 2018-09-12 2021-11-05 杭州趣链科技有限公司 一种基于kcp协议的nat穿透方法
CN112134826B (zh) * 2019-06-24 2022-05-13 华为技术有限公司 通信方法,计算机设备和计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1787523A (zh) * 2004-12-08 2006-06-14 华为技术有限公司 动态打开网络地址转换和防火墙端口的方法
CN1968194A (zh) * 2006-06-09 2007-05-23 华为技术有限公司 穿越网络地址转换的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005051680A (ja) * 2003-07-31 2005-02-24 Matsushita Electric Ind Co Ltd マルチメディア通信装置またはマルチメディア通信方式またはビデオ配信システムおよびビデオ会議システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1787523A (zh) * 2004-12-08 2006-06-14 华为技术有限公司 动态打开网络地址转换和防火墙端口的方法
CN1968194A (zh) * 2006-06-09 2007-05-23 华为技术有限公司 穿越网络地址转换的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开2005-51680A 2005.02.24

Also Published As

Publication number Publication date
CN101977249A (zh) 2011-02-16

Similar Documents

Publication Publication Date Title
CN101977249B (zh) 穿透nat设备的方法
CN103108089B (zh) 网络系统的连线建立管理方法及其相关系统
US8463904B2 (en) System and method of middlebox detection and characterization
US20090182864A1 (en) Method and apparatus for fingerprinting systems and operating systems in a network
CN104883390A (zh) 一种访问第三方视频监控设备的方法及装置
Claffy Tracking IPv6 evolution: data we have and data we need
Livadariu et al. Inferring carrier-grade NAT deployment in the wild
CN101895590A (zh) 基于udt实现nat穿越的系统和方法
CN110830601B (zh) 分布式系统nat穿透方法、装置、设备及存储介质
CN106375491A (zh) 一种发现网络设备的方法、装置及系统
CN104519129A (zh) 一种数据传输方法、设备及系统
CN107040429A (zh) 一种端口转发性能的测试方法及系统
CN101873359B (zh) 实现udp打洞的方法
CN102801824B (zh) Nat设备、napt设备和tcp应用引流的处理方法与处理系统
Hu et al. Toward detecting iot device traffic in transit networks
Anderson The hidden internet of iran: Private address allocations on a national network
RO132177A2 (ro) Metode, sistem şi suport informatic pentru testarea dispozitivelor cu echipament de reţea, folosind protocolul fără conexiune
CN104852921A (zh) 网络设备防开放端口攻击测试系统及方法
Donnet Internet topology discovery
CN104506405B (zh) 跨域访问的方法及装置
CN109274551A (zh) 一种精确高效的工控资源定位方法
Deri et al. Monitoring networks using ntop
CN107360095A (zh) 基于客户端主机名称的端口转发在路由器中的实现方法
CN115190107B (zh) 基于泛域名多子系统管理方法、管理终端及可读存储介质
CN104104740B (zh) 一种分散式网络信息的交换方法

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
ASS Succession or assignment of patent right

Owner name: BEIJING YSTEN NETWORK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: BEIJING YSTEN TECHNOLOGY CO., LTD.

Effective date: 20130314

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130314

Address after: 100101 8 Beichen East Road, Beijing, Beichen 1801, Chaoyang District

Patentee after: Beijing shiteng easy network technology Co. Ltd.

Address before: 100101, Beijing, Beichen East Road, Beichen Times Building, 18, 1801, Chaoyang District

Patentee before: Beijing Ysten Technology Co., Ltd.

ASS Succession or assignment of patent right

Owner name: BEIJING YSTEN NETWORK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: BEIJING YSTEN TECHNOLOGY CO., LTD.

Effective date: 20130401

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130401

Address after: 100101 8 Beichen East Road, Beijing, Beichen 1801, Chaoyang District

Patentee after: Beijing YSTen Network Technology Co., Ltd.

Address before: 100101, Beijing, Beichen East Road, Beichen Times Building, 18, 1801, Chaoyang District

Patentee before: Beijing Ysten Technology Co., Ltd.

C56 Change in the name or address of the patentee

Owner name: BEIJING LANGXIN TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: BEIJING YSTEN NETWORK TECHNOLOGY CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 100101 8 Beichen East Road, Beijing, Beichen 1801, Chaoyang District

Patentee after: BEIJING LONGSHINE TECHNOLOGY CO., LTD.

Address before: 100101 8 Beichen East Road, Beijing, Beichen 1801, Chaoyang District

Patentee before: Beijing YSTen Network Technology Co., Ltd.