TRIP--IP電話(huà)路由的新技術(shù)和應用(中)
包斌 2002/08/09
3 TRIP的實(shí)現
3.1 TRIB的構成
TRIP協(xié)議交換的路由信息由外部路由(External routes)、內部路由(Internal routes)和本地路由(Local routes)三種類(lèi)型組成,為了直觀(guān)的描述TRIB的構成關(guān)系,TRIP協(xié)議從路由選擇的角度把LS中的TRIB分成以下四個(gè)構成部分,這四個(gè)部分實(shí)際上是由以上三種類(lèi)型的路由內容構成:
- Adj-TRIBs-In:稱(chēng)為臨近可選TRIB,其內容是從UPDATE消息中獲取的域內、域外LS上的路由信息,這些路由信息是當前路由選擇中的可以使用的輸入路由信息,
- Ext-TRIB:稱(chēng)為外部TRIB,其內容是LS根據一定的路由選擇運算法則,從外部路由(存儲在外部LS的Adj-TRIBs-In中)和本地路由(存儲在本地LS的Adj-TRIBs-In中),為一個(gè)給定目的地址選擇的最佳的路由,每個(gè)LS只有一個(gè)Ext-TRIB。
- Loc-TRIB:稱(chēng)為本地TRIB,其內容是LS運用其內部策略從內部LS的Adj-TRIBs-In和Ext-TRIB中選擇出來(lái)的TRIP路由信息。
- Adj-TRIBs-Out:稱(chēng)為臨近輸出TRIB,其內容是LS準備廣播給外部LS的路由信息,它的內容將攜帶在UPDATE消息中對外廣播。
這幾部分的關(guān)系如下圖7:

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

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

其中:
Version:表示當前消息所支持的TRIP版本,現在的版本是V1。
Reserved:保留字。
Hold Time:表示所建立會(huì )話(huà)的最長(cháng)壽命,單位為秒,其值要么為0,表示永遠存在,要么就取最小值為3秒。
My ITAD:當前發(fā)送者所在的ITAD的編號,這是由IANA組織分配的一個(gè)唯一值,1~255是協(xié)議的私有值,一般取值為從256 到 (2**32)-1中的一個(gè),如SNMP中企業(yè)代碼一樣,不能隨便亂取。
TRIP Identifier:發(fā)送者在所在ITAD域中的唯一TRIP標識(序號),可以理解為在ITAD中每個(gè)LS的編號,其一旦確定就不能再修改,除非整個(gè)系統重新啟動(dòng)。
Optional Parameters Len:表示了Optional Parameters (variable)List域的長(cháng)度,單位為字節,如果為0,則表示本消息無(wú)操作參數。
Optional Parameters (variable) List:是OPEN消息要發(fā)送數據或變量值的詳細列表,包括參數類(lèi)型、參數長(cháng)度、參數的值。
在當前的TRIP協(xié)議中,OPEN消息主要用來(lái)告訴對方LS自己所具備的TRIP操作能力,這種能力包括兩個(gè)方面:
- 所支持的路由類(lèi)型(Parameter Type=1),雙方LS只能處理都支持的路由類(lèi)型,如果收到了不能支持的路由類(lèi)型,則立即丟棄不做進(jìn)一步處理。
- 發(fā)送接收的能力(Parameter Type=2),這都是針對UPDATE消息而言的,包括只發(fā)送模式(Send Only mode)、只接收(Receive
Only mode)和發(fā)送接收模式( Send Receive mode),一個(gè)LS任何時(shí)候對所有的對等LS只能處于一種模式,默認的是發(fā)送接收模式。在只發(fā)送模式下,一個(gè)LS只向其對等的LS發(fā)送UPDATE消息,對等的LS不必返回UPDATE消息,即使收到了返回的UPDATE消息,它也必須無(wú)條件丟棄;在只接收模式下,LS只能作為消極的UPDATE消息監聽(tīng)和接收者,不能向發(fā)送者返回和發(fā)送任何UPDATE消息;在發(fā)送接收模式中,一個(gè)LS具備接收和發(fā)送UPDATE消息的全雙工功能。
3.2.3 UPDATE(更新)消息
UPDATE消息包中的數據勾勒出了多個(gè)ITAD之間的關(guān)系連接圖,它不僅用來(lái)廣播新增路由信息,也用來(lái)刪除、修改已經(jīng)廣播出去的一些路由信息,而且這兩種操作可以同時(shí)進(jìn)行。
除了TRIP消息固定的消息頭外,UPDATE消息體實(shí)際上是一個(gè)路由屬性列表,在屬性和屬性之間無(wú)其它的中間數據,其最短長(cháng)度為三個(gè)字節,它的列表中屬性的數量可以為0,其消息的格式如圖10:

- Attribute Flags
路由屬性標志是在不斷被擴展的,其目前的取值與TRIP協(xié)議的路由選擇、路由分發(fā)、路由聚合和路由的封裝等操作有著(zhù)密切的關(guān)系,這個(gè)域共一個(gè)字節(8位),目前只用到了前5位,每位有不同的功能:
Bit 0, Well-Known Flag,是路由屬性是否可知標志。
Bit 1, Transitive Flag,是路由屬性不可知時(shí)是否傳送標志。
Bit 2, Dependent Flag,是路由屬性不可知時(shí)傳送依賴(lài)標志。
Bit 3, Partial Flag,是Transitive Flag標志信息是否代表局部標志。
Bit 4, Link-state Encapsulated Flag,連接狀態(tài)是否封裝標志。
- Attribute Type Code
發(fā)送的路由屬性類(lèi)型碼也是由IANA控制的,屬性類(lèi)型碼的值決定了當前消息中所發(fā)送的路由信息的操作類(lèi)型,屬性碼、屬性表示和其意義如下:
1:WithdrawnRoutes,給出要從當前服務(wù)中取消的路由。
2:ReachableRoutes,給出向當前服務(wù)中增加新的可用路由。
3:NextHopServer,給出消息發(fā)送所要經(jīng)過(guò)的實(shí)體標識。
4:AdvertisementPath,給出了路由消息在不同的ITAD域間廣播的先后順序。
5:RoutedPath,給出了路由消息在不同的ITAD域間廣播的路徑。
6:AtomicAggregate,給出了實(shí)際存在但沒(méi)包括在RoutedPath中的廣播路由。
7:LocalPreference,向其它的LS告訴本地LS對給定路由的首選項。
8:MultiExitDisc,相鄰的域間的LS有多個(gè)對等LS的情況下,LS用這個(gè)屬性來(lái)表示其在域間的首選連接。
9:Communities,在把目的地址分組成團體名來(lái)簡(jiǎn)化路由信息控制中用到的團體名稱(chēng)。
10:ITAD Topology,向域內的其它LS給出本域的Topology結構。
12:ConvertedRoute,指出中間的LS通過(guò)改變路由應用協(xié)議的方式所改變的路由信息。
以上每一種的路由屬性在UPDATE消息中都有單獨的消息格式和數據結構特點(diǎn),在此不再一一稱(chēng)述。
- Attribute Length和Attribute Value (variable)
為以上標志和屬性下路由數據的值長(cháng)度和值。
UPDATE消息的處理、控制是一個(gè)很復雜的綜合過(guò)程,是TRIP的四種消息中的核心,也是路由信息廣播、同步操作的核心,這些過(guò)程主要包括路由信息的域內通知過(guò)程、路由選擇過(guò)程、域間路由信息廣播過(guò)程和各種策略的選擇、確定和運用過(guò)程等。
3.2.4 NOTIFICATION(通知)消息
當LS檢測到有某種故障、錯誤時(shí),NOTIFICATION消息就產(chǎn)生和發(fā)送了,同時(shí)出現故障、錯誤的LS之間的TRIP會(huì )話(huà)就立即關(guān)閉。
除去TRIP固定的消息頭外,NOTIFICATION消息的格式如圖11,其最小的長(cháng)度為5個(gè)字節。

在此消息格式中Error Code和Error Subcode的取值范圍為:
Error Code 錯誤類(lèi)別和錯誤內容
1 Message Header Error(TRIP消息頭錯誤) ,對應的具體故障為:
Error Subcode=1 :Bad Message Length(錯誤的消息長(cháng)度)
Error Subcode=2 :Bad Message Type(錯誤的消息類(lèi)型)
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(消息有效時(shí)間不合適)
Error Subcode=6 :Unsupported Capability(無(wú)法支持的能力屬性)
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(無(wú)Well-known強制屬性)
Error Subcode=4 :Attribute Flags Error(屬性標志錯誤)
Error Subcode=5 :Attribute Length Error(屬性長(cháng)度錯誤)
Error Subcode=6 :Invalid Attribute(無(wú)效的屬性值)
4 Hold Timer Expired(消息有效時(shí)間到)
5 Finite State Machine Error(有限狀態(tài)機錯誤)
6 Cease (遇到致命性錯誤,TRIP交互立即停止)
通知消息中數據值的長(cháng)度的計算公式是:數據值長(cháng)度 = 消息的總長(cháng)度 - 5
3.2.5 KEEPALIVE(活)消息
KEEPALIVE消息是OPEN消息成功后的一個(gè)響應消息,它主要是為了告訴雙方LS它們之間已經(jīng)建立的成功會(huì )話(huà)還處于活動(dòng)狀態(tài),以便進(jìn)行UPDATE消息的交互,KEEPALIVE消息發(fā)送的時(shí)間間隔是自定義的,一般比較合理的最大間隔是OPEN消息中設定壽命值(Hold
Time)的三分之一,如果壽命值為0,則不發(fā)送KEEPALIVE消息。
KEEPALIVE消息格式就是TRIP消息的格式,如圖8,其無(wú)單獨的消息格式和內容,只須標明消息類(lèi)型值為4。
TRIP--IP電話(huà)路由的新技術(shù)和應用(上)
TRIP--IP電話(huà)路由的新技術(shù)和應用(下)
作者供稿 CTI論壇編輯
相關(guān)鏈接:
亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩
丹东市|
广安市|
游戏|
庆云县|
衢州市|
霍州市|
萨嘎县|
台州市|
蓬莱市|
班玛县|
凌海市|
和林格尔县|
平顺县|
比如县|
兴化市|
新巴尔虎左旗|
博白县|
富顺县|
贵州省|
金秀|
大关县|
兴宁市|
平泉县|
乐都县|
马尔康县|
九江市|
左云县|
乐陵市|
牙克石市|
黔南|
定安县|
伊金霍洛旗|
西平县|
青龙|
利津县|
松滋市|
蒙自县|
赞皇县|
绍兴市|
五台县|
鄂伦春自治旗|
http://444
http://444
http://444
http://444
http://444
http://444