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

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

Info

Publication number
CN106856512A
CN106856512A CN201510906134.4A CN201510906134A CN106856512A CN 106856512 A CN106856512 A CN 106856512A CN 201510906134 A CN201510906134 A CN 201510906134A CN 106856512 A CN106856512 A CN 106856512A
Authority
CN
China
Prior art keywords
node
nat
message
cooperative
standard grade
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.)
Granted
Application number
CN201510906134.4A
Other languages
English (en)
Other versions
CN106856512B (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

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 (5)

1.一种服务器与节点协作相结合的NAT穿越方法,所述方法包括:节点上线时,向NAT服务器发送上线报文;NAT服务器收到节点上线报文后,根据节点的类型回复上线回复报文;节点收到NAT服务器上线回复报文后,如果判断自己为内网节点,则从NAT协作节点列表中选取一个协作节点发送协作请求报文,所述协作节点回复协作请求回复报文,并根据自己的类型决定是否将节点的信息保存到NAT协作节点列表中;所述节点与协作节点之间建立心跳,并通过协作节点进行NAT穿越。
2.根据权利要求1所述的服务器与节点协作相结合的NAT穿越方法,其特征在于,所述方法具体包括:
步骤1)节点上线时,向NAT服务器发送上线报文;
所述上线报文包含节点ID、节点内网IP地址和内网UDP端口号;
步骤2)NAT服务器收到节点上线报文后,判断节点是否为内网节点,如果判断结果是肯定的,所述上线回复报文包括节点的公网IP地址、公网UDP端口号和NAT协作节点列表;否则,节点为公网节点,所述上线回复报文仅包括节点的公网IP地址和公网UDP端口号;然后回复上线回复报文;
步骤3)节点收到NAT服务器的上线回复报文后,判断自己是否为内网节点;如果判断结果是肯定的,转入步骤4);否则,节点为公网节点,不需要进行NAT协作;
步骤4)节点从NAT协作节点列表中选取一个协作节点发送协作请求报文;
步骤5)协作节点收到节点的协作请求报文后,向节点回复协作请求回复报文;如果协作节点为内网节点,将节点保存到NAT协作节点列表中;否则,不保存请求节点信息;
步骤6)节点与协作节点之间建立心跳;
步骤7)节点通过协作节点进行NAT穿越。
3.根据权利要求2所述的服务器与节点协作相结合的NAT穿越方法,其特征在于,所述步骤6)具体包括:
步骤601)每间隔一段时间,节点向协作节点发送心跳报文;协作节点收到心跳报文,向节点发送心跳回复报文;转入步骤7);
步骤602)如果节点连续3次没收到协作节点的心跳回复报文,则认为该协作节点离线,重新从NAT协作节点列表中选取下一个协作节点;转入步骤601);当NAT协作节点列表中的所有节点都失效时,节点向NAT服务器发出请求,更新NAT协作节点列表;转入步骤4)。
4.根据权利要求3所述的服务器与节点协作相结合的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穿越。
5.根据权利要求1-4之一所述的服务器与节点协作相结合的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 true CN106856512A (zh) 2017-06-16
CN106856512B 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)

Cited By (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系统中种子分发方法和装置

Cited By (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中的优化应用方法

Also Published As

Publication number Publication date
CN106856512B (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
US8457014B2 (en) Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
CN106412142B (zh) 一种资源设备地址获取方法及装置
CN103108089B (zh) 网络系统的连线建立管理方法及其相关系统
TWI599201B (zh) 網路系統及建立資料連線的方法
WO2019165775A1 (zh) 一种局域网设备的搜索方法及搜索系统
CN106101297B (zh) 一种报文应答方法及装置
CN101895590A (zh) 基于udt实现nat穿越的系统和方法
CN103618801A (zh) 一种p2p资源共享的方法、设备及系统
CN106230667B (zh) Vtep保活检测方法及装置
US11683275B2 (en) Device and method for interconnecting two subnetworks
US9936011B2 (en) Distributed database, method of sharing data, program storing medium, and apparatus for a distributed database
JPWO2017159645A1 (ja) ネットワークアドレス変換装置、設定要求装置、通信システム、通信方法およびプログラム
CN106856512A (zh) 一种服务器与节点协作相结合的nat穿越方法
CN103873600B (zh) 一种网络地址转换穿透方法及设备
CN109842692B (zh) 用于获得物理网络中主机信息的VxLAN交换机、系统和方法
Yang et al. Combining ICE and SIP protocol for NAT traversal in new classification standard
Cho P2p-based mobile social networks
CN114598532B (zh) 连接建立方法、装置、电子设备和存储介质
CN112019641B (zh) 数据传输方法和装置
CN107454210A (zh) 通信方法及系统
CN107317869B (zh) 一种节点nat类型探测方法、装置以及系统
US9369523B2 (en) Method for exchanging network messages in distributed manner
CN112054953A (zh) 多媒体即时通信方法、系统及终端设备、计算机存储介质
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
CN103457823A (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

Granted publication date: 20200204

CF01 Termination of patent right due to non-payment of annual fee