CN102014176A - 基于sip的nat映射保活方法及其系统 - Google Patents
基于sip的nat映射保活方法及其系统 Download PDFInfo
- Publication number
- CN102014176A CN102014176A CN2010105854344A CN201010585434A CN102014176A CN 102014176 A CN102014176 A CN 102014176A CN 2010105854344 A CN2010105854344 A CN 2010105854344A CN 201010585434 A CN201010585434 A CN 201010585434A CN 102014176 A CN102014176 A CN 102014176A
- Authority
- CN
- China
- Prior art keywords
- sip
- keep
- sip terminal
- nat
- timer
- 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
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种较少网络消耗,并在NAT上映射被清除后能即时重新创建映射关系的NAT映射保活方法,以及实现该方法的系统。基于SIP的NAT映射保活方法,包括步骤:a、SIP终端通过NAT设备向SIP服务器发起注册;NAT设备在所述SIP终端发起注册时,保存所述SIP终端与NAT设备的映射关系;b、SIP服务器接收到所述SIP终端的注册后,周期性通过NAT设备向所述SIP终端发送UDP类型的保活报文;c、所述SIP终端收到保活报文后,启动定时器;d、所述SIP终端判断在定时器超时时间内是否接收到保活报文,如是,则重置定时器,返回本步骤;如否,则触发SIP终端重新注册,并清除定时器,返回步骤a。
Description
技术领域
本技术方案涉及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终端收到保活报文后,启动定时器;
d、所述SIP终端判断在定时器超时时间内是否接收到保活报文,如是,则重置定时器,返回本步骤;如否,则触发SIP终端重新注册,并清除定时器,返回步骤a。
首先,本发明采用UDP类型的保活报文,相比SIP报文,UDP报文数据量小,就算SIP服务器同时向多个SIP终端发送此报文,也不会对SIP服务器的性能产生太大影响。并且,通过定时器超时来触发SIP终端注册,能最大限度减少故障时间,使得NAT设备的映射关系能在短时间内重新建立。如果SIP终端注册后从来没有收到过保活报文,则说明不需要保活,该终端也不会启动定时器。
进一步的,所述保活报文中仅携带保活周期信息;所述步骤c中,SIP终端收到保活报文后取得保活周期信息,并根据此保活周期信息设置定时器的超时时间。
进一步的,定时器的超时时间设置为:保活周期×N+偏移量,其中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映射中公网地址和公网端口,然后返回200OK消息。这样,在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终端启动定时器,关于定时器的超时时间的设置为:(t×N+偏移量);这里需要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才又启动监控。
Claims (10)
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映射保活方法,其特征在于,定时器的超时时间设置为:保活周期×N+偏移量,其中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终端将定时器的超时时间设置为:保活周期×N+偏移量,其中N为正整数,N的取值根据网络状态动态调整。
9.如权利要求6、7或8所述基于SIP的NAT映射保活系统,其特征在于,所述保活报文为KEEPALIVE报文。
10.如权利要求6、7或8所述所述基于SIP的NAT映射保活系统,其特征在于,所述映射关系为SIP终端的私网地址和私网端口对应NAT设备的公网地址和公网端口的映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010585434 CN102014176B (zh) | 2010-12-13 | 2010-12-13 | 基于sip的nat映射保活方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010585434 CN102014176B (zh) | 2010-12-13 | 2010-12-13 | 基于sip的nat映射保活方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102014176A true CN102014176A (zh) | 2011-04-13 |
CN102014176B CN102014176B (zh) | 2013-09-04 |
Family
ID=43844183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010585434 Active CN102014176B (zh) | 2010-12-13 | 2010-12-13 | 基于sip的nat映射保活方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102014176B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012109865A1 (zh) * | 2011-07-30 | 2012-08-23 | 华为技术有限公司 | 私网与网外客户端之间呼叫的nat处理方法、设备和系统 |
CN102917082A (zh) * | 2012-10-10 | 2013-02-06 | 青岛海信传媒网络技术有限公司 | 穿透网络地址转换的消息推送方法及系统 |
WO2013181942A1 (zh) * | 2012-06-06 | 2013-12-12 | 华为技术有限公司 | 一种终端注册的方法、设备和系统 |
CN103546389A (zh) * | 2012-07-09 | 2014-01-29 | 中国电信股份有限公司 | 降低stun服务器负载的方法、装置和系统 |
CN104735753A (zh) * | 2013-12-20 | 2015-06-24 | 华为技术有限公司 | 通信方法、用户设备和网络侧设备 |
CN109802970A (zh) * | 2019-02-28 | 2019-05-24 | 迈普通信技术股份有限公司 | 一种报文传输方法、装置、电子设备及计算机介质 |
WO2019129201A1 (en) * | 2017-12-29 | 2019-07-04 | Huawei Technologies Co., Ltd. | Session management for communications between a device and a dtls server |
CN115499409A (zh) * | 2022-09-29 | 2022-12-20 | 阿里巴巴(中国)有限公司 | Nat网关、服务器和网络系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002103981A2 (en) * | 2001-06-14 | 2002-12-27 | Nortel Networks Limited | Providing telephony services to terminals behind a firewall and/or network address translator |
CN1946062A (zh) * | 2006-10-10 | 2007-04-11 | 华为数字技术有限公司 | 保活nat设备中会话表项的方法和系统 |
CN101026567A (zh) * | 2007-01-29 | 2007-08-29 | 华为技术有限公司 | 地址转发表项的保活方法及系统 |
-
2010
- 2010-12-13 CN CN 201010585434 patent/CN102014176B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002103981A2 (en) * | 2001-06-14 | 2002-12-27 | Nortel Networks Limited | Providing telephony services to terminals behind a firewall and/or network address translator |
CN1946062A (zh) * | 2006-10-10 | 2007-04-11 | 华为数字技术有限公司 | 保活nat设备中会话表项的方法和系统 |
CN101026567A (zh) * | 2007-01-29 | 2007-08-29 | 华为技术有限公司 | 地址转发表项的保活方法及系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012109865A1 (zh) * | 2011-07-30 | 2012-08-23 | 华为技术有限公司 | 私网与网外客户端之间呼叫的nat处理方法、设备和系统 |
CN103476106B (zh) * | 2012-06-06 | 2017-05-10 | 华为技术有限公司 | 一种终端注册的方法、设备和系统 |
WO2013181942A1 (zh) * | 2012-06-06 | 2013-12-12 | 华为技术有限公司 | 一种终端注册的方法、设备和系统 |
CN103476106A (zh) * | 2012-06-06 | 2013-12-25 | 华为技术有限公司 | 一种终端注册的方法、设备和系统 |
US9622205B2 (en) | 2012-06-06 | 2017-04-11 | Huawei Technologies Co., Ltd. | Terminal registration method, device, and system |
CN103546389A (zh) * | 2012-07-09 | 2014-01-29 | 中国电信股份有限公司 | 降低stun服务器负载的方法、装置和系统 |
CN103546389B (zh) * | 2012-07-09 | 2017-02-15 | 中国电信股份有限公司 | 降低stun服务器负载的方法、装置和系统 |
CN102917082B (zh) * | 2012-10-10 | 2016-03-23 | 青岛海信传媒网络技术有限公司 | 穿透网络地址转换的消息推送方法及系统 |
CN102917082A (zh) * | 2012-10-10 | 2013-02-06 | 青岛海信传媒网络技术有限公司 | 穿透网络地址转换的消息推送方法及系统 |
CN104735753A (zh) * | 2013-12-20 | 2015-06-24 | 华为技术有限公司 | 通信方法、用户设备和网络侧设备 |
WO2019129201A1 (en) * | 2017-12-29 | 2019-07-04 | Huawei Technologies Co., Ltd. | Session management for communications between a device and a dtls server |
CN109802970A (zh) * | 2019-02-28 | 2019-05-24 | 迈普通信技术股份有限公司 | 一种报文传输方法、装置、电子设备及计算机介质 |
CN109802970B (zh) * | 2019-02-28 | 2021-05-18 | 迈普通信技术股份有限公司 | 一种报文传输方法、装置、电子设备及计算机介质 |
CN115499409A (zh) * | 2022-09-29 | 2022-12-20 | 阿里巴巴(中国)有限公司 | Nat网关、服务器和网络系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102014176B (zh) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102014176B (zh) | 基于sip的nat映射保活方法及其系统 | |
Cheshire et al. | Nat port mapping protocol (nat-pmp) | |
US8335853B2 (en) | Transparent recovery of transport connections using packet translation techniques | |
US7333492B2 (en) | Firewall proxy system and method | |
EP2051477B1 (fr) | Procédé de traversée d'équipement de traduction d'adresses pour messages de signalisation SIP par utilisation temporaire du protocole de transport TCP | |
US9054922B2 (en) | Discovering security devices located on a call path and extending bindings at those discovered security devices | |
CN100558081C (zh) | 地址转发表项的保活方法及系统 | |
JP2014241641A (ja) | セッション開始プロトコルアダプタ | |
CA2435699A1 (en) | Methods for discovering network address and port translators | |
CN103825868B (zh) | 一种本地语音逃生的方法、本地网关及系统 | |
CN103580880A (zh) | 一种快速通知cgn异常的方法、设备及系统 | |
US20150304276A1 (en) | Network address translation traversal system and method for real-time communications | |
US7907514B2 (en) | MGCP fallback mechanism enhancement | |
CN102821172B (zh) | Sip注册服务器地址的获得方法、设备及系统 | |
CN107707689B (zh) | 一种dhcp报文处理方法、dhcp服务器及网关设备 | |
EP2081347A1 (en) | A method, system and network entity for negotiating the session description protocol version and obtaining the session description protocol version information | |
CN1822599B (zh) | 会议发起协议服务器对终端在线状态的检测方法 | |
CN103618747A (zh) | 一种实现sip信息服务的方法及系统 | |
CN102316435B (zh) | 一种接入网络系统中用于更新用户设备p-cscf配置的方法及其装置 | |
CN114449051B (zh) | 一种数据包的传输方法以及通信设备 | |
US20070220082A1 (en) | Synchronization of event processing at a media gateway | |
Cheshire et al. | RFC 6886: Nat port mapping protocol (NAT-PMP) | |
KR100652984B1 (ko) | 계층적 sip 기반의 이동성 관리 시스템 및 방법 | |
CN105306621A (zh) | 一种基于应用层dns消息分割的dns包扩展方法 | |
CN108337331B (zh) | 网络穿透方法、装置、系统及网络连通性检查方法 |
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 |