SIP路由機制解析

SIP中存在兩種路由場景:

  • 1,請求消息的路由
  • 2弯蚜,響應消息的路由

<span style="font-family:'楷體';font-size:17px">其中,響應消息的路由非常簡單剃法,就是完全依靠Via來完成的碎捺。【說明:】一個SIP消息每經過一個Proxy(包括主叫)贷洲,都會被加上一個Via頭域收厨,當消息到達被叫后,Via頭域就記錄了請求消息經過的完整路徑优构。被叫將這些Via頭域原樣copy到響應消息中(包括各Via的參數诵叁,以及各Via的順序),然后下發(fā)給第一個Via中的URI钦椭,每個Proxy轉發(fā)響應消息前都會把第一個Via(也就是它自己添加的Via)刪除拧额,然后將消息轉發(fā)給新的第一個Via中的URI碑诉,直到消息到達主叫。</span>


重要概念

路由集

Route Set: 路由集侥锦。路由集合是一個順序的SIP或者SIPSURI进栽。這些URI描述了傳遞一個請求所必須經歷的代理列表。一個路由集可以是自適應的恭垦,因為包頭中包含了Record-Route(記錄路由)快毛,也可以是依賴配置得到的。(不包括目標地址)


相關頭域說明

Request-URI:目標用戶或者服務的地址番挺。

Via: Via頭域是用來描述請求當前經歷的路徑的唠帝,并且標志了應答所應當經過的路徑。Via頭域的branchID參數提供了事務的標志玄柏,并且用于proxy來檢查循環(huán)路由襟衰。只有當需要通過選擇傳輸設備到達下一個節(jié)點(hop)的時候,才需要在頭域中包含Via域禁荸。
Contact: Contact頭域提供了一個URI右蒲,指明了請求的資源或請求發(fā)起者,這個URI的含義取決于是在請求還是在應答中赶熟。
Record-Route:Record-Route頭域是proxy在請求中增加的瑰妄,用來強制會話中的后續(xù)請求經過本proxy的。
Route:Route頭域用于強制一個請求經過一個proxy路由列表映砖。

(strick routing)嚴格路由

<span style="font-family:'楷體';font-size:17px">Route頭域中的值中包含lr參數部分為嚴格路由间坐,不包含lr的為松散路由。嚴格路由實際指發(fā)送者指明了必須經過的路由邑退,如果下一跳路由找不到就返回錯誤竹宋;</span>

如果Route頭域的第一個值為嚴格路由,那么UA或Proxy必須根據下列步驟修改這個請求:

S_1地技、接收到的消息的request-URI必須是自己的URI

S_2蜈七、把第一個Route頭域“彈”出來,并把其中的URI作為新的request-RUI.

S_3莫矗、然后把該消息路由到新的request-URI飒硅。

(loose routing)松散路由

<span style="font-family:'楷體';font-size:17px">Route頭域中的值中不包含lr參數部分為松路由。松散路由的處理不要求必須經過定死的路由列表作谚,它允許通過一些中間的轉換再到達下一跳三娩,比如:a-->b是,他可以是先到c再到b</span>

處理步驟:

1妹懒、Loose Router和Strict Router首先都會檢查Router字段的第一個地址是否為自己雀监,如果是則從Router字段中刪除自己。

2眨唬、Strict Router在發(fā)往下一跳時將使用Router字段中的下一跳地址更新Request URI会前。

3好乐、Loose Router首先會檢查Request URI是否為自己:如果不是,則不作處理回官;如果是曹宴,則取出Route字段的最后一個地址作為Request URI地址,并從Route字段中刪去最后一個地址歉提。

4笛坦、Loose Router其次會檢查下一跳是否為Strict Router:如果不是,則不作處理苔巨;如果是版扩,則將Request URI添加為Route的最后一個字段,并用下一跳Strict Router的地址更新Request URI侄泽。


  • SIP-URI是一個Hop(節(jié)點)-to-Hop(節(jié)點)的屬性礁芦,所以有可能被Proxy改變;

  • From和To屬性在消息的路由過程中一直保持不變悼尾;它們在Request消息中確定柿扣,此后對端發(fā)來的所有Response消息的From和To都是原樣拷貝Request消息中的From和To;

- Route優(yōu)先級高于contact高于from

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末闺魏,一起剝皮案震驚了整個濱河市未状,隨后出現的幾起案子,更是在濱河造成了極大的恐慌析桥,老刑警劉巖司草,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異泡仗,居然都是意外死亡埋虹,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門娩怎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搔课,“玉大人,你說我怎么就攤上這事截亦±北瑁” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵魁巩,是天一觀的道長。 經常有香客問我姐浮,道長谷遂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任卖鲤,我火速辦了婚禮肾扰,結果婚禮上畴嘶,老公的妹妹穿的比我還像新娘。我一直安慰自己集晚,他們只是感情好窗悯,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著偷拔,像睡著了一般蒋院。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上莲绰,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天欺旧,我揣著相機與錄音,去河邊找鬼蛤签。 笑死辞友,一個胖子當著我的面吹牛,可吹牛的內容都是我干的震肮。 我是一名探鬼主播称龙,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼戳晌!你這毒婦竟也來了鲫尊?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤躬厌,失蹤者是張志新(化名)和其女友劉穎马昨,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體扛施,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡鸿捧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了疙渣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匙奴。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妄荔,靈堂內的尸體忽然破棺而出泼菌,到底是詐尸還是另有隱情,我是刑警寧澤啦租,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布哗伯,位于F島的核電站,受9級特大地震影響篷角,放射性物質發(fā)生泄漏焊刹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虐块。 院中可真熱鬧俩滥,春花似錦、人聲如沸贺奠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽儡率。三九已至挂据,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喉悴,已是汗流浹背棱貌。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留箕肃,地道東北人婚脱。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像勺像,于是被迫代替她去往敵國和親障贸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容