实现网络地址转换穿越的方法和系统的制作方法

xiaoxiao2020-9-10  14

专利名称:实现网络地址转换穿越的方法和系统的制作方法
技术领域
本发明涉及下一代网络技术,特别涉及一种在下 一代网络中实现网络地址转换(NAT)穿越的方法和系统。
技术背景下一代网络(NGN)是基于时分复用(TDM)的公共电话交换网(PSTN) 与基于因特网协议/异步传输模式(IP/ATM)的分组网络相融合的产物,它使得 在同一网络上实现语音、视频以及数据等信息的综合业务成为了可能,标志着 新一代电信网络时代的到来。图1为现有NGN网络结构示意图,如图1所示,NGN网络主要包括媒体 网关(MGW)和媒体网关控制器(MGC)。其中,MGC,用于实现呼叫状态 的管理,以及对MGW承载资源的控制;MGW,用于将々某体流类型由一种格 式转换为另一种格式,例如,将电路交换网中的El时隙转换为IP网络中的实 时传输协议(RTP )媒体流,并在MGC的信令控制下实现媒体流的建立、修改、 释放以及资源管理。如图1所示,如果MGW1和MGW2所处的7 义载网乡各为同一个私有网》各或 公有网络,则MGWl和MGW2在信息交互过程中的IP报文均可直接发送到对 方。但是,如果MGWl和MGW2处于不同的承载网络,比如MGWl处于公 有网络而MGW2处于私有网络,或者MGWl和MGW2均处于私有网络,但 是两个网络不能实现IP报文直接发送,则可能会出现媒体流单向导通或者彼此 不通的情况。同样的问题也可能存在于媒体流一端为MGW,而另一端为会话 初始协议(SIP)终端、H323终端、电路域网络终端或者分组网络终端等的情 况下。现有技术中,为实现IP报文在私有网络和公有网络之间传送,常采用的方 法为网络地址/端口转换技术。网络地址转换(NAT )是一种用于将一个地址域, 如专用内耳关网(Intranet)映射为另一个;也址域,3口互Jf关网(Internet)的标准的 技术。NAT允许一个机构专用Intranet,即私有网络中的终端透明地连接到公共 域,即公有网络中的终端,内部终端无需拥有注册的Internet地址。根据NAT技术得到的NAT穿越技术,是指对私有网络上的终端采用私有 IP地址,通过出口的NAT/防火墙(FW)接入公有网络。目前常用的两种NAT 穿越方式为用户数据报协议(UDP)对NAT的简单穿越(STUN)方式以及利 用中继穿越NAT (TURN)方式。STUN方式的实现过程为STUN客户端(CLIENT )通过UDP向NAT外 的STUN服务器(SERVER)发送请求STUN消息;STUN SERVER接收到该 请求消息后,产生响应消息,该响应消息中携带有发送请求消息的源端口,即 STUN CLIENT在NAT上对应的外部接口信息;STUN SERVER通过NAT将该 响应消息发送给STUN CLIENT; STUN CLIENT通过该响应消息得知NAT的 外部地址,并将该外部地址填入到呼叫协议的UDP负载中,以告知接收端本端 的RTP接收地址以及端口号为NAT外部的地址和端口号。由于事先已经通过 STUN协议在NAT上建立了媒体流的NAT映射表项,所以媒体流在流经NAT 时可顺利穿越。TURN方式的实现思想与STUN类似,私有网络中的语音IP ( VOIP )终端 预先获知公有网络的服务地址,并将该服务地址填写到IP包载荷,即信令的地 址信息中。现有技术中的NGN网络实现NAT穿越的方式为私有网络中的MGW1在能力协商时向MGC上^^艮的RTP端点RTP1的本地 SDP中的地址为私有网络地址,假设为用户终端设备(CPE) 2; MGC在发送 给公有网络中的MGW2中的H.248消息中指定MGW2的RTP端点RTP2的远 端地址为CPE2,这样,按照H.248协议规定,RTP2在随后向MGW1发送媒体流时,会将媒体流发送到CPE2的地址。但是,CPE2是一个私有网络地址, 来自RTP2的媒体流是无法到达的,所以,在端点RTP1发出的媒体流通过NAT 时,NAT会将其地址CPE2转换为CPE1,并在H.248.37中新增一个携带有地 址CPE1信息的包信号,将该包信号下发给RTP2,以指示RTP2作NAT穿越; RTP2用接收到的地址CPE1代替原有远端私网地址CPE2,并将随后的媒体流 发送到CPEl; NAT根据预先建立的地址映射关系,将CPE1接收到的媒体流 发送到MGW1的私网地址CPE2。该方法的问题在于,H.248.37中定义的NAT穿越包需要私网中的端点首先 向公有网络中的端点发送媒体流,才能激发NAT产生地址映射,而公网上的端 点将接收到的媒体流源地址作为发送媒体流的目的地址。但是很多情况下,网 络中只存在单向媒体流,比如,需要对端播放的回铃音或者彩铃等,因为此时 被叫还没有摘机,所以私网中的主叫不会有媒体流发出;另外,当静音检测被 激活时,如果私网中的用户静音,则也没有从私网发往公网的媒体流,相应地, 公网也无法把媒体流发送到私网。也就是说,在H.248.37定义的规范下,私网 中的端点必须先往公网上的IP端点上发送媒体流,否则就无法实现媒体流的互 通,从而影响了 NGN网络中媒体流传输的稳定性。H.248.37的NAT穿越还有一个缺陷就是必须单向可通,如果两个网关在两 个不同的私网中,NAT穿越包的机制就无法产生效果,而且,H.248.37机制无 法适用于当私网设备为MGW,而对端的公网设备不是MGW的情况,比如对 方是SIP终端或者H.323终端,因为SIP协议和H.323协议还不支持类似 H.248.37的功能,这也会对NGN网络中媒体流传输的稳定性造成影响。发明内容有鉴于此,本发明实施例的主要目的在于提供一种实现网络地址转换穿越的方法,该方法能够提高NGN等包含MGC和MGW的网络在媒体承栽 路径上有NAT存在的情况下媒体流传输的稳定性。本发明实施例的另 一 个目的在于提供 一 种实现网络地址转换穿越的系统,该系统能够提高NGN等包含MGC和MGW的网络中在i某体承载路径上有NAT存在的情况下媒体流传输的稳定性。。为达到上述目的,本发明实施例的技术方案是这样实现的 一种实现NAT穿越的方法,该方法包括以下步骤 第一 MGW和ICE机制支持设备均获取本端和对端的候选信息; 所述第一 MGW和对端的ICE机制支持设备根据所述候选信息进行导通检测;所述第一 MGW和ICE机制支持设备根据所述导通检测结果进行媒体流 的传送。一种实现NAT穿越的系统,该系统包括第一MGC、第一MGW以及 ICE机制支持设备;所述第一 MGW,用于在所述第一 MGC的控制下获取本端候选信息, 并接收所述第一MGC发来的对端ICE机制支持设备的候选信息,与所述对 端ICE机制支持设备进行导通检测,将导通检测结果上报给所述第一 MGC, 根据导通检测结果进行媒体流的传送;所述ICE机制支持设备,用于与所述第一MGC进行信令交互,接收所 述第一 MGC发来的所述第一 MGW的候选信息,并获取本端的候选信息, 将本端候选信息发送给所述第一 MGC,并与所述第一 MGW进行导通检测, 根据导通检测结果进行媒体流的传送;所述第一MGC,用于控制所述第一 MGW获取本端候选信息,并与所 述对端的ICE机制支持设备进行信令交互,以获取ICE机制支持设备的候 选信息并发送给所述第一 MGW,将所述第一 MGW的候选信息发送到所述 对端的ICE机制支持设备,接收来自所述第一MGW的导通检测结果。可见,采用本发明实施例的技术方案,MGW和网络中的其它ICE机制支 持设备根据双方获取的候选信息进行导通检测,并且根据导通检测的结果即可 进行j!某体流的NAT穿越。相比于现有技术,本发明所述方法无需私有网络中的端点预先向NAT发送媒体流来激发NAT产生映射地址,而且,解决了媒体流 两端都在私有网络下的NAT穿越问题。MGW不仅能够实现和其它支持本发明 功能的MGW之间的i某体流NAT穿越,还能够实现和除MGW以外任何支持 ICE机制的设备之间的媒体流NAT穿越,从而提高了 NGN等包含MGC和MGW 的网络中媒体流传输的稳定性。


图1为现有技术中NGN网络结构示意图;图2为本发明系统组成结构示意图;图2A为本发明系统一个较佳实施例的结构示意图;图2B为本发明系统第二个较佳实施例的结构示意图;图3为本发明方法的总体流程图;图4为本发明方法一个较佳实施例的流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实 施例,对本发明作进一步地详细i兌明。正因为现有技术中NGN网络在实现NAT穿越时,存在媒体流传输稳定性 无法保证的缺陷,所以,本申请希望提出一种不同于现有技术的NAT穿越方式, 以提高NGN等包含MGC和MGW的网络中媒体流传输的稳定性。目前,存在一种交互导通建立(ICE, Interactive Connectivity Establishment, 当前最新版本是draft-ietf-mmusic-ice-13 )机制,该机制能够较好地解决基于SIP 的NAT穿越问题,其实现思想为将现有的STUN和TURN等NAT穿越方式 进行整合,在媒体流的收发两端分别通过STUN或TURN方式产生一个候选 (candidate)列表,并将两端的候选列表进行交叉配对,生成一系列的候选对 (candidate pair),每一个候选对中均包括了 一个本地候选和一个远端候选;然后 对各候选对进行导通检测(Connectivity Check)和决策(Concluding ICE ),将导通检测成功的候选对中优先级最高的候选对选(selected)中,作为媒体流收 发两端收发媒体流的通道。ICE的具体实现过程为假设主叫端的SIP终端为某个媒体流分配了一个 主机(host)地址,假设该地址为ho;在发送呈现(offer)消息之前,ho通过 STUN方式获得一个映射公网地址,该地址在ICE中被称为服务器反射(server reflexive)地址,假设该地址为sro;此外,ho通过TURN方式也获得一个公网 地址,该地址在ICE中被称为转播(relay)地址,假设该地址为ro。这样,在 主叫端即获得了三个候选信息主机候选(host candidate ),服务器反射候选 (server reflexive candidate )和转播候选(relayed candidate ), 这三个候选信息 的地址分别是ho, sro和ro。这里提到的地址的IP版本可能是IP V4,也可能是 IP V6。主叫端获得三个候选信息后,通过offer消息将其发送到被叫端;被叫端 在接收到对端(peer)的三个候选信息后,用与对端同样的方法获取自身的候 选信息,假设也获得了三个候选信息,分别是被叫端的host candidate, server reflexive candidate和relayed candidate,只于应的;也址分另ll为ha, sra和ra; #皮叫 端通过应答(answer)消息将这三个候选信息发送到主叫端。两端的候选信息 交叉组合,形成9个候选对(实际情况也可能没有这么多候选对,例如主叫侧 只有两个候选,被叫侧只有一个候选),每个候选对都可能形成一个有效的媒体 流通道。主叫端和被叫端通过导通检测的机制,按照优先级顺序,对这9个候 选对进行测试,具体的测试方式是主叫端向被叫端发送STUN绑定(binding ) 请求消息,被叫端在接收到该STUN binding请求消息后,向主叫端回送应答消 息;针对同一候选对,被叫端向主叫端发送STUN binding请求消息,主叫端 同样回送应答消息。这样,就完成了对于一个候选对的导通检测,由于该过程 包括了两个请求消息和两个应答消息,所以简称为四步握手机制(4-message handshake)。在选中优先级最高的导通检测成功的候选对后,主叫端和被叫端即 可根据该候选对所代表的IP地址和端口进行媒体流的收发。本申请为解决现有技术中NGN等包含MGC和MGW的网络实现NAT穿越时存在的问题,将ICE实现机制引入到MGC和MGW的功能中,其基本思 想是第一 MGW和ICE机制支持设备(即能够支持ICE机制的设备)获取本 端和对端的候选信息;第一 MGW和I CE机制支持设备根据候选信息进行导通 检测;第一 MGW和ICE机制支持设备根据导通检测结果进行媒体流的传送。基于上述思想,图2为本发明系统组成结构示意图,如图2所示,本发 明系统的组成包括第一 MGC 、第一 MGW以及ICE机制支持设备;第一MGW,用于在第一 MGC的控制下获取本端候选信息,并接收第 一MGC发来的对端ICE机制支持设备的候选信息,与对端的ICE机制支持 设备进行导通检测,将导通检测结果上报给第一 MGC,根据导通检测结果 进行媒体流的传送;ICE机制支持设备,用于与第一 MGC进行信令交互,接收第一 MGC 发来的第一MGW的候选信息,并获取本端的候选信息,将本端候选信息发 送给第一MGC,并与第一 MGW进行导通检测,根据导通检测结果进行媒 体流的传送,使用(In-Use)候选对被更新时通知第一MGC;第一 MGC,用于控制第一 MGW获取本端候选信息,并与对端的ICE 机制支持设备进行信令交互,以获取ICE机制支持设备的候选信息并发送给 第一MGW,将第一 MGW的候选信息发送到对端的ICE机制支持设备,接 收来自第一 MGW的导通检测结果,在In-Use候选对被更新时通知对端的 ICE机制支持设备,接收来自对端的ICE机制支持设备的(In-Use)候选对被 更新的消息。其中,第一MGC进一步用于,向第一MGW发送保活报文类型和/或保 活报文发送周期设置消息;第一MGW进一步用于,接收来自第一MGC的 保活报文类型和/或保活报文发送周期设置消息,根据保活报文类型和/或保 活报文发送周期向ICE机制支持设备发送保活报文。或者,第一MGC进一步用于,向第一MGW发送保活报文发送指示; 第一MGW进一步用于,接收来自第一MGC的保活报文发送指示,并在接 收到该保活报文发送指示后,向ICE机制支持设备发送保活报文。ICE机制支持设备可以为被第一 MGC控制的第二 MGW,也可以是第 二 MGW和第二 MGC的组合,还可以是支持ICE机制的SIP代理(agent), 或者支持ICE的IMS网络等。图2A为本发明系统一个较佳实施例的结构示意图,本实施例中,ICE 机制支持设备为第二 MGC203和第二 MGW204的组合,其中,第二 MGW204,用于接收来自第二 MGC203的对端第一 MGW202的候选信息以 及来自第二 MGC203的候选搜集(Gathering Candidates)指示,根据候选搜集 指示通过STUN等方式示获取本端候选信息并发送给第二 MGC203;根据本 端和对端的候选信息与第一 MGW202进行导通检测;并根据导通检测结果 与第一 MGW202之间进行媒体流的传送;第二MGC203,用于接收来自第一MGC201的第一 MGW202的候选信 息,向第二MGW204发送候选搜集指示,将第二 MGW204的候选信息发送 给第一 MGC201,接收来自第二 MGW204的导通检测结果。这里要注意的是,候选搜集指示可以是不需要的,可以规定MGW在媒 体能力协商过程中分配RTP端点时自动搜集候选后上报。如果导通检测的 结果与之前的使用(In-Use)候选不同,MGC可以通过修改(modify)消息 更新本端MGW上RTP端点的SDP,还可以通过SIP的更新呈现(Updated Offer)通知对端。MGC收到对端发送来的Updated Offer消息后可以通过修 改(modify )消息更新本端MGW上RTP端点的SDP。本实施例中,为便于描述,将第一 MGC201和第一 MGW202分别用 MGCl 202和MGW1 201表示;第二 MGC203和第二 MGW204分别用MGC2 203和MGW2 204表示,如图2A所示,假设MGW1 202处于私有网络, MGW2 204处于公有网络,则该系统的工作流程为MGW1 202侧发起呼叫,MGCl 201在MGW1 202上建立RTP端点 RTP1,在进行媒体能力协商的过程中,MGW1 202在MGC1 201的控制下 获取候选信息,包括主机候选信息、服务器反射候选信息以及转播候选信息, 并将获取的候选信息通过H.248协议发送给MGCl 201; MGCl 201通过SIP协议将该候选信息发送给控制处于公有网络中的MGW2 204的MGC2 203, MGC2 203将该候选信息进一步发送给MGW2 204; MGW2 204在接收到 MGW1 202的候选信息后,通过与MGW1 202同样的方式,获取自身的候 选信息,本实施例中,因为处于公有网络中,所以MGW2 204的候选信息 只需要一个主机候选信息,MGW2 204将该主机候选信息通过MGC2 203和 MGC1 201发送给MGW1 202,这样,两端的MGW都知道了本端和对端的 候选列表;然后,MGW1 202和MGW2 204在各自MGC的指示下或自动发 起导通检测过程,比如,MGW1 202在接收到MGW2 204的候选信息后, 即可自动发起导通检测,具体导通检测过程与现有技术相同,即按照ICE标 准的规定执行,此处,MGC1 201和MGC2 203需要指示出对应的MGW是 否为控制角色,由控制角色选择最终的候选对;MGC1 201和MGC2 203需 要指示出对应的MGW是否为会话发起方(offerwer),该信息在计算候选 对优先级别的时候有用。该指示可以是一个H.248属性,或者是H.248信号 或者事件的一个参数,也可以通过规则设定,例如增加RTP端点时如果 没有远端(remote) SDP,则为呼叫的发起方,否则就是应答方(answerer )。 导通检测完成,根据MGC1 201和MGC2 203进行的事件设置,MGW1 202 和MGW2 204将导通4全测结果上才艮主合MGC1 201和/或MGC2 203;后续过 程中,MGW1 202和MGW2 204即可根据导通检测结果进行媒体流的传送。 参照ICE协议的规定,如果In-Use的候选和导通^r测结果被选中的候选不 同,则还需要更新SDP内容。这里需要注意的是,ICE协议中有轻量执行(Lite Implementation )的概 念,轻量执行的一端不需要搜集候选,这种情况可以理解为只有一个host 候选。图2A中所示的NAT和STUN服务器在本实施例中的连接方式以及实 现功能与现有技术中相同,此处不再赘述。在实际应用中,MGW2 204和 MGWl 202可以由同一个MGC控制,此时MGW2 204的功能与MGWl 202 相同,即,用于接收来自第一MGC201的关于对端第一MGW202的候选信息,并获取本端候选信息,将本端候选信息发送给第一 MGC201,并根据本 端和对端候选信息与所述第一 MGW202进行导通检测。图2B为本发明系统第二个较佳实施例的结构示意图,如图2B所示, 本实施例与实施例一相比,区别仅在于,实施例 一 中的MGW2 204和MGC2 203在本实施例中被SIP终端303替代,本实施例系统的工作方式与实施例 一相比并无本质区别,不再重复介绍。基于上述系统,图3为本发明方法的总体流程图,如图3所示,包括以 下步骤步骤301:第一 MGW和ICE机制支持设备都获得本端和对端的候选信自、'"、c,本步骤中,第一MGW和ICE机制支持设备均需要获取本端以及对端的 候选信息,具体获取方式为第一 MGW获取本端候选信息,并通过第一 MGC将本端的候选信息发 送给对端的ICE机制支持设备;对端的ICE机制支持设备获取本端的候选 信息,并通过第一 MGC将本端的候选信息发送给第一 MGW;或者,对端的ICE机制支持设备获取本端的候选信息,并通过第一 MGC 将本端的候选信息发送给第一MGW;第一 MGW获取本端的候选信息,并 通过第一 MGC将本端的候选信息发送给对端的ICE机制支持设备。该步骤包含在会话两端媒体能力协商过程中,第一 MGW作为会话的发 起方(offerer)以及第一 MGW作为会话的应答方( answerer )两种情况下 通常的过程。但是,由于媒体能力协商过程的随意性和复杂性,有时候该过 程的步骤并不那么严格,例如,第一MGW获取本端候选信息并且上报给第 一 MGC后,第一 MGC可能并不将第一 MGW的候选信息通知到对端的ICE 机制支持设备,即offer消息中不带SDP,而是等对端ICE机制支持设备在 answer消息中通过SDP带回对端的候选信息后,第一 MGC再将本端的候选 信息发送到对端,所以,该步骤的实质是在会话的媒体能力协商阶段,两 端各自搜集本端候选信息并且将该候选信息通过信令,如H.248或者SIP等与对端进行交换,其具体过程可能很灵活。第一 MGW获取本端候选信息之前,可以进一步包括第一 MGC向第一 MGW发送候选搜集指示的步骤;相应地,第一MGW在接收到该候选搜集 指示后,获取本端的候选信息。其中,第一MGC向第一MGW发送候选搜 集指示的方式为第一MGC通过扩展的SDP向第一 MGW发送候选搜集指示。第一 MGC和ICE机制支持设备获取各自候选信息的方式与现有技术 ICE机制中SIP终端获取候选信息的方式相同。上述ICE机制支持设备可以为第二 MGW,也可以是第二 MGW和第二 MGC的组合,还可以是一个支持ICE机制的SIP代理(agent)等。若ICE 机制支持设备为第二 MGC和第二 MGW的组合,则ICE机制支持设备获取 本端候选信息的方式为第二 MGC接收来自第一 MGC的关于第一 MGW 的候选信息,并将该候选信息发送给第二 MGW;第二 MGW创建RTP端点, 并在第二 MGC的指示下获取本端的候选信息。若ICE机制支持设备为SIP 终端,则ICE机制支持设备获取本端候选信息的方式为SIP终端在接收到 第一 MGW的候选信息后,自动获取本端的候选信息。以上步骤是一个实现的具体例子,呼叫流程可能是从对端发起,而且如 前所述,第一 MGW和对端的ICE机制支持设备获取本端候选信息以及获得 对端候选信息的次序可能有多种排列,这和具体的流程相关,但是其实现 ICE的原理和上面步骤所描述的实现流程相同。步骤302:第一 MGW和ICE机制支持设备根据候选信息进行导通检测。在获取了本端以及对端的候选信息后,第一 MGW和ICE机制支持设备 即可进行导通^f企测,以确定最终用于传输:樣体流的候选对。本步骤中,第一MGW和/或ICE机制支持设备可以是自动发起导通检 测,也可以是在第一MGC的控制下发起导通检测,具体的承载层的导通检 测过程与现有技术ICE机制中的导通检测过程相同。该步骤之前,第一 MGC 需要通过扩展H.248协议向第一 MGW发送导通检测发起指示,和/或指示第一 MGW是否为控制角色的指示信息,和/或者本端是否为会话发起方 (offerer)的指示信息,如果是自动发起的导通检测,两端在获得候选信息 后可以立即发起导通检测过程。控制角色指示信息用于指示第一 MGW是否 为控制角色,由控制角色来完成最终的候选对选择;会话发起方指示信息用 于指示本端计算候选对的优先级别,该指示也可以用前面描述过的,第一MGW通过々某体协商过程中H.248消息中是否带远端(remote) SDP等方法来 区分自身是否为会话的发起方。导通检测完成后,第一 MGW根据第一 MGC上的事件设置将导通检测 结果通过事件上报或在H.248请求消息的应答中上报等方式上报给第一 MGC;上报时机可以是在导通检测完成后,也可以是在导通检测失败后。步骤303:第一 MGW和ICE机制支持设备根据导通检测结果进行媒体 流的传送。本步骤中,第一 MGW和ICE机制支持设备根据步骤302中得到的导通 检测结果进行媒体流的传送。在实际应用中,例如呼叫保持(hold)等情况 下,第一MGW和ICE机制支持设备可能不会连续收发媒体流,也就是说, 可能在某一段时间内,网络中没有媒体流的传送,这种情况下,为维持通道 的有效性,第一 MGW需要向对端ICE机制支持设备发送保活(keepalive) 报文,并且可能需要应答对端ICE机制支持设备发送来的保活报文。该保活 报文可能是需要应答的STUN绑定(binding)请求消息,也可能是不需要应 答的无操作(No-Op)包或者静音包等。保活报文的发送周期要小于NAT 上地址映射保持的时间,保活报文沿着媒体流的路径传送。第一MGC可以 通过扩展H.248协议预先向第一 MGW发送保活报文类型和/或保活报文发 送周期设置消息;相应地,第一MGW在需要发送保活报文时,就会按照设 置好的保活报文的类型和/或保活报文发送周期向ICE机制支持设备发送保 活报文;或者,第一 MGC通过扩展H.248协议向第一 MGW发送保活报文 发送指示;第一 MGW在接收到第一 MGC的保活4良文发送指示后,向ICE 机制支持设备发送保活报文。该保活报文发送指示中也可以包括前面说的保活报文类型和/或保活报文发送周期信息。步骤301 - 303中所提到的候选信息为主机候选信息、服务器反射候选信息以及转播候选信息中的 一 个或多个。另外,还有一个对端反射(peer reflexive )候选的概念。在进行导通检 测的过程中,因为导通检测使用了 STUN绑定请求消息,该消息的应答中携 带了反射(reflexive )地址(本发明中的地址通常是指IP地址和端口 ),如 果该地址和已有的本地候选地址不同,则该反射地址叫对端反射地址,该地 址和服务器反射地址的区别在于,前者是对端反射生成的,而后者是在 STUN服务器上反射生成的。对于对端来说,如果导通检测中收到的STUN 绑定请求消息的源地址和已有的所有远端候选不同,而且该导通检测成功, 则可以确定这是一个对端反射远端候选(peer reflexive remote candidate )。 对端反射候选如果成为选中的候选,用于媒体流的传送,则该地址需要上报 给MGC,用于门控等用途。下面通过一个具体的实施例来对本发明方法作进一步地详细说明,图4为本发明方法 一 个较佳实施例的流程图,本实施例所依据的系统结构如图 2A所示,即ICE机制支持设备为第二 MGC和第二 MGW的组合。本实施 例中,为便于描述,将第一 MGC和第一 MGW分别用MGCl和MGWl表 示;第二 MGC和第二 MGW分别用MGC2和MGW2表示,该方法实施例 包括以下步骤步骤401: MGWl和MGC2获取本端以及对端的候选信息。 MGCl侧发起呼叫,在媒体能力协商过程中建立RTP端点RTP1,该 RTP端点有一个本地网络接口地址ho, ho可能是一个IPV4地址加端口 ,也 可能是一个IPV6地址加端口 ,本实施例中假设为IPV4地址加端口 , MGWl 通过STUN服务器获得服务器反射候选信息sro以及转播候选信息ro。上述 候选信息是在媒体流协商过程中,MGCl通过扩展SDP要求MGWl去获取 的,相应地,MGWl通过扩展SDP将候选信息上报给MGCl 。比如,当前 MGCl需要MGWl上报服务器反射候选,则MGCl发送给MGWl的SDP用如下一个"a=" 4亍形式表示a=candidate: 2 1 UDP 1694498562 $ $ typ srflx raddr $ rport $; 前两个"$"分别表示需要MGW1上报的服务器反射地址和端口; 后两个"$"分别表示需要MGW1上才艮的主才几地址和端口;"a=candidate"表示本4亍为的4戈J里属寸生;"UDP"表示使用UDP协议;"typ srflx"表示该候选为服务器反射候选;"raddr"表示需要MGW1填入的(related)地址;"rport"表示需要MGW1填入的端口 。相应地,MGW1应答时在SDP的相应位置上填入获取的服务器反射候选 i也i止禾口3岛口, ^口下戶斤示a=candidate: 2 1 UDP 1694498562 192.0.2.3 45664 typ srflx raddr 10.0.1.1 rport 8998。也可以是如下形式a=candidate:srflx来要求MGW搜集上报服务器反射候选信息。也可以是如下形式a=candidate: *来要求MGW搜集上报各种候选信息。总之,具体的扩展方式不唯一。用类似的方法,MGCl获得MGW1的三个候选,并可以指定将其中的一个 设置到SDP的m/c行作为使用候选(In-Use candidate);后续步骤402中,如 果导通检测得到的候选信息与In-Use candidate中存储的候选信息不符,则 MGC1可以用导通4企测得到的候选信息对m/c行In-Use candidate中的候选信息 进行替换。MGCl将得到的三个候选发通过SIP信令送到MGC2,并由MGC2发送给MGW2。与MGWl类似,MGW2上创建RTP 了端点RTP2,并获取候 选信息,因为MGW2处于公有网络中,所以只需一个候选信息,即主机候选信 息ha,该主才几候选信息通过MGC2和MGC1发送到MGW1,这样,MGW1和 MGW2都知道了本端和对端的候选信息,即候选列表,并形成了三个候选对, 即(ho、 ha)、 (sr()、 ha)以及(ro、 ha)。步骤402: MGW1发起导通检测,并将导通检测结果上报给MGC1 。本实施例中,M GC1通过扩展的H.248协议指示MGW1发起导通检测、 指示MGW1是否为控制角色以及指示MGW1是否为会话发起方,这里提到的 扩展H.248协议的方式可以是在原有H.248协议的基础上新定义一个ostuncc 包,该ostuncc包申包括信号scc:用于指示MGW1发起ICE的导通检测,该信号中为了具体标 示要进行导通检测的媒体流,还可进一步携带指示参数,如H.248的流标识 (stream ID ) 、 ICE的基础(foundation )编号和组成标识(component-id ) 等信息中的一个或多个;或者,也可以不携带这些参数,而是对该信号作用 范围内的所有媒体流进行导通检测。属性control:用于指示MGWl为控制角色(controlling role )还是被控 制角色(controlled role ),该属性可以放在本地控制描述符(Local Control Descriptor)下,本实施例中假设MGW1为控制角色,即,由MGWl决定 最终选择的候选对。属性side:用于指示MGWl端为offer'端还是answer端,该值用于候选 对的优先级计算。这两个属性携带的信息也可以通过s c c信号的参数来传递。MGWl和MGW2之间进行导通检测,并将导通检测结果上报给MGC, 控制角色和被控制角色,即MGWl和MGW2均可上报导通检测结果,ICE 协议规定导通检测的状态分为进行(Running)和完成(Completed)两种。 上报时机可以是在导通检测完成,也可以是在导通检测失败后;上报的方式可以采用事件上报方式,也可以采用在H.248请求消息的应答中上报的方 式;上报内容可以包括以下内容中的一项或多项1、 各个候选对的当前状况,如等待(Waiting )、处理中(In-Progress )、 成功/有效(Succeeded )、失败(Failed)或冻结(Frozen);2、 被选中的候选对,该候选对将被用于媒体流的传送;3 、如果被选中的候选对中包括了对端反射候选(Peer Reflexive Candidate ), 则还需要上报对端反射的类型,即是本地(local)的对端反射还是对端(remote) 的对端反射,并且上报该对端反射候选的IP地址和端口,该IP地址和端口将 被用于后续处理,例如门控等。本实施例中,假设由MGW1负责上报导通检测结果,则MGWl同样需要 扩展H.248协议来传送该导通检测结果信息,这可以通过在新定义的ostuncc 包中定义一个事件ccr来实现。该事件可以设置用来上报某个RTP端点上所有 的媒体流的导通检测结果,或者该RTP端点上指定的streamID上所有媒体流的 导通检测结果。事件上报时携带信息包括H.M8的stream ID、 Group ID、本端 foundation编号、对端foundation编号、component-id、对端反射类型(local还是 remote)、对端的反射IP地址和端口以及反射IP地址和端口 。是否为选中候选 对等信息中的一个或多个。上报事件参数result的数据类型为如下格式字符串的列表Streamed":"groupID":"foundation-L":"foundation-R":"component-id":"state[:p eer Reflexive type and address][: selected];其中,streamID为H.248的流ID;groupID为H.248的组ID;foundation-L为候选对中的本端foundation编号; foundation-R为候选对中的对端foundation编号;component-id 为候选对的 component-id , 本端和对端4吏用相同的component-id;state为候选对的当前状态,取值如Waiting、 In-Progress、 Succeeded、 Failed 或Frozen;peer Reflexive type and address为对端反4H美选的类型,两种类型包括本地 对端反射候选和远端对端反射候选。 一个候选对中可能只有一端产生对端反射 候选,也可能是两端都产生了对端反射候选。该候选对中的所有对端反射候选 的类型以及各自对应的对端反射IP地址和端口都可以通过peer Reflexive type and address上才艮。Selected用于标识本候选对是否被选中用来传送媒体流。ICE标准规定在一个候选对中,两个候选的component-id必须相同,如果 MGC对component-id进行特殊处理,保证在不同的group和stream中, component-id不会重复,例i口只于MGW进4亍内吾卩的component-id重分酉己,或 者采取了其它方式达到相同目的,则MGW不需要上报streamID和groupID,但 是可能需要上报两个不同的component-id.如果导通4企测失败,则可以通过返回错误码或者返回空串来表示。 最终的实施方案中事件上报的内容可以包括前面事件上报内容中的部 分或者全部。另外,如果上报的导通检测结果被排序,例如按照候选对的优先级别排 序后上报,则elected参数也可以不需要。另外,为了避免上报的消息过长,可以考虑只上报某些状态的候选对, 例如导通检测成功以及失败的候选对,对没有检测的候选对没有必要上报, 可以通过事件设置中增加参数等方式达到该目的。步骤403: MGW1和MGW2 一艮据导通4全测结果进行々某体流传送。MGC1和MGC2根据上报的导通检测结果对MGW1和MGW2的SDP 进行更新,保证m/c行中的IP地址和端口为被选中(selected )的候选的IP 地址和端口。需要说明的是,该操作可能是多余的,因为MGW1和MGW2在导通检测的过程中已经获得了选中的(selected)候选对,这里作出说明 主要是为了和当前的ICE标准对齐。本步骤中,若选中的候选对中较长时间没有媒体流的传送,则MGW1 将向MGW2发送保活报文,以便维持该候选对的有效。这需要MGC1通过 扩展H.248预先为MGW1设置好保活报文的类型和/或保活报文的发送周 期,比如Tr,之后,MGW1在需要发送保活报文的时候,就会按照设置好 的类型和/或周期进行保活报文发送;或者,MGC1向MGW1发送保活报文 发送指示,MGW1在每次接收到该保活报文发送指示后,即向MGW2发送 保活报文。周期的计算时间从媒体流停止收发开始,如果一直有媒体流,则 不需要发送保活报文。为此,在ostuncc包中需要加入以下内容属性kaType:用于指示保活报文的类型,如空操作(No-Op)报文,静音 报文和STUN绑定请求报文等。前两种类型的报文是考虑在不支持STUN/ICE 的设备之前的NAT保活,这样就不限于要候选对信息,报活报文在媒体流的传 送路径上发送,该属性可以放在LocalContr()lDescriptor下;属性Tr:用于指示保活保文的发送周期,该属性可以考虑对不同的媒体流 单独设置Tr值,也可以对所有媒体流进行设置,该属性可以放在 LocalControlDescriptor下;保活报文的发送也可以通过信号的方式来实现,该信号可以具体指定需要 发送保活报文的媒体流路径,也可以指示在所有的媒体流路径上发送保活报文; 该信号中还可以通过参数设置保活报文类型和Tr属性。除了上述介绍的内容以外,ostuncc包中还可进一步包括属性iuType:用于 指示步骤401中提到的In-Use candidate的类型,本实施例中,In-Use candidate 的类型包4舌host candidate, server reflexive candidateh禾口 relayed candidate三种, 这三种类型可分别被定义成he (0x0001 ), src (0x0002)和re ( 0x0003 ),该属 性同样可以放在LocalControlDescriptor下。 MGW根据该属性值将相应的候 选类型的IP地址和端口放到SDP的m/c行中。本实施例介绍的是4某体流收发两端均为MGW时本发明方法的实现流程,该方法也同样适用在MGW和其它ICE机制支持设备进行i某体流交互时 的情况,具体实现流程与图4类似,本领域技术人员可以较为容易的推出, 此处不再赘述。可见,采用本发明实施例的技术方案,网络中的端点无需预先向NAT发送 媒体流来激发NAT产生映射地址,支持两端都在私有网络中的情况,而且, MGW既能够和其它支持本发明功能的MGW之间实现媒体流的NAT穿越,又 能够和除MGW以外其它任何支持ICE机制的设备,如SIP终端等之间实现媒 体流的NAT穿越,扩大了 ICE机制下NAT穿越技术的适用范围,从而提高了 NGN等包含MGC和MGW的网络中媒体流传输的稳定性。综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的 保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改 进等,均应包含在本发明的保护范围之内。
权利要求
1. 一种实现网络地址转换NAT穿越的方法,其特征在于,该方法包括以下步骤第一MGW和ICE机制支持设备均获取本端和对端的候选信息;所述第一MGW和对端的ICE机制支持设备根据所述候选信息进行导通检测;所述第一MGW和ICE机制支持设备根据所述导通检测结果进行媒体流的传送。
2、 才艮据权利要求1所述的方法,其特征在于,所述第一MGW和ICE 机制支持设备均获取本端和对端候选信息的方式为所述第一 MGW获取本端候选信息,并通过所述第一 MGC将本端的候 选信息发送给所述对端的ICE机制支持设备;所述对端的ICE机制支持设 备在接收到所述第一MGW的候选信息后,获取本端的候选信息,并通过所 述第一 MGC将本端的候选信息发送给所述第一 MGW;或者所述对端的ICE机制支持设备获取本端的候选信息,并通过所述第一 MGC将本端的候选信息发送给所述第一 MGW;所述第一 MGW在接收到 所述ICE机制支持设备的候选信息后,获取本端的候选信息,并通过所述第 一 MGC将本端的候选信息发送给所述对端的ICE机制支持设备。
3、 根据权利要求1所述的方法,其特征在于,由所述第一MGC控制 第一 MGW获取本端候选信息,该控制和获取的方式为所述第一 MGC向所述第一 MGW发送候选搜集指示;所述第一 MGW在接收到所述候选搜集指示后,获取本端的候选信息;其中,所述第一 MGC向所述第一 MGW发送候选搜集指示的方式为 所述第一 MGC通过会话描述协议SDP向所述第一 MGW发送候选搜集指示。
4、 才艮据权利要求1所述的方法,其特征在于,所述导通4全测之前,进一步包括所述第一 MGC通过扩展H.248协议向所述第一 MGW发送导通检测发 起指示;所述第一 MGW在接收到所述第一 MGC发来的导通检测发起指示 后发起导通4企测。
5、 根据权利要求1所述的方法,其特征在于,所述导通检测之前,进 —步包括所述第一 MGC通过扩展H.248协议向所述第一 MGW发送第一 MGW 是否为控制角色的指示信息;所述第一 MGW在接收到所述第一 MGC发来 的指示信息后,按照该指示信息在导通检测过程中担任控制或者被控制角 色。
6、 根据权利要求1所述的方法,其特征在于,所述导通检测之前,进 一步包括所述第一 MGC通过扩展H.248协议向所述第一 MGW发送第一 MGW 是否为会话发起方的指示信息;所述第一 MGW在接收到所述第一 MGC发 来的指示信息后,按照该指示信息在导通检测过程中计算候选对的优先级。
7、 根据权要求1所述的方法,其特征在于,在进行导通检测后,进一 步包括由所述第一 MGW将导通检测结果上报给所述第一 MGC,该上报 的方式为所述第一 MGW通过扩展H.248协议采用事件上报或在H.248请求消息 的应答中上报的方式将所述导通检测结果上报给所述第一 MGC。
8、 根据权利要求1所述的方法,其特征在于,所述导通检测结果中携 带有各候选对的检测结果信息,包括流标识stream ID、和/或组标识Group ID、和/或本端的基础foundation编号、和/或对端的foundation编号、和/或 组成标识component-id、和/或对端反射peer reflexive类型、和/或对端反射 IP地址和端口 ,和/或本候选对是否为选中候选对。
9、 根据权利要求1所述的方法,其特征在于,该方法进一步包括所述第一 MGC通过扩展H.248协议向所述第一 MGW发送保活报文类 型和/或保活报文发送周期设置消息;所述第一 MGW按照接收到的保活报 文类型和/或保活报文发送周期向所述ICE机制支持设备发送保活报文;或者,所述第一 MGC通过扩展H.248协议向所述第一 MGW发送保活 报文发送指示;所述第一 MGW在接收到所述第一 MGC的保活报文发送指 示后,向所迷ICE机制支持设备发送保活报文。
10、 根据权利要求1至5中任意一项所述的方法,其特征在于,所述候 选信息为主机候选信息、服务器反射候选信息以及转播候选信息中的任意一 个或多个的组合。
11、 根据权利要求1所述的方法,其特征在于,所述ICE机制支持设备 包括被第一 MGC控制的第二 MGW、或第二 MGC和第二 MGW的组合 或SIP代理。
12、 一种实现网络地址转换NAT穿越的系统,其特征在于,该系统包 括第一 MGC 、第一 MGW以及ICE机制支持设备;所述第一 MGW,用于在所述第一 MGC的控制下获取本端候选信息, 并接收所述第一MGC发来的对端ICE机制支持设备的候选信息,与所述对 端ICE机制支持设备进行导通检测,将导通检测结果上报给所述第一 MGC, 根据导通检测结果进行媒体流的传送;所述ICE机制支持设备,用于与所述第一MGC进行信令交互,接收所 述第一 MGC发来的所述第一 MGW的候选信息,并获取本端的候选信息, 将本端候选信息发送给所述第一 MGC,并与所述第一 MGW进行导通检测, 根据导通检测结果进行媒体流的传送;所述第一MGC,用于控制所述第一 MGW获取本端候选信息,并与所 述对端的ICE机制支持设备进行信令交互,以获取ICE机制支持设备的候 选信息并发送给所述第一 MGW,将所述第一 MGW的候选信息发送到所述 对端的ICE机制支持设备,接收来自所述第一MGW的导通检测结果。
13、 根据权利要求12所述的系统,其特征在于,所述ICE机制支持设备包括被第一 MGC控制的第二 MGW、或第二 MGC和第二 MGW的组 合或SIP代理。
14、 根据权利要求12所述的系统,其特征在于,所述第一 MGC进一步用于,向所述第一 MGW发送保活报文类型和/ 或保活报文发送周期设置消息;所述第一MGW进一步用于,接收来自所述第一MGC的保活报文类型 和/或保活报文发送周期设置消息,根据所述保活报文类型和/或保活报文发 送周期向所述ICE机制支持设备发送保活报文。
15、 根据权利要求12所述的系统,其特征在于,所述第一 MGC进一步用于,向所述第一 MGW发送保活I艮文发送指示; 所述第一 MGW进一步用于,接收来自所述第一 MGC的保活报文发送指示,并在接收到所述保活报文发送指示后,向所述ICE机制支持设备发送保活报文。
全文摘要
本发明实施例公开了一种实现网络地址转换(NAT)穿越的方法,第一媒体网关(MGW)与交互导通建立(ICE)机制支持设备均获取本端和对端的候选信息;所述第一MGW和对端的ICE机制支持设备根据所述候选信息进行导通检测;所述第一MGW和ICE机制支持设备根据所述导通检测结果进行媒体流的传送。本发明实施例还同时公开了一种实现NAT穿越的系统,应用该方法和系统能够提高下一代网络(NGN)等包含媒体网关控制器(MGC)和MGW的网络中媒体流传输的稳定性。
文档编号H04L12/56GK101257433SQ20071000560
公开日2008年9月3日 申请日期2007年3月1日 优先权日2007年3月1日
发明者宁 祝 申请人:华为技术有限公司

最新回复(0)