CN102685268A - 一种VoIP中基于ICE协议的快速私网穿越方法 - Google Patents
一种VoIP中基于ICE协议的快速私网穿越方法 Download PDFInfo
- Publication number
- CN102685268A CN102685268A CN2012101608373A CN201210160837A CN102685268A CN 102685268 A CN102685268 A CN 102685268A CN 2012101608373 A CN2012101608373 A CN 2012101608373A CN 201210160837 A CN201210160837 A CN 201210160837A CN 102685268 A CN102685268 A CN 102685268A
- Authority
- CN
- China
- Prior art keywords
- nat
- environment
- address
- server
- over
- 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)
- Small-Scale Networks (AREA)
Abstract
本发明提供了一种VoIP中基于ICE协议的快速私网穿越方法,属于通信技术领域。所述方法首先进行NAT类型检测,检测结果为对称型NAT环境或非对称型NAT环境;对于对称型NAT环境,所述方法只针对主机候选地址和中继候选地址的连通性进行检查;对于非对称型NAT环境,所述方法只针对主机候选地址和服务器返回候选地址的连通性进行检查。利用本发明方法减少了开销以及媒体连接建立成功的时延,而该时延对于语音类业务来讲又是非常重要的语音质量衡量参数,同时本发明方法中的连通性检查保证了同一私网环境下语音的高效传输。
Description
技术领域
本发明属于通信技术领域,具体涉及一种VoIP中基于ICE协议的快速私网穿越方法。
背景技术
VoIP是Voice over Internet Protocol的缩写(业界一般称为IP电话),是把话音或传真转换成数据,然后与数据一起共享同一个IP网络(Internet互联网)。对于VoIP业务,其系统架构示意图如图1所示。NAT(Network AddressTranslation即网络地址转换)是伴随着ipv4地址的耗尽以及加入互联网的主机数的日益增加而产生的。私网和外网中间由NAT负责进行ip地址的转换,私网穿越和NAT穿越指的是同一技术,只是名称不同而已。
随着VoIP技术的成熟和广泛应用,越来越多的企业和个人采用了VoIP和软交换技术进行企业内部数据网络和语音网络的整合。但是,当前的网络实际情况是,由于IP地址紧缺以及安全等各种原因,大量的企业网和驻地网基本上都采用了私有IP地址通过出口的网络地址接入公网。这些技术在早期的Internet网络中起到了很大的作用,能够阻挡来自企业外部网络的攻击、节省IP地址、保护企业内部的数据安全。在VoIP应用中,多媒体会话信令协议是用于准备建立媒体流传输的代理之间交换信息的控制协议,例如SIP、RTSP、H.323等。然而,媒体流与信令流截然不同,它们所采用的网络通道也不一致。由于协议自身设计上的原因,使得媒体流无法直接穿透NAT环境。
NAT环境阻碍主机进行P2P通信的主要原因是NAT环境不允许公网主机主动访问内网主机。这使得Internet上具有公网IP地址的主机不能主动访问NAT环境之后的主机,而位于不同NAT环境之后的主机之间更是无法相互识别因而不能直接交换信息。当前存在有如下解决方案:ALG方式,MIDCOM方式,STUN方式,TURN方式,ICE方式,FULL PXOXY方式等,它们各自的特点具体如下:
1,ALG
ALG(应用层网关)方案指能识别指式协议(H.323,SIP)的设备。在网络中增加ALG设备可以很好地配合NAT环境完成应用协议消息中的地址字段翻译。NAT和NAPT只能对IP报文的头部地址和TCP/UDP头部的端口信息进行转换,对于报文的数据部分可能包含IP地址或端口信息的特殊协议(如H.323、SIP、MGCP),则无法实现有效的转换,而许多应用中却需要对数据包负载重的数据进行分析转换。例如一个FTP服务器处于内网中,只有内网IP地址,该服务器在和公网主机建立会话的过程中,需要将自己的IP地址发送给对方,而这个地址信息是放在IP报文的数据部分,现有的NAT设备是无法对它进行地址转换的。当公网主机接收到这个私有地址并使用它时,是不可能建立连接的。增加应用层网关ALG之后,就可进一步分析数据包负载内的数据,即应用层的数据。所以当网络中使用了NAT设备来屏蔽内部IP地址时,应用层网关ALG就可以同时实行对业务流NAT环境的穿越了。ALG可以是单独地连接于公网和内网之间的设备,也可以内置于NAT或防火墙设备中。该方案涉及的相关协议时RFC3027。
该方案的优点是:对于客户端不作要求,不需要在公网架设新的设备,并且没有安全问题。同时它还能优化下一代网络软交换系统的带宽使用(客户端之间直接建立连接)。
该方案的缺点是:升级时,需要对NAT设备也进行升级,这对目前我们所处的网络来说,将会是一项非常艰巨的任务,在实际中很难实现,ALG方式的另一个不足就是ALG必须透彻地理解应用协议,需要根据协议过程协调NAT的地址翻译过程,并同步修改数据包负载中的相关字段,这将会加重网关的负担,对于NAPT来说情况更复杂,处理开销过大,可能会影响了网络的正常运行,形成网络瓶颈。而且ALG无法识别加密报文内容,必须保证报文采用明文传送,使得在公网中传送时存在安全隐患。
总而言之,该方案需要网关的支持,并且与应用协议相关度较高。因此,如果轻量级VoIP要采用ALG的方式进行NAT穿越时,就无法对语音进行加密,需要权衡考虑。
2,MIDCOM
MIDCOM(中间盒通信)协议方式与ALG方式在功能上基本相同,也需要了解相应的工作机制,负责具体的应用处理,协助NAT一起对数据包进行处理。不同之处在于MIDCOM的框架结构采用可信的第三方(MIDCOM代理)对NAT进行控制。方案涉及相关协议:RFC4097。
该方案的优点是:与ALG方案类似,该方案的优点是对客户端不作要求,不需要在公网架设新的设备(需要在软交换中予以相应的支持),并且没有安全问题。它同时也能优化下一代网络团交换系统的带宽使用(客户端之间直接建立连接)。与ALG方案相比,MIDCOM方案组网的扩展性更好,MIDCOM代理的物理实体可以是代理服务器,所以在升级应用服务器的时候,不需要更改NAT基本特性,通过对MIDCOM代理服务器的升级就可以支持更多的新业务,这是MIDCOM相对ALG方式的一个很大的优势。
该方案的缺点是:同ALG方案一样,MIDCOM方案的实行也需要网关的支持,另外MIDCOM技术的实施需要对服务器进行MIDCOM协议的升级扩展,因此该方案的实施过程中也会遇到投入较大、实现周期较长等问题。而且目前的MIDCOM代理方式还在研究过程中,并没有形成一种成熟的产品,所以现阶段使用MIDCOM实现NAT穿越的实际应用并不是很多。
3,STUN
STUN(Simple Traversal of UDP Through NAT,即UDP的简单私网穿越)方式是一种UDP对NAT环境的简单穿越方式。其基本思路如图2所示:局域网接入用户通过某种机制预先得到其内网地址对应在出口NAT环境上的公网地址,然后在其报文中的地址信息处直接填写出口NAT环境上的公网地址,而不是用户的私有IP地址,这样其报文中的内容就无需被修改了,只需按普通NAT流程转换报文头部的IP地址即可。方案涉及相关协议:RFC3489。
该方案的优点是:STUN协议最大的优点是无需现有NAT设备做任何改动。目前,网络中已有大量的NAT环境/防火墙,而且这些NAT环境/防火墙不一定支持VoIP应用。如果采用MIDCOM或ALG方式,则需要替换现有的NAT环境/防火墙,实施起来难度较大,且MIDCOM方式无法实现对多级NAT环境的有效控制。如果采用STUN方式,不但无需改动NAT环境/防火墙,而且能够很好地适应多个NAT环境串联的网络环境。
该方案的缺点是:不支持对称型NAT环境的穿越,并且需要在公网架设STUN服务器同时终端也要支持STUN协议。另外,STUN不适合支持TCP连接的穿越。
4,TURN
TURN(Traversal Using Relays around NAT即使用中继方式的私网穿越)方案采用中继的方式实现穿越,与STUN技术机制一致,采用服务器/客户端模式。其示意图如图3所示,通过访问处于公网中的服务器得到内网中主机所分配得到的分共地址,进而进行通信。不同的是在STUN方式中得到的公共地址是由NAT分配的,而TURN中内网主机得到的分共地址是由TURN服务器分配的。TURN能够分配TURN server的地址和端口作为客户端对外的接收地址和端口,即内网主机发出的报文都要经过TURN Server进行中继转发。TURN涉及相关协议:RFC 5766。
该方案的优点是:除了具有STUN方案的优点(无需现有NAT设备做任何改动,适应多个NAT环境串联的网络环境)外,,TURN方案还解决了STUN应用无法穿越对称型NAT环境的问题,事实上,TURN方案能够解决几平所有的NAT环境穿越及防火墙穿越。另外,TURN方案支持基于TCP的应用。
该方案的缺点是:同STUN方案一样,TURN方案也需要在公网上架设TURN服务器,客户端也要支持TURN协议。由于需要TURN服务器进行中继转发,当数据量变得非常大时,也会造成网络瓶颈,而且由于所有报文(信令和媒体)都必须经过TURN服务器转发,增大了报文的延迟和丢包的可能性,会给QoS带来问题,同时占用大量的带宽。另外,TURN服务器有单点故障隐患。
5,FULL PXOXY
FULL PXOXY(全代理)方式利用转发设备将内网主机的所有数据信息进行处理和转发,通过这种方式实现对NAT环境的顺利穿越,其关键之处在于同时完成对终端呼叫信令的代理转发和媒体中继。内网主机产生的信令流与业务数据流首先通过代理设备,由代理设备对其进行解析,并将信息中的私有地址改为代理设备的公共IP地址与端口,完成修改后将信息发送到目的地。
本方案与TURN方案的区别在于:
1)TURN方式是在TURN服务器与终端通过TURN协议交互时分配地址和端口,报文内部的地址信息由终端生成,TURN服务器对后续的报文根据分配的地址和端口信息做地址变换后中继转发;
2)FULL PXOXY方式是通过对报文进行中继的设备对呼叫协议解析与处理,改写其中携带的RTP/RTCP地址信息后转发信令报文,同时根据改写的RTP/RTCP地址信息对媒体报文地址变换后中继转发。
该方案的优点优点是:在这种方式下,无需对现有的NAT设备做任何改动,适应性非常强,同时私有网络中主机的应用程序也无需支持STUN和TURN协议,这是FULL PXOXY方式的一个优势。像TURN方案一样,FULL PXOXY同样能够解决几平所有的NAT环境穿越及防火墙穿越的问题,并且能够扩展提供QoS(服务质量)及安全应用。
该方案的缺点是:由于代理设备是所有信息的必经之处,需要对数据包进行集中的分析与处理,因此对设备的要求很高,而且FULL PXOXY方式会增加包的延时和丢包的可能性,可能会造成网络瓶颈,而且会有单点故障的可能。
6,ICE
ICE方案(Interactive Connectivity Establishment,交互式连通方案)被公认为是在非对称性NAT环境下首选的NAT穿越解决方案,ICE本身是一种方法,它综合运用STUN、TURN等协议来提供一个通用的解决方案,使之在最适合的情况下工作,以弥补单独使用其中任何一种所带来的固有缺陷。ICE涉及相关协议:RFC 5245。
该方案的优点是:ICE方案能够综合地运用STUN,TURN协议,使之能够在最合适的情况下工作,以弥补单独使用其中一种所带来的固有缺陷。
ICE最主要问题在于由于考虑多种网络环境,进而决策最佳穿越方案,这种决策因素的完备性直接降低了它的穿越速度,使得穿越效率还有很大可提升的空间。另外,该方案需要每一个终端都支持ICE穿越方法,在开发上明显地增加了复杂性,而且网络还必须支持STUN、TURN等功能,实现起来较为复杂。
各个现有方案的比较如表1所示:
表1
综上所述,这些技术应用于不同的网络拓扑时分别有着各自的利弊,以至于人们只能根据不同的接入方式来应用不同的方案,所以未能很好地有效率地解决所有类型的NAT环境的问题,同时还会给系统带来许多复杂性和脆弱性因素。所以目前需要一种综合的是够灵活的方法,使之能在各种情况下对NAT/FW(FireWall即防火墙)的信令穿透问题提供最优解。事实上,ICE正是符合这样要求的一种良好解决方案。ICE框架通过综合运用STUN、TURN协议,使之能够在最恰当的情况下工作,弥补单独使用其中一种所带来的固有缺陷,同时又不会对现网设备提出升级要求,很好的支持了不同网络环境中对私网穿越的要求。但是,正如上面所述,ICE方案的完备性直接降低了穿越速度,使得穿越效率很低。
发明内容
NAT环境的出现直接导致越来越多的终端位于私网之后,而这种网络环境对于用户使用业务来讲没有任何影响,但对于语音类业务,涉及到通话双方,任一用户存在主叫与被叫两种角色,当私网后的用户为被叫时,私网就可能直接影响用户是否可达,而对于语音类业务,用户的可达性都不能保证时,接续时延与通话质量等其它指标更是无从谈起,因此本发明的目的在于解决上述现有技术中存在的难题,提供一种VoIP中基于ICE协议的快速私网穿越方法,解决VoIP中用户的可达性问题,提高ICE方案的穿越速度。
本发明是通过以下技术方案实现的:
一种VoIP中基于ICE协议的快速私网穿越方法,所述方法首先进行NAT类型检测,检测结果为对称型NAT环境或非对称型NAT环境;对于对称型NAT环境,所述方法只针对主机候选地址和中继候选地址的连通性进行检查;对于非对称型NAT环境,所述方法只针对主机候选地址和服务器返回候选地址的连通性进行检查。
所述方法包括以下步骤:
S1,开始;
S2,NAT类型探测,同时完成地址收集的过程,此时仅收集主机候选地址和服务器返回候选地址;如果探测结果是不存在NAT环境,则进行媒体协商,然后转入第S5步;如果探测结果是存在NAT环境,则判断是否为对称型NAT环境,如果是对称型NAT环境,则进行TURN server地址分配,然后进行地址配对和处理,再根据收集到的地址进行连通性检查,再转入第S3步;如果为非对称型NAT环境,则根据收集到的地址进行连通性检查,然后转入第S4步;
S3,进行媒体协商,然后转入第S5步;
S4,进行媒体协商,然后转入第S5步;
S5,结束。
第S1步到第S5步是由VoIP客户端和服务器共同完成的,所有判断过程都是在VoIP客户端这侧进行的,但需要服务器返回消息的帮助;所述服务器包括TURN Server和STUN Server。
所述第S2步中,对于对称型NAT环境,所述根据收集到的地址进行连通性检查是指对主机候选地址和中继候选地址的连通性进行检查;
所述第S2步中,对于非对称型NAT环境,所述根据收集到的地址进行连通性检查是指对主机候选地址与服务器返回候选地址的连通性进行检查。
所述第S2步中的非对称型NAT环境包括全锥形NAT环境、地址受限型NAT环境和端口受限型NAT环境。
所述第S2步中的NAT类型探测具体包括以下步骤:
A1等待,当从本地(即VoIP客户端所在的主机,主机是指VoIP客户端安装的物理机器)网卡上收集到主机候选地址后开始;
A2第一次进行测试一,然后判断是否获得返回消息,如果否,则转入第A3步,如果是,则转入第A4步;
A3判定为阻塞的UDP,然后转入第A11步;
A4收到返回消息后,判断映射IP和端口是否与主机相同,如果不同,则转入第A5步,如果相同,则转入第A10步;所述返回消息中携带服务器返回候选地址;所述本机是指本地主机,也就是终端所在的主机;
A5进行测试二,然后判断是否获得返回消息,如果否,则转入第A6步,如果是,则转入第A9步;
A6第二次进行测试一,但该次测试使用与第一次测试一不同IP地址的服务器,然后判断映射IP与端口是否与第一次测试一返回的IP和端口相同,如果相同,则转入第A7步,如果不同,则转入第A8步;
A7判定NAT类型为受限型NAT环境,然后转入第A11步;所述受限型NAT环境包括端口受限型NAT环境和地址受限型NAT环境;
A8判定NAT类型为对称型NAT环境,然后转入第A11步;
A9判定NAT类型为全锥形NAT环境,然后转入第A11步;
A10进行测试二,然后判断是否获得返回消息,如果是,则判定为公网IP,然后转入第A11步,如果否,则判定为对称防火墙,然后转入第A11步;
A11结束NAT类型探测。
所述测试一是指:给服务器发送消息,从服务器的返回消息中获得NAT环境给本机映射的IP和端口号;
所述测试二是指:给服务器发送消息,要求服务器用不同的IP和端口号作为返回消息的源IP和端口号。
与现有技术相比,本发明的有益效果是:本发明对传统ICE协议进行了改进,在地址收集前增加了NAT类型检测,这一步骤的增加,使得:
1)非对称NAT环境下,不用进行TURN地址的收集与保活(保活是指对收集到的地址进行的默认的维护过程,确认其一直有效可用)过程,减少了系统开销,而连通性检查则保证了同一私网环境下的语音高效传输;
2)对称NAT环境下,不用进行STUN server返回地址在NAT环境上的保活与该地址的连通性检查,减少了开销以及媒体连接建立成功的时延,而时延对于语音类业务来讲又是非常重要的语音质量衡量参数,而连通性检查则保证了同一私网环境下的语音高效传输;
3)根据不同私网环境,收集不同的地址,减少尝试连接的候选地址对,加快选出最优的可用地址对的速度。
附图说明
图1是现有技术中的轻量级语音电话(VoIP)系统中穿越方案架构。
图2是现有技术中的UDP的简单私网穿越(STUN)方案示意图。
图3是现有技术中的使用中继方式的私网穿越(TURN)方案示意图。
图4是传统ICE架构连接建立的步骤框图。
图5是本发明VoIP中基于ICE协议的快速私网穿越方法的步骤框图。
图6是本发明VoIP中基于ICE协议的快速私网穿越方法中的NAT类型探测的步骤框图。
具体实施方式
下面结合附图对本发明作进一步详细描述:
传统的ICE方案,不管当前网络环境存在的是对称型NAT环境,还是非对称型NAT环境,均采用如图4所示的步骤来确定可用的直接地址对,具体如下:
传统的ICE包括以下步骤(传统ICE中的媒体协商步骤包含在地址对互换和连通性检查的过程中):
1,开始;
2,本地候选地址收集处理;
3,和远端互换候选地址,配成候选地址对;
4,地址对处理;
5,连通性检查;
6,选出可用于建立直连的候选地址对;
7,结束。
而实际上对称型NAT环境仅能使用TURN方式穿越,非对称NAT环境又不用使用TURN方式这种较高成本的穿越方式,分析后发现,对于非对称型NAT环境,TURN server分配给用户进行信令与媒体中转的地址(即后面所说的中继候选地址)没有必要收集,对于对称型NAT环境,用户映射到公网上的地址(即后面所说的服务器返回候选地址)没有必要收集,因此,在传统的ICE步骤中“本地候选地址收集处理”可根据具体的网络环境只收集最小集,从而省略不必要的“连通性检查”过程。如图4中“可优化”所指示的,可以对步骤中的“本地候选地址收集处理”和“连通性检查”进行优化。
在收集传输地址的过程中,会话发起者需要收集的对象包括主机候选地址(host candidate,该地址又被称为本地传输地址(Local Transport Address))和服务器返回候选地址(server reflexive candidate,该地址又被称为来源传输地址(Derived Transport Address))。主机候选地址通常是由主机上1个物理(或虚拟)接口绑定1个端口而获得。会话发起者还将访问提供UNSAF(Unilateral self-address fixing)的服务器,例如STUN、TURN、TEREDO(即面向IPv6的IPv4 NAT网络地址转换穿越)。对于每一个主机候选地址,会话者都可以从服务器上获得1级服务器返回候选地址。
根据以上分析,本发明是在传统ICE方案前,增加NAT类型探测(如图5中的“增加”所指示的),这也是本发明的创新点所在,即在ICE步骤中的本地候选地址收集处理步骤之前先进行NAT类型探测,从而根据不同私网环境,收集不同的地址,加快连通性检测过程,具体如下:
如图5所示,本发明方法包括以下步骤:
S1,开始;
S2,NAT类型探测,同时完成地址收集的过程,此时仅收集主机候选地址和服务器返回候选地址,这两个地址即构成了前面所说的最小集。这个最小集中不包括TURN server上分配的中继候选地址(relayed Address),也就是说除开中继候选地址,传统ICE中的本地候选地址(又称为主机候选地址)收集处理步骤中的其它所有地址都收集;所述NAT类型探测的过程实际上也是个收集地址的过程,判断NAT类型的依据即为将收集到的地址和本地候选地址进行比较。
如果探测结果是不存在NAT环境,则进行媒体协商,然后转入第S5步;因为不存在NAT环境的情况其实不需要ICE过程进行穿越,其不是本发明关注的重点;不存在对应于NAT环境的情况图6中的公网IP的情况;
如果探测结果是存在NAT环境,则判断是否为对称型NAT环境,如果是对称型NAT环境,则进行TURN server地址分配,然后进行地址配对和处理(具体如何进行地址配对和处理请参考ICE协议中的相关描述),再根据收集到的地址进行连通性检查,然后转入第S3步;如果为非对称型NAT环境,则根据收集到的地址进行连通性检查,然后转入第S4步;图6是对步骤S2局部的细化,图6中主要是侧重于展示NAT类型判断的方法和所用的方法(测试一和测试二),这些在图5中简单带过了,图6描述的是判断NAT类型的具体步骤,其目的是检查是否有NAT和具体NAT类型;
S3,进行媒体协商,然后转入第S5步;
S4,进行媒体协商,然后转入第S5步;
S5,结束。
第S3步和第S4步所做的步骤其实一样,但是针对不同的地址对进行的。
第S1步到第S5步是由VoIP客户端(UE)和服务器(Turn Server和StunServer)共同完成的,判断都是在UE侧进行的,然而需要服务器返回消息的帮助。
所述第S2步中的非对称型NAT环境包括全锥形NAT环境、地址受限型NAT环境和端口受限型NAT环境。
所述第S2步中,对于对称型NAT环境的地址连通性检查只对主机候选地址(host candidate)和中继候选地址(relayed candidate)的连通性进行检查,具体是将这两个地址分别和对端地址进行配对,通过试探连通性来选出一对可用的媒体通信地址。进行地址连通性检测的具体步骤请参考ICE协议。
所述第S2步中,对于非对称型NAT环境的地址连通性检查只对主机候选地址与服务器返回候选地址的连通性进行检查。
第S2步中的媒体协商属于与ICE无关的协商,而第S3步和第S4步中的媒体协商都是要使用ICE相关参数的媒体协商;所述媒体协商通过通信双方信令消息的交互实现,如sip信令系统中的invite消息体的和200OK消息体中的SDP进行交互,媒体协商的结果是通信双方选出一对双方公认的地址和一种双方公认的媒体形式来进行媒体通信,简而言之就是对媒体方式达成一致。
所述步骤2的NAT类型探测的具体步骤为标准的NAT类型探测方法,实际实现时,该过程在VoIP上一般都是由VoIP客户端(UE)调用的,具体如图6所示,包括以下步骤:
A1等待,当从本地网卡上收集到主机候选地址(Host Candidateaddress)后开始;
A2第一次进行测试一,然后判断是否获得返回消息,如果否,则转入第A3步,如果是,则转入第A4步;
A3判定为阻塞的UDP,然后转入第A11步;由于在确定为阻塞的UDP之后不会用到ICE方法,因此其后续处理不在本发明的范围内;
A4收到返回消息后,判断映射IP和端口是否与主机相同,如果不同,则转入第A5步,如果相同,则转入第A10步;所述返回消息中携带服务器返回候选地址(Server reflexive address);主机是host的意思,代表网络中一台物理主机,一般一个终端就位于一台主机上,而本机说的是本地主机,即方法步骤中考虑的终端所在的主机;
A5进行测试二,然后判断是否获得返回消息,如果否,则转入第A6步,如果是,则转入第A9步;
A6第二次进行测试一,但该次测试使用与第一次测试一不同IP地址的服务器,然后判断映射IP与端口是否与第一次测试一返回的IP和端口相同,如果相同,则转入第A7步,如果不同,则转入第A8步;
A7判定NAT类型为受限型NAT环境(Restricted Cone NAT)(包括地址受限型和端口受限型这2种,由于不需要进一步的判断结果,所以不再进行进一步测试),然后转入第11步;图6中的受限型NAT环境(Restricted Cone NAT)包括图5中的端口受限型NAT环境和地址受限型NAT环境,由于所需的结果是是否为对称型NAT环境,而受限型NAT环境被包含在非对称型NAT环境一类中进行统一处理了,所以没有必要继续通过进一步测试来判断是端口受限型NAT环境还是地址受限型NAT环境;
A8判定NAT类型为对称型NAT环境(Symmetric NAT),然后转入第A11步;
A9判定NAT类型为全锥形NAT环境(Full Cone NAT),然后转入第A11步;
A10进行测试二,然后判断是否获得返回消息,如果是,则判定为公网IP,然后转入第A11步;如果否,则判定为对称防火墙,然后转入第A11步;因为如果是公网IP或防火墙,那么不需要用到本发明所述的ICE方法,所以本发明中没有详述,只是做出简单介绍,不描述之后的处理过程;
A11结束NAT类型检测。
上述步骤中用到两种测试具体如下:
1)测试一:给服务器发送消息,从服务器的返回消息中获得NAT环境给本机映射的IP和端口号(返回消息中携带有该IP和port,通过解析返回消息获得);
2)测试二:给服务器发送消息,要求服务器用不同的IP和端口号作为返回消息的源IP和端口号(该测试的目的是看有没有返回消息,消息中返回的参数没有进一步分析的必要)。
本发明的创新点在于:
对ICE协议进行了改进:即在原RFC5425的基础上,结合本发明的应用场景(即注重语音高效性的VoIP系统),对ICE进行了改进。在地址收集前增加了NAT类型检测,而这一步在传统ICE中并不进行(ICE协议本身的确能够解决各类NAT环境下的穿越问题,然而其提出时并未考虑到将其工程实现之后运用于VoIP环境下的穿越效率问题),这一步骤的增加,使得:
1)非对称NAT环境下,不用进行TURN地址的产生与保活,减少开销,而连通性检查则保证了同一私网环境下的语音高效传输(体现在步骤S2中);
2)对称NAT环境下,不用进行STUN返回地址在NAT上的保活,与该地址的连通性检查(体现在步骤S2中),减少了开销与媒体连接建立成功时延,而时延对于语音类业务来讲又是非常重要的语音质量衡量参数,而连通性检查则保证了同一私网环境下的语音高效传输。
本发明所作的前提假设是已选择ICE方案进行NAT穿越,主要关注点在如何优化ICE方案使其在实际应用中更有效率,对于ICE方案实现过程中的复杂性问题不在本发明考虑范围内。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
Claims (7)
1.一种VoIP中基于ICE协议的快速私网穿越方法,其特征在于:所述方法首先进行NAT类型检测,检测结果为对称型NAT环境或非对称型NAT环境;对于对称型NAT环境,所述方法只针对主机候选地址和中继候选地址的连通性进行检查;对于非对称型NAT环境,所述方法只针对主机候选地址和服务器返回候选地址的连通性进行检查。
2.根据权利要求1所述的VoIP中基于ICE协议的快速私网穿越方法,其特征在于:所述方法包括以下步骤:
S1,开始;
S2,NAT类型探测,同时完成地址收集的过程,此时仅收集主机候选地址和服务器返回候选地址;如果探测结果是不存在NAT环境,则进行媒体协商,然后转入第S5步;如果探测结果是存在NAT环境,则判断是否为对称型NAT环境,如果是对称型NAT环境,则进行TURN server地址分配,然后进行地址配对和处理,再根据收集到的地址进行连通性检查,再转入第S3步;如果为非对称型NAT环境,则根据收集到的地址进行连通性检查,然后转入第S4步;
S3,进行媒体协商,然后转入第S5步;
S4,进行媒体协商,然后转入第S5步;
S5,结束。
3.根据权利要求2所述的VoIP中基于ICE协议的快速私网穿越方法,其特征在于:第S1步到第S5步是由VoIP客户端和服务器共同完成的,所有判断过程都是在VoIP客户端这侧进行的,但需要服务器返回消息的帮助;所述服务器包括TURN Server和STUN Server。
4.根据权利要求3所述的VoIP中基于ICE协议的快速私网穿越方法,其特征在于:所述第S2步中,对于对称型NAT环境,所述根据收集到的地址进行连通性检查是指对主机候选地址和中继候选地址的连通性进行检查;
所述第S2步中,对于非对称型NAT环境,所述根据收集到的地址进行连通性检查是指对主机候选地址与服务器返回候选地址的连通性进行检查。
5.根据权利要求4所述的VoIP中基于ICE协议的快速私网穿越方法,其特征在于:所述第S2步中的非对称型NAT环境包括全锥形NAT环境、地址受限型NAT环境和端口受限型NAT环境。
6.根据权利要求5所述的VoIP中基于ICE协议的快速私网穿越方法,其特征在于:所述第S2步中的NAT类型探测具体包括以下步骤:
A1等待,当从本地网卡上收集到主机候选地址后开始;
A2第一次进行测试一,然后判断是否获得返回消息,如果否,则转入第A3步,如果是,则转入第A4步;
A3判定为阻塞的UDP,然后转入第A11步;
A4收到返回消息后,判断映射IP和端口是否与主机相同,如果不同,则转入第A5步,如果相同,则转入第A10步;所述返回消息中携带服务器返回候选地址;
A5进行测试二,然后判断是否获得返回消息,如果否,则转入第A6步,如果是,则转入第A9步;
A6第二次进行测试一,但该次测试使用与第一次测试一不同IP地址的服务器,然后判断映射IP与端口是否与第一次测试一返回的IP和端口相同,如果相同,则转入第A7步,如果不同,则转入第A8步;
A7判定NAT类型为受限型NAT环境,然后转入第A11步;所述受限型NAT环境包括端口受限型NAT环境和地址受限型NAT环境;
A8判定NAT类型为对称型NAT环境,然后转入第A11步;
A9判定NAT类型为全锥形NAT环境,然后转入第A11步;
A10进行测试二,然后判断是否获得返回消息,如果是,则判定为公网IP,然后转入第A11步,如果否,则判定为对称防火墙,然后转入第A11步;
A11结束NAT类型探测。
7.根据权利要求6所述的VoIP中基于ICE协议的快速私网穿越方法,其特征在于:所述测试一是指:给服务器发送消息,从服务器的返回消息中获得NAT给本机映射的IP和端口号;
所述测试二是指:给服务器发送消息,要求服务器用不同的IP和端口号作为返回消息的源IP和端口号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210160837.3A CN102685268B (zh) | 2012-05-22 | 2012-05-22 | 一种VoIP中基于ICE协议的快速私网穿越方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210160837.3A CN102685268B (zh) | 2012-05-22 | 2012-05-22 | 一种VoIP中基于ICE协议的快速私网穿越方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685268A true CN102685268A (zh) | 2012-09-19 |
CN102685268B CN102685268B (zh) | 2015-02-18 |
Family
ID=46816620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210160837.3A Expired - Fee Related CN102685268B (zh) | 2012-05-22 | 2012-05-22 | 一种VoIP中基于ICE协议的快速私网穿越方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102685268B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052743A (zh) * | 2014-06-16 | 2014-09-17 | 华为技术有限公司 | 一种通信方法以及终端 |
CN104506666A (zh) * | 2014-12-18 | 2015-04-08 | 北京邮电大学 | 一种大量tcp穿越对称型nat的代理方法和系统 |
CN105187567A (zh) * | 2015-06-24 | 2015-12-23 | 东莞市南星电子有限公司 | 一种基于sip和ice的音视频通信方法 |
CN105262847A (zh) * | 2014-07-18 | 2016-01-20 | 中国电信股份有限公司 | 终端设备之间的通信方法和系统 |
CN105516058A (zh) * | 2014-09-25 | 2016-04-20 | 中国电信股份有限公司 | 用于建立VoIP呼叫的方法和系统 |
CN105681445A (zh) * | 2016-02-04 | 2016-06-15 | 福建星网锐捷通讯股份有限公司 | 数据的点对点传输路径选择方法及装置 |
CN105721570A (zh) * | 2016-02-04 | 2016-06-29 | 福建星网锐捷通讯股份有限公司 | 数据点对点传输方法及装置 |
CN105897761A (zh) * | 2016-06-15 | 2016-08-24 | 北京众享比特科技有限公司 | Ice服务方法、ice服务器及ice客户端 |
CN106411836A (zh) * | 2016-05-30 | 2017-02-15 | 深圳市鼎盛智能科技有限公司 | 通话连接方法及客户端 |
US9596272B2 (en) | 2014-09-25 | 2017-03-14 | Microsoft Technology Licensing, Llc | Media session between network endpoints |
US10079863B2 (en) | 2015-11-18 | 2018-09-18 | Microsoft Technology Licensing, Llc | Media session between network endpoints |
US10158679B2 (en) | 2015-11-18 | 2018-12-18 | Microsoft Technology Licensing, Llc | Media session between network endpoints |
CN109088958A (zh) * | 2018-09-19 | 2018-12-25 | 腾讯数码(天津)有限公司 | 数据传输方法及计算机设备 |
US10171511B2 (en) | 2014-09-25 | 2019-01-01 | Microsoft Technology Licensing, Llc | Media session between network endpoints |
US10244003B2 (en) | 2014-09-25 | 2019-03-26 | Microsoft Technology Licensing, Llc | Media session between network endpoints |
CN111800341A (zh) * | 2020-07-03 | 2020-10-20 | 珠海金山网络游戏科技有限公司 | 一种跨路由器终端通信方法及装置 |
CN112073540A (zh) * | 2020-11-10 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、相关设备及存储介质 |
CN115225646A (zh) * | 2021-04-21 | 2022-10-21 | 武汉斗鱼鱼乐网络科技有限公司 | 一种p2p节点推荐方法、终端、介质及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179581A (zh) * | 2007-12-13 | 2008-05-14 | 北京邮电大学 | 一种采用ice中继候选地址进行媒体传输的方法 |
US20090154464A1 (en) * | 2007-12-17 | 2009-06-18 | Electronics And Telecommunications Research Institute | Method and system for simulating network address translation |
CN101883156A (zh) * | 2010-06-22 | 2010-11-10 | 北京神州泰岳软件股份有限公司 | 穿越nat设备的方法 |
CN101938532A (zh) * | 2010-09-17 | 2011-01-05 | 北京神州泰岳软件股份有限公司 | 基于udp的穿越nat设备的方法及系统 |
-
2012
- 2012-05-22 CN CN201210160837.3A patent/CN102685268B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179581A (zh) * | 2007-12-13 | 2008-05-14 | 北京邮电大学 | 一种采用ice中继候选地址进行媒体传输的方法 |
US20090154464A1 (en) * | 2007-12-17 | 2009-06-18 | Electronics And Telecommunications Research Institute | Method and system for simulating network address translation |
CN101883156A (zh) * | 2010-06-22 | 2010-11-10 | 北京神州泰岳软件股份有限公司 | 穿越nat设备的方法 |
CN101938532A (zh) * | 2010-09-17 | 2011-01-05 | 北京神州泰岳软件股份有限公司 | 基于udp的穿越nat设备的方法及系统 |
Non-Patent Citations (1)
Title |
---|
李颖晖,胡越明,陈凯: ""VoIP防火墙穿越方法的研究与比较"", 《微型电脑应用》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052743A (zh) * | 2014-06-16 | 2014-09-17 | 华为技术有限公司 | 一种通信方法以及终端 |
WO2015192682A1 (zh) * | 2014-06-16 | 2015-12-23 | 华为技术有限公司 | 一种通信方法以及终端 |
CN105262847A (zh) * | 2014-07-18 | 2016-01-20 | 中国电信股份有限公司 | 终端设备之间的通信方法和系统 |
CN105262847B (zh) * | 2014-07-18 | 2019-01-04 | 中国电信股份有限公司 | 终端设备之间的通信方法和系统 |
US10171511B2 (en) | 2014-09-25 | 2019-01-01 | Microsoft Technology Licensing, Llc | Media session between network endpoints |
CN105516058A (zh) * | 2014-09-25 | 2016-04-20 | 中国电信股份有限公司 | 用于建立VoIP呼叫的方法和系统 |
CN105516058B (zh) * | 2014-09-25 | 2019-04-23 | 中国电信股份有限公司 | 用于建立VoIP呼叫的方法和系统 |
US9596272B2 (en) | 2014-09-25 | 2017-03-14 | Microsoft Technology Licensing, Llc | Media session between network endpoints |
US10244003B2 (en) | 2014-09-25 | 2019-03-26 | Microsoft Technology Licensing, Llc | Media session between network endpoints |
CN104506666A (zh) * | 2014-12-18 | 2015-04-08 | 北京邮电大学 | 一种大量tcp穿越对称型nat的代理方法和系统 |
CN105187567B (zh) * | 2015-06-24 | 2019-01-08 | 东莞市南星电子有限公司 | 一种基于sip和ice的音视频通信方法 |
CN105187567A (zh) * | 2015-06-24 | 2015-12-23 | 东莞市南星电子有限公司 | 一种基于sip和ice的音视频通信方法 |
US10079863B2 (en) | 2015-11-18 | 2018-09-18 | Microsoft Technology Licensing, Llc | Media session between network endpoints |
US10158679B2 (en) | 2015-11-18 | 2018-12-18 | Microsoft Technology Licensing, Llc | Media session between network endpoints |
CN105681445A (zh) * | 2016-02-04 | 2016-06-15 | 福建星网锐捷通讯股份有限公司 | 数据的点对点传输路径选择方法及装置 |
CN105681445B (zh) * | 2016-02-04 | 2019-01-29 | 福建星网锐捷通讯股份有限公司 | 数据的点对点传输路径选择方法及装置 |
CN105721570A (zh) * | 2016-02-04 | 2016-06-29 | 福建星网锐捷通讯股份有限公司 | 数据点对点传输方法及装置 |
CN105721570B (zh) * | 2016-02-04 | 2019-06-25 | 福建星网锐捷通讯股份有限公司 | 数据点对点传输方法及装置 |
CN106411836B (zh) * | 2016-05-30 | 2017-09-19 | 深圳市鼎盛智能科技有限公司 | 通话连接方法及客户端 |
CN106411836A (zh) * | 2016-05-30 | 2017-02-15 | 深圳市鼎盛智能科技有限公司 | 通话连接方法及客户端 |
CN105897761A (zh) * | 2016-06-15 | 2016-08-24 | 北京众享比特科技有限公司 | Ice服务方法、ice服务器及ice客户端 |
CN109088958A (zh) * | 2018-09-19 | 2018-12-25 | 腾讯数码(天津)有限公司 | 数据传输方法及计算机设备 |
CN111800341A (zh) * | 2020-07-03 | 2020-10-20 | 珠海金山网络游戏科技有限公司 | 一种跨路由器终端通信方法及装置 |
CN111800341B (zh) * | 2020-07-03 | 2022-05-31 | 珠海金山网络游戏科技有限公司 | 一种跨路由器终端通信方法及装置 |
CN112073540A (zh) * | 2020-11-10 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、相关设备及存储介质 |
CN115225646A (zh) * | 2021-04-21 | 2022-10-21 | 武汉斗鱼鱼乐网络科技有限公司 | 一种p2p节点推荐方法、终端、介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102685268B (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102685268B (zh) | 一种VoIP中基于ICE协议的快速私网穿越方法 | |
CN102685141B (zh) | 一种VoIP中基于语音可达性的融合穿越方法 | |
EP2230822B1 (en) | Establishing a connection traversing a network address translation gateway | |
CN100539504C (zh) | 一种网络地址转换和/或防火墙穿越平台、系统及其方法 | |
CN101385315B (zh) | 使用本地网络的私用ip地址的通信 | |
CN104040998B (zh) | 基于ice的nat遍历 | |
CN103916382B (zh) | 基于sip媒体能力重协商的nat穿越方法、代理服务器和系统 | |
CN104883390B (zh) | 一种访问第三方视频监控设备的方法及装置 | |
KR101454502B1 (ko) | 종단 대 종단 미디어 경로를 식별하는 방법 및 시스템 | |
EP2850813A1 (en) | Nat traversal for voip | |
CN106534319A (zh) | 一种通过代理服务器直接访问目标服务器的方法 | |
WO2005062546A1 (fr) | Procede de conversion et de traversee d'une adresse reseau et son systeme | |
AU2005201075A1 (en) | Apparatus and method for voice processing of voice over internet protocol (VOIP) | |
CN103688516B (zh) | 提供公共可达性的方法和有关系统与装置 | |
RU2008115139A (ru) | Оборудование, система и способ связи между клиентом и серверной стороной | |
CN102255982A (zh) | 一种IPv4/IPv6转换网关以及转换方法 | |
CN104092789B (zh) | 会话感知的网络地址转换穿透方法 | |
CN101902506A (zh) | 一种sip呼叫穿越网络地址转换的方法和系统 | |
Sandholm et al. | An on-demand WebRTC and IoT device tunneling service for hospitals | |
EP1613024A1 (en) | Method and call server for establishing a bidirectional peer-to-peer communication link | |
CN101155185A (zh) | Sip通讯协议之交互式nat穿越法 | |
CN103391334B (zh) | 一种网络穿越方法、装置及系统 | |
Tseng et al. | Can: A context-aware NAT traversal scheme | |
CN103873600B (zh) | 一种网络地址转换穿透方法及设备 | |
Ho et al. | Nat-compatibility testbed: an environment to automatically verify direct connection rate |
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: 20150218 Termination date: 20210522 |
|
CF01 | Termination of patent right due to non-payment of annual fee |