【正文】
x 年出來的,即RFC3261, SIP 的理論基礎一旦建立,就相繼出現看眾多基于 SIP 協(xié)議的服務和產品。不過 SIPv1 已經和后來的 SIP 一樣使用了會話描述協(xié)議( SDP, Session Description Protocol), SIPv1使用的傳輸協(xié)議是基于 UDP 的,編碼方式已經是基于文本的了, SIPv1 協(xié)議的功能相對簡單,只是用來處理會話的建立。 IETF在 20xx 年又發(fā)布了新的規(guī)范,即 RFC3261,并在以后不斷地進行了完善。 2. 獨立的傳輸層 SIP 協(xié)議處于應用層,獨立于底層協(xié)議,自然而然的也獨立于傳輸層,對傳輸層沒有多少限制。 6. 協(xié)議格式清楚,維護方便 SIP 協(xié)議基于比較簡單的文本格式,這樣下來協(xié)議的可讀性很強,在出現錯誤時,可以 很方便地對錯誤進行分析,維護起來比較方便。任何一個 SIP 的終端用戶都可以通過會話管理功能發(fā)起一個呼叫,同樣的話,如果他想把一些新的會話參與者加入會話或者結束這個會話,也是可以的。 SIP 服務器可以分為代理服務器( Proxy Server)、重定向服務器(Redirection Server)和注冊服務器( Registrar),另外還有一個不屬于 SIP 服務器的范圍,但也很重要的定位服務器。在實際的應用中,同一個 SIP 服務器根據具體情形,有時可以表現出重定向服務器的功能,但可能又同時作為代理服務器來用。 第 8 頁 第三章 SIP 工作流程及注冊服務器配置和實現方法 SIP 工作流程 SIP 定義了注冊 /注銷、呼叫、重定向以及能力查詢四種工作過程,下面結合圖例說明幾種典型的呼叫處理。 第 9 頁 通過重定向服務器的呼叫 圖 32 給出了兩個 UA之間通過重定向服務器進行呼叫的具體流程: 用 戶 代 理 A l i c e 重 定 向 服 務 器 用 戶 代 理 B o bI N V I T E ( 1 )3 0 2 ( 2 )A C K ( 3 )I N V I T E ( 4 )1 8 0 R I N G I N G ( 5 )2 0 0 O K ( 6 )A C K ( 7 )M E D I A ( 8 )B Y E ( 9 )2 0 0 O K ( 1 0 ) 圖 32 通過重定向服務呼叫的具體流程 具體的呼叫流程如下: 1) 用戶代理 Alice 發(fā)出會話邀請消息 INVITE; 2) 服務器收到請求后查詢被叫方 Bob 的地址,然后發(fā)送 302 響應 (Moved Temporarily)給 Alice 的代理,告知 Bob 的地址信息; 3) Alice 的代理收到響應后發(fā)送 ACK 向重定向服務器證實收到的響應消息; 4) Alice 依照 302 的 Contact 中指明的地址直接發(fā)送 INVITE 消息給代理 Bob; 5) Bob 端振鈴的同時發(fā)送 180 響應給 Alice; 6) Bob 用戶摘機,發(fā)送 200 OK 響應給 Alice; 7) Alice 收到響應后返回 ACK 進行確認; 8) Alice 和 Bob 會話連接成功,兩用戶之間可以進行媒體流的傳輸; 9) Bob 欲結束通話,于是發(fā)出 BYE 請求,提出終止通話的請求; 10) Alice 同意結束會話,返回一個 200 響應,此后通話結束。 注冊服務器實現方式 注冊服務是為了實現位置的綁定,而這種綁定的目的在于最大可能的搜索到目標地址,從而 成功轉發(fā)消息。如圖 33所示: 注 冊 服 務 器t h e r e . c o m位 置 服 務P r o x yS i p . c o m . t h e r eU A 2U A 1U A 2 U A 12 . 存 儲4 . 查 詢6 . I N V I T E5 . 響 應m ql i s a3 . I N V I T Em q t h e r e . c o m1 . R E G I S T E R 圖 33 用戶注冊 第 11 頁 第四章 重定向服務器 的設計以及在 SDL 上的實現 重定向服務器概述 代理服務器負責請求消息的路由。對格式正確的 CANCEL 請求 ,重定向應返回 2XX 最終響應。 然而 ,重定向服務器決不能將請求重定向到一個與請求的 Request URI 相同的 URL地址。 第 12 頁 代 理 配 置 中 是 否有 r e q u e s t U R I 的 域判 斷 該 域注 冊 沒 有無取 得 請 求 t o 域 的 c o n t a c t s作 為 t a r g e t U R I L i s tt a r g e t U R I L i s t是 否 為 空有 狀 態(tài) 地 轉 發(fā) 請 求判 斷 請 求 地r e q u e s t U R I是 否 注 冊t a r g e t U R I = r e q u e s t U R I返 回出 錯響 應t a r g e t U R I =c o n t a c t無 狀 態(tài) 轉 發(fā) 請 求有否已 注 冊否是 空否是 圖 41 重定向服務流程 重定向服務器軟件設 計 OSIP 開發(fā)庫 OSIP是按照 RFC3261(SIP)和 RFC2327(SDP)標準 ,并使用標準 c編寫的一個 SIP協(xié)議棧。 OSIP 的解析器提供了較 為完善的 API,包含了消息的構造 、 修改和產生等 。其結構如圖 42圖所示。這種業(yè)務類似于目前我們所使用的 呼叫轉移業(yè)務。 圖 46 sip 重定向服務器模式系統(tǒng)圖 圖 46為 SIP 重定向服務器模式 的系統(tǒng)圖,包括 3 個功能模塊:一個發(fā)起者 UA一個原地址接收者 UA一個新地址的接受者 UA以及集成了代理服務器和位置服務器的 Proxy 服務器。 圖 411 process ps_ua1 進程塊圖 圖 411 為 ps_ua1 進程塊圖, ps_ua1 由初始到 idle 狀態(tài), idle 狀態(tài)下又 u_ip 信號的進入講 50 賦值給 sip! code 再發(fā)出 sip 信號 pac,且狀態(tài)由 idle 變成 invite_sent。引入重定向服務器后,將改變以往單一的呼叫通道,而達到多通道的備用準備從而盡最大可能保證信息的無丟失性。因為這種攻擊方法,并不要求客戶端支持呼叫轉移功能,只要服務器能對 302報文產生正確的回應即可。 TLS客戶端 (也是 TCP 的客戶端 )在 TCP 鏈接建立之后,發(fā)出一個 ClientHello來發(fā)起握手,這個消息里面包含了自己可實現的算法列表和其他一些需要的消息, TLS 的服務器端會回應一個 ServerHello,這里面確定了這次通信所需要的算法,然后發(fā)過去自己的證書 (里面包含了身份和自己的公鑰 )。 她使得我在學術研究和工作方法上受到了嚴格的訓練,在專業(yè)知識的廣度和深度上都有較大 的收獲。大家互幫互助,營造了一個良好的學習 氛圍。感謝你們對我論文的支持,在此我表示衷心的感謝。她和藹可親,在我 學習過程中 給予了我 很多 建設性的意見,使我把握了正確 的 方向。 3xx 報文。攻擊者冒充合法用戶,使用真實的參數非法使用網絡。重定向的準確與否直接影響呼叫中心工作的質量 。但由于是不能正常接入呼叫所以發(fā)送重定向 sip 信號 pac3 并狀態(tài)轉為invite_sent。 第 16 頁 圖 47 UA1 功能塊圖 圖 47為 UA1 功能塊圖里包括進入 主叫用戶向 進程 ps_ua1 發(fā)出的 信號 u_ip、進程ps_ua1 應答信號 u_op。 用戶終端啟動重定向的呼叫模型如圖 44 所示 .該重定向行為由 SIP 終端發(fā)起。 SIP 解析器可以處理SIP 起始行 ,SIP 頭域 (如 TO、 FROM、 CSEQ、 VIA 等 ),可以處理 SIP 消息體和狀態(tài)碼 ,其流程如圖 43所示。 OSIP 目前版本源代碼結構 、 定義比較混亂 ,并且缺乏文檔 ,閱讀比較困難 。 OSIP 協(xié)議棧結構簡單而小巧 ,它并不提供高層的SIP 會話控制的 API,它主要提供一些解析 SIP/SDP 消息的 API 和事務處理的狀態(tài)機。 重定向服務可以歸結成為訪問一個絕對位置服務來構建新的目的地址的形式,該服務是從 SIP 注冊服務器創(chuàng)建的位置服務獲得信息。重定向服務器維護整個 SIP 事務的狀態(tài)。重定向即服務器用響應消息將某一請求的路由信息返回給客戶端 ,從而使服務器既起到了幫助選路的功能 ,又可以不必處理由該請求所導致的更多消息往來 當請求的發(fā)起者收到重定向響應后 ,它將基于收到的 URL 發(fā)送新的請求。注冊服務器通過兩種不同的注冊方式來實現,用戶注冊方式和服務器注冊方式。這個搜索機制經常被 SIP 網絡基本元素使用,比如 proxy 服務器,重定向服務器等等。 URL 地址可在該用戶域的 SIP 代理中解析。 第 7 頁