欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
sip路由機制解析- 漫步陽(yáng)光 - 新浪blog
在前面已經(jīng)陸續介紹了SIP重要頭域、注冊流程、會(huì )話(huà)流程等SIP相關(guān)知識,現在再來(lái)介紹一下SIP中的路由機制。
 
總的來(lái)說(shuō),SIP中存在兩種路由場(chǎng)景:
1,請求消息的路由
2,響應消息的路由
 
其中,響應消息的路由非常簡(jiǎn)單,就是完全依靠Via來(lái)完成的,具體請見(jiàn)我關(guān)于RFC3261中會(huì )話(huà)流程的分析。
下面我們只談SIP請求消息的路由。
 
首先我們要搞清楚什么是嚴格路由和松散路由。
 
嚴格路由(Strict Routing):
可以理解為比較“死板”的理由機制,這種路由機制在SIP協(xié)議的前身RFC 2534中定義,其機制非常簡(jiǎn)單。
要求接收到的消息的request-URI必須是自己的URI,然后它會(huì )把第一個(gè)Route頭域“彈”出來(lái),并把其中的URI作為新的request-RUI,然后把該消息路由給該URI。
 
松散路由(Louse Routing,lr):
該路由機制較為靈活,也是SIP路由機制的靈魂所在,在SIP根本大典RFC 3261中定義。
下面介紹一下一個(gè)松散路由的Proxy的路由決策過(guò)程:
 
1,Proxy首先會(huì )檢查消息的request-URI是不是自己屬于自己所負責的域。如果是,它就會(huì )通過(guò)定位服務(wù)將該地址“翻譯”成具體的聯(lián)系地址并以此替換掉原來(lái)的request-URI;否則,它不會(huì )動(dòng)request-URI。
 
2,Proxy檢查第一個(gè)Route頭域中的URI是不是自己的,如果是,則移除之。
 
3,前面兩項都是準備工作,下面該進(jìn)行真正的路由了。如果還有Route頭域,則Proxy會(huì )把消息路由給該頭域中的URI,否則就路由給request-URI。至于如何從下一跳URI確定出IP地址,端口以及傳輸協(xié)議那是另外一回事了。
 
對于前面的3條規則,我們可以簡(jiǎn)單總結為一句話(huà):Route的優(yōu)先級高于request-URI的。
 
好,了解了兩種路由機制,我們再來(lái)了解一下Route和Record-Route。
如果說(shuō)Via是為了給一個(gè)請求消息的響應消息留后路,那么Record-Route就是為了給該請求消息之后的請求消息留后路。
【說(shuō)明】一個(gè)SIP消息每經(jīng)過(guò)一個(gè)Proxy(包括主叫),都會(huì )被加上一個(gè)Via頭域,當消息到達被叫后,Via頭域就記錄了請求消息經(jīng)過(guò)的完整路徑。被叫將這些Via頭域原樣copy到響應消息中(包括各Via的參數,以及各Via的順序),然后下發(fā)給第一個(gè)Via中的URI,每個(gè)Proxy轉發(fā)響應消息前都會(huì )把第一個(gè)Via(也就是它自己添加的Via)刪除,然后將消息轉發(fā)給新的第一個(gè)Via中的URI,直到消息到達主叫。
 
    而在一個(gè)請求消息的傳輸過(guò)程中,Proxy也可能(純粹自愿,如果它希望還能接收到本次會(huì )話(huà)的后續請求消息的話(huà))會(huì )添加一個(gè)Record-Route頭域,這樣當消息到達被叫后里面就有會(huì )有0個(gè)或若干個(gè)Record-Route頭域。被叫會(huì )將這些Record-Route頭域并入路由集,并并入自己的路由集,隨后被叫在發(fā)送請求消息時(shí)就會(huì )使用該路由集構造一系列Route頭域,以便對消息進(jìn)行路由。
    然后,被叫會(huì )像上面對待Via頭域一樣,將Record-Route頭域全部原樣copy到響應消息中返回給主叫。
    主叫收到響應消息后也會(huì )將這些Record-Route頭域并入路由集,只是它會(huì )將其反序。該會(huì )話(huà)中的后續請求消息的Route頭域就會(huì )通過(guò)路由集構造。
【注意】Record-Route頭域不用來(lái)路由,而只是起到傳遞信息的作用。
Record-Route頭域不是路由集的唯一來(lái)源,路由集還可以通過(guò)手工配置等方式得到。
 
 
只是描述還是比較抽象,下面就以RFC 3261中的兩個(gè)實(shí)例來(lái)解釋一下。
 
路由示例1:
 
場(chǎng)景:
兩個(gè)UE間有兩個(gè)Proxy,U1 -> P1 -> P2 -> U2,并且兩個(gè)Proxy都樂(lè )意添加Record-Route頭域。
 
消息流:
【說(shuō)明】由于我們在此只關(guān)心SIP路由機制,因此下面消息中跟路由機制無(wú)關(guān)的頭域都省略了。
 
U1發(fā)出一個(gè)INVITE請求給P1(P1是U1的外撥代理服務(wù)器):
      INVITE sip:callee@domain.com SIP/2.0
      Contact: sip:caller@u1.example.com
 
P1不負責域domain.com,消息中也沒(méi)有Route頭域,因此通過(guò)DNS查詢(xún)得到負責該域的Proxy的地址并且把消息轉發(fā)過(guò)去。這里P1在轉發(fā)前就添加了一個(gè)Record-Route頭域,里面有一個(gè)lr參數,說(shuō)明P1是一個(gè)松散路由器,遵循RFC3261中的路由機制。
      INVITE sip:callee@domain.com SIP/2.0
      Contact: sip:caller@u1.example.com
      Record-Route: <sip:p1.example.com;lr>
P2負責域domain.com,因此它通過(guò)定位服務(wù)得到callee@domain.com 對應的設備地址是callee@u2.domain.com ,因此用新的URI重寫(xiě)request-URI。消息中沒(méi)有Route頭域,因此它就把該消息轉發(fā)給request-URI中的URI,轉發(fā)前它也增加了一個(gè)Record-Route頭域,并且也有lr參數。
      INVITE sip:callee@u2.domain.com SIP/2.0
      Contact: sip:caller@u1.example.com
      Record-Route: <sip:p2.domain.com;lr>
      Record-Route: <sip:p1.example.com;lr>
位于u2.domain.com的被叫收到了該INVITE消息,并且返回一個(gè)200 OK響應。其中就包括了INVITE中的Record-Route頭域。
      SIP/2.0 200 OK
      Contact: sip:callee@u2.domain.com
      Record-Route: <sip:p2.domain.com;lr>
      Record-Route: <sip:p1.example.com;lr>
被叫此時(shí)也就有了自己的路由集:
      (<sip:p2.domain.com;lr>,<sip:p1.example.com;lr>)
 
并且它本次會(huì )話(huà)的遠端目的地址設置為INVITE中Contact中的URI:caller@u1.example.com,此后被叫在該會(huì )話(huà)中的請求消息就發(fā)到這個(gè)URI。同樣,被叫在200 OK響應中也攜帶了自己的聯(lián)系地址,主叫收到該響應消息后也會(huì )把本次會(huì )話(huà)的遠端目的地址設置為:callee@u2.domain.com,此后主機在該會(huì )話(huà)中的請求消息就發(fā)到這個(gè)URI。
同樣,主叫也有了自己的路由集,只是跟被叫的是反序的:
      (<sip:p1.example.com;lr>,<sip:p2.domain.com;lr>)
 
 
通話(huà)完畢后,我們架設主叫先掛機,則主叫發(fā)出BYE請求:
      BYE sip:callee@u2.domain.com SIP/2.0
      Route: <sip:p1.example.com;lr>,<sip:p2.domain.com;lr>
可以看到,BYE的Route頭域正是主機的路由集構造來(lái)的。
由于p1在第一個(gè)Route中,因此BYE首先發(fā)給P1。
 
P1收到該消息后,發(fā)現request-URI中的URI不屬于自己負責的域,而消息有Route頭域,并且第一個(gè)Route頭域中的URI正是自己,因此刪除之,并且把消息轉發(fā)給新的第一個(gè)Route頭域中的URI,也就是P2:
      BYE sip:callee@u2.domain.com SIP/2.0
      Route: <sip:p2.domain.com;lr>
P2收到該消息后,發(fā)現request-URI中的URI不屬于自己負責的域(P2負責的是domain.com,而不是u2.domain.com),第一個(gè)Route頭域中的URI正是自己,因此刪除之,此時(shí)已經(jīng)沒(méi)有Route頭域了,因此就轉發(fā)給了request-URI中的URI。
 
被叫就會(huì )收到BYE消息:
      BYE sip:callee@u2.domain.com SIP/2.0
 
路由示例2:
如果說(shuō)上面的示例主要關(guān)注的是路由流程,那么本示例關(guān)注的則是嚴格路由與松散路由的區別。
 
場(chǎng)景:
U1->P1->P2->P3->P4->U2
其中,P3是嚴格路由的,其余Proxy都是松散路由的,并且4個(gè)Proxy都很樂(lè )意增加Record-Route頭域。
 
消息流:
我們直接給出了到達被叫的INVITE消息:
      INVITE sip:callee@u2.domain.com SIP/2.0
      Contact: sip:caller@u1.example.com
      Record-Route: <sip:p4.domain.com;lr>
      Record-Route: <sip:p3.middle.com>
      Record-Route: <sip:p2.example.com;lr>
      Record-Route: <sip:p1.example.com;lr>
 
這中間的其他消息我們就不過(guò)問(wèn)了,直接看一下被叫最后發(fā)出的BYE消息大概是什么樣子:
      BYE sip:caller@u1.example.com SIP/2.0
      Route: <sip:p4.domain.com;lr>
      Route: <sip:p3.middle.com>
      Route: <sip:p2.example.com;lr>
      Route: <sip:p1.example.com;lr>
 
因為P4在第一個(gè)Route里,因此被叫將BYE消息發(fā)給了P4。
 
P4收到該消息后,發(fā)現自己不負責域u1.example.com,但是第一個(gè)Route頭域中的URI正是自己,因此刪除之。P4還發(fā)現新的第一個(gè)Route頭域中的URI是一個(gè)嚴格路由器,因此它把request-URI中的URI添加到最后一個(gè)Route的位置,并且將第一個(gè)Route“彈出”并且覆蓋原來(lái)的request-URI。然后將消息轉發(fā)給當前的request-URI,也就是P3。
      BYE sip:p3.middle.com SIP/2.0
      Route: <sip:p2.example.com;lr>
      Route: <sip:p1.example.com;lr>
      Route: <sip:caller@u1.example.com>
 
P3收到該消息后,直接把消息作出如下變換并且發(fā)給P2:
      BYE sip:p2.example.com;lr SIP/2.0
      Route: <sip:p1.example.com;lr>
      Route: <sip:caller@u1.example.com>
P2收到該消息后,發(fā)現消息中的request-URI是自己的,因此在進(jìn)一步處理先首先對消息做如下變換:
      BYE sip:caller@u1.example.com SIP/2.0
      Route: <sip:p1.example.com;lr>
然后,P2發(fā)現自己不負責域u1.example.com,第一個(gè)Route中的URI也不是自己的,因此將消息轉發(fā)給該URI,也就是P1。
 
P1收到該消息后,發(fā)現自己不負責域u1.example.com,但是第一個(gè)Route頭域中的URI正是自己,因此刪除之。消息變成下面的樣子:
      BYE sip:caller@u1.example.com SIP/2.0
既然Route頭域已經(jīng)是空,因此P1把消息發(fā)給u1.example.com。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
理解SIP對話(huà)
SIP消息詳細
SIP協(xié)議詳解
SIP協(xié)議解析與實(shí)現(c和c 使用osip) 3
SIP服務(wù)器SER 0.9.6:SIP Express Router 安裝記錄
RFC2916 TEL URI轉換為SIP URL的方法
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久