CN102457580A - Nat穿越方法及*** - Google Patents
Nat穿越方法及*** Download PDFInfo
- Publication number
- CN102457580A CN102457580A CN201010510328XA CN201010510328A CN102457580A CN 102457580 A CN102457580 A CN 102457580A CN 201010510328X A CN201010510328X A CN 201010510328XA CN 201010510328 A CN201010510328 A CN 201010510328A CN 102457580 A CN102457580 A CN 102457580A
- Authority
- CN
- China
- Prior art keywords
- node
- stun
- turn
- mailing address
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种NAT穿越方法及***。该方法包括:通信发起节点根据获得的通信接收节点的通信地址和第一鉴权信息,发起从自身通信地址到通信接收节点的通信地址的第一单向联通性测试;并根据第一单向联通性测试的结果,选择能够相互通信的通信地址对。本发明能够应用于无法进行提供/应答或提供/应答代价大的场景。
Description
技术领域
本发明涉及NAT(Network Address Translation,网络地址转换)穿越技术,尤其涉及一种NAT穿越方法及***。
背景技术
ICE(Interactive Connectivity Establishment,交互式连接建立)是IETF(Internet Engineering Task Force,互联网工程任务组)制定的NAT穿越解决方案的标准,利用ICE能为两个被NAT阻隔的节点建立连接,ICE还具备穿越防火墙的功能。ICE综合利用了STUN(Simple Traversal of UDP over NATs,NAT的UDP简单穿越)和TURN(Traversal Using Relay NAT,通过中继方式穿越NAT)等NAT穿越协议;其中的TURN协议用于中继,TURN服务器能为节点分配中继地址,为分配了中继地址的节点中继报文。
如图1所示,现有技术ICE的流程包括:
步骤101,节点A收集自身通信地址;
其中,通信地址可以为:主机地址、反射地址、中继地址、NAT辅助地址和UDP(用户数据包协议)隧道地址中的一种或一种以上;每种通信地址可以收集一个或一个以上;
步骤102,节点A将携带有自身通信地址及STUN用户名片段1的提供消息发送给第三方节点;
步骤103,第三方节点将携带有节点A的通信地址及STUN用户名片段1的提供消息转发给节点B;
步骤104,节点B收集自身通信地址;
步骤105,节点B将携带有自身通信地址、STUN用户名片段2及STUN密码的应答消息发送给第三方节点;
其中,STUN密码由通信接收节点决定;在该例中,由节点B决定;
步骤106,第三方节点将携带有节点B的通信地址、STUN用户名片段2及STUN密码的应答消息转发给节点A;
可选地,节点A将携带有自身通信地址及STUN用户名片段1的提供消息直接发送给节点B,相应地,节点B将携带有自身通信地址、STUN用户名片段2及STUN密码的应答消息直接发送给节点A,而不经第三方节点转发;
步骤107,节点A和节点B之间进行ICE联通性测试;
步骤108,节点A根据ICE联通性测试结果,选择能够相互通信的通信地址对,一对通信地址对包含一个节点A的通信地址和一个节点B的通信地址。
从图1可以看出,ICE的流程主要包括收集自身通信地址、offer/answer(提供/应答)方式交换通信地址及鉴权信息、及ICE联通性测试三大步骤;其中,节点A的鉴权信息指STUN用户名片段1;节点B的鉴权信息指STUN用户名片段2及STUN密码;ICE联通性测试采用STUN binding(绑定)请求消息。ICE要求两个节点必须能够直接或通过第三方节点以offer/answer方式(步骤102、103、105、106)交换通信地址及鉴权信息,这是ICE中很重要的一个过程,通过该过程所交换的通信地址及鉴权信息用于后续的ICE联通性测试。另外,如图3所示,如果采用TURN协议实现NAT穿越,则以提供/应答方式交换通信地址及鉴权信息会触发为通信接收节点服务的TURN服务器将发起节点的通信地址添加到转发权限列表中(步骤305-306),当封装有用于ICE联通性测试的STUN binding请求消息的TURN消息发到TURN服务器时,TURN服务器需要基于IP地址校验权限,校验通过后才进行转发。
图2示出了ICE联通性测试(步骤107)的一个实例;如图2所示,采用STUN校验的ICE联通性测试具体包括:
步骤207,节点A向节点B发送STUN binding请求消息,该STUN binding请求消息中包含有STUN用户名片段1连接2以及STUN密码;
从图2可知,ICE联通性测试中,STUN binding请求消息中的用户名由通信双方提供的STUN用户名片段拼接而成,STUN密码由通信接收节点决定;
步骤208-209,节点B校验STUN用户名片段1连接2以及STUN密码,校验通过后向节点A返回STUN binding响应消息。
图2所示的流程中步骤201-206与图1中的步骤101-106相同,故在此不再赘述。
图3示出了ICE联通性测试(步骤107)的一个实例;如图3所示,采用TURN校验的ICE联通性测试具体包括:
步骤309,节点A向TURN服务器发送STUN binding请求消息,该STUNbinding请求消息中包含有STUN用户名片段1连接2以及STUN密码;
步骤310-311,TURN服务器基于IP地址校验权限,即校验STUN binding请求消息的源地址是否在转发权限列表中,校验通过后将STUN binding请求消息封装在TURN消息中转发给节点B,该STUN binding请求消息中包含有STUN用户名片段1连接2以及STUN密码;
步骤312-313,节点B校验STUN用户名片段1连接2以及STUN密码,校验通过后向TURN服务器返回封装有STUN binding响应消息的TURN消息;
步骤314-315,TURN服务器基于IP地址校验权限,即校验TURN消息的转发目的地址是否在转发权限内,校验通过后从TURN消息中提取出STUNbinding响应消息并将STUN binding响应消息转发给节点A。
图3所示的流程中步骤301-304、以及307-308与图1中的步骤101-106相同,故在此不再赘述。
如上所述,ICE要求两个节点必须能够直接或通过第三方节点以offer/answer方式交换通信地址及鉴权信息,这是ICE中很重要的一个过程;但是,有的场景下两个节点间无法进行提供/应答或提供/应答代价大,因此无法采用ICE。比如,在P2P(Peer to Peer,点对点)内容分发***中,对等节点能从跟踪服务器(tracker)获得多个其他节点的通信地址,但tracker不为节点间转发提供/应答消息,所以两个对等节点无法通过提供/应答方式交换通信地址及鉴权信息。因此,针对无法进行提供/应答或提供/应答代价大的场景,需要对ICE进行改进。
发明内容
针对现有技术中ICE无法应用于无法进行提供/应答或提供/应答代价大的场景而提出本发明,为此,本发明的主要目的在于提出一种NAT穿越方法及***,以解决上述问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种NAT穿越方法,包括:
通信发起节点根据获得的通信接收节点的通信地址和第一鉴权信息,发起从自身通信地址到通信接收节点的通信地址的第一单向联通性测试;并根据第一单向联通性测试的结果,选择能够相互通信的通信地址对。
进一步地,所述第一单向联通性测试包括:
通信发起节点从自身的通信地址向通信接收节点的通信地址发送STUN绑定请求消息,所述STUN绑定请求消息中包含所述第一鉴权信息;
通信接收节点对收到的STUN绑定请求消息中的第一鉴权信息进行校验,校验通过后向通信发起节点返回STUN绑定响应消息。
进一步地,所述第一单向联通性测试包括:
通信发起节点从自身的通信地址向为通信接收节点服务的TURN服务器的地址发送封装有STUN绑定请求消息的TURN消息,该STUN绑定请求消息中包含所述第一鉴权信息,该TURN消息中包含TURN密码或证书;
TURN服务器对收到的TURN消息中的TURN密码或证书进行校验,校验通过后将通信发起节点的通信地址添加到转发权限列表中,并将封装有STUN绑定请求消息的TURN消息转发给通信接收节点;
通信接收节点提取收到的TURN消息中的STUN绑定请求消息,并对STUN绑定请求消息中的第一鉴权信息进行校验,校验通过后向所述TURN服务器返回封装有STUN绑定响应消息的TURN消息;
当TURN服务器校验到封装有STUN绑定响应消息的TURN消息的转发目的地址在转发权限列表中时,TURN服务器将从TURN消息中提取出的STUN绑定响应消息转发给通信发起节点。
进一步地,所述第一单向联通性测试包括:
通信发起节点从自身的通信地址向为通信接收节点服务的TURN服务器的地址发送STUN绑定请求消息,该STUN绑定请求消息中包含所述第一鉴权信息;
TURN服务器将收到的STUN绑定请求消息封装在TURN消息中转发给通信接收节点;
通信接收节点提取收到的TURN消息中的STUN绑定请求消息,并对STUN绑定请求消息中的第一鉴权信息进行校验,校验通过后向所述TURN服务器返回封装有STUN绑定响应消息的TURN消息;
TURN服务器将从TURN消息提取出的STUN绑定响应消息转发给通信发起节点。
进一步地,所述第一单向联通性测试包括:
通信发起节点向为通信接收节点服务的TURN服务器请求添加通信发起节点的通信地址的转发权限,在TURN服务器将通信发起节点的通信地址添加到转发权限列表中后,通信发起节点从自身的通信地址向TURN服务器的地址发送STUN绑定请求消息,该STUN绑定请求消息中包含所述第一鉴权信息;
当TURN服务器校验到STUN绑定请求消息的源地址在转发权限列表中时,将该STUN绑定请求消息封装在TURN消息中转发给通信接收节点;
通信接收节点提取收到的TURN消息中的STUN绑定请求消息,并对收到的STUN绑定请求消息中的第一鉴权信息进行校验,校验通过后向所述TURN服务器返回封装有STUN绑定响应消息的TURN消息;
当TURN服务器校验到封装有STUN绑定响应消息的TURN消息的转发目的地址在转发权限列表中时,TURN服务器将从TURN消息中提取出的STUN绑定响应消息转发给通信发起节点。
进一步地,所述第一鉴权信息包括通信接收节点决定的STUN用户名和STUN密码。
在通信发起节点选择能够相互通信的通信地址对之后,所述方法进一步包括:
以能够相互通信的通信地址对为通信路径,通信发起节点和通信接收节点以提供/应答方式交换双方的通信地址及第二鉴权信息;
根据各自得到的对方的通信地址及第二鉴权信息,通信发起节点和通信接收节点进行双向联通性测试;
通信发起节点或通信接收节点根据双向联通性测试的结果,选择能够相互通信的通信地址对。
在通信发起节点选择能够相互通信的通信地址对之后,所述方法进一步包括:
以能够相互通信的通信地址对为通信路径,通信发起节点和通信接收节点以提供/应答方式交换双方的通信地址及第二鉴权信息;
根据得到的对方的通信地址及第二鉴权信息,通信接收节点发起第二单向联通性测试;
通信发起节点或通信接收节点根据第二单向联通性测试的结果,选择能够相互通信的通信地址对。
进一步地,所述通信发起节点从第三方节点或通信接收节点获得通信接收节点的通信地址和第一鉴权信息。
一种NAT穿越***,包括:通信发起节点和通信接收节点;其中,
通信发起节点,用于根据获得的通信接收节点的通信地址和第一鉴权信息,发起从自身通信地址到通信接收节点的通信地址的第一单向联通性测试;并根据第一单向联通性测试的结果,选择能够相互通信的通信地址对。
进一步地,所述第一鉴权信息包括通信接收节点决定的STUN用户名和STUN密码。
进一步地,所述通信发起节点,进一步用于从第三方节点或通信接收节点获得通信接收节点的通信地址和第一鉴权信息。
由以上技术方案可以看出,本发明对现有ICE进行改进,具体的说,通信发起节点根据通信接收节点的通信地址和第一鉴权信息,通过第一单向联通性测试获得能够相互通信的通信地址对用于双方后需通信,这样使得改进后的ICE能够应用于无法进行提供/应答或提供/应答代价大的场景。
附图说明
图1为现有技术ICE的流程示意图;
图2为现有技术采用STUN校验的ICE联通性测试的流程示意图;
图3为现有技术采用TURN校验的ICE联通性测试的流程示意图;
图4为本发明改进后的ICE的流程示意图;
图5为本发明第一单向联通性测试第一实施例的流程示意图;
图6为本发明第一单向联通性测试第二实施例的流程示意图;
图7为本发明第一单向联通性测试第三实施例的流程示意图;
图8为本发明第一单向联通性测试第四实施例的流程示意图。
具体实施方式
以下结合附图和实施例对本发明作详细说明。
如图4所示,本发明改进后的ICE流程包括:
步骤401,节点B收集自身通信地址;
收集的通信地址可以为:主机地址、反射地址、中继地址、NAT辅助地址和UDP隧道地址中的一种或一种以上;每种通信地址可以收集一个或一个以上;
步骤402,节点A从第三方节点或节点B获得节点B的通信地址以及第一鉴权信息;
其中,第三方节点预先已从节点B获得节点B的通信地址以及第一鉴权信息;
第一鉴权信息包括节点B决定的STUN用户名和STUN密码;在现有技术中,用于校验的STUN用户名是由通信双方提供的STUN用户名片段拼接而成,而在本发明中,用于校验的STUN用户名直接由通信接收节点决定;另外,STUN密码也由通信接收节点决定;
步骤403,根据获得的节点B的通信地址及第一鉴权信息,节点A发起从自身通信地址到节点B通信地址的第一单向联通性测试,以测试节点A的通信地址到节点B的通信地址之间的联通性;
在进行第一单向联通性测试之前,节点A收集自身通信地址;收集的通信地址可以为:主机地址、反射地址、中继地址、NAT辅助地址和UDP隧道地址中的一种或一种以上;每种通信地址可以收集一个或一个以上;
步骤404,节点A根据第一单向联通性测试的结果,选择能够相互通信的通信地址对用于双方后续通信;其中,一对通信地址对包含双方各自的一个通信地址;
节点A和节点B各自拥有至少一个通信地址,因此可以对至少一对通信地址对进行测试;如果至少一对通信地址对通过测试,则节点A可以得到至少一对通信地址对用于双方后续通信;
步骤405,以能够相互通信的通信地址对为通信路径,节点A和节点B以提供/应答方式交换双方的通信地址及第二鉴权信息;
此处,第二鉴权信息的含义与背景技术中提到的相同;
由于在步骤404中,节点A已得到能够相互通信的通信地址对,因此节点A和节点B可以以一对通信地址对为通信路径交换双方的通信地址及第二鉴权信息;
步骤406,根据各自得到的对方的通信地址及第二鉴权信息,节点A和节点B进行双向联通性测试;或节点B发起从自身通信地址到节点A通信地址的第二单向联通性测试;
双向联通性测试指测试从节点B的通信地址到节点A的通信地址之间的联通性,以及从节点A的通信地址到节点B的通信地址之间的联通性;
节点B发起的第二单向联通性测试指测试从节点B的通信地址到节点A的通信地址之间的联通性;
步骤407,节点A或节点B根据上一步骤联通性测试的结果,选择至少一对能够相互通信的通信地址对用于双方后续通信。
步骤405-407遵守目前的ICE标准流程,与图2及图3所示的流程类似。这三个步骤是可选的,因为在步骤404中,通信地址对是通过节点A到节点B的第一单向联通性测试所得,不一定是较优的通信地址对;如果认为在步骤404中得到的通信地址对不是较优的,则可以进行步405-406以期获得更优的通信地址对。双向联通性测试或者peer B到peer A的联通性测试可能会找到更优的通信路径,如不使用中继地址的通信路径,因为不经过中继节点。有时,一个较优的通信地址对正向连接测试不通,反向连接或双向连接测试才能通。比如,节点A有公网地址,不在NAT后,而节点B在严格的NAT后,则节点A到节点B的单向联通性测试最终只能找到一个能用的通信地址对(节点A的主机地址,节点B的中继地址),此时通信路径需要经过中继节点。如果联通性测试从节点B到节点A,则从节点B的反射地址能到达节点A的主机地址,不需要经过中继。又比如“NAT打洞”,有的通信路径需要双方共同发起联通性测试,只有在双向测试时才通。
另外,ICE将联通性测试分为普通联通性测试和触发联通性测试两类。节点A到节点B的普通单向联通性测试,可能会触发节点B到节点A的触发联通性测试;节点B到节点A的普通单向联通性测试,可能会触发节点A到节点B的触发联通性测试。上述步骤中提到的第一和第二单向联通性测试指的是普通联通性测试。
图5示出了第一单向联通性测试(步骤403)的第一实施例;如图5所示,采用STUN校验的第一单向联通性测试具体包括(主要指步骤502-504):
步骤501,节点A从第三方节点或节点B获得节点B的通信地址、以及节点B决定的STUN用户名和STUN密码;
步骤502,节点A将STUN binding请求消息从自身的一个通信地址发向节点B的一个通信地址,以测试这两个通信地址之间的联通性;该STUNbinding请求消息中包含节点A在步骤501获得的STUN用户名和STUN密码;
步骤503-504,节点B收到STUN binding请求消息后,校验STUN binding请求消息中的STUN用户名和STUN密码;校验通过后,节点B向节点A返回STUN binding响应消息,表明这两个通信地址能够联通;
节点B校验STUN binding请求消息的STUN用户名及STUN密码是指校验其中的STUN用户名及STUN密码是否与自身已有的STUN用户名及STUN密码相符。
图6示出了第一单向联通性测试(步骤403)的第二实施例;如图6所示,采用TURN密码校验的第一单向联通性测试具体包括(主要指步骤602-607):
步骤601,节点A从第三方节点或节点B获得节点B的通信地址、节点B决定的STUN用户名和STUN密码、以及TURN密码;
其中,TURN密码由TURN服务器设定,并由节点B从TURN服务器获得;
步骤602,节点A将封装有STUN binding请求消息的TURN消息从自身的一个通信地址发向节点B的一个中继地址,即为节点B服务的TURN服务器的地址,以进行联通性测试;
该STUN binding请求消息中包含节点A在步骤601获得的STUN用户名和STUN密码;该TURN消息中包含节点A在步骤601获得的TURN密码;
步骤603-604,TURN服务器收到TURN消息后,对其中的TURN密码进行校验,校验通过后,TURN服务器将TURN消息的源地址即节点A的通信地址添加到转发权限列表中,并将封装有STUN binding请求消息的TURN消息转发给节点B;此时的TURN消息中不包含TURN密码;
TURN服务器对TURN消息中的TURN密码进行校验指校验TURN密码是否与自身设定的TURN密码相符;
步骤605-606,节点B收到TURN消息后,提取其中的STUN binding请求消息,校验STUN binding请求消息中的STUN用户名和STUN密码;校验通过后,节点B向TURN服务器返回封装有STUN binding响应消息的TURN消息;
步骤607-608,TURN服务器收到封装有STUN binding响应消息的TURN消息后,对TURN消息的转发目的地址进行校验;校验通过后,TURN服务器从TURN消息中提取出STUN binding响应消息并将STUN binding响应消息转发给节点A。
TURN服务器对TURN消息的转发目的地址进行校验指校验TURN消息的转发目的地址即节点A的通信地址是否在转发权限列表中。
可替换地,在步骤602中,TURN消息中可以不包含TURN密码,而包含证书,该证书由节点B提供,并由节点A从第三方节点或节点B获得;或该证书由节点A自身提供。TURN服务器采用证书校验的过程与步骤603-604类似,故不再详述。
图7示出了第一单向联通性测试(步骤403)的第三实施例;如图7所示,无TURN密码校验的第一单向联通性测试具体包括(主要指步骤702-706):
步骤701,节点A从第三方节点或节点B获得节点B的通信地址、节点B决定的STUN用户名和STUN密码;
步骤702,节点A将STUN binding请求消息从自身的一个通信地址发向节点B的一个中继地址,即为节点B服务的TURN服务器的地址,以进行联通性测试;
该STUN binding请求消息中包含节点A在步骤701获得的STUN用户名和STUN密码;
步骤703,TURN服务器将收到的STUN binding请求消息封装在TURN消息中转发给节点B;该STUN binding请求消息中包含所述STUN用户名和STUN密码;
步骤704-705,节点B收到TURN消息后,提取其中的STUN binding请求消息,校验STUN binding请求消息中的STUN用户名和STUN密码;校验通过后,节点B向TURN服务器返回封装有STUN binding响应消息的TURN消息;
步骤706,TURN服务器从TURN消息中提取出STUN binding响应消息并将STUN binding响应消息转发给节点A。
图8示出了第一单向联通性测试(步骤403)的第四实施例;如图8所示,第一单向联通性测试具体包括(主要指步骤802-810):
步骤801,节点A从第三方节点或节点B获得节点B的通信地址、以及节点B决定的STUN用户名和STUN密码;
步骤802,节点A向为节点B服务的TURN服务器发送请求添加节点A通信地址的转发权限;
步骤803,TURN服务器将节点A的通信地址添加到转发权限列表后,向节点A返回添加转发权限成功响应;
步骤804,节点A将STUN binding请求消息从自身的一个通信地址发向节点B的一个中继地址,即为节点B服务的TURN服务器的地址,以进行联通性测试;
该STUN binding请求消息中包含节点A在步骤801获得的STUN用户名和STUN密码;
步骤805-806,TURN服务器收到该STUN binding请求消息后,对该STUN binding请求消息的源地址进行校验,校验通过后,TURN服务器将STUN binding请求消息封装在TURN消息中转发给节点B;
TURN服务器对TURN消息的源地址进行校验指校验TURN消息的源地址即节点A的通信地址是否在转发权限列表中;
步骤807-808,节点B收到TURN消息后,提取其中的STUN binding请求消息,校验STUN binding请求消息中的STUN用户名和STUN密码;校验通过后,节点B向TURN服务器返回封装有STUN binding响应消息的TURN消息;
步骤809-810,TURN服务器收到封装有STUN binding响应消息的TURN消息后,对TURN消息的转发目的地址进行校验;校验通过后,TURN服务器从TURN消息中提取出STUN binding响应消息并将STUN binding响应消息转发给节点A。
为实现上述NAT穿越方法,本发明相应提供一种NAT穿越***,该***包括:通信发起节点和通信接收节点;其中,
通信发起节点,用于根据获得的通信接收节点的通信地址和第一鉴权信息,发起从自身通信地址到通信接收节点的通信地址的第一单向联通性测试;并根据第一单向联通性测试的结果,选择能够相互通信的通信地址对。
其中,所述第一鉴权信息包括通信接收节点决定的STUN用户名和STUN密码。
其中,所述通信发起节点,进一步用于从第三方节点或通信接收节点获得通信接收节点的通信地址和第一鉴权信息。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (12)
1.一种NAT穿越方法,其特征在于,该方法包括:
通信发起节点根据获得的通信接收节点的通信地址和第一鉴权信息,发起从自身通信地址到通信接收节点的通信地址的第一单向联通性测试;并根据第一单向联通性测试的结果,选择能够相互通信的通信地址对。
2.根据权利要求1所述的NAT穿越方法,其特征在于,所述第一单向联通性测试包括:
通信发起节点从自身的通信地址向通信接收节点的通信地址发送STUN绑定请求消息,所述STUN绑定请求消息中包含所述第一鉴权信息;
通信接收节点对收到的STUN绑定请求消息中的第一鉴权信息进行校验,校验通过后向通信发起节点返回STUN绑定响应消息。
3.根据权利要求1所述的NAT穿越方法,其特征在于,所述第一单向联通性测试包括:
通信发起节点从自身的通信地址向为通信接收节点服务的TURN服务器的地址发送封装有STUN绑定请求消息的TURN消息,该STUN绑定请求消息中包含所述第一鉴权信息,该TURN消息中包含TURN密码或证书;
TURN服务器对收到的TURN消息中的TURN密码或证书进行校验,校验通过后将通信发起节点的通信地址添加到转发权限列表中,并将封装有STUN绑定请求消息的TURN消息转发给通信接收节点;
通信接收节点提取收到的TURN消息中的STUN绑定请求消息,并对STUN绑定请求消息中的第一鉴权信息进行校验,校验通过后向所述TURN服务器返回封装有STUN绑定响应消息的TURN消息;
当TURN服务器校验到封装有STUN绑定响应消息的TURN消息的转发目的地址在转发权限列表中时,TURN服务器将从TURN消息中提取出的STUN绑定响应消息转发给通信发起节点。
4.根据权利要求1所述的NAT穿越方法,其特征在于,所述第一单向联通性测试包括:
通信发起节点从自身的通信地址向为通信接收节点服务的TURN服务器的地址发送STUN绑定请求消息,该STUN绑定请求消息中包含所述第一鉴权信息;
TURN服务器将收到的STUN绑定请求消息封装在TURN消息中转发给通信接收节点;
通信接收节点提取收到的TURN消息中的STUN绑定请求消息,并对STUN绑定请求消息中的第一鉴权信息进行校验,校验通过后向所述TURN服务器返回封装有STUN绑定响应消息的TURN消息;
TURN服务器将从TURN消息提取出的STUN绑定响应消息转发给通信发起节点。
5.根据权利要求1所述的NAT穿越方法,其特征在于,所述第一单向联通性测试包括:
通信发起节点向为通信接收节点服务的TURN服务器请求添加通信发起节点的通信地址的转发权限,在TURN服务器将通信发起节点的通信地址添加到转发权限列表中后,通信发起节点从自身的通信地址向TURN服务器的地址发送STUN绑定请求消息,该STUN绑定请求消息中包含所述第一鉴权信息;
当TURN服务器校验到STUN绑定请求消息的源地址在转发权限列表中时,将该STUN绑定请求消息封装在TURN消息中转发给通信接收节点;
通信接收节点提取收到的TURN消息中的STUN绑定请求消息,并对收到的STUN绑定请求消息中的第一鉴权信息进行校验,校验通过后向所述TURN服务器返回封装有STUN绑定响应消息的TURN消息;
当TURN服务器校验到封装有STUN绑定响应消息的TURN消息的转发目的地址在转发权限列表中时,TURN服务器将从TURN消息中提取出的STUN绑定响应消息转发给通信发起节点。
6.根据权利要求1至5中任一项所述的NAT穿越方法,其特征在于,所述第一鉴权信息包括通信接收节点决定的STUN用户名和STUN密码。
7.根据权利要求1至5中任一项所述的NAT穿越方法,其特征在于,在通信发起节点选择能够相互通信的通信地址对之后,所述方法进一步包括:
以能够相互通信的通信地址对为通信路径,通信发起节点和通信接收节点以提供/应答方式交换双方的通信地址及第二鉴权信息;
根据各自得到的对方的通信地址及第二鉴权信息,通信发起节点和通信接收节点进行双向联通性测试;
通信发起节点或通信接收节点根据双向联通性测试的结果,选择能够相互通信的通信地址对。
8.根据权利要求1至5中任一项所述的NAT穿越方法,其特征在于,在通信发起节点选择能够相互通信的通信地址对之后,所述方法进一步包括:
以能够相互通信的通信地址对为通信路径,通信发起节点和通信接收节点以提供/应答方式交换双方的通信地址及第二鉴权信息;
根据得到的对方的通信地址及第二鉴权信息,通信接收节点发起第二单向联通性测试;
通信发起节点或通信接收节点根据第二单向联通性测试的结果,选择能够相互通信的通信地址对。
9.根据权利要求1至5中任一项所述的NAT穿越方法,其特征在于,其特征在于,所述通信发起节点从第三方节点或通信接收节点获得通信接收节点的通信地址和第一鉴权信息。
10.一种NAT穿越***,其特征在于,该***包括:通信发起节点和通信接收节点;其中,
通信发起节点,用于根据获得的通信接收节点的通信地址和第一鉴权信息,发起从自身通信地址到通信接收节点的通信地址的第一单向联通性测试;并根据第一单向联通性测试的结果,选择能够相互通信的通信地址对。
11.根据权利要求10所述的NAT穿越***,其特征在于,所述第一鉴权信息包括通信接收节点决定的STUN用户名和STUN密码。
12.根据权利要求10或11所述的NAT穿越***,其特征在于,所述通信发起节点,进一步用于从第三方节点或通信接收节点获得通信接收节点的通信地址和第一鉴权信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010510328.XA CN102457580B (zh) | 2010-10-18 | 2010-10-18 | Nat穿越方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010510328.XA CN102457580B (zh) | 2010-10-18 | 2010-10-18 | Nat穿越方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102457580A true CN102457580A (zh) | 2012-05-16 |
CN102457580B CN102457580B (zh) | 2016-06-08 |
Family
ID=46040225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010510328.XA Active CN102457580B (zh) | 2010-10-18 | 2010-10-18 | Nat穿越方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102457580B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014190487A1 (zh) * | 2013-05-28 | 2014-12-04 | 华为技术有限公司 | 一种会话连接建立的方法、装置和*** |
CN104519414A (zh) * | 2013-09-27 | 2015-04-15 | 北京新媒传信科技有限公司 | 一种流媒体传输的方法和*** |
CN104702565A (zh) * | 2013-12-05 | 2015-06-10 | 中兴通讯股份有限公司 | 媒体资源共享的方法、共享服务器及共享*** |
WO2016050133A1 (zh) * | 2014-09-30 | 2016-04-07 | 华为技术有限公司 | 一种认证凭证更替的方法及装置 |
CN109922156A (zh) * | 2019-03-20 | 2019-06-21 | 深圳市网心科技有限公司 | 一种数据通信方法及其相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179581A (zh) * | 2007-12-13 | 2008-05-14 | 北京邮电大学 | 一种采用ice中继候选地址进行媒体传输的方法 |
CN101369959A (zh) * | 2007-08-14 | 2009-02-18 | 中兴通讯股份有限公司 | 一种支持点对点业务的网络地址转换穿越方法 |
US20090135842A1 (en) * | 2006-08-02 | 2009-05-28 | Huawei Technologies Co., Ltd. | Method and system for connecting a media stream, and method and system for detecting a connectivity |
-
2010
- 2010-10-18 CN CN201010510328.XA patent/CN102457580B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090135842A1 (en) * | 2006-08-02 | 2009-05-28 | Huawei Technologies Co., Ltd. | Method and system for connecting a media stream, and method and system for detecting a connectivity |
CN101369959A (zh) * | 2007-08-14 | 2009-02-18 | 中兴通讯股份有限公司 | 一种支持点对点业务的网络地址转换穿越方法 |
CN101179581A (zh) * | 2007-12-13 | 2008-05-14 | 北京邮电大学 | 一种采用ice中继候选地址进行媒体传输的方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014190487A1 (zh) * | 2013-05-28 | 2014-12-04 | 华为技术有限公司 | 一种会话连接建立的方法、装置和*** |
CN104519414A (zh) * | 2013-09-27 | 2015-04-15 | 北京新媒传信科技有限公司 | 一种流媒体传输的方法和*** |
CN104519414B (zh) * | 2013-09-27 | 2018-05-08 | 北京新媒传信科技有限公司 | 一种流媒体传输的方法和*** |
CN104702565A (zh) * | 2013-12-05 | 2015-06-10 | 中兴通讯股份有限公司 | 媒体资源共享的方法、共享服务器及共享*** |
WO2015081691A1 (zh) * | 2013-12-05 | 2015-06-11 | 中兴通讯股份有限公司 | 媒体资源共享的方法、共享服务器及共享*** |
WO2016050133A1 (zh) * | 2014-09-30 | 2016-04-07 | 华为技术有限公司 | 一种认证凭证更替的方法及装置 |
CN105516070A (zh) * | 2014-09-30 | 2016-04-20 | 华为技术有限公司 | 一种认证凭证更替的方法及装置 |
CN105516070B (zh) * | 2014-09-30 | 2019-01-11 | 华为技术有限公司 | 一种认证凭证更替的方法及装置 |
CN109922156A (zh) * | 2019-03-20 | 2019-06-21 | 深圳市网心科技有限公司 | 一种数据通信方法及其相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102457580B (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114866521B (zh) | 会议服务器 | |
CN104270379B (zh) | 基于传输控制协议的https 代理转发方法及装置 | |
CN101437036B (zh) | 支持nat/防火墙穿越的文件传输方法和*** | |
US20070195800A1 (en) | Communication using private IP addresses of local networks | |
CN103957287A (zh) | 一种基于nat穿透适配器的物联网设备p2p连接方法 | |
JP2013046087A (ja) | ネットワークゲートウェイ装置 | |
CN102457580A (zh) | Nat穿越方法及*** | |
US20150146567A1 (en) | Device arrangement and method for implementing a data transfer network used in remote control of properties | |
KR20080080140A (ko) | 중계장치 및 클라이언트 기기와 서버의 접속방법 | |
US20080112417A1 (en) | Communication Terminal, And Communication Method | |
JP2008306500A (ja) | 中継サーバ及び中継通信システム | |
CN106604119B (zh) | 一种用于智能电视私有云设备的网络穿透方法及*** | |
CN102447749A (zh) | 支持nat穿越的集中式p2p***、nat穿越的方法 | |
CN102546428A (zh) | 基于DHCPv6侦听的IPv6报文交换***及方法 | |
CA2834147C (en) | Device arrangement for implementing remote control of properties | |
CN103379182A (zh) | 数据传输方法和客户端 | |
CN101605093A (zh) | 利用IP Option实现信息透传的方法 | |
CN102035655A (zh) | 端到端即时通讯的实现方法、端到端即时通讯终端及*** | |
CN104756462A (zh) | 用于在限制性防火墙后进行tcp turn操作的方法和*** | |
CN106302846B (zh) | 一种通信连接建立方法及装置、*** | |
CN105391817A (zh) | 基于sdp自检测nat穿越***及方法 | |
CN104660728A (zh) | 基于智能家居控制***的nat穿透方法 | |
WO2013167086A2 (zh) | 一种网络地址转换穿透方法及设备 | |
Phuoc et al. | NAT traversal techniques in peer-to-peer networks | |
CN115022281B (zh) | 一种nat穿透的方法、客户端及*** |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201217 Address after: 224000 industrial concentration zone, Longgang Town, Yandu District, Yancheng City, Jiangsu Province (f) Patentee after: Phoenix Science and Technology Development Co.,Ltd. Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong Patentee before: ZTE Corp. |