基于sip的nat映射保活方法及其系统的制作方法

文档序号:7768528阅读:451来源:国知局
专利名称:基于sip的nat映射保活方法及其系统的制作方法
技术领域
本技术方案涉及SIP (Session Initiation Protocol,会话初始协议)技术以及 NAT (NetworkAddress Translator,网络地址转换)映射保活技术。
背景技术
虽然IPv6取代IPv4是必然趋势,但是IPv4仍然会长期存在,而IPv4的存在必 然伴随着大量的NAT,随着VOIP (Voice over IP, IP语音)业务的日益普及,NAT对P2P
媒体业务的影响日益显著。在存在NAT设备的网络环境中,如果SIP终端在私网,SIP服务器在公网,那么 当SIP终端向服务器发起注册时,会在NAT上产生私网地址和公网地址的映射关系,此 映射关系可以保证SIP服务器发送SIP呼叫请求的时候能够送达SIP终端。但是通常情 况下NAT设备上产生的映射关系都是临时的,这个映射存在的时间可能很短,只有几秒 钟。如果一段时间没有使用这个地址映射,那么就会超时删除映射,导致服务器无法再 呼叫终端用户。那么为了保证SIP服务器能够在任何时候都能呼叫到SIP终端,那么SIP 服务器需要保活这个映射,现有实现方法通常是SIP服务器定时发送SIP消息如notify、 option等到NAT设备的公网端口来保活此映射,但是SIP消息比较大,并且终端需要复杂 的解码,如果再加上映射的存在时间很短,那么需要频繁的发送保活报文,此时,对终 端、网络、服务器的压力都是很大的。另外,当NAT设备重启、NAT地址映射被人为清除或异常删除后,服务器同样 不能呼叫SIP终端了,现有实现见中国专利申请《200610119375.5—种SIP网络系统中维 持NAT地址绑定的方法及其装置》,通常是终端同样发送保活消息,如option消息,但 是option消息只能保活已存在的NAT映射,是不能使得服务器更新其保存的终端映射关 系,除非终端重新发起注册,但是终端并不能感知到NAT设备异常,所以只有注册超时 才会发起注册,而这个时间可能会很长(RFC3261建议的是一个小时),那么可能一个小 时内该终端用户都收不到服务器的呼叫请求,对VOIP业务影响很大。

发明内容
本发明所要解决的技术问题是,提供一种较少网络消耗,并在NAT上映射被清 除后能即时重新创建映射关系的NAT映射保活方法,以及实现该方法的系统。本发明为解决上述技术问题所采用的技术方案是,基于SIP的NAT映射保活方 法,包括以下步骤a、SIP终端通过NAT设备向SIP服务器发起注册;NAT设备在所述SIP终端发
起注册时,保存所述SIP终端与NAT设备的映射关系;b、SIP服务器接收到所述SIP终端的注册后,周期性通过NAT设备向所述SIP 终端发送UDP类型的保活报文;C、所述SIP终端收到保活报文后,启动定时器;
4
d、所述SIP终端判断在定时器超时时间内是否接收到保活报文,如是,则重置 定时器,返回本步骤;如否,则触发SIP终端重新注册,并清除定时器,返回步骤a。首先,本发明采用UDP类型的保活报文,相比SIP报文,UDP报文数据量小, 就算SIP服务器同时向多个SIP终端发送此报文,也不会对SIP服务器的性能产生太大影 响。并且,通过定时器超时来触发SIP终端注册,能最大限度减少故障时间,使得NAT 设备的映射关系能在短时间内重新建立。如果SIP终端注册后从来没有收到过保活报文, 则说明不需要保活,该终端也不会启动定时器。进一步的,所述保活报文中仅携带保活周期信息;所述步骤C中,SIP终端收到 保活报文后取得保活周期信息,并根据此保活周期信息设置定时器的超时时间。进一步的,定时器的超时时间设置为保活周期XN+偏移量,其中N为正整 数,N的取值根据网络状态可动态调整。加偏移量是为了防止保活周期太小或趋于0, 定时器的超时时间被设置得过小,导致网络抖动。具体的,所述保活报文为KEEPALIVE报文。所述映射关系为SIP终端的私网 地址和私网端口对应NAT设备的公网地址和公网端口的映射关系。另外,实现上述方法的NAT映射保活系统包括SIP终端、NAT设备、SIP服务 器,所述SIP终端,用于通过NAT设备向SIP服务器发起注册;未设置定时器的SIP终 端收到保活报文后,启动定时器,并监控接收到的报文;已设置了定时器的SIP终端收 到保活报文后,重置定时器,并监控接收到的报文;SIP终端判断在定时器超时时间内是 否接收到保活报文,如是,则重置定时器;如否,则触发SIP终端重新注册,并清除定 时器;所述NAT设备,用于在SIP终端向SIP服务器发起注册时,保存所述SIP终端与 NAT设备的映射关系;所述SIP服务器,用于SIP服务器接收到所述SIP终端的注册后,周期性通过 NAT设备向所述SIP终端发送UDP类型的保活报文。本发明的有益效果是,以小报文保活NAT私网和公网的地址映射,减少终端、 网络和服务器的负担。终端通过保活报文感知NAT地址映射意外失效,终端注册触发机 制保证了当NAT地址映射意外失效后能够在最短的时间内恢复,从而保证对VOIP业务影 响最小。


图1为本发明系统示意图;图2为实施例应用环境图;图3为实施例消息流图。
具体实施例方式如图1所示,系统包括SIP终端、NAT设备、SIP服务器,SIP终端与SIP服务
器通过NAT设备进行通信。如图2所示,位于私网的SIP终端和位于公网中的SIP服务 器之间需要通信,会在NAT设备上产生一个临时的私网地址私网端口公网地 址公网端口的映射,SIP服务器要呼叫SIP终端的话,必须访问NAT设备的公网地址公网端口,NAT设备自动通过对应私网地址私网端口将呼叫转发到SIP终端。本实施例的NAT映射保活方法如图3所示首先SIP终端向SIP服务器发起REGISTER报文进行注册,SIP服务器收到 REGISTER报文后不仅需要登记SIP终端信息,还需要记录NAT映射中公网地址和公网 端口,然后返回2000K消息。这样,在SIP终端和SIP服务器之间就建立了一个固定通 道,此时为了保活NAT映射,SIP服务器发送KEEPALIVE报文。KEEPALIVE报文内容的格式建议“ KEEPALIVE t = 10”其中KEEPALIVE用于标识报文用途,t = 10为保活周期,单位默认为秒。KEEPALIVE报文除了必要的UDP头以外只包含上述内容。由于这里 KEEPALIVE报文很小,并且不需要SIP终端应答,所以SIP服务器可以高频率的发送, 比如1秒发送一个,即t = 1,这样就可以保证NAT映射不会超时。就算服务器同时向 多个SIP终端同时快速的发送此报文,也不会对SIP服务器性能有太大影响,同样,对于 网络影响也不大,对于SIP终端来说,不需要像SIP报文一样进行复杂的报文解析,只需 要从此报文中读出保活周期t即可。就算SIP终端收到大量的此报文也不会存在太多的性 能负担。当SIP终端收到了 SIP服务器发送到的KEEPALIVE报文,SIP终端启动定时器,
关于定时器的超时时间的设置为(tXN+偏移量);这里需要N倍保活周期t是为了防止 网络掉包等使得发生频繁注册,N的取值根据网络状况设置;加偏移量是防止t时间太小 或趋于0,使得定时器超时过快。例如,SIP终端在收到第一个KEEPALIVE报文后,读 出其中的保活时间t(t= 1),假设N设置为2,偏移量设置成10秒,那么,启动一个12 秒的定时器,每收到一个KEEPALIVE报文,则重置该定时器。如果NAT设备因异常、重启导致NAT映射信息丢失、或被人为清除了映射时, SIP服务器就不能再联系到SIP终端了,KEEPALIVE报文也发不到SIP终端上了。SIP终 端定时器在12秒后超时,然后启动注册流程,重新发送REGISTER消息到SIP服务器, 此时很可能会在NAT上产生一个新的映射,服务器刷新SIP终端用户信息,并且记录新 的NAT映射信息,此时SIP服务器又可以呼叫SIP终端了,也就是说,本实施例在12秒 内恢复了故障。SIP服务器继续发送KEEPALIVE消息,SIP终端在收到KEEPALIVE后 又启动定时器进行监控。这里SIP终端之所以在收到第一个KEEPALIVE后才启动定时 器,是为了兼容不支持KEEPALIVE报文的服务器。只有收到过KEEPALIVE报文才启 动该功能。同样,在故障触发注册后,暂时关闭监控功能,直到再收到KEEPALIVE才 又启动监控。
权利要求
1.基于SIP的NAT映射保活方法,其特征在于,包括以下步骤a、SIP终端通过NAT设备向SIP服务器发起注册;NAT设备在所述SIP终端发起注 册时,保存所述SIP终端与NAT设备的映射关系;b、SIP服务器接收到所述SIP终端的注册后,周期性通过NAT设备向所述SIP终端 发送UDP类型的保活报文;C、所述SIP终端收到保活报文后,启动定时器;d、所述SIP终端监控接收到的报文,判断在定时器超时时间内是否接收到保活报 文,如是,则重置定时器,返回本步骤;如否,则触发SIP终端重新注册,并清除定时 器,返回步骤a。
2.如权利要求1所述基于SIP的NAT映射保活方法,其特征在于,所述保活报文中 仅携带保活周期信息;所述步骤c中,SIP终端收到保活报文后取得保活周期信息,并根据此保活周期信息 设置定时器的超时时间。
3.如权利要求2所述基于SIP的NAT映射保活方法,其特征在于,定时器的超时时间 设置为保活周期XN+偏移量,其中N为正整数,N的取值根据网络状态可动态调整。
4.如上述任意一项权利要求所述基于SIP的NAT映射保活方法,其特征在于,所述 保活报文为KEEPALIVE报文。
5.如上述任意一项权利要求所述基于SIP的NAT映射保活方法,其特征在于,所述 映射关系为SIP终端的私网地址和私网端口对应NAT设备的公网地址和公网端口的映射 关系。
6.基于SIP的NAT映射保活系统,包括SIP终端、NAT设备、SIP服务器,其特征在于,所述SIP终端,用于通过NAT设备向SIP服务器发起注册;未设置定时器的SIP终 端收到保活报文后,启动定时器,并监控接收到的报文;已设置了定时器的SIP终端收 到保活报文后,重置定时器,并监控接收到的报文;SIP终端判断在定时器超时时间内是 否接收到保活报文,如是,则重置定时器;如否,则触发SIP终端重新注册,并清除定 时器;所述NAT设备,用于在SIP终端向SIP服务器发起注册时,保存所述SIP终端与NAT 设备的映射关系;所述SIP服务器,用于SIP服务器接收到所述SIP终端的注册后,周期性通过NAT设 备向所述SIP终端发送UDP类型的保活报文。
7.如权利要求6所述基于SIP的NAT映射保活系统,其特征在于,所述保活报文中 仅携带保活周期信息;所述SIP终端,还用于收到保活报文后取得保活周期信息,并根据此保活周期信息设 置定时器的超时时间。
8.如权利要求7所述基于SIP的NAT映射保活系统,其特征在于,所述SIP终端将 定时器的超时时间设置为保活周期XN+偏移量,其中N为正整数,N的取值根据网络 状态动态调整。
9.如权利要求6、7或8所述基于SIP的NAT映射保活系统,其特征在于,所述保活 报文为KEEPALIVE报文。
10.如权利要求6、7或8所述所述基于SIP的NAT映射保活系统,其特征在于,所 述映射关系为SIP终端的私网地址和私网端口对应NAT设备的公网地址和公网端口的映射关系。
全文摘要
本发明提供一种较少网络消耗,并在NAT上映射被清除后能即时重新创建映射关系的NAT映射保活方法,以及实现该方法的系统。基于SIP的NAT映射保活方法,包括步骤a、SIP终端通过NAT设备向SIP服务器发起注册;NAT设备在所述SIP终端发起注册时,保存所述SIP终端与NAT设备的映射关系;b、SIP服务器接收到所述SIP终端的注册后,周期性通过NAT设备向所述SIP终端发送UDP类型的保活报文;c、所述SIP终端收到保活报文后,启动定时器;d、所述SIP终端判断在定时器超时时间内是否接收到保活报文,如是,则重置定时器,返回本步骤;如否,则触发SIP终端重新注册,并清除定时器,返回步骤a。
文档编号H04L29/06GK102014176SQ20101058543
公开日2011年4月13日 申请日期2010年12月13日 优先权日2010年12月13日
发明者张华洪 申请人:迈普通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1