CN106856512B - 一种服务器与节点协作相结合的nat穿越方法 - Google Patents
一种服务器与节点协作相结合的nat穿越方法 Download PDFInfo
- Publication number
- CN106856512B CN106856512B CN201510906134.4A CN201510906134A CN106856512B CN 106856512 B CN106856512 B CN 106856512B CN 201510906134 A CN201510906134 A CN 201510906134A CN 106856512 B CN106856512 B CN 106856512B
- Authority
- CN
- China
- Prior art keywords
- node
- nat
- cooperative
- server
- message
- 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
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000013519 translation Methods 0.000 title abstract description 4
- 238000004891 communication Methods 0.000 claims description 4
- 238000004080 punching Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
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
-
- 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/2521—Translation architectures other than single NAT servers
- H04L61/2525—Translation at a client
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种服务器与节点协作相结合的NAT穿越方法,所述方法包括:节点上线时,向NAT服务器发送上线报文;NAT服务器收到节点上线报文后,根据节点的类型回复上线回复报文;节点收到NAT服务器上线回复报文后,如果判断自己为内网节点,则从NAT协作节点列表中选取一个协作节点发送协作请求报文,所述协作节点回复协作请求回复报文,并根据自己的类型决定是否将节点的信息保存到NAT协作节点列表中;所述节点与协作节点之间建立心跳,并通过协作节点进行NAT穿越。利用本发明的方法可以通过节点协作实现NAT穿越,降低NAT服务器的带宽和并发;同时,当NAT服务器短期宕机单点失效时,节点的NAT穿越仍能正常工作,提高了整体系统的可靠性。
Description
技术领域
本发明涉及网络地址转换(Network Address Translation,NAT)技术领域,特别涉及一种服务器与节点协作相结合的NAT穿越方法。
背景技术
随着计算机互联网技术的不断发展,点对点(Peer-to-Peer,P2P)通信越来越普遍。目前的IPv4网络由于网络地址匮乏而广泛存在的NAT设备使得处于不同内网的节点之间难以直接通信,这很大程度上限制了P2P应用的发展。
NAT穿越技术通过一些技术手段使得处于不同内网的节点可以直接进行通信。常用的NAT穿越技术包括STUN方式,TURN方式等。使用这些NAT穿越技术,节点在进行NAT穿越时,都需要和服务器进行通信,对服务器的带宽和并发提出一定要求。
发明内容
本发明的目的在于克服节点在NAT穿越时NAT服务器的带宽使用和并发数量较高的缺陷,提供了一种服务器与节点协作相结合的NAT穿越方法,在该方法中,NAT服务器给节点提供一个NAT协作节点列表,节点通过协作节点进行NAT穿越;仅当全部协作节点失效时,节点通过NAT服务器进行NAT穿越并更新协作节点列表。
为实现上述目的,本发明提供一种服务器与节点协作相结合的NAT穿越方法,所述方法包括:节点上线时,向NAT服务器发送上线报文;NAT服务器收到节点上线报文后,根据节点的类型回复上线回复报文;节点收到NAT服务器上线回复报文后,如果判断自己为内网节点,则从NAT协作节点列表中选取一个协作节点发送协作请求报文,所述协作节点回复协作请求回复报文,并根据自己的类型决定是否将节点的信息保存到NAT协作节点列表中;所述节点与协作节点之间建立心跳,并通过协作节点进行NAT穿越。
上述技术方案中,所述方法具体包括:
步骤1)节点上线时,向NAT服务器发送上线报文;
所述上线报文包含节点ID、节点内网IP地址和内网UDP端口号;
步骤2)NAT服务器收到节点上线报文后,判断节点是否为内网节点,如果判断结果是肯定的,所述上线回复报文包括节点的公网IP地址、公网UDP端口号和NAT协作节点列表;否则,节点为公网节点,所述上线回复报文仅包括节点的公网IP地址和公网UDP端口号;然后回复上线回复报文;
步骤3)节点收到NAT服务器的上线回复报文后,判断自己是否为内网节点;如果判断结果是肯定的,转入步骤4);否则,节点为公网节点,不需要进行NAT协作;
步骤4)节点从NAT协作节点列表中选取一个协作节点发送协作请求报文;
步骤5)协作节点收到节点的协作请求报文后,向节点回复协作请求回复报文;如果协作节点为内网节点,将节点保存到NAT协作节点列表中;否则,不保存请求节点信息;
步骤6)节点与协作节点之间建立心跳;
步骤7)节点通过协作节点进行NAT穿越。
上述技术方案中,所述步骤6)具体包括:
步骤601)每间隔一段时间,节点向协作节点发送心跳报文;协作节点收到心跳报文,向节点发送心跳回复报文;转入步骤7);
步骤602)如果节点连续3次没收到协作节点的心跳回复报文,则认为该协作节点离线,重新从NAT协作节点列表中选取下一个协作节点;转入步骤601);当NAT协作节点列表中的所有节点都失效时,节点向NAT服务器发出请求,更新NAT协作节点列表;转入步骤4)。
上述技术方案中,所述步骤7)具体包括:
步骤701)节点向建立心跳的协作节点发送NAT穿越请求报文;
步骤702)判断协作节点是否响应节点的请求,如果判断结果是肯定的,则协作节点收到NAT穿越请求报文,回复NAT穿越请求回复报文,所述NAT穿越请求回复报文包含节点的公网IP地址和公网UDP端口号;转入步骤704);否则,转入步骤703);
步骤703)节点从NAT协作节点列表中选取下一个协作节点进行协作并发送NAT穿越请求报文;转入步骤702);如果NAT协作节点列表中的全部协作节点没有响应时,节点向NAT服务器请求,并更新NAT协作节点列表;转入步骤4);
步骤704)节点收到公网IP地址和公网UDP端口号后,通过UDP打洞方式实现NAT穿越。
上述技术方案中,所述节点与NAT服务器以及协作节点之间的通信使用固定 UDP端口。
本发明的优点在于:
利用本发明的服务器与节点协作相结合的NAT穿越方法,可以通过节点协作实现NAT穿越,降低NAT服务器的带宽和并发;同时,当NAT服务器短期宕机单点失效时,节点的NAT穿越仍能正常工作,提高了整体系统的可靠性。
附图说明
图1是本发明中的服务器与节点协作相结合的NAT穿越方法的流程示意图;
图2是本发明实例中的节点进行NAT穿越的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,一种服务器与节点协作相结合的NAT穿越方法,该方法包括:
步骤1)节点上线时,向NAT服务器发送上线报文;
所述上线报文包含节点ID、节点内网IP地址和内网UDP端口号;
步骤2)NAT服务器收到节点上线报文后,判断节点是否为内网节点,如果判断结果是肯定的,所述上线回复报文包括节点的公网IP地址、公网UDP端口号和NAT协作节点列表;否则,节点为公网节点,所述上线回复报文仅包括节点的公网IP地址和公网UDP端口号;然后回复上线回复报文;
步骤3)节点收到NAT服务器上线回复报文后,判断自己是否为内网节点;如果判断结果是肯定的,转入步骤4);否则,节点为公网节点,不需要进行NAT协作;
步骤4)节点从NAT协作节点列表中选取一个协作节点发送协作请求报文;
步骤5)协作节点收到节点的协作请求报文后,向节点回复协作请求回复报文;如果协作节点为内网节点,将节点保存到NAT协作节点列表中;否则,不保存请求节点信息;
步骤6)节点与协作节点之间建立心跳;具体包括:
步骤601)每间隔一段时间,节点向协作节点发送心跳报文;协作节点收到心跳报文,向节点发送心跳回复报文;转入步骤7);
步骤602)如果节点连续3次没收到协作节点的心跳回复报文,则认为该协作节点离线,重新从NAT协作节点列表中选取下一个协作节点;转入步骤601);当NAT协作节点列表中的所有节点都失效时,节点向NAT服务器发出请求,更新NAT协作节点列表;转入步骤4);
步骤7)节点通过协作节点进行NAT穿越;
所述步骤7)具体包括;
步骤701)节点向建立心跳的协作节点发送NAT穿越请求报文;
步骤702)判断协作节点是否响应节点的请求,如果判断结果是肯定的,则协作节点收到NAT穿越请求报文,回复NAT穿越请求回复报文,所述NAT穿越请求回复报文包含节点的公网IP地址和公网UDP端口号;转入步骤704);否则,转入步骤703);
步骤703)节点从NAT协作节点列表中选取下一个协作节点进行协作并发送NAT穿越请求报文;转入步骤702);如果NAT协作节点列表中的全部协作节点没有响应时,节点向NAT服务器请求,并更新NAT协作节点列表;转入步骤4);
步骤704)节点收到公网IP地址和公网UDP端口号后,通过UDP打洞方式实现NAT穿越。
所述节点与NAT服务器以及其它协作节点之间的通信使用固定UDP端口。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (3)
1.一种服务器与节点协作相结合的NAT穿越方法,所述方法包括:节点上线时,向NAT服务器发送上线报文;NAT服务器收到节点上线报文后,根据节点的类型回复上线回复报文;节点收到NAT服务器上线回复报文后,如果判断自己为内网节点,则从NAT协作节点列表中选取一个协作节点发送协作请求报文,所述协作节点回复协作请求回复报文,并根据自己的类型决定是否将节点的信息保存到NAT协作节点列表中;所述节点与协作节点之间建立心跳,并通过协作节点进行NAT穿越;
所述方法具体包括:
步骤1)节点上线时,向NAT服务器发送上线报文;
所述上线报文包含节点ID、节点内网IP地址和内网UDP端口号;
步骤2)NAT服务器收到节点上线报文后,判断节点是否为内网节点,如果判断结果是肯定的,所述上线回复报文包括节点的公网IP地址、公网UDP端口号和NAT协作节点列表;否则,节点为公网节点,所述上线回复报文仅包括节点的公网IP地址和公网UDP端口号;然后回复上线回复报文;
步骤3)节点收到NAT服务器的上线回复报文后,判断自己是否为内网节点;如果判断结果是肯定的,转入步骤4);否则,节点为公网节点,不需要进行NAT协作;
步骤4)节点从NAT协作节点列表中选取一个协作节点发送协作请求报文;
步骤5)协作节点收到节点的协作请求报文后,向节点回复协作请求回复报文;如果协作节点为内网节点,将节点保存到自身的NAT协作节点列表中;否则,不保存节点信息;
步骤6)节点与协作节点之间建立心跳;
步骤7)节点通过协作节点进行NAT穿越;
所述步骤7)具体包括:
步骤701)节点向建立心跳的协作节点发送NAT穿越请求报文;
步骤702)判断协作节点是否响应节点的请求,如果判断结果是肯定的,则协作节点收到NAT穿越请求报文,回复NAT穿越请求回复报文,所述NAT穿越请求回复报文包含节点的公网IP地址和公网UDP端口号;转入步骤704);否则,转入步骤703);
步骤703)节点从NAT协作节点列表中选取下一个协作节点进行协作并发送NAT穿越请求报文;转入步骤702);如果NAT协作节点列表中的全部协作节点没有响应时,节点向NAT服务器请求,并更新NAT协作节点列表;转入步骤4);
步骤704)节点收到公网IP地址和公网UDP端口号后,通过UDP打洞方式实现NAT穿越。
2.根据权利要求1所述的服务器与节点协作相结合的NAT穿越方法,其特征在于,所述步骤6)具体包括:
步骤601)每间隔一段时间,节点向协作节点发送心跳报文;协作节点收到心跳报文,向节点发送心跳回复报文;转入步骤7);
步骤602)如果节点连续3次没收到协作节点的心跳回复报文,则认为该协作节点离线,重新从NAT协作节点列表中选取下一个协作节点;转入步骤601);当NAT协作节点列表中的所有节点都失效时,节点向NAT服务器发出请求,更新NAT协作节点列表;转入步骤4)。
3.根据权利要求1-2之一所述的服务器与节点协作相结合的NAT穿越方法,其特征在于,所述节点与NAT服务器以及协作节点之间的通信使用固定UDP端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510906134.4A CN106856512B (zh) | 2015-12-09 | 2015-12-09 | 一种服务器与节点协作相结合的nat穿越方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510906134.4A CN106856512B (zh) | 2015-12-09 | 2015-12-09 | 一种服务器与节点协作相结合的nat穿越方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106856512A CN106856512A (zh) | 2017-06-16 |
CN106856512B true CN106856512B (zh) | 2020-02-04 |
Family
ID=59132027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510906134.4A Expired - Fee Related CN106856512B (zh) | 2015-12-09 | 2015-12-09 | 一种服务器与节点协作相结合的nat穿越方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106856512B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108063921A (zh) * | 2017-12-26 | 2018-05-22 | 天津天地人和企业管理咨询有限公司 | 一种嵌入式网络监控设备在p2p中的优化应用方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1819134B1 (en) * | 2006-02-13 | 2008-11-12 | Samsung Electronics Co.,Ltd. | Symmetric network adress translation system using STUN technique and method for implementing the same |
CN101841484A (zh) * | 2010-05-12 | 2010-09-22 | 中国科学院计算技术研究所 | 一种在结构化p2p网络中实现nat穿越的方法和系统 |
CN101883056A (zh) * | 2010-07-23 | 2010-11-10 | 华南理工大学 | 基于udt和tcp中转实现nat穿越的系统和方法 |
CN102647483A (zh) * | 2012-03-31 | 2012-08-22 | 中兴通讯股份有限公司 | 获取nat类型的方法、p2p端点实体和nat实体 |
CN103312795A (zh) * | 2013-05-31 | 2013-09-18 | 合一网络技术(北京)有限公司 | 一种p2p系统中种子分发方法和装置 |
-
2015
- 2015-12-09 CN CN201510906134.4A patent/CN106856512B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1819134B1 (en) * | 2006-02-13 | 2008-11-12 | Samsung Electronics Co.,Ltd. | Symmetric network adress translation system using STUN technique and method for implementing the same |
CN101841484A (zh) * | 2010-05-12 | 2010-09-22 | 中国科学院计算技术研究所 | 一种在结构化p2p网络中实现nat穿越的方法和系统 |
CN101883056A (zh) * | 2010-07-23 | 2010-11-10 | 华南理工大学 | 基于udt和tcp中转实现nat穿越的系统和方法 |
CN102647483A (zh) * | 2012-03-31 | 2012-08-22 | 中兴通讯股份有限公司 | 获取nat类型的方法、p2p端点实体和nat实体 |
CN103312795A (zh) * | 2013-05-31 | 2013-09-18 | 合一网络技术(北京)有限公司 | 一种p2p系统中种子分发方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106856512A (zh) | 2017-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10897431B2 (en) | Cloud resource processing method and physical node | |
US8457014B2 (en) | Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system | |
CN102291320B (zh) | Mac地址学习方法和边缘设备 | |
US20060215654A1 (en) | Method and apparatus for detecting and recovering from faults associated with transport protocol connections across network address translators | |
RU2483455C2 (ru) | Способы и устройства для обнаружения одноранговых оверлейных сетей | |
JP2004228760A (ja) | アドレスの問合せに対する返信方法、プログラム、装置、及び、アドレス通知方法、プログラム、装置 | |
TWI599201B (zh) | 網路系統及建立資料連線的方法 | |
US8478891B1 (en) | Employing socket ranges to ascertain layer 2 addresses | |
US11178101B1 (en) | Method and apparatus of establishing a connection between devices using cached connection information | |
US10178015B2 (en) | Methods, systems, and computer readable media for testing network equipment devices using connectionless protocols | |
EP4181436B1 (en) | Data processing method and apparatus, related device and storage medium | |
CN108600040A (zh) | 一种基于高可用检测节点的分布式系统节点故障检测方法 | |
CN106101297B (zh) | 一种报文应答方法及装置 | |
US20210289038A1 (en) | Methods and systems for service discovery and tunnelling in a distributed architecture | |
CN103916486A (zh) | 信息处理装置、信息处理方法以及信息处理系统 | |
CN109951493B (zh) | 一种网络互通方法、装置、设备及存储介质 | |
CN104125310B (zh) | 基于半永久地址的消息发送方法 | |
CN106856512B (zh) | 一种服务器与节点协作相结合的nat穿越方法 | |
US9124598B2 (en) | Method and apparatus of establishing a connection between devices using cached connection information | |
Cho | P2p-based mobile social networks | |
CN109842692B (zh) | 用于获得物理网络中主机信息的VxLAN交换机、系统和方法 | |
CN114598532B (zh) | 连接建立方法、装置、电子设备和存储介质 | |
CN112019641B (zh) | 数据传输方法和装置 | |
EP2820873B1 (fr) | Gestion de la mobilité d'un reseau mobile | |
CN106973126A (zh) | 一种arp应答方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 | ||
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: 20200204 |