摘要:
文章介紹了ip電話路由的一種新技術---TRIP,通過對TRIP體系框架、術語、元素、功能和協議提供的服務,以及協議實現中相關的路由數據、消息格式等的語法、語義的介紹,和對現在通訊產品中TRIP應用實例的分析,來闡述TRIP的優點和如何正確的使用它來解決當前IP電話路由一次定位的問題。
要害字:
TRIP,網關,IP電話,路由技術,軟交換
1 TRIP產生的背景
建立在Internet上的各種通訊已經成為當今社會信息化發展的主要通訊方式,非凡是IP電話漸漸將成為語音通訊的主流產品,IP電話用戶的不斷增加和IP網絡的膨脹式的擴大,帶動著越來越多的不同廠商、不同功能IP電話通訊網關(Gateway)的共存和使用,隨著其數量和使用率的提增,它們的工作機制和人們對其的治理也越來越復雜,其中最困難的問題就是IP電話的網關定位問題,也就是一個呼叫設備對另一個IP終端電話進行呼叫時的網關選擇、網關發現和網關路由問題等等。
在對網關的選擇過程中,往往要受到可選網關數量、不同運應商之間的運營策略、終端用戶的需求、網關容量和網關之間協議屬性的兼容性等等方面因素的制約,因此為了全球的互通,IP電話網絡不可能建立在一個全球性"網關目錄"(Directory of Gateways)之上,即使建立了這個"網關目錄",其信息的動態、實時更新和維護也不是一件輕易的事情。
為此,一種分布式的建立在不同國家、不同地域、不同運應商、不同網絡上的路由信息和這些信息可以相互廣播、自動同步、友好共享(基于策略)的IP電話路由信息操作機制的建立就很有必要,于是TRIP協議便應運而生,TRIP協議就是這種機制的協調和治理規則的集合,它答應每個網關資源的治理者根據不同的策略建立自己的本地可用網關數據庫,然后按照不同的策略進行數據庫之間不同網關信息的聚合、廣播、交換和共享,---首先使這些信息在本地對自己可用,然后再把這些信息按照一定策略傳播給、同步給其它供給商,這些數據庫中的網關信息供信令服務器、軟交換設備和其它用戶直接查詢使用。
在下一代網絡技術(NGN)已經到來的今天,TRIP協議已經被國內外通訊廠商普遍認同的一種必不可少的路由協議。
2 協議描述
準確地說Trip(Telephony Routing over IP)并不是一個協議,而是本文要描述的被收集、被聚合、被廣播和被治理的內容------IP電話路由,為了直觀地理解其被操作的過程和這些過程中所遵循的規則,人們也就把它稱為TRIP協議。
2.1 TRIP的功能和要解決的問題
在介紹TRIP的功能前,先介紹TRIP中用到的幾個專業術語,這些術語所對應實體的功能分別在后面有具體描述。
網 關(Gateway): 連接電路交換網絡和IP網絡的一種設備,其能發起和結束IP電話信令協議和電話網絡信令協議。
區域服務器(Location Server --LS)): 一個具有IP連接性的邏輯設備,它可以知道那些網關可用于結束對GSTN的呼叫,它是參與TRIP功能的主要功能實體,也是端用戶完成與電話網絡呼叫的聯系點,它也負責向其它LS傳播網關信息。
Internet電話治理域(Internet Telephony Administrative Domain --ITAD)): 單個治理機構控制下的資源集合(包括網關、區域服務器)。
提供者(PRovider): Internet電話治理域(ITAD)的治理員。
區域服務器策略(Location Server Policy): 區域服務器處理通過TRIP發送和接收信息的一系列規則集合,包括聚集、傳播、產生和接收所有網關信息的規則。
電話路由信息庫(Telephony Routing Information Base--TRIB): LS建立的網關數據庫,用于保存TRIP的參與結果。
2.1.1 TRIP的功能
TRIP協議是不同治理域之間進行IP電話網關路由信息交換的一個專用協議,它是獨立于任何信令協議的一種協議,其主要的功能如下:
● 建立和維護路由信息提供者之間的對等關系。
● 交換和同步提供者之間的電話網關路由信息。
● 防止穩定路由的循環。
● 以及時的和可擴展的方式廣播已知的網關路由信息。
● 定義和描述電路網關路由數據的語法、語義和路由信息傳送的規則。
2.1.2 TRIP要解決的問題
TRIP協議,其解決的主要問題就是IP電話的網關路由問題,從一個較高的角度來看,就是解決映射問題---給定一個電話號碼映射出一個電話網關的IP地址,也可以簡單的稱為"電話號碼到IP地址轉換問題"。通常,我們碰到電話號碼與IP地址轉換的情況很多,只有"給定一個電路交換網絡的用戶電話號碼,判定能夠完成對其進行呼叫的網關的IP地址"是TRIP協議要解決的問題,只有它才真正的涉及到一個呼叫設備和另一個應答設備之間的信令信息在IP網絡上傳輸時必須進行IP網關路由的層層選擇,因此TRIP協議解決的是電話號碼與IP地址轉換的問題,但是并不是所有IP與地址轉換的問題它都解決。
2.2 TRIP與目前IP電話路由協議的區別
TRIP可歸類為一種域間路由協議,目前用到的域間路由協議很多,如BGP-4、OSPF、SCSP等,由于TRIP出現較晚,因此其吸取了這些"先輩"的很多優點,如它具有與BGP-4類似的格式與屬性,使用了BGP的域間傳輸機制、對等通信、有限狀態機制等特性,同時,TRIP又象OSPF、、SCSP協議一樣具有一些增強的連接狀態特性,如域內溢出機制(Intra-domain flooding mechanism)等等。
但是它與這些已經存在的域間路由協議有很大的區別,由于BGP-4協議目前使用較廣,因此在此只對TRIP協議和BGP-4兩種域間治理協議進行比較:
● TRIP運行在應用層,而不象BGP-4運行在網絡層。
● TRIP運行和存在于許多中間網絡和IP服務提供者的服務器(即LS)之間,而BGP-4則在鄰近的路由器之間。
● TRIP的對等體之間交換的信息描述了到應用層網關設備的路由信息,而BGP-4描述的卻是IP路由信息。
● TRIP假定存在底層的IP傳輸網絡,這意味著交換TRIP路由信息的服務器不需要轉發信息路由的信令消息。而在BGP-4中卻非如此,對等體(路由器)必須作為IP包的轉發點(或為一個相鄰前轉點)。
● TRIP的目的不是建立跨ITAD的全球性連接,它對很多通過TRIP互通的相對獨立區域(如平行關系的省、市、縣級電訊網絡)尤其合適,每個區域在治理關系上都是相對封閉的一個集合,而且每個區域都可以與全球的GSTN有完全的互通。這同BGP-4形成了鮮明對比,BGP的目標是通過Internet對全球進行互連互通,假如由于BGP-4斷連,一個AS就會從其他中分離出來,則它們之間就沒有任何IP網絡連接了。
● 由于TRIP位于應用層,而不是網絡層,因此TRIP描述的網關路由信息要比BGP-4所描述的IP路由信息要復雜得多,而且這些信息的描述參數也多的多。
● BGP-4交換的是代表IP命名空間部分的前綴,而TRIP交換的是電話號碼區間,這個區間表示的是GSTN號碼空間的一部分,因此兩種命名空間的組織和層次均不相同。
以上的區別說明TRIP與BGP-4之間真是"青出于藍而勝于藍",在功能上二者雖有相近之處,但二者在功能定位和存在的先進性方面已是不可同日而語了。
2.3 TRIP的體系結構
圖1給出了TRIP的體系結構。
網絡上有許多ITAD,每個ITAD至少有一個LS,這些LS,通過稱為域內協議的帶外方式了解自己域內網關的信息。圖中ITAD1的域內協議用GW和LS元素之間的連線(黑色線)表示。
圖中的紅線是TRIP協議控制下的各個域中網關路由信息在LS之間被聚合、被交換、被廣播、被同步的路徑。各個ITAD治理者首先簽訂適用于交互網關信息的TRIP協議,然后通過治理手段建立起這些信息共享的聯合體,一個域中的LS同其它域中的LS都成為聯合體的一員,于是這些LS通過這種方式就可以交換網關信息了。在圖中,ITAD1的LS1與ITAD2的LS1相連,ITAD2的LS2又依次與ITAD3的LS1相連通,通過TRIP協議,ITAD2的LS2就可以了解ITAD1上的兩個網關,這兩個網關的網關路由信息就可以由ITAD2的終端用戶通過其前端(front-end)進行訪問。在ITAD3中,既有終端用戶,又有網關,ITAD3的LS1通過ITAD2上LS2已經聚合后的廣播消息來了解ITAD1上的網關。
圖1: TRIP體系結構圖
2.4 TRIP的構成要素
圖1中TRIP的體系結構中包括下列元素:ITAD、端用戶、網關、LS和策略,這些因素也是TRIP協議的主要構成,下面分別予以描述。
2.4.1 ITAD
一個ITAD由LS(至少一個)、網關(零個或多個)和終端用戶(零個或多個)組成。網關和LS是在單一授權組織的專門治理之下的。這意味只有一個組織負責制訂策略和配置網關和LS。
一個ITAD不同于一個自治系統(AS),AS描述物理上連接的網絡,而ITAD可以由完全不同的網絡上的元素組成,甚至在不同的AS治理之下。
一個IT治理域中的EU是本ITAD中一個有效客戶,它們希望完成通向電話網的呼叫,并且需要訪問網關。在一次呼叫中,EU可以是一個ITAD的客戶,在下一次呼叫中又是另一個ITAD的客戶。
一個ITAD可以沒有網關,在這種情況下,它的LS就通過TRIP協議來獲取別的域中的網關信息,而且讓這些網關信息對自己域中EU可用,在這種情況下,這個IT 治理域就成了一個虛擬的IP電話網關提供者了,因為它提供了網關服務,但是它自己實際又沒有網關和治理任何網關。一個IT治理域也可以沒有端用戶,這時它可以提供"批發"網關的服務,為其他ITAD里的顧客提供網關服務;一個IT治理域可以既沒有網關也沒有端用戶,只有LS,在這種情況下,ITAD充當一個批發商(Reseller),獲取其它域的網關信息,而且收集和傳播這些信息對其它有用戶的ITAD。
2.4.2 局域服務器(LS)
LS是TRIP的主要功能實體,它是一個可供訪問網關服務器的邏輯設備,這個服務器叫做電話路由信息庫(TRIB),這個信息庫由本地可用的網關集合和建立在策略之上的遠程網關合起來構成,LS也輸出所在ITAD域的網關集合給其他ITAD中的對等LS,輸出的網關集合就是TRIB,當然這種輸出也是策略控制下的行為,這樣,策略在LS操作中扮演了一個中心控制角色,這個信息流程表示如圖2:
構建在LS上的TRIB協議答應它決定IP電話呼叫路由,當一個發往電話網地址的信令消息到達信令服務器時,LS的數據庫提供的信息可幫助它判定將信令消息轉發給哪一個網關或附加信令服務器,基于這個原因,LS可與信號服務器合二為一,假如不在一起,則他們之間需要另外的一些通信方法,盡管TRIP可以為這些通訊尋址,這并不是由TRIP進行的。
要想完成TRIP的功能,則ITAD中至少得有一個LS,當然假如為了負載平衡、治理方便或者其他的一些需要,ITAD可以有多個LS,這時,為了實現TRIB信息同步和共享其他外部對等LS的信息,在這些LS之間也要進行一些通信,通常這種通信作為域間協議的內部功能之一,TRIP就包含這樣的功能。
圖2顯示了一個LS通過內部域協議的途徑獲取了所在ITAD內網關,其實內部域協議并不必一定要存在,因為一個LS在不知道本地網關信息或通過靜態配置知道本地網關信息的情況下都可以工作。
2.4.3 網關
一個網關是一種具備IP連通性,且可與其它很多網絡(通常為公用、私用的電話網絡)連通的邏輯設備,網關的功能是將一個網絡的媒體和信令協議轉換為另一種網絡傳輸媒體和信令協議、為本系統中的用戶完成一個透明連接服務。
一個網關有很多描述的屬性,這些屬性中最基本的就是電話號碼段,這個號碼段又被拆分為子范圍段,而且這些子范圍段之間相互聯系,另外網關還有如:信令協議支持、電話特性支持、語音解碼和加密技術等等,但這些屬性并不是TRIP都能用到。
2.4.4 端用戶
端用戶通常是一個希望通過網關完成從IP網到電話網終端呼叫的實體(通常是人)。終端用戶可以是登錄到有Internet電話軟件的PC機的用戶,也可以是通過入口電話網關連接到IP網上的語音電話用戶。
當終端用戶完成一次到電話網呼叫時,他們或許知道,也可能不知道有電話路由服務正在運行,在終端用戶知道的情況下,他們可以選擇呼叫進行的一些的方式,如:必須支持的特征、質量度量、所有者或者治理者和費用等,但TRIP協議并不指示這些選擇如何與提供者結合起來去進行最終的網關選擇,TRIP也不支持把這些選擇傳送給本地的LS,這種傳送可以用前端來完成,或者通過一些無協議的方式完成,圖3所示了EU通過前端來訪問TRIB的過程:
圖3 EU訪問TRIB的過程圖
2.4.5 TRIP要素之間的關系
● 網關和LS之間
網關必須以某種方式向同一個ITAD內的LS傳遞(包括人工配置方式)它的特征信息。LS可以進一步通過TRIP將這些信息傳播到ITAD外,則該LS稱為該網關的源LS。當LS不存在時,網關信息的對外傳播就不屬于TRIP的功能范疇,而是由其它的為域內協議(Intra-Domain Protocol)來完成的,如SLP、LADP協議或者通過SIP或H.323的注冊過程來實現。
● LS和LS之間
LS之間的交互是TRIP的核心功能,同一個ITAD中的LS通過TRIP協議來同步它們之間的信息,不同的ITAD之間根據策略用TRIP來交換它們之間網關信息,前者的LS作為內部對等體,后者的為外部對等體。
LS之間通過它們的可靠連接來相互通訊,一個LS可能和一個或多個LS相連接,這些LS不需要在物理位置上彼此鄰近,也不需要都是位于同一個自治系統中,一對LS之間的通訊通常是在被治理下建立起來的。但TRIP本身并不為對等的LS提供彼此自動搜索的功能,一般情況下LS間的關系都是先配置后使用的,雖然在一個LS出現故障(Crash)時,這樣的自動搜索功能對其尋找后備的LS很有用,當然是否使用這種自動搜索的功能應由治理員決定。
LS之間交換的信息是一組路由對象的集合,每一個路由對象最小化地包含一個可到達的電話號碼段或一個IP地址,或是應用層上可訪問該網關上號碼段的用戶名稱;為了提高伸縮性和信息交互傳輸的利用率,這些路由對象在被傳播之前都可以合并為較大、或更大的集合,這個過程稱為聚合,聚合在TRIP中起著很重要的作用,但是TRIP路由對象和對象中信息越多,完成聚合過程就越困難,因此在制訂策時應該權衡聚合和信息冗長之間的得與失。
控制網關信息產生、傳播、接受的規則稱為LS策略,它也是TRIP的構成要素,但是TRIP并沒有對它做嚴格的規定,協議本身也沒有提出要求什么特定策略。
2.5 TRIP的安全和對策
安全是TRIP重要的一部分,TRIP模式假設對等的LS之間交換信息是相互信任的一種機制,這些被傳播的信息決定著呼叫的路由,假如這些信息不正確,可能導致呼叫被指定錯誤的路由,也可能使得本該被拒絕的業務對系統造成攻擊,同時一旦這些錯誤信息被傳送給其它的ITAD,就可能導致這些問題被無限蔓延,因此對等LS相互之間必須支持一定策略的安全認證。
TRIP消息也包含著敏感的信息,這些消息可能表示著一個ITAD的路由容量等,假如被競爭對手截獲,他們可以輕易地分析出ITAD的網絡拓撲結構、網絡容量,甚至整個域的信息流規律等,因此TRIP中也支持對信息的加密。
對TRIP的安全問題的解決方法,協議本身沒有具體規定如何解決,根據經驗,我個人建議方法是:
支持IPsec,在交互的對等實體間的進行身份認證。
RS注冊審核措施,對所有授權訪問本地TRIP的LS在本地進行預注冊登記,凡是通過OPEN請求與本LS建立連接的LS,首先判定是否注冊登記。
注冊RS的權限認證措施,對在本地已經注冊的RS,在其向本地LS發送UPDATE請求時,判定其操作的權限。
借鑒SNMPv2的特性,對TRIB按照不同的LS請求者進行分MIB-View操作。
2.6 TRIP的存在的模式
TRIP是用于廣播、交換、同步IP電話路由的協議,但其并沒有規定提供者之間的以什么樣的關系結構存在,因此針對IP電話用例的TRIP應用也就有很多種不同的模式,下面介紹其中常見的三種:
2.6.1 中心交換模式
一個中心交換點(Clearinghouse)是很多不同的提供者之間充當交換信息角色的提供者,它也是交換點的一部分。每一個成員(提供者)在中心交換點上都有注冊。作為協議的一部分,每個成員都使自己的網關信息對本中心交換點中的其它成員可用。在交換中,成員都有權限去訪問本中心交換點中屬于其它成員的網關信息。當屬于一個成員的網關發起一個呼叫時,這個中心交換點在確定由哪個成員結束這個呼叫時發揮著一個很要害的作用,其結構如圖4。
圖中有六個成員的群,成員從M1到M6。每個成員運用TRIP向中心交換點發送和從接收網關路由信息,TRIP在這兒被用做成員與中心交換點間交換路由信息的工具。
2.6.2 聯合體模式
我們將視這樣一組供給商為一個聯合體---他們彼此之間遵循以全交叉方式共享網關的協議,而不用通過中心clearinghouse。這樣的配置見圖5所示,每對LS之間都運行著TRIP。
2.6.3 網關轉發商模式
在這個應用模式中,有很多大容量的電話網關提供者,這每個提供者都要把自己的網關服務信息轉發(Resells)給其它中等容量的提供者,依次這樣再轉發(Resells)給本地的提供者,這些本地提供者直接把電話網關的信息提供(Sell)給最終設備(用戶),圖6表示了這種有效的金字塔結構關系。
在這個例子中,M1的網關信息轉發給M2、M3,M2、M3有依次轉發給M4、M5、M6,M5提供者轉發從M2和M3上來的網關信息。
3 TRIP的實現
3.1 TRIB的構成
TRIP協議交換的路由信息由外部路由(External routes)、內部路由(Internal routes)和本地路由(Local routes)三種類型組成,為了直觀的描述TRIB的構成關系,TRIP協議從路由選擇的角度把LS中的TRIB分成以下四個構成部分,這四個部分實際上是由以上三種類型的路由內容構成:
Adj-TRIBs-In:稱為臨近可選TRIB,其內容是從UPDATE消息中獲取的域內、域外LS上的路由信息,這些路由信息是當前路由選擇中的可以使用的輸入路由信息,
Ext-TRIB:稱為外部TRIB,其內容是LS根據一定的路由選擇運算法則,從外部路由(存儲在外部LS的Adj-TRIBs-In中)和本地路由(存儲在本地LS的Adj-TRIBs-In中),為一個給定目的地址選擇的最佳的路由,每個LS只有一個Ext-TRIB。
Loc-TRIB:稱為本地TRIB,其內容是LS運用其內部策略從內部LS的Adj-TRIBs-In和Ext-TRIB中選擇出來的TRIP路由信息。
Adj-TRIBs-Out:稱為臨近輸出TRIB,其內容是LS預備廣播給外部LS的路由信息,它的內容將攜帶在UPDATE消息中對外廣播。
這幾部分的關系如下圖7:

雖然TRIB由以上的四個部分構成,但這并不意味也并不要求一個路由選擇過程的完成必須要保留這四個每一個的單獨備份,其選擇并不拘泥于協議的劃分,有些路由選擇過程可能要用到一個TRIB,有時可能要用到多個,甚至在TRIP-MIB庫設計中大家并不一定能意識其的單獨存在,這根據具體需要而定。
關于TRIB標準定義的RFC至今還沒有出臺,只有討論性的草案,因此TRIB內容的具體表示只能暫時參考這些草案(draft-ietf-iptel-trip-mib-01.txt)。
3.2 路由消息的格式
TRIP的消息必須建立在可靠傳輸協議的連接上,即只能是TCP/IP連接,且使用的TCP連接端口為6069,一個消息必須而且只能在全部接收結束后才能開始進行處理,TRIP消息的最大長度是4K(4096)個字節,最短長度是只包含消息頭部分的3個字節,大于4K個字節和小于3個字節長度的消息都屬于無效的TRIP消息。
3.2.1 消息頭格式
TRIP消息有固定的頭格式(共3個字節長),它決定了TRIP消息的類型,如圖8:

前兩個字節標明了這個TRIP消息的總長度,這個長度也包括消息頭的長度,最大值為4096,最小值為3;消息類別標明了本次TRIP消息的類型,取值范圍是1~4,表示的意義如下:
1 - 當前消息是OPEN消息,用于建立LS之間的對等連接關系。
2 - 當前消息是UPDATE消息,用于傳輸LS之間的網關路由信息。
3 - 當前消息是 NOTIFICATION消息,用于通知運行中出現的錯誤、故障狀態。
4 - 當前消息是KEEPALIVE消息,用于維護對等LS之間的連接關系處于活動狀態。
下面分別介紹OPEN、UPDATE、NOTIFICATION、KEEPALIVE四種TRIP消息和其所完成的TRIP、操作功能。
3.2.2 OPEN(打開)消息
對等的LS之間的TCP連接建立起來后,雙方發送的第一個消息就是OPEN消息,雙方在收到對方的OPEN消息后就返回一個KEEPALIVE消息,以確認OPEN消息發送和對等的LS之間TRIP會話建立成功,然后UPDATE、NOTIFICATION消息才可以進行發送。
OPEN消息的最短長度為17個字節(包括消息頭的三個字節),除去固定的消息頭外,OPEN消息格式和域內容如圖9:

其中:
Version:表示當前消息所支持的TRIP版本,現在的版本是V1。
Reserved:保留字。
Hold Time:表示所建立會話的最長壽命,單位為秒,其值要么為0,表示永遠存在,要么就取最小值為3秒。
My ITAD:當前發送者所在的ITAD的編號,這是由IANA組織分配的一個唯一值,1~255是協議的私有值,一般取值為從256 到 (2**32)-1中的一個,如SNMP中企業代碼一樣,不能隨便亂取。
TRIP Identifier:發送者在所在ITAD域中的唯一TRIP標識(序號),可以理解為在ITAD中每個LS的編號,其一旦確定就不能再修改,除非整個系統重新啟動。
Optional Parameters Len:表示了Optional Parameters (variable)List域的長度,單位為字節,假如為0,則表示本消息無操作參數。
Optional Parameters (variable) List:是OPEN消息要發送數據或變量值的具體列表,包括參數類型、參數長度、參數的值。
在當前的TRIP協議中,OPEN消息主要用來告訴對方LS自己所具備的TRIP操作能力,這種能力包括兩個方面:
所支持的路由類型(Parameter Type=1),雙方LS只能處理都支持的路由類型,假如收到了不能支持的路由類型,則立即丟棄不做進一步處理。
發送接收的能力(Parameter Type=2),這都是針對UPDATE消息而言的,包括只發送模式(Send Only mode)、只接收(Receive Only mode)和發送接收模式( Send Receive mode),一個LS任何時候對所有的對等LS只能處于一種模式,默認的是發送接收模式。在只發送模式下,一個LS只向其對等的LS發送UPDATE消息,對等的LS不必返回UPDATE消息,即使收到了返回的UPDATE消息,它也必須無條件丟棄;在只接收模式下,LS只能作為消極的UPDATE消息監聽和接收者,不能向發送者返回和發送任何UPDATE消息;在發送接收模式中,一個LS具備接收和發送UPDATE消息的全雙工功能。
3.2.3 UPDATE(更新)消息
UPDATE消息包中的數據勾勒出了多個ITAD之間的關系連接圖,它不僅用來廣播新增路由信息,也用來刪除、修改已經廣播出去的一些路由信息,而且這兩種操作可以同時進行。
除了TRIP消息固定的消息頭外,UPDATE消息體實際上是一個路由屬性列表,在屬性和屬性之間無其它的中間數據,其最短長度為三個字節,它的列表中屬性的數量可以為0,其消息的格式如圖10:
Attribute Flags
路由屬性標志是在不斷被擴展的,其目前的取值與TRIP協議的路由選擇、路由分發、路由聚合和路由的封裝等操作有著密切的關系,這個域共一個字節(8位),目前只用到了前5位,每位有不同的功能:
Bit 0, Well-Known Flag,是路由屬性是否可知標志。
Bit 1, Transitive Flag,是路由屬性不可知時是否傳送標志。
Bit 2, Dependent Flag,是路由屬性不可知時傳送依靠標志。
Bit 3, Partial Flag,是Transitive Flag標志信息是否代表局部標志。
Bit 4, Link-state Encapsulated Flag,連接狀態是否封裝標志。
Attribute Type Code
發送的路由屬性類型碼也是由IANA控制的,屬性類型碼的值決定了當前消息中所發送的路由信息的操作類型,屬性碼、屬性表示和其意義如下:
1:WithdrawnRoutes,給出要從當前服務中取消的路由。
2:ReachableRoutes,給出向當前服務中增加新的可用路由。
3:NextHopServer,給出消息發送所要經過的實體標識。
4:AdvertisementPath,給出了路由消息在不同的ITAD域間廣播的先后順序。
5:RoutedPath,給出了路由消息在不同的ITAD域間廣播的路徑。
6:AtomicAggregate,給出了實際存在但沒包括在RoutedPath中的廣播路由。
7:LocalPreference,向其它的LS告訴本地LS對給定路由的首選項。
8:MultiExitDisc,相鄰的域間的LS有多個對等LS的情況下,LS用這個屬性來表示其在域間的首選連接。
9:Communities,在把目的地址分組成團體名來簡化路由信息控制中用到的團體名稱。
10:ITAD Topology,向域內的其它LS給出本域的Topology結構。
12:ConvertedRoute,指出中間的LS通過改變路由應用協議的方式所改變的路由信息。
以上每一種的路由屬性在UPDATE消息中都有單獨的消息格式和數據結構特點,在此不再一一稱述。
Attribute Length和Attribute Value (variable)
為以上標志和屬性下路由數據的值長度和值。
UPDATE消息的處理、控制是一個很復雜的綜合過程,是TRIP的四種消息中的核心,也是路由信息廣播、同步操作的核心,這些過程主要包括路由信息的域內通知過程、路由選擇過程、域間路由信息廣播過程和各種策略的選擇、確定和運用過程等。
3.2.4 NOTIFICATION(通知)消息
當LS檢測到有某種故障、錯誤時,NOTIFICATION消息就產生和發送了,同時出現故障、錯誤的LS之間的TRIP會話就立即關閉。
除去TRIP固定的消息頭外,NOTIFICATION消息的格式如圖11,其最小的長度為5個字節。

在此消息格式中Error Code和Error Subcode的取值范圍為:
Error Code 錯誤類別和錯誤內容
1 Message Header Error(TRIP消息頭錯誤) ,對應的具體故障為:
Error Subcode=1 :Bad Message Length(錯誤的消息長度)
Error Subcode=2 :Bad Message Type(錯誤的消息類型)
2 OPEN Message Error(OPEN 消息錯誤),對應的具體故障為:
Error Subcode=1 :Unsupported Version Number.(錯誤的版本號)
Error Subcode=2 :Bad Peer ITAD(錯誤的ITAD編號)
Error Subcode=3 :Bad TRIP Identifier(錯誤TRIP標識)
Error Subcode=4 :Unsupported Optional Parameterr(錯誤TRIP標識)
Error Subcode=5 :Unacceptable Hold Time(消息有效時間不合適)
Error Subcode=6 :Unsupported Capability(無法支持的能力屬性)
Error Subcode=7 :Capability Mismatch(能力屬性不匹配)
3 UPDATE Message Error(UPDATE消息錯誤),對應的具體故障為:
Error Subcode=1 :Malformed Attribute List(奇形屬性列表)
Error Subcode=2 :Unrecognized Well-known Attribute(不可識別的Well-known屬性值)
Error Subcode=3 :Missing Well-known Mandatory Attribute(無Well-known強制屬性)
Error Subcode=4 :Attribute Flags Error(屬性標志錯誤)
Error Subcode=5 :Attribute Length Error(屬性長度錯誤)
Error Subcode=6 :Invalid Attribute(無效的屬性值)
4 Hold Timer EXPired(消息有效時間到)
5 Finite State Machine Error(有限狀態機錯誤)
6 Cease (碰到致命性錯誤,TRIP交互立即停止)
通知消息中數據值的長度的計算公式是:數據值長度 = 消息的總長度 - 5
3.2.5 KEEPALIVE(活)消息
KEEPALIVE消息是OPEN消息成功后的一個響應消息,它主要是為了告訴雙方LS它們之間已經建立的成功會話還處于活動狀態,以便進行UPDATE消息的交互,KEEPALIVE消息發送的時間間隔是自定義的,一般比較合理的最大間隔是OPEN消息中設定壽命值(Hold Time)的三分之一,假如壽命值為0,則不發送KEEPALIVE消息。
KEEPALIVE消息格式就是TRIP消息的格式,如圖8,其無單獨的消息格式和內容,只須標明消息類型值為4。
4 TRIP協議在目前通訊產品中的應用
TRIP協議是一種分布式的對建立在不同國家、不同地域、不同運應商、不同網絡上的路由信息進行相互廣播、自動同步、友好共享(基于策略)的操作機制;在IP電話網關定位問題的解決中,它比目前存在的其它任何路由治理、路由控制和域間治理協議都有優勢---它在繼續目前相關協議功能的基礎上,又在具體操作、安全方面汲取它們的優點,并對這些協議的已有特性進行了更有效地擴充和發展;其獨立于運營商關系的思想包容了所有運營商的不同商業策略,只要路由信息符合其定義的格式和遵循IANA的有關約定,它都能予以交換和傳遞,這使得全球不同開發商所開發系統的無縫互連和路由資源相互共享成為了可能。因此TRIP協議一經產生,其先進性就吸引了所有電訊技術開發商的目光,并為其推廣使用注進了動力!
4.1 SS8公司在Signaling Switch中應用TRIP協議的分析
SS8公司是美國硅谷的聞名電信軟件供給商,其目前的最新通訊產品信令交換機(Signaling Switch)中采用TRIP協議,實現了端到端的信令路由選擇和交換,如圖12:
(http://www.ss8.com/solutions/SignalingSwitch/applications.cfm )

在SS8的以上結構中,所有的SS8 Signaling Switch(包括SIP proxy server、Redirect server、Location server和Registration server)都充當TRIP中的LS,LS之間拓撲結構是TRIP中心交換模式和轉發模式的結合,這些LS通過自動廣播IP電話路由信息,來簡化全球IP電話信令網絡的生成和治理,而且擴展后的網絡路由結構還可以支持PSTN的電話號碼。
Signaling Switch通過網絡向其它信令點動態地、自動地廣播路由信息,當某處發生故障時,智能路由引擎會自動將所有受影響的路由從表中刪除,使用備份路由,并將變化向全網廣播,當故障修復后,受影響的路由將自動恢復,同時將變化向全網廣播。
4.2 ZTE公司的Softswitch中應用TRIP協議的分析
軟交換(Softswitch)體系結構是目前頗受推崇的面向網絡融合的新一代多媒體業務整體解決方案,它在繼續的基礎上對目前各個業務網絡(如PSTN/ISDN、PLMN、IN和Internet等)之間進行互通互融的思想是一個突破。ZTE(深圳中興通訊)公司是國內的一家聞名通訊設備供給商,在國內其率先開發出了自己的軟交換產品,而且其目前最新版本的軟交換產品就支持標準TRIP協議,---路由服務器(Route Server--RS)之間采用標準的TRIP協議來廣播、同步IP電話的Softswitch路由信息,這個RS實際上就是TRIP的LS。
ZTE的RS總體上采用一種分層的結構,它結合了TRIP存在模式中的轉發和聯合模式的特點,如圖13(http://www.zte.com.cn/Magazine_upload/ ):

在上圖中所有的Softswitch構成一個扁平的網絡結構,但是為Softswitch提供路由范圍的RS是金字塔式的分層結構的,所有的RS(片區RS群、主干RS群和國家級RS群)相互之間采用標準TRIP,片區的RS直接為地市級別的Softswitch提供路由服務,同一省內的片區RS群彼此之間、省際間的主干RS群之間、國家級的RS群之間通過TRIP來廣播、同步平級間的路由信息,以實現路由信息添、刪、改后最新路由信息的周知;
國家級的RS把聚合后的路由信息廣播、同步給國內省級的主干RS群,省級主干RS群把本地的路由信息和國家級路由信息進一步聚合后再一起向所轄片區的RS群進行廣播、同步。一個用戶要進行一次國際長途呼叫,首先發起地的SoftSwitch向本地的片區RS請求路由信息,這樣本地的RS根據上級層層廣播的聚合路由信息就可以一次定位到應答方所在的國家級RS。
ZTE的RS之間TRIP的應用中,一個域中可以有多個RS(LS),有的RS專門向SoftSwitch提供路由服務,有的專門進行路由信息的對外廣播和接受、治理外部廣播、同步來的路由信息,這樣ZTE的RS就不僅可以為ZTE自己的產品提供路由服務,也能對其它電訊供給商的通訊產品提供路由服務,只要這些通訊產品也支持標準的TRIP協議。
以上兩個廠家的產品都采用了TRIP協議,但是從使用中可以看出二者是有區別的:SS8 Signaling Switch中的LS存儲的是網關路由信息,LS提供的是網關路由的一次定位服務,ZTE Softswitch中的LS(RS)存儲的是Softswitch路由信息,實現的是Softswitch路由的一次定位服務,這對TRIP來說都是答應的,雖然二者的產品架構不同,但其路由信息的聚合、廣播、同步等操作過程和數據格式都符合TRIP協議的要求。
參考文獻
[1] J. Rosenberg, and H. Schulzrinne, "A Framework for Telephony Routing over IP", RFC 2871, June 2000。
[2] J. Rosenberg, H. Salama, M. Squire ,"Telephony Routing over IP",RFC3219 ,February 2002。
[3] Y. Rekhter,T. Li, "A Border Gateway Protocol 4 (BGP-4)", RFC1771, March 1995。
[4] Moy, J., "Open Shortest Path First Version 2", STD 54, RFC2328, April 1998。
[5] Simpson. W, "The Point-to-Point Protocol (PPP) " STD 51, RFC 1661, July 1994。
[6] 馮德娟 ,《基于Softswitch的下一代網絡組網路由解決方案》 【中興通訊技術】105期 ,2001年11月
[7] K. McCloghrie,D. Perkins,J. Schoenwaelder," StrUCture of Management Information Version 2",RFC2578 ,April 1999。
[8] J. Case, K. McCloghrie, M. Rose,and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)",RFC 1905, January 1996.
[9] Information processing systems-Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1),International Organization for Standardization. International Standard 8824, (December, 1987)。
[10] SS8 Networks Corporate的產品介紹資料,http://www.ss8.com/solutions/SignalingSwitch ,2002
[11] "NGN協議介紹" 《華為技術報》(136期)
新聞熱點
疑難解答