CN102035900A - 用于通过中继方式进行nat穿越的方法、系统和中继服务器 - Google Patents

用于通过中继方式进行nat穿越的方法、系统和中继服务器 Download PDF

Info

Publication number
CN102035900A
CN102035900A CN2009101756208A CN200910175620A CN102035900A CN 102035900 A CN102035900 A CN 102035900A CN 2009101756208 A CN2009101756208 A CN 2009101756208A CN 200910175620 A CN200910175620 A CN 200910175620A CN 102035900 A CN102035900 A CN 102035900A
Authority
CN
China
Prior art keywords
address
relay
main frame
nat
request 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.)
Granted
Application number
CN2009101756208A
Other languages
English (en)
Other versions
CN102035900B (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.)
NEC China Co Ltd
Renesas Electronics China Co Ltd
Original Assignee
NEC China 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 NEC China Co Ltd filed Critical NEC China Co Ltd
Priority to CN200910175620.8A priority Critical patent/CN102035900B/zh
Priority to PCT/CN2010/000813 priority patent/WO2011035528A1/zh
Publication of CN102035900A publication Critical patent/CN102035900A/zh
Application granted granted Critical
Publication of CN102035900B publication Critical patent/CN102035900B/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
    • H04L61/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提供了用于通过中继方式进行NAT穿越的方法、系统和中继服务器。一种通过中继方式进行网络地址转换NAT穿越的方法,包括:第一主机经由NAT设备利用NAT地址向中继服务器的服务地址发送中继请求消息;以及中继服务器向第一主机返回中继响应消息,该中继响应消息包括地址列表,该地址列表包括中继地址和所述NAT地址。

Description

用于通过中继方式进行NAT穿越的方法、系统和中继服务器
技术领域
本发明涉及计算机网络,更具体而言涉及用于通过中继方式进行网络地址转换(network address translation,即NAT)穿越的方法、系统和中继服务器(relay server)。
背景技术
在计算机网络中,网络地址转换(NAT)是这样一个过程,即,在使流量传输经过流量路由设备时,修改数据报分组(packet)头部中的网络地址信息,以便将给定的地址空间重新映射到另一个地址空间。设计NAT是为了缓和IPv4地址耗尽的问题。对于家庭和小型商务因特网连接,NAT已经成为了路由器中的一种标准的、不可或缺的特征。
大多数使用NAT的系统执行NAT的目的是为了使得私网上的多个主机能够利用一个公共因特网协议(IP)地址来访问因特网。私网上的主机不能直接利用其在该内部私网中的本地地址来访问因特网。这些主机发送和接收的分组必须经过该私网中的NAT设备执行的NAT处理。在本文中,这些主机被称为“在NAT设备后面”(behind the NAT device)。另外,在本发明中,NAT设备可包括具备NAT能力的路由器、网关、防火墙等等。本领域的技术人员可以根据需要选择任何适当的设备来作为NAT设备。
例如,假设某个私网中的主机使用内部私网地址空间192.168.0.1/24。该私网中的NAT路由器的内部私网IP地址为192.168.0.1,并且使用公网IP地址83.14.137.3。当该NAT路由器后面的某个主机想要向公共网络发送分组时,该分组被NAT路由器截取,其源地址(IP-端口对)被改成外部地址,该外部地址也可称为NAT地址,其包括NAT路由器的公共地址83.14.137.3和NAT路由器的一个端口号。源IP-端口对和NAT路由器的IP-端口对之间的映射被保存在NAT路由器中。当来自公网的分组到达NAT路由器时,NAT路由器根据其所保存的映射来把目的地IP-端口对改成内部地址空间的IP-端口对,并将分组转发到相应的私网主机。
然而,NAT破坏了原本设想的因特网上IP端到端连通的模型,在主机之间的通信之中引入了复杂的因素,并且影响了性能。它隐藏了内部网络的结构:在外部实体看来,所有流量都好像是源自NAT设备的。
因此,NAT设备后面的主机不具有端到端连通性,因而无法参与某些因特网协议。例如,要求从外部网络发起传输控制协议(Transfer ControlProtocol,即TCP)连接的服务,或者诸如那些使用用户数据报协议(UserDatagram Protocol,即UDP)的无状态协议,可能无法进行。
在总共四种NAT,即完全锥形NAT(full cone NAT),受限锥形NAT(restricted cone NAT)、端口受限锥形NAT(port-restricted coneNAT)和对称NAT(symmetric NAT)中,对称NAT是最严格的NAT。从同一个内部IP地址和端口到一个特定的目的地IP地址和端口的每个请求被映射到一个唯一的外部源IP地址和端口。具体而言,例如假设私网的某个主机利用内部IP地址和端口对(IP_1i,Port_1i)向私网外的某个主机的地址(IP_2,Port_2)发送通信请求。私网的NAT设备截取该请求,并将该请求映射到唯一的外部源IP地址和端口对(IP_1e,Port_1e),并记录这种映射和策略。当以后接收到某个分组时,NAT设备将对照其记录检查该分组。只有当该分组的源地址是(IP_2,Port_2)、目的地地址是(IP_1e,Port_1e)时,该分组才会被转发到(IP_1i,Port_1i)。在其他情况下,该分组都不会被转发到(IP_1i,Port_1i)(被转发到其他匹配的地址,或者被丢弃)。换言之,如果同一个内部主机发送带有相同源地址和端口的分组,但该分组是发送到一个不同的目的地的,那么就会使用一个不同的映射。因此,只有从内部主机接收到了分组的外部主机才能够发回分组。这种NAT使得前面所述的问题更加严重。
基本上,对于NAT问题,存在多种解决方案,例如NAT会话穿越效用(Session Traversal Utilities for NAT,即STUN)、应用层网关(application layer gateway,即ALG)、通过中继方式穿越NAT(Traversal Using Relay NAT,即TURN)。但只有TURN解决了对称NAT的问题。
设计TURN协议的一个目的是为了使得NAT尤其是对称NAT或防火墙后面的主机能够通过TCP或UDP接收到传入数据。其基本思想是使用公共地址空间中的TURN服务器来为NAT设备后面的主机中继传入分组。
一般来说,TURN的工作过程涉及两个阶段。第一阶段是名称绑定阶段。这一阶段将NAT后面的主机绑定到公共的IP地址和端口。第二阶段是通信阶段。在第二阶段中,外部主机发起通信。这两个阶段分别在图1和图2中示出。
如图1所示,TURN服务器63在公共的服务地址(IP_s,Port_s)上监听。
在步骤S601中,NAT后面的主机,即第一主机61使用其地址(IP_1i,Port_1i)向TURN服务器63发送TURN消息:分组中继请求。
在步骤S602中,该消息的源地址被NAT设备62改成(IP_1e,Port_1e)。并且,在对称NAT的情况下,NAT设备62形成(IP_1i,Port_1i)和(IP_1e,Port_1e)之间的映射,并且为该映射制定这样的策略:允许从(IP_s,Port_s)发送到(IP_1e,Port_1e)的消息被转发到(IP_1i,Port_1i),并将包含所述映射和策略的条目记录到其所维护的映射和策略数据库中。
在步骤S603中,NAT设备62将该中继请求消息转发到TURN服务器63。
在步骤S604中,接收到该中继请求消息的TURN服务器63执行中继请求处理。这里的中继请求处理包括为第一主机61分配一个特定的中继地址(IP_1r,Port_1r),并且记录(IP_1r,Port_1r)和(IP_1e,Port_1e)之间的映射。
在步骤S605中,TURN服务器63通过利用(IP_s,Port_s)向(IP_1e,Port_1e)发送响应消息来对第一主机61的中继请求作出响应,在该响应消息的有效数据部分中包含所分配的中继地址(IP_1r,Port_1r)。
在步骤S606中,当该响应消息到达NAT设备62的地址(IP_1e,Port_1e)时,NAT设备62对照其映射和策略数据库来检查该响应消息。在这个情况下,该消息通过检查。于是NAT设备62将响应消息的目的地地址从(IP_1e,Port_1e)改成(IP_1i,Port_1i)。或者,如果该消息未能通过检查,则被丢弃。
在步骤S607中,NAT设备62将该响应消息递送到第一主机61的地址(IP_1i,Port_1i)。
在步骤S608中,第一主机61从该响应消息中得到TURN服务器63为其分配的地址(IP_1r,Port_1r),并且构造绑定更新消息。该绑定更新消息的有效数据部分中包括第一主机61自身的主机名与所分配的地址之间的绑定的信息。
在步骤S609至S611中,第一主机61通过NAT设备62将该绑定更新消息发送到名称服务器64。名称服务器64从而获得关于第一主机61的主机名与所分配的地址之间的绑定的信息,并将其存储在自身维护的数据库中。
图2示出了通信阶段。如图2所示,另一个主机,即第二主机65,希望发起与第一主机61的通信。第二主机65不在第一主机61所在的私网中,并且可能在另一个NAT设备后面(例如,在另一个私网中),也可能不在NAT设备后面(例如,在公网中)。作为示例,图2示出了第二主机65不在NAT设备后面的情况。
在步骤S701中,第二主机65向名称服务器64查询第一主机61的中继地址。
名称服务器64在步骤S702中在其数据库中查找与第一主机61绑定的中继地址,并在步骤S703中向第二主机65返回指示与第一主机61相对应的中继地址(IP_1r,Port_1r)的答复消息。
第二主机65在步骤S704中从名称服务器64的答复消息中得到(IP_1r,Port_1r),并且在步骤S705中通过用源地址(IP_2,Port_2)向(IP_1r,Port_1r)发送请求来向第一主机61发出通信请求消息。
在步骤S706中,TURN服务器63在(IP_1r,Port_1r)上接收到该通信请求消息,检查其先前记录的映射,发现该消息是针对(IP_1e,Port_1e)的。TURN服务器63随后将该通信请求的源地址(IP_2,Port_2)包裹到该通信请求中(即包括在该通信请求消息的有效数据部分中),并且在步骤S707中利用其服务地址(IP_s,Port_s)将新的通信请求转发到(IP_1e,Port_1e)。
在步骤S708中,NAT设备62在地址(IP_1e,Port_1e)上接收到从TURN服务器63转发来的通信请求,并且通过查看映射和策略数据库,发现该请求应当被转发到(IP_1i,Port_1i)。NAT设备62于是将该通信请求的目的地地址变成(IP_1i,Port_1i),并在步骤S709中将其转发到(IP_1i,Port_1i)。
在步骤S710中,第一主机61接收到该通信请求,从该通信请求的有效数据部分中取得原始请求消息的内容以及消息的原始源地址(IP_2,Port_2)。第一主机61为该请求创建响应消息,将响应的实际目的地地址(IP_2,Port_2)包裹到响应消息的有效数据部分中。在步骤S711中,第一主机61向TURN服务器63的服务地址(IP_s,Port_s)发送该响应消息。
NAT设备62在步骤S712中捕捉该响应消息,将其源地址变成(IP_1e,Port_1e),然后在步骤S713中将其转发到TURN服务器63。
TURN服务器63在步骤S714中在其服务地址(IP_s,Port_s)上接收到响应消息,提取出实际目的地(IP_2,Port_2)和实际响应消息,并在步骤S715中将实际响应消息递送到第二主机65的地址(IP_2,Port_2)。第二主机65从而接收到第一主机61对其通信请求的响应,并且可通过这种方式以TURN服务器63为中继与第一主机61继续通信。
在如上所述的TURN方案中,TURN服务器63为每个发出中继请求的客户端分配地址,即IP-端口对。TURN服务器63还必须维护所分配的地址(即图1和2中的(IP_1r,Port_1r))和客户端的NAT地址(即图1和2中的(IP_1e,Port_1e))之间的映射。地址管理和映射维护给TURN服务器63增加了额外的工作。另外,TURN服务器63的端口号是有限的资源。这一点可能会限制TURN服务器63的性能。
另外,在P2P或类似的情形中,NAT给网络连通性带来了很大的问题。由于可能有许多主机都在NAT设备后面,所以TURN方案面临着严重的可扩展性问题。
因此,希望提供一种利用中继方式穿越NAT的方法、系统和相应的中继服务器,其中,中继服务器是无状态的,不需要为其客户端分配和管理地址。另外,希望提供一种利用中继方式穿越NAT的方法、系统和相应的中继服务器,其可以解决现有技术的TURN方案所面临的可扩展性问题。
发明内容
本发明的一个目的是提供一种利用中继方式穿越NAT的方法、系统和相应的中继服务器,其中,中继服务器是无状态的,不需要为其客户端分配和管理地址。本发明的另一个目的是提供一种利用中继方式穿越NAT的方法、系统和相应的中继服务器,其可以解决现有技术的TURN方案所面临的可扩展性问题。
根据本发明的一个方面,提供了一种通过中继方式进行网络地址转换NAT穿越的方法,包括:第一主机经由NAT设备利用NAT地址向中继服务器的服务地址发送中继请求消息;以及中继服务器向第一主机返回中继响应消息,该中继响应消息包括地址列表,该地址列表包括中继地址和所述NAT地址。
根据本发明的另一个方面,提供了一种通过中继方式进行网络地址转换NAT穿越的系统,包括:第一主机,该第一主机向中继服务器的服务地址发送中继请求消息;NAT设备,该NAT设备截取所述中继请求消息,并利用NAT地址将所述中继请求消息转发到所述服务地址;以及中继服务器,该中继服务器经由所述NAT设备向所述第一主机返回中继响应消息,该中继响应消息包括地址列表,该地址列表包括中继地址和所述NAT地址。
根据本发明的另一方面,提供了一种中继服务器,包括:消息收发单元,其在服务地址上接收从网络地址转换NAT地址发送来的中继请求消息,将所述中继请求消息传递到中继请求处理单元,并利用所述服务地址向所述NAT地址返回由中继请求处理单元构造出的中继响应消息;以及中继请求处理单元,其构造所述中继响应消息,所述中继响应消息包括地址列表,该地址列表包括中继地址和所述NAT地址。
本发明的以上和其他优点和特征将从以下结合附图的详细描述中变得更清楚。
附图说明
附图中相同或相似的标号表示相同或相似的要素,其中:
图1是示出根据现有技术的使用TURN服务器的NAT穿越方法的名称绑定阶段的操作过程的示图;
图2是示出根据现有技术的使用TURN服务器的NAT穿越方法的通信阶段的操作过程的示图;
图3是示出根据本发明第一实施例的利用中继服务器来穿越NAT的系统的示意性框图;
图4是示出图3所示的系统在根据本发明第一实施例的NAT穿越方法的名称绑定阶段的操作过程的示图;
图5是示出图3所示的系统在根据本发明第一实施例的NAT穿越方法的通信阶段的操作过程的示图;
图6是示出根据本发明第二实施例的利用中继服务器来穿越NAT的系统的示意性框图;并且
图7是示出图6所示的系统在根据本发明第二实施例的NAT穿越方法的中继节点报告与选择阶段的操作过程的示图。
具体实施方式
本发明利用了覆盖(overlay)网络和自组织(ad-hoc)网络中广泛使用的源路由技术的原理来解决NAT问题,尤其是对称NAT的问题。
源路由技术使得分组的发送者能够部分或全部地指定该分组在网络中经过的路线。与之不同,在非源路由协议中,由网络中的路由器基于分组的目的地来确定路径。
在典型的源路由机制中,发送者/源将路由信息包裹到分组中。路由信息包含从源地址到目的地地址的必要路径信息。路径上每个接收到该分组的节点从该分组中提取出下一跳地址,然后将其转发到下一跳。该路径上的每个节点都重复该过程,直到该分组到达目的地为止。
例如,假设主机A想向主机B发送数据,并且主机A预先知道其可以经由主机C向主机B发送数据。也就是说,主机A预先知道从其到目的地主机B的覆盖路径:主机A->主机C->主机B。
于是,主机A构造这样的分组:在该分组的应用层有效数据(例如语音数据)前,添加了主机B的地址作为覆盖层头部。在TCP/IP层看来,该覆盖层头部也是应用层有效数据的一部分。其中主机B的地址可以包括主机B的地址和端口。另外,主机B的地址还可包括协议。例如,主机B的地址可以是这样的形式:202.1.1.1,80,TCP。
在该覆盖层头部的前面,再添加TCP/IP层的头部,该TCP/IP层的头部中包括主机A的IP地址和端口作为源地址、主机C的IP地址和端口作为目的地地址。
主机A随后向主机C发送该分组。主机C接收到该分组,提取TCP/IP头部中的地址信息部分,以及应用层有效数据部分中的主机B的地址,然后从分组中去除主机B的地址,并将仅含原始的有效数据(例如语音数据)的分组发送到主机B的地址。
本发明利用了这种源路由技术的思想来解决NAT问题尤其是对称NAT的问题。下面参考附图来描述本发明的实施例。
在描述本发明的实施例之前,将对本发明中的术语使用进行说明。
在本发明中,当提及“地址”时,除非另有说明,否则一般指的是由IP地址和端口号的组合形成的传输地址。在一些情况下,“地址”可以包括IP地址、端口号和协议三者的组合。这里为了简明起见,只使用了IP地址和端口号两者的组合。在本说明书及附图中,使用(IP,Port)的形式来表示IP地址和端口号的组合。
另外,在附图中,以“src:(xxx,xxx)dst:(yyy,yyy)数据:zzzzz”的形式表示出了相应的消息的源地址、目的地地址和有效数据(payload)部分包括的特殊内容。
例如,图4中的步骤S101中发送的中继请求消息的箭头下方的“src:(IP_1i,Port_1i)dst:(IP_s,Port_s)”表明,该中继请求消息的源地址为(IP_1i,Port_1i),目的地地址为(IP_s,Port_s)。没有特别指明“数据”,表明该中继请求消息的有效数据部分与通常的中继请求消息的内容相同。
又例如,图4的步骤S105中发送的中继响应消息的箭头下方的“src:(IP_s,Port_s)dst:(IP_1e,Port_1e)数据:[(IP_r,Port_r),(IP_1e,Port_1e)]”表明,该中继响应消息的源地址为(IP_s,Port_s),目的地地址为(IP_1e,Port_1e),并且在该中继响应消息的有效数据部分中,除了通常的中继响应消息中可能包括的内容之外,还包括根据本发明的地址列表[(IP_r,Port_r),(IP_1e,Port_1e)]。
另外,注意,在本发明中,当提及某个消息的源地址或目的地地址时,实际上指的承载该消息的分组的TCP/IP层头部中记载的源地址或目的地地址。当提及某个消息的有效数据部分时,实际上指的是承载该消息的分组的去除TCP/IP层头部以后的应用层有效数据(applicationpayload)。
图3示出了根据本发明第一实施例的用于NAT穿越的系统1的框图。
如图1所示,系统1包括第一主机11、NAT设备12、中继服务器13、名称服务器14和第二主机15。
如图所示,第一主机11处于私网中,NAT设备12是该私网的NAT设备,而中继服务器13、名称服务器14和第二主机15都在该私网外部。这里假定中继服务器13、名称服务器14和第二主机15都在公网中。
第一主机11包括消息收发单元101、存储单元102、名称绑定单元103、通信处理单元104。消息收发单元101用于接收来自其他设备的消息,根据接收到的消息的类型等等将其传递到名称绑定单元103或通信处理单元104等等,以及向期望的目的地发送名称绑定单元103和通信处理单元104指示发送的消息。名称绑定单元103可执行在本发明方法的名称绑定阶段期间第一主机11处的处理。通信处理单元104可执行在本发明方法的通信阶段期间第一主机11处的处理。存储单元102可存储第一主机11的操作中可能需要使用和存储的信息。例如,存储单元102可存储第一主机11的本地地址,以及第一主机11从中继服务器13接收到的地址列表等等。
NAT设备12包括消息收发单元201、存储单元202、NAT处理单元203。消息收发单元201用于接收来自其他设备的消息,将接收到的消息传递到NAT处理单元203,以及向期望的目的地发送NAT处理单元203指示发送的消息。NAT处理单元203可执行NAT处理。存储单元202可存储NAT设备12的操作中可能需要使用和存储的信息。例如,存储单元202可存储NAT设备12在私网中使用的内部地址、可为私网中的主机分配的外部地址,以及内部地址与外部地址之间的映射和有关策略等等。
中继服务器13包括消息收发单元301、存储单元302、中继请求处理单元303、中继处理单元304。消息收发单元301用于接收来自其他设备的消息,根据接收到的消息的类型等等将其传递到中继请求处理单元303或中继处理单元304,以及向期望的目的地发送中继请求处理单元303和中继处理单元304指示发送的消息。中继请求处理单元303可执行在本发明方法的名称绑定阶段期间中继服务器13处的处理。中继处理单元304可执行在本发明方法的通信阶段期间中继服务器13处的处理。存储单元302可存储中继服务器13的操作中可能需要使用和存储的信息。例如,存储单元302可以存储服务地址和中继地址。
名称服务器14包括消息收发单元401、存储单元402、绑定更新处理单元403、查询处理单元404。消息收发单元401用于接收来自其他设备的消息,根据接收到的消息的类型等等将其传递到绑定更新处理单元403或查询处理单元404等等,以及向期望的目的地发送绑定更新处理单元403和查询处理单元404指示发送的消息。绑定更新处理单元403可执行在本发明方法的名称绑定阶段期间名称服务器14处的处理。查询处理单元404可执行在本发明方法的通信阶段期间名称服务器14处的处理。存储单元402可存储名称服务器14的操作中可能需要使用和存储的信息。例如,存储单元402可以存储由主机报告来的绑定信息。
第二主机15包括消息收发单元501、存储单元502、通信处理单元503。消息收发单元501用于接收来自其他设备的消息,根据接收到的消息的类型等等将其传递到通信处理单元503等等,以及向期望的目的地发送通信处理单元503指示发送的消息。通信处理单元503可执行在本发明方法的通信阶段期间第二主机15处的处理。存储单元502可存储第二主机15的操作中可能需要使用和存储的信息。例如,存储单元502可存储第二主机15可使用的地址信息。
下面将参考图4和图5来详细描述在根据本发明的NAT穿越方法中图3所示的系统1的操作示例。
图4示出了根据本发明的NAT穿越方法的名称绑定阶段的操作过程。
如图4所示,中继服务器13可使用两个地址来接收和发送消息。即,中继服务器13可在这两个地址上监听传入的消息,并且可利用这两个消息中的任一个发送外出消息。这两个地址包括服务地址(IP_s,Port_s)和中继地址(IP_r,Port_r)。服务地址(IP_s,Port_s)用于NAT设备后面的私网中的主机,而中继地址(IP_r,Port_r)用于私网外部的主机。注意,在本发明中,服务地址和中继地址可以是相同的。
假设私网中的某个主机,例如第一主机11,希望中继服务器13为其提供中继服务,以便该私网外部的主机能够发起与第一主机11的通信。如图所示,第一主机11在NAT设备12后面。也就是说,第一主机11收发的分组都需要经过NAT设备12进行的NAT处理。
首先,在步骤S101中,第一主机11的名称绑定单元103构造中继请求消息,并通过消息收发单元101将其发送出。该中继请求消息的目的地地址为中继服务器13的服务地址,源地址为第一主机11在私网中的本地地址或者说内部地址(IP_1i,Port_1i)。
在步骤S102中,NAT设备12的消息收发单元201截取到该中继请求消息,并将其传递到NAT处理单元203。NAT处理单元203通过执行NAT处理,将该中继请求消息的源地址改为公共地址或者说外部地址(IP_1e,Port_1e)。此地址也可被称为NAT地址。在此情况下,NAT处理单元203形成(IP_1i,Port_1i)和(IP_1e,Port_1e)之间的映射,并且为该映射制定这样的策略:允许从(IP_s,Port_s)发送到(IP_1e,Port_1e)的消息被转发到(IP_1i,Port_1i)。也就是说,如果NAT设备12以后接收到的传入消息的分组的源地址为(IP_s,Port_s),目的地地址为(IP_1e,Port_1e),则该消息可以被转发到第一主机11的内部地址(IP_1i,Port_1i)。NAT处理单元203将包含所述映射和策略的条目记录在存储单元202中的例如映射和策略数据库中。
在步骤S103中,NAT设备12将源地址经修改的中继请求消息转发到中继服务器13。
在步骤S104中,中继服务器13通过消息收发单元301接收到从NAT设备12转发来的中继请求消息。该中继请求消息被传递给中继请求处理单元303。中继请求处理单元303获知该中继请求消息的源地址(IP_1e,Port_1e)(NAT地址)。中继请求处理单元303构造这样的中继响应消息:该中继响应消息的有效数据部分中包括地址列表[(IP_r,Port_r),(IP_1e,Port_1e)]。该地址列表也可称为路由信息,其中包括中继地址(IP_r,Port_r)和NAT地址(IP_1e,Port_1e)。与现有技术中不同,该中继地址(IP_r,Port_r)可以不是为第一主机11特别分配的。也就是说,中继服务器13可以为接收到的多个或者所有中继请求消息使用一个共同的中继地址(IP_r,Port_r)。另外,与现有技术中不同,中继服务器13也无需存储任何映射。当其以后在中继地址(IP_r,Port_r)接收到通信请求消息时,它只需根据该消息自身所携带的地址利用其服务地址(IP_s,Port_s)发送到特定的目的地即可,下文将对此进行更详细描述。
在步骤S105中,中继请求处理单元303通过消息收发单元301,利用服务地址(IP_s,Port_s)向地址(IP_1e,Port_1e)发送中继响应消息。
在步骤S106中,NAT设备12接收到该中继响应消息。此时,NAT处理单元203对照存储单元202中存储的映射和策略数据库来检查该中继响应消息。在这里的情况下,由于该中继响应消息的源地址为(IP_s,Port_s),目的地地址为(IP_1e,Port_1e),因此该消息通过检查。于是,NAT处理单元203将中继响应消息的目的地地址从(IP_1e,Port_1e)改成(IP_1i,Port_1i)。或者,如果该消息未能通过检查,则被丢弃(或者被转发到其他匹配的地址)。
在步骤S107中,消息收发单元201将目的地地址已被修改的中继响应消息转发到第一主机11。
在步骤S108中,第一主机11的消息收发单元101将接收到的中继响应消息传递到名称绑定单元103。名称绑定单元103从该中继响应消息的有效数据部分中提取出地址列表[(IP_r,Port_r),(IP_1e,Port_1e)]。名称绑定单元103随后构造绑定更新消息,在该绑定更新消息的有效数据部分中包括绑定信息,该绑定信息指示出第一主机11(例如第一主机11的主机名)与地址列表[(IP_r,Port_r),(IP_1e,Port_1e)]的绑定。
在步骤S109中,第一主机11的消息收发单元101根据名称绑定单元103的指示,向名称服务器14的地址(IP_ns,Port_ns)发送绑定更新消息。注意,第一主机11与名称服务器14通信时使用的内部地址与其在与中继服务器13通信时使用的内部地址通常是不相同的。这里为表明这种区别,用(IP_1i’和Port_1i’)来表示第一主机11与名称服务器14通信时使用的内部地址。正如本领域的技术人员所熟知的,常见的情况是IP地址相同而端口号不同。也就是说,IP_1i’与IP_1i可以相同,而Port_li’与Port_1i通常是不同的。同一设备在与不同设备通信时通常使用不同的传输地址(至少是不同的端口号)。这一点同样适用于以下所述的第一主机与中继选择服务器16通信时使用的内部地址(IP_1i”,Port1i”),以及第二主机与名称服务器通信时和经由中继服务器向第一主机发起通信请求时分别使用的地址(IP_2’和IP_2’)和(IP_2和IP_2)。
在步骤S110中,与步骤S102中类似,NAT设备12的消息收发单元201截取该绑定更新消息并将其传递到NAT处理单元203。NAT处理单元203通过执行NAT处理,将该绑定更新消息的源地址改为公共地址或者说外部地址(IP_1e’,Port_1e’)。这里,由于(IP_1i’,Port_1i’)不同于(IP_1i,Port_1i),因此(IP_1i’,Port_1i’)所被映射到的外部地址(IP_1e’,Port_1e’)不同于(IP_1i,Port_1i)所被映射到的外部地址(IP_1e,Port_1e)。其中,IP_1e’与IP_1e可以相同,而Port_1e’和Port_1e通常是不同的。这同样适用于下文所述的(IP_1i”,Port_1i”)和(IP_1e”,Port_1e”)的情况下。在此情况下,与步骤S102中类似,NAT处理单元203形成(IP_1i’,Port_1i’)和(IP_1e’,Port_1e’)之间的映射,并且为该映射制定这样的策略:允许从(IP_ns,Port_ns)发送到(IP_1e’,Port_1e’)的消息被转发到(IP_1i’,Port_1i’)。NAT处理单元203将包含所述映射和策略的条目记录在存储单元202中的例如映射和策略数据库中。
在步骤S111中,NAT设备12将源地址经修改的绑定更新消息发送到其期望目的地-名称服务器14。
在步骤S112中,名称服务器14的消息收发单元401接收到该绑定更新消息并将其传递到绑定更新处理单元403。绑定更新处理单元403从该绑定更新消息的有效数据部分中提取出指示第一主机11的主机名与地址列表[(IP_r,Port_r),(IP_1e,Port_1e)]的绑定的信息,并将该信息存储在存储单元402中的例如绑定数据库中。
图5示出了根据本发明的NAT穿越方法的通信阶段的操作过程。
如图所示,第二主机15希望发起与第一主机11的通信。第二主机15不在第一主机11所在私网中。第二主机15可能在公网中,也可能在另一个私网中。也就是说,第二主机15可能不在NAT设备后面,也可能在另一个NAT设备后面。为简明起见,这里假设第二主机15不在NAT设备后面。
首先,在步骤S201中,第二主机15的通信处理单元503构造绑定查询消息,该绑定查询消息指定第一主机11的主机名,希望查询第一主机11的地址。消息收发单元501向名称服务器14发送该绑定查询消息。
在步骤S202中,名称服务器14的消息收发单元401接收到该绑定查询消息并将其传递到查询处理单元404。查询处理单元404以第一主机11的主机名为关键字查找存储单元402中的绑定数据库,找出与第一主机11的主机名相对应的地址列表[(IP_r,Port_r),(IP_1e,Port_1e)]。查询处理单元404构造绑定答复消息,该消息的有效数据部分中包括与第一主机11的主机名相对应的地址列表[(IP_r,Port_r),(IP_1e,Port_1e)]。
在步骤S203中,名称服务器14的消息收发单元401将该绑定答复消息发送到第二主机15。
在步骤S204中,第二主机15的消息收发单元501接收到该绑定答复消息,并将其传递到通信处理单元503。通信处理单元503从该绑定答复消息的有效数据部分中提取出与第一主机11相对应的地址列表[(IP_r,Port_r),(IP_1e,Port_1e)],并且构造通信请求消息,该通信请求消息的有效数据部分中除包括第二主机15通常发送的通信请求消息中本来有的数据内容外,还包括提取出的地址列表中的NAT地址(IP_1e,Port_1e)。
在步骤S205中,在通信处理单元503的指示下,消息收发单元501利用源地址(IP_2,Port_2)向所提取出的地址列表中的中继地址(IP_r,Port_r)发送通信请求,从而来发起与第一主机11的通信。
在步骤S206中,中继服务器13的消息收发单元301在中继地址(IP_r,Port_r)上接收到该通信请求消息,并将其相应地传递到中继处理单元304。中继处理单元304从该通信请求消息中提取出作为路由信息的(IP_1e,Port_1e)。中继处理单元304随后基于此通信请求消息构造一个新的通信请求,即,去除原通信请求消息中包括的(IP_1e,Port_1e),并且在其中包括通信请求消息的原本源地址,即第二主机15的地址(IP_2,Port_2)。
在步骤S207中,在中继处理单元304的指示下,消息收发单元301利用其服务地址(IP_s,Port_s)将新的通信请求消息转发到(IP_1e,Port_1e)。
可见,在名称绑定阶段期中继服务器向第一主机返回的路由信息使得第二主机可以以源路由的方式在所发送的通信请求消息中指定该消息的路径。中继服务器从而可根据该消息中包含的内容将其转发到适当的NAT地址,而其自身无需维护任何映射信息。
在步骤S208中,NAT设备12的消息收发单元201在地址(IP_1e,Port_1e)上接收到该新的通信请求消息,并将其传递给NAT处理单元203。NAT处理单元203对照存储单元202中的映射和策略数据库来检查该消息。在这里的情况下,由于该消息的源地址为(IP_s,Port_s),目的地地址为(IP_1e,Port_1e),因此该消息通过检查。于是,NAT处理单元203将该消息的目的地地址从(IP_1e,Port_1e)改成(IP_1i,Port_1i)。
在步骤S209中,消息收发单元201将目的地地址经修改的通信请求消息转发到第一主机11的内部地址(IP_1i,Port_1i)。
在步骤S210中,第一主机11的消息收发单元101接收到从NAT设备12转发来的该通信请求消息,并将其传递到通信处理单元104。通信处理单元104从该通信请求消息的有效数据部分中,提取出原始通信请求消息的有效数据内容以及原始源地址(IP_2,Port_2)。通信处理单元104随后为该通信请求消息创建通信响应消息,在该通信响应消息的有效数据部分中,除包括第一主机11通常发送的通信响应消息中本来包括的有效数据内容外,还包括该通信响应消息的实际目的地地址(IP_2,Port_2)。
在步骤S211中,第一主机11通过消息收发单元101向中继服务器13的服务地址(IP_s,Port_s)发送该通信响应消息。
在步骤S212中,NAT设备12的消息收发单元201截取到该通信响应消息,并将其传递到NAT处理单元203。在此情况下,由于存储单元202中的映射和策略数据库中已经有关于(IP_1i,Port_1i)、(IP_1e,Port_1e)和(IP_s,Port_s)之间的映射和策略的条目,因此NAT处理单元203直接将该通信响应消息的源地址改为(IP_1e,Port_1e)。
在步骤S213中,NAT设备12将源地址经修改的通信响应消息转发到中继服务器13。
在步骤S214中,中继服务器13的消息收发单元301在服务地址(IP_s,Port_s)上接收到通信响应消息,并将其传递到中继处理单元304。中继处理单元304从该通信响应消息的有效数据部分中提取出实际目的地(IP_2,Port_2)和响应消息的实际内容,并且构造出在有效数据部分中包括该实际内容的实际通信响应消息。
在步骤S215中,在中继处理单元304的指示下,消息收发单元301利用中继地址(IP_r,Port_r),将该实际通信响应消息发送到第二主机15的地址(IP_2,Port_2)。
第二主机15于是接收到了从第一主机11发送来的通信响应消息。第一主机11和第二主机15之间的通信可根据上述过程,以中继服务器13为中继,继续进行下去。
注意,虽然以上以示例方式描述了通过第一主机11在从中继服务器13获取地址列表之后向名称服务器更新绑定、随后第二主机15向名称服务器查询的方式来使得第二主机15能够获取与第一主机11绑定的地址列表,但是本发明并不限于此。正如本领域的技术人员将会明了的,第二主机15也可通过其他方式获得与第一主机11相对应的地址列表。例如,第一主机11可以通过电子邮件等等其他信息传达方式将其相应的地址列表告知第二主机15。实际上,只要第一主机11从中继服务器13请求获取了地址列表,并且第二主机12通过某种适当的方式获知该地址列表,它就可以经由中继服务器13发起与第一主机11的通信。
可见,与现有技术中不同,根据本发明的中继服务器不需要为每个接收到的中继请求分配一个中继地址并记录所分配的中继地址和中继请求源地址(NAT地址)之间的映射。也就是说,中继服务器不需要为其客户端分配地址,也不需要维护状态信息。状态信息改为由来自外部主机的每条消息的分组携带。这样,本发明的服务器是无状态的,并且更为健壮和高效。
另外,如前所述,在P2P或类似的情形中,NAT给网络连通性带来了很大的问题。由于可能有许多主机都在NAT设备后面,所以TURN方案面临着严重的可扩展性问题。
然而,由于本发明对源路由技术的利用,本发明很适合用于以源路由作为路由机制的覆盖网络中。在用于覆盖网络中的情况下,不在NAT后面的每个覆盖节点都可以充当TURN服务器。
也就是说,利用本发明,可扩展性不再成问题,因为公共网络中的每个主机都可充当中继服务器。另外,本发明因为无状态设计而减轻了中继节点的负担。公共网络中的每个节点可向中继选择服务器报告。所报告的信息可包括该节点的服务地址(也就是以上所述的(IP_s,Port_s)),节点的能力,节点所属的服务提供商(ISP),节点的位置等等。
当NAT后面的主机向中继选择服务器发出查询,希望找出一个或多个中继节点来充当其中继服务器时,中继选择服务器将会基于其所存储的关于中继节点的信息,以及发出查询的主机的信息(位置、ISP等等),来选择一个或多个中继节点。然后,该NAT后面的节点通过与第一实施例中类似的名称绑定向名称服务器更新其绑定。其他主机于是就可以以所选择的中继节点作为中继来发起与该NAT后面的节点的通信。
下面参考图6和图7来详细描述本发明的第二实施例。第二实施例示出了本发明应用在例如源路由P2P网络中的情况。
图6示出了根据本发明第二实施例的用于NAT穿越的系统1′的框图。
根据本发明第二实施例的系统1′包括第一主机11′、NAT设备12、一个或多个中继节点(图6示出了其中的一个中继节点13-a)、名称服务器14、第二主机15和中继选择服务器16,等等。
NAT设备12、名称服务器14和第二主机15与第一实施例中的相同。这里不再重复描述。
中继节点13-a以及其他没有示出的中继节点13-b等等均位于公网中,它们具有如图6所示的结构。此结构与第一实施例的中继服务器13的不同之处在于还包括信息报告单元305。信息报告单元305用于向中继选择服务器16报告自身节点的服务地址、能力、ISP、位置等等信息。
第一主机11′与第一实施例的第一主机11的不同之处在于其还包括中继确定单元105,用于请求中继选择服务器16为其选择一个或多个节点作为其中继节点。
中继选择服务器16包括消息收发单元601、存储单元602、报告处理单元603、中继选择单元604。消息收发单元601用于接收来自其他设备的消息,根据接收到的消息的类型等等将其传递到报告处理单元603或中继选择单元604等等,以及向期望的目的地发送报告处理单元603和中继选择单元604指示发送的消息。报告处理单元603可用于接收中继节点发送来的报告并将关于节点的信息存储在存储单元602中。中继选择单元604可以根据例如第一主机11′的请求为其选择中继节点。存储单元602可存储中继选择服务器16的操作中可能需要使用和存储的信息。例如存储单元602可存储由各个中继节点报告来的信息。
图7示出了在节点报告与选择阶段本发明的方法的操作示例。
如图7所示,在步骤S301中,中继节点13-a的消息收发单元301将信息报告单元305所构造的报告消息发送到中继选择服务器16。该报告消息的有效数据部分中包括例如中继节点13-a的服务地址、能力、ISP、位置等等的信息。
在步骤S302中,中继选择服务器16的消息收发单元601接收到从中继节点13-a发送来的该报告消息,提取出其有效数据部分中记载的信息,并在存储单元602中的节点数据库中为中继节点13-a创建一条目,其中包括中继节点13-a的上述信息。
类似地,在步骤S303和步骤S304中,中继节点13-b向中继选择服务器16报告其服务地址、能力、ISP、位置等等,中继选择服务器16将这些信息记录在存储单元602中的节点数据库中。
虽然图中仅示出了两个中继节点向中继选择服务器16报告的情况,但是应当明白,其他中继节点也可通过类似的步骤来向中继选择服务器16报告其信息。
在步骤S305中,第一主机11′的消息收发单元101向中继选择服务器16发送中继确定单元105构造的中继选择请求消息,该中继选择请求消息的有效数据部分中例如包括第一主机11′的ISP、位置等等的信息。
NAT设备12在步骤S306中对该中继选择请求消息执行与上述的步骤S102和S110中类似的处理,并在步骤S307中将源地址从(IP_1i″,Port_1i″)变为(IP_1e″,Port_1e″)的中继选择请求消息转发到中继选择服务器16。
在步骤S308中,中继选择服务器16的消息收发单元601接收到该中继选择请求消息,并将其传递到中继选择单元604。中继选择单元604根据中继选择请求消息中包括的第一主机11′的ISP、位置等等以及存储单元602中的节点数据库中存储的节点的能力、ISP、位置等等,为第一主机11′选择一个或多个适当的中继节点,以作为为其提供中继服务的中继服务器。中继选择单元604构造中继选择响应消息,在该消息的有效数据部分中包括所选择的中继节点的服务地址以及其他可能需要的信息,等等。
在步骤S309中,中继选择服务器16的消息收发单元601向(IP_1e″,Port_1e″)发送该中继选择响应消息。
然后,经过步骤S310中的NAT处理以及步骤S311中的转发,该中继选择响应消息到达第一主机11′。
第一主机11′于是获知了可以为其提供中继服务的一个或多个中继节点的服务地址。第一主机11′随后可通过图4所示的步骤S101至S112向这些中继节点发送中继请求消息,并根据所获得的中继响应来向名称服务器14更新其主机名与一个或多个地址列表的绑定。
然后,第二主机15可类似地通过图5所示的步骤S201至S215,以中继选择服务器16为第一主机11′选择的一个或多个中继节点之一作为中继,来发起与第一主机11′的通信。
可见,本发明解决了现有技术的TURN方案所面临的可扩展性问题,这是因为公共网络中的每个主机都可充当中继服务器。中继选择服务器可根据请求节点与中继节点各自的状况来为请求节点选择一个或多个中继节点。
虽然已经通过具体实施例来描述了本发明,但是本领域的技术人员可以明白,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以对本发明进行各种修改、替换、组合和变更。

Claims (23)

1.一种通过中继方式进行网络地址转换NAT穿越的方法,包括:
第一主机经由NAT设备利用NAT地址向中继服务器的服务地址发送中继请求消息;以及
中继服务器向第一主机返回中继响应消息,该中继响应消息包括地址列表,该地址列表包括中继地址和所述NAT地址。
2.如权利要求1所述的方法,还包括:
第二主机获取所述地址列表,并通过向所述中继地址发送包括所述NAT地址的通信请求消息,来发起与所述第一主机的通信。
3.如权利要求2所述的方法,还包括:
第一主机向名称服务器发送表明将所述第一主机绑定到所述地址列表的绑定更新消息,并且其中
所述第二主机获取所述地址列表的步骤包括查询所述名称服务器来获取所述第一主机绑定到的所述地址列表。
4.如权利要求2所述的方法,还包括:
所述中继服务器在所述中继地址上接收到所述通信请求消息,通过在所述通信请求消息中包括所述第二主机的地址来修改所述通信请求消息,并且将修改后的通信请求消息转发到所述第一主机。
5.如权利要求4所述的方法,其中,
所述中继服务器将所述修改后的通信请求消息转发到所述第一主机的步骤包括利用所述服务地址向所述NAT地址发送修改后的通信请求消息,并且
所述方法还包括:
所述NAT设备在所述NAT地址上接收到所述修改后的通信请求消息,并将所述修改后的通信消息转发到所述第一主机;
所述第一主机从所述修改后的通信请求消息中提取所述第二主机的地址,并经由所述NAT设备向所述中继服务器的服务地址发送包括所述第二主机的地址的通信响应消息;以及
所述中继服务器将所述通信响应消息转发到所述第二主机。
6.如权利要求1所述的方法,其中
所述中继服务器向第一主机返回中继响应消息的步骤包括利用所述服务地址向所述NAT地址发送所述中继响应消息,并且
所述方法还包括所述NAT设备在所述NAT地址上接收到所述中继响应消息,并将所述中继响应消息转发到所述第一主机。
7.如权利要求1所述的方法,还包括:
一个或多个中继节点中的每个中继节点向中继选择服务器发送包括该中继节点的信息的报告;
中继选择服务器记录接收到的报告中包括的信息;以及
所述第一主机向所述中继选择服务器发送中继选择请求,并接收所述中继选择服务器返回的中继选择响应,并且其中
所述中继选择响应指示的一个或多个中继节点之一充当所述中继服务器。
8.如权利要求1所述的方法,其中,所述服务地址、中继地址、NAT地址中的每一个包括IP地址和端口号。
9.如权利要求1所述的方法,其中,所述服务地址和所述中继地址是相同的。
10.一种通过中继方式进行网络地址转换NAT穿越的系统,包括:
第一主机,该第一主机向中继服务器的服务地址发送中继请求消息;
NAT设备,该NAT设备截取所述中继请求消息,并利用NAT地址将所述中继请求消息转发到所述服务地址;以及
中继服务器,该中继服务器经由所述NAT设备向所述第一主机返回中继响应消息,该中继响应消息包括地址列表,该地址列表包括中继地址和所述NAT地址。
11.如权利要求10所述的系统,还包括:
第二主机,其获取所述地址列表,并且通过向所述中继地址发送包括所述NAT地址的通信请求消息,来发起与所述第一主机的通信。
12.如权利要求11所述的系统,还包括:
名称服务器,其接收从所述第一主机发送来的表明将所述第一主机绑定到所述地址列表的绑定更新消息,记录所述第一主机绑定到的所述地址列表,并且在接收到所述第二主机的查询后向所述第二主机返回所述第一主机绑定到的地址列表。
13.如权利要求11所述的系统,其中,所述中继服务器在所述中继地址上接收到所述通信请求消息,通过在所述通信请求消息中包括所述第二主机的地址来修改所述通信请求消息,并且将修改后的通信请求消息转发到所述第一主机。
14.如权利要求13所述的系统,其中,
所述中继服务器通过利用所述服务地址向所述NAT地址发送修改后的通信请求消息来将修改后的通信请求消息转发到所述第一主机;
所述NAT设备在所述NAT地址上接收到所述修改后的通信消息,并将所述修改后的通信消息转发到所述第一主机;
所述第一主机从所述修改后的通信请求消息中提取所述第二主机的地址,经由所述NAT设备向所述中继服务器的服务地址发送包括所述第二主机的地址的通信响应消息;并且
所述中继服务器将所述通信响应消息转发到所述第二主机。
15.如权利要求10所述的系统,其中,
所述中继服务器通过利用所述服务地址向所述NAT地址发送所述中继响应消息来向第一主机返回所述中继响应消息;并且
所述NAT设备在所述NAT地址上接收到所述中继响应消息,并将所述中继响应消息转发到所述第一主机。
16.如权利要求10所述的系统,还包括:
中继选择服务器,其接收来自多个中继节点中的每一个的包括该中继节点的信息的报告,记录接收到的报告中包括的信息,并且在接收到来自所述第一主机的中继选择请求后,根据记录的信息选择所述多个中继节点中的一个或多个,并且其中
所述中继服务器是所选择的中继节点之一。
17.如权利要求10所述的系统,其中,所述服务地址、中继地址、NAT地址中的每一个包括因特网协议地址和端口号。
18.如权利要求10所述的系统,其中,所述服务地址和所述中继地址是相同的。
19.一种中继服务器,包括:
消息收发单元,其在服务地址上接收从网络地址转换NAT地址发送来的中继请求消息,将所述中继请求消息传递到中继请求处理单元,并利用所述服务地址向所述NAT地址返回由中继请求处理单元构造出的中继响应消息;以及
中继请求处理单元,其构造所述中继响应消息,所述中继响应消息包括地址列表,该地址列表包括中继地址和所述NAT地址。
20.如权利要求19所述的中继服务器,还包括中继处理单元,其中:
所述消息收发单元还在所述中继地址上接收包括所述NAT地址的通信请求消息,并将所述通信请求消息传递到所述中继处理单元;
所述中继处理单元从所述通信请求消息中提取出所述NAT地址,并且通过在所述通信请求消息中包括所述通信请求消息的源地址来修改所述通信请求消息;并且
所述消息收发单元利用所述服务地址向所述NAT地址发送修改后的通信请求消息。
21.如权利要求19所述的中继服务器,还包括:
信息报告单元,其构造包括该中继服务器的信息的报告,所述信息包括所述服务地址,并且其中
所述消息收发单元向中继选择服务器发送所述报告。
22.如权利要求19所述的中继服务器,其中,所述服务地址、中继地址、NAT地址中的每一个包括因特网协议地址和端口号。
23.如权利要求19所述的中继服务器,其中,所述服务地址和所述中继地址是相同的。
CN200910175620.8A 2009-09-24 2009-09-24 用于通过中继方式进行nat穿越的方法、系统和中继服务器 Expired - Fee Related CN102035900B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200910175620.8A CN102035900B (zh) 2009-09-24 2009-09-24 用于通过中继方式进行nat穿越的方法、系统和中继服务器
PCT/CN2010/000813 WO2011035528A1 (zh) 2009-09-24 2010-06-10 用于通过中继方式进行nat穿越的方法、系统和中继服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910175620.8A CN102035900B (zh) 2009-09-24 2009-09-24 用于通过中继方式进行nat穿越的方法、系统和中继服务器

Publications (2)

Publication Number Publication Date
CN102035900A true CN102035900A (zh) 2011-04-27
CN102035900B CN102035900B (zh) 2015-05-06

Family

ID=43795319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910175620.8A Expired - Fee Related CN102035900B (zh) 2009-09-24 2009-09-24 用于通过中继方式进行nat穿越的方法、系统和中继服务器

Country Status (2)

Country Link
CN (1) CN102035900B (zh)
WO (1) WO2011035528A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404227A (zh) * 2011-12-09 2012-04-04 徐州医学院 一种层次型穿越内网的路由系统
CN103108054A (zh) * 2011-11-11 2013-05-15 中国移动通信集团公司 穿越中转服务器的方法以及相应的服务器、终端和系统
CN103188134A (zh) * 2011-12-29 2013-07-03 腾讯科技(深圳)有限公司 逻辑中转通信方法、逻辑中转服务器和逻辑中转通信系统
CN103220377A (zh) * 2012-05-08 2013-07-24 西北工业大学 一种nat穿越以及带宽复用的系统和方法
CN104683493A (zh) * 2013-11-29 2015-06-03 晶睿通讯股份有限公司 穿透网络地址转换的方法与连线中介系统
CN103108054B (zh) * 2011-11-11 2016-12-14 中国移动通信集团公司 穿越中转服务器的方法以及相应的服务器、终端和系统
CN106331195A (zh) * 2015-06-23 2017-01-11 中兴通讯股份有限公司 数据接收、发送方法及装置
TWI625950B (zh) * 2016-08-04 2018-06-01 群暉科技股份有限公司 於一網路系統中藉助於網路位址轉譯來轉送封包之方法與裝置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9826044B2 (en) 2013-10-23 2017-11-21 Qualcomm Incorporated Peer-to-peer communication for symmetric NAT
CN105262853A (zh) * 2015-09-23 2016-01-20 上海斐讯数据通信技术有限公司 一种p2p连接nat穿越的路径建立方法、装置及系统
CN110012118B (zh) * 2019-03-08 2022-07-22 平安科技(深圳)有限公司 一种提供网络地址转换nat服务的方法及控制器
CN113572867B (zh) * 2021-09-26 2022-01-07 北京海誉动想科技股份有限公司 通信方法与装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004063843A2 (en) * 2003-01-15 2004-07-29 Matsushita Electric Industrial Co., Ltd. PEER-TO-PEER (P2P) CONNECTION DESPITE NETWORK ADDRESS TRANSLATOR (NATs) AT BOTH ENDS
CN100464540C (zh) * 2005-09-09 2009-02-25 北京中星微电子有限公司 一种跨网关通信的方法
CN101056271A (zh) * 2007-06-06 2007-10-17 杭州华三通信技术有限公司 穿越nat的方法及相应的通信终端和nat设备

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103108054A (zh) * 2011-11-11 2013-05-15 中国移动通信集团公司 穿越中转服务器的方法以及相应的服务器、终端和系统
WO2013067870A1 (zh) * 2011-11-11 2013-05-16 中国移动通信集团公司 穿越中转服务器的方法以及相应的服务器、终端和系统
CN103108054B (zh) * 2011-11-11 2016-12-14 中国移动通信集团公司 穿越中转服务器的方法以及相应的服务器、终端和系统
CN102404227A (zh) * 2011-12-09 2012-04-04 徐州医学院 一种层次型穿越内网的路由系统
CN102404227B (zh) * 2011-12-09 2014-06-18 徐州医学院 一种层次型穿越内网的路由系统
CN103188134A (zh) * 2011-12-29 2013-07-03 腾讯科技(深圳)有限公司 逻辑中转通信方法、逻辑中转服务器和逻辑中转通信系统
CN103188134B (zh) * 2011-12-29 2016-12-21 腾讯科技(深圳)有限公司 逻辑中转通信方法、逻辑中转服务器和逻辑中转通信系统
CN103220377A (zh) * 2012-05-08 2013-07-24 西北工业大学 一种nat穿越以及带宽复用的系统和方法
CN104683493A (zh) * 2013-11-29 2015-06-03 晶睿通讯股份有限公司 穿透网络地址转换的方法与连线中介系统
CN106331195A (zh) * 2015-06-23 2017-01-11 中兴通讯股份有限公司 数据接收、发送方法及装置
CN106331195B (zh) * 2015-06-23 2020-01-14 中兴通讯股份有限公司 数据接收、发送方法及装置
TWI625950B (zh) * 2016-08-04 2018-06-01 群暉科技股份有限公司 於一網路系統中藉助於網路位址轉譯來轉送封包之方法與裝置

Also Published As

Publication number Publication date
WO2011035528A1 (zh) 2011-03-31
CN102035900B (zh) 2015-05-06

Similar Documents

Publication Publication Date Title
CN102035900B (zh) 用于通过中继方式进行nat穿越的方法、系统和中继服务器
US8837483B2 (en) Mapping private and public addresses
US6128664A (en) Address-translating connection device
CN101809951B (zh) 协同nat行为发现
US9781061B2 (en) Method and system for providing an information centric network with a software defined network
US10462054B2 (en) Overloading address space for improved routing, diagnostics, and content-relay network
US7992201B2 (en) Dynamic network tunnel endpoint selection
US7441270B1 (en) Connectivity in the presence of barriers
JP5516571B2 (ja) 通信方法、通信システム、匿名化装置、サーバ
CN107070983A (zh) 一种基于地址转发的负载均衡方法、设备和系统
EP1164754A1 (en) Methods and arrangements in a telecommunications system
KR101381701B1 (ko) 데이터 메시지 처리 방법, 시스템 및 접속 서비스 노드
CN103023787B (zh) 数据中心系统及装置和提供服务的方法
KR101240552B1 (ko) 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법
CN102820977A (zh) 组播方法、装置及网络设备
CN101800781A (zh) 一种穿越nat的隧道过渡方法及系统
US8194683B2 (en) Teredo connectivity between clients behind symmetric NATs
US8547998B2 (en) Tunneling IPv6 packet through IPv4 network using a tunnel entry based on IPv6 prefix and tunneling IPv4 packet using a tunnel entry based on IPv4 prefix
CN105991793A (zh) 报文转发的方法和装置
CN102647483A (zh) 获取nat类型的方法、p2p端点实体和nat实体
US7715386B2 (en) Reducing network traffic to teredo server
CN113472913B (zh) 通信方法及装置
US20150032898A1 (en) Method for establishing a virtual community network connection and a system for implementing said method
US20080225867A1 (en) Faster NAT detection for Teredo client
CN102480422B (zh) P2p终端在p2p叠加网中的通讯方法和系统

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150506

Termination date: 20170924

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