專利名稱:保活nat設備中會話表項的方法和系統的制作方法
技術領域:
本發明涉及通訊技術領域,特別涉及一種保活NAT設備中會話表項的方法和系統。
背景技術:
IMS(IP Multimedia Subsystem,IP多媒體子系統)是3G移動網絡在3GPP(3rd GenerationPartnership Project,第三代移動通訊合作項目)的贊助下首先提出來的一種支持IP多媒體業務的技術,目前已經擴展到有線網絡中,成為固網和移動網絡的一個關鍵技術。它建立在SIP(Session Initiation Protocol,會話初始化協議)之上,SIP是基于IP的NGN(Next GenerationNetwork,下一代網絡)的通信控制的關鍵技術。IMS是和服務及應用相關的,它使電信公司、移動經營者和其他服務提供商能通過下一代包交換網絡來提供豐富的多媒體服務。參見圖1,在實際應用中,SIP一般是由位于私網下的IP網絡電話UE(User Equipment,用戶終端)通過NAT(Network Address Translation,網絡地址轉換)、A_BGF(Access Border GatewayFunction,接入邊界網關功能)等設備注冊到核心網P_CSCF(Proxy-Call Session ControlFunction,代理呼叫會話功能)上,注冊成功后得到一條注冊路徑UE-NAT-A_BGF-P_CSCF。由于NAT、A_BGF等均是基于流轉發的設備,這就決定了UE的注冊路徑的唯一性。因為涉及到NAT的穿越,所以如何保持注冊路徑的暢通顯得十分重要。
在NAT和A_BGF等流轉發設備存有多個用于流轉發的表項-session(會話)表項,轉發報文時需要先根據Key(索引)值(源IP地址、目的IP地址、源端口、目的端口以及協議號)來查找session表項,找到相應的session表項即命中session表項后,根據session表項中的目的IP地址再查找相應的FIB(Forwording Information Base,快速轉發表)表項得到出接口索引,查找相應的路由表得到下一跳信息,以及查找相應的ARP(Address ResolutionProtocol,地址解析協議)表項得到目的MAC地址,通過目的IP地址、出接口索引、下一跳信息和目的MAC(Media Access Control,介質訪問控制)地址來轉發報文。
Session表項中包含有aging_time(老化時間)和time_stamp(時間戳)。aging_time表示該session表項老化的時間;time_stamp是一個時間計數器,開始為0,以后會不斷增加;當time_stamp的值大于aging_time的時候,該session表項就會被刪除。
在用戶通話時間內,A_BGF和NAT設備中的session表項是否老化決定了整個注冊路徑是否暢通。在IMS系統中,由于A_BGF中的session表項可以由P_CSCF定時下發保活命令來保證該表項不被老化,所以如何保持NAT設備中的session表項在通話時間內不被老化就成為保持整個注冊路徑暢通的關鍵。
目前有兩種現有技術保持NAT設備中的session表項不被老化。
第一種是由私網IP網絡電話UE向P_CSCF發送重注冊報文,當報文命中NAT設備中的session表項后,刷新session表項中的time_stamp,使該表項在通話過程中不被老化,從而保持注冊路徑的暢通。
這種現有技術的缺點是無法改變IP網絡電話UE發送重注冊報文的時間,通常這個時間是由終端廠商設定的,一般在出廠時就設定好的,所以這個時間會跟據廠商配置的不同而不同,不同的產品由于性能不同而導致了其發送重注冊報文的時間也不同。
第二種是增加NAT設備中session表項的aging_time,即延長session表項的老化時間,使老化時間大于用戶的通話時間,從而保證注冊路徑的暢通。
這種現有技術的缺點是如果把NAT設備中session表項的aging_time設定得很長,勢必會影響NAT設備的性能,而且也不能保證設定后的aging_time就一定比用戶的通話時間長。
發明內容
為了解決現有技術中由于NAT設備中的session表項老化導致UE注冊路徑不暢通的問題,本發明提供了一種保活NAT設備中會話表項的方法,具體包括以下步驟步驟AA_BGF設備根據原有的會話表項創建保活會話表項;步驟B所述A_BGF設備根據所述保活會話表項創建保活報文,并通過NAT設備向用戶終端發送所述保活報文;步驟C所述NAT設備接收到所述保活報文后,根據所述保活報文刷新所述NAT設備中的會話表項。
所述步驟A具體包括步驟A1A_BGF設備讀取原有會話表項的索引值,并修改其中的源端口號得到新的索引值;步驟A2所述A_BGF設備根據所述新的索引值創建保活會話表項,并將所述保活會話表項中的目的IP地址設為與原有會話表項中的目的IP地址相同的IP地址。
所述步驟A具體包括
步驟A1A_BGF設備從P_CSCF發來的保活命令中獲取索引值,并修改其中的源端口號得到新的索引值;步驟A2所述A_BGF設備根據所述新的索引值創建保活會話表項,并將所述保活會話表項中的目的IP地址設為與原有會話表項中的目的IP地址相同的IP地址。
所述步驟B中的所述A_BGF設備根據所述保活會話表項創建保活報文的步驟具體為所述A_BGF設備根據所述保活會話表項中的目的IP地址查找相應的FIB表項得到出接口索引,查找相應的路由表得到下一跳信息,查找相應的ARP表項得到目的MAC地址,然后根據所述目的IP地址、出接口索引、下一跳信息以及目的MAC地址創建保活報文。
所述步驟B中通過NAT設備向用戶終端發送所述保活報文的步驟具體為定時通過NAT設備向用戶終端發送所述保活報文。
所述步驟C具體為所述NAT設備接收到所述保活報文后,根據所述保活報文查找到相應的會話表項,將所述會話表項中的時間戳置為0。
所述方法還包括所述A_BGF設備定時刷新所述保活會話表項的步驟。
本發明還提供了一種保活NAT設備中會話表項的系統,具體包括A_BGF設備和NAT設備,所述A_BGF設備包括(1)表項創建模塊,用于根據所述A_BGF設備中原有的會話表項創建保活會話表項;(2)報文創建模塊,用于根據所述表項創建模塊創建的保活會話表項創建保活報文;(3)發送模塊,用于通過所述NAT設備向用戶終端發送所述報文創建模塊創建的保活報文;所述NAT設備包括(1)接收模塊,用于接收所述發送模塊發來的保活報文;(2)刷新模塊,用于根據所述接收模塊收到的保活報文刷新所述NAT設備中的相應會話表項。
所述表項創建模塊具體包括(1)索引值獲取單元,用于讀取所述A_BGF設備中原有會話表項的索引值,還用于修改其中的源端口號得到新的索引值;(2)表項創建單元,用于根據所述索引值獲取單元生成的新索引值創建保活會話表項;(3)IP地址設置單元,用于將所述表項創建單元創建的保活會話表項中的目的IP地址設為與所述A_BGF設備原有會話表項中的目的IP地址相同的IP地址。
所述表項創建模塊具體包括(1)索引值獲取單元,用于從P_CSCF發來的保活命令中獲取索引值,還用于修改其中的源端口號得到新的索引值;(2)表項創建單元,用于根據所述索引值獲取單元生成的新索引值創建保活會話表項;(3)IP地址設置單元,用于將所述表項創建單元創建的保活會話表項中的目的IP地址設為與所述A_BGF設備原有會話表項中的目的IP地址相同的IP地址。
所述發送模塊具體為定時發送模塊,用于定時通過所述NAT設備向用戶終端發送所述報文創建模塊創建的保活報文。
所述A_BGF設備還包括刷新模塊,用于定時刷新所述表項創建模塊創建的保活會話表項。
本發明的有益效果是1、通過A_BGF向私網IP網絡電話UE發送hello(保活)報文,很好地解決了IMS系統中NAT設備session表項老化的問題,從而保證了私網IP網絡電話UE、NAT、A_BGF以及P_CSCF之間注冊路徑的暢通;2、在NAT設備的session表項老化之前,由A_BGF通過NAT設備向私網IP網絡電話UE發送Hello報文,避免了因為NAT設備session表項的老化而導致用戶通話中斷的情況發生。
圖1是現有技術中IMS組網的一種示意圖;圖2是本發明保活NAT設備中會話表項的方法一實施例的流程圖;圖3是本發明保活NAT設備中會話表項的系統一實施例的結構圖。
具體實施例方式
下面結合附圖和具體實施例對本發明作進一步說明,但不作為對本發明的限定。
在本發明中A_BGF設備首先根據原有的會話表項創建hello session(保活會話)表項,并根據hello session表項創建hello(保活)報文,然后通過NAT設備向私網IP網絡電話UE發送hello報文;NAT設備接收到hello報文后,根據該報文刷新NAT設備中相應的session表項,從而使NAT設備中的session表項不會老化。
參見圖2,本發明提供了一種保活NAT設備中會話表項的方法,具體包括以下步驟
步驟101A_BGF設備根據原有session表項來創建hello session表項,具體如下首先讀取原有session表項的key值,將源端口設置為0,其它的值(源IP地址、目的IP地址、目的端口和協議號)保留,從而形成新的key值,根據新的key值創建hello session表項;由于原有session表項的key值中源端口肯定不會為0,這樣新生成的hello session表項就能夠區別于A_BGF設備中原有的session表項;另外還將hello session表項中的目的IP地址設為與原有session表項中的目的IP地址相同的IP地址,此IP地址即私網UE的IP地址;上述A_BGF設備讀取原有session表項的key值的步驟可以由A_BGF設備從P_CSCF發來的保活命令中獲取索引值的步驟來替換;步驟102根據新生成的hello session表項來創建hello報文,具體如下首先根據hello session表項中的目的IP地址來查找相應的FIB表項得到出接口索引,查找相應的路由表項得到下一跳信息,再查找相應的ARP表項得到目的MAC地址,然后根據上述得到的出接口索引、下一跳以及目的MAC地址等信息構造出hello報文,并將hello報文中的目的IP地址設成hello session表項中的目的IP地址;步驟103A_BGF設備通過NAT設備為每個hello session表項發送一個hello報文給相應的私網IP網絡電話UE,即A_BGF設備會掃描所有session表項,當掃描到key值中源端口為0的session表項即hello session表項后,向該hello session表項中目的IP地址所對應的私網IP網絡電話UE發送一個hello報文;上述過程中還可以增加定時機制,即A_BGF設備會定時掃描所有session表項,具體可以由在A_BGF設備中設置一個計時器來實現,定時發送hello報文的時間為根據實際需要事先在A_BGF設備中指定;步驟104NAT設備收到hello報文后,根據該報文查找NAT中的session表項,命中相應的session表項后,修改該session表項中的time_stamp,將其置為0,從而防止NAT設備的session表項被老化。
在A_BGF設備中對新創建的hello session表項有一個刷新維護的過程,即每隔一定的時間就會對hello session表項進行掃描,掃描到某個hello session表項時,就會對該hello session表項進行刷新,即判斷該hello session表項中的當前time_stamp是否大于aging_time,如果大于,表明該hello session表項已經老化,則刪除該hello session表項;否則就將該hello session表項的time_stamp置為0,防止該hello session表項被老化。
參見圖3,本發明還提供了一種保活NAT設備中會話表項的系統,具體包括A_BGF設備和NAT設備,A_BGF設備包括
(1)表項創建模塊,用于根據A_BGF設備中原有的會話表項創建保活會話表項;(2)報文創建模塊,用于根據表項創建模塊創建的保活會話表項創建保活報文;(3)發送模塊,用于通過NAT設備向用戶終端發送報文創建模塊創建的保活報文;NAT設備包括(1)接收模塊,用于接收發送模塊發來的保活報文;(2)刷新模塊,用于根據接收模塊收到的保活報文刷新NAT設備中的相應會話表項。
當A_BGF設備從原有會話表項讀取索引值時,表項創建模塊具體包括(1)索引值獲取單元,用于讀取A_BGF設備中原有會話表項的索引值,還用于修改其中的源端口號得到新的索引值;(2)表項創建單元,用于根據索引值獲取單元生成的新索引值創建保活會話表項;(3)IP地址設置單元,用于將表項創建單元創建的保活會話表項中的目的IP地址設為與A_BGF設備原有會話表項中的目的IP地址相同的IP地址。
當A_BGF設備從P_CSCF發來的保活命令中獲取索引值時,表項創建模塊具體包括(1)索引值獲取單元,用于從P_CSCF發來的保活命令中獲取索引值,還用于修改其中的源端口號得到新的索引值;(2)表項創建單元,用于根據索引值獲取單元生成的新索引值創建保活會話表項;(3)IP地址設置單元,用于將表項創建單元創建的保活會話表項中的目的IP地址設為與A_BGF設備原有會話表項中的目的IP地址相同的IP地址。
當A_BGF設備定時發送保活報文時,發送模塊具體為定時發送模塊,用于定時通過所述NAT設備向用戶終端發送所述報文創建模塊創建的保活報文。
為了使創建的hello session表項自身能夠保活,A_BGF設備還包括刷新模塊,用于定時刷新表項創建模塊創建的保活會話表項。
以上所述的實施例,只是本發明較優選的具體實施方式
的一種,本領域的技術人員在本發明技術方案范圍內進行的通常變化和替換都應包含在本發明的保護范圍內。
權利要求
1.一種保活NAT設備中會話表項的方法,其特征在于,所述方法具體包括以下步驟步驟AA_BGF設備根據原有的會話表項創建保活會話表項;步驟B所述A_BGF設備根據所述保活會話表項創建保活報文,并通過NAT設備向用戶終端發送所述保活報文;步驟C所述NAT設備接收到所述保活報文后,根據所述保活報文刷新所述NAT設備中的會話表項。
2.根據權利要求1所述的保活NAT設備中會話表項的方法,其特征在于,所述步驟A具體包括步驟A1A_BGF設備讀取原有會話表項的索引值,并修改其中的源端口號得到新的索引值;步驟A2所述A_BGF設備根據所述新的索引值創建保活會話表項,并將所述保活會話表項中的目的IP地址設為與原有會話表項中的目的IP地址相同的IP地址。
3.根據權利要求1所述的保活NAT設備中會話表項的方法,其特征在于,所述步驟A具體包括步驟A1A_BGF設備從P_CSCF發來的保活命令中獲取索引值,并修改其中的源端口號得到新的索引值;步驟A2所述A_BGF設備根據所述新的索引值創建保活會話表項,并將所述保活會話表項中的目的IP地址設為與原有會話表項中的目的IP地址相同的IP地址。
4.根據權利要求1所述的保活NAT設備中會話表項的方法,其特征在于,所述步驟B中的所述A_BGF設備根據所述保活會話表項創建保活報文的步驟具體為所述A_BGF設備根據所述保活會話表項中的目的IP地址查找相應的FIB表項得到出接口索引,查找相應的路由表得到下一跳信息,查找相應的ARP表項得到目的MAC地址,然后根據所述目的IP地址、出接口索引、下一跳信息以及目的MAC地址創建保活報文。
5.根據權利要求1所述的保活NAT設備中會話表項的方法,其特征在于,所述步驟B中通過NAT設備向用戶終端發送所述保活報文的步驟具體為定時通過NAT設備向用戶終端發送所述保活報文。
6.根據權利要求1所述的保活NAT設備中會話表項的方法,其特征在于,所述步驟C具體為所述NAT設備接收到所述保活報文后,根據所述保活報文查找到相應的會話表項,將所述會話表項中的時間戳置為0。
7.根據權利要求1至6中任一權利要求所述的保活NAT設備中會話表項的方法,其特征在于,所述方法還包括所述A_BGF設備定時刷新所述保活會話表項的步驟。
8.一種保活NAT設備中會話表項的系統,其特征在于,所述系統具體包括A_BGF設備和NAT設備,所述A_BGF設備包括(1)表項創建模塊,用于根據所述A_BGF設備中原有的會話表項創建保活會話表項;(2)報文創建模塊,用于根據所述表項創建模塊創建的保活會話表項創建保活報文;(3)發送模塊,用于通過所述NAT設備向用戶終端發送所述報文創建模塊創建的保活報文;所述NAT設備包括(1)接收模塊,用于接收所述發送模塊發來的保活報文;(2)刷新模塊,用于根據所述接收模塊收到的保活報文刷新所述NAT設備中的相應會話表項。
9.根據權利要求8所述的保活NAT設備中會話表項的系統,其特征在于,所述表項創建模塊具體包括(1)索引值獲取單元,用于讀取所述A_BGF設備中原有會話表項的索引值,還用于修改其中的源端口號得到新的索引值;(2)表項創建單元,用于根據所述索引值獲取單元生成的新索引值創建保活會話表項;(3)IP地址設置單元,用于將所述表項創建單元創建的保活會話表項中的目的IP地址設為與所述A_BGF設備原有會話表項中的目的IP地址相同的IP地址。
10.根據權利要求8所述的保活NAT設備中會話表項的系統,其特征在于,所述表項創建模塊具體包括(1)索引值獲取單元,用于從P_CSCF發來的保活命令中獲取索引值,還用于修改其中的源端口號得到新的索引值;(2)表項創建單元,用于根據所述索引值獲取單元生成的新索引值創建保活會話表項;(3)IP地址設置單元,用于將所述表項創建單元創建的保活會話表項中的目的IP地址設為與所述A_BGF設備原有會話表項中的目的IP地址相同的IP地址。
11.根據權利要求8所述的保活NAT設備中會話表項的系統,其特征在于,所述發送模塊具體為定時發送模塊,用于定時通過所述NAT設備向用戶終端發送所述報文創建模塊創建的保活報文。
12.根據權利要求8至11中任一權利要求所述的保活NAT設備中會話表項的系統,其特征在于,所述A_BGF設備還包括刷新模塊,用于定時刷新所述表項創建模塊創建的保活會話表項。
全文摘要
本發明提供一種保活NAT設備中會話表項的方法和系統,屬于通訊技術領域。為了解決現有技術IMS系統中因NAT設備中的會話表項老化導致UE注冊路徑不暢通的問題,本發明提供了一種保活NAT設備中會話表項的方法,包括A BGF設備創建保活會話表項和保活報文,并發送給UE的步驟,以及NAT設備刷新會話表項的步驟;本發明還提供了一種保活NAT設備中會話表項的系統,包括A BGF設備和NAT設備。采用本發明的技術方案不僅解決了IMS系統中NAT設備會話表項老化的問題,還保證了UE、NAT、A BGF和P CSCF之間注冊路徑的暢通,而且避免了因NAT設備會話表項老化而導致用戶通話中斷的情況發生。
文檔編號H04L29/06GK1946062SQ20061014077
公開日2007年4月11日 申請日期2006年10月10日 優先權日2006年10月10日
發明者李巍 申請人:華為數字技術有限公司