CN106856512B - 一种服务器与节点协作相结合的nat穿越方法 - Google Patents

一种服务器与节点协作相结合的nat穿越方法 Download PDF

Info

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
Application number
CN201510906134.4A
Other languages
English (en)
Other versions
CN106856512A (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.)
Institute of Acoustics CAS
Shanghai 3Ntv Network Technology Co Ltd
Original Assignee
Institute of Acoustics CAS
Shanghai 3Ntv Network 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 Institute of Acoustics CAS, Shanghai 3Ntv Network Technology Co Ltd filed Critical Institute of Acoustics CAS
Priority to CN201510906134.4A priority Critical patent/CN106856512B/zh
Publication of CN106856512A publication Critical patent/CN106856512A/zh
Application granted granted Critical
Publication of CN106856512B publication Critical patent/CN106856512B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2525Translation 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

一种服务器与节点协作相结合的NAT穿越方法
技术领域
本发明涉及网络地址转换(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端口。
CN201510906134.4A 2015-12-09 2015-12-09 一种服务器与节点协作相结合的nat穿越方法 Expired - Fee Related CN106856512B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108063921A (zh) * 2017-12-26 2018-05-22 天津天地人和企业管理咨询有限公司 一种嵌入式网络监控设备在p2p中的优化应用方法

Citations (5)

* Cited by examiner, † Cited by third party
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系统中种子分发方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
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地址学习方法和边缘设备
US8750097B2 (en) Maintenance of overlay networks
CN106412142B (zh) 一种资源设备地址获取方法及装置
US20060215654A1 (en) Method and apparatus for detecting and recovering from faults associated with transport protocol connections across network address translators
RU2483455C2 (ru) Способы и устройства для обнаружения одноранговых оверлейных сетей
JP2004228760A (ja) アドレスの問合せに対する返信方法、プログラム、装置、及び、アドレス通知方法、プログラム、装置
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
TWI599201B (zh) 網路系統及建立資料連線的方法
CN108600040A (zh) 一种基于高可用检测节点的分布式系统节点故障检测方法
CN106101297B (zh) 一种报文应答方法及装置
US20210289038A1 (en) Methods and systems for service discovery and tunnelling in a distributed architecture
US20170272352A1 (en) Methods, systems, and computer readable media for testing network equipment devices using connectionless protocols
CN103916486A (zh) 信息处理装置、信息处理方法以及信息处理系统
EP4181436B1 (en) Data processing method and apparatus, related device and storage medium
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) 数据传输方法和装置

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