Wireshark網絡抓包工具抓包 || 實例分析一個Sip Call流程


Wireshark網絡分析抓包軟件

Wireshark是一個網絡封包分析軟件,網絡封包分析軟件的功能是擷取網絡封包,並盡可能顯示出最為詳細的網絡封包資料。

SIP協議

SIP是一個計算機網絡中應用層信令控制協議。用於創建、修改和釋放一個或多個參與者的會話。

SIP消息分為兩種:客戶端到服務器的請求服務器到客戶端的響應

SIP消息是由一個起始行(start-line),一個或多個字段組成的消息頭(field),一個標志消息頭結束的空行(CRLF),作為可選項的消息體(messge - body)。【描述消息體(message-body)的頭稱為實體頭(entity-header)】

一、起始行

1、起始行分為:

請求行(Request - Line):請求消息的起始行。

狀態行(Statue - Line):響應消息的起始行。

2、SIP規定了六種方法:

① INVITE :用於邀請用戶或服務參加一個會話

② ACK :請求用於客戶端向服務器證實收到對INVITE請求的最終應答

③ CANCEL :用於取消一個Call-ID From To Cseq 字段相同正在進行的請求,但取消不了已完成的請求

④ OPTIONS :用於向服務器查詢其能力

⑤ BYE :用於結束會話

⑥ REGISTER :用於客戶向注冊服務器注冊用戶位置等信息

3、SIP消息頭字段:

① via 字段:給出請求消息迄今為止經過的路徑

② Request-URI 字段:注冊請求的目的地址

③ Max-Forwords 字段:請求消息允許被轉發的次數

④ From 字段:請求的發起者

⑤ To 字段:請求的目的接收方

⑥ Call-ID 字段:唯一標識特定邀請或某個客戶機的注冊請求消息

⑦ Cseq 字段:標識服務器發出的不同請求,若Call-ID相同Cseq值必須各不相同

主叫發出的第一次INVITE會話邀請請求:

服務器對第一次INVITE會話邀請請求的響應消息:

主叫發出的第二次INVITE會話邀請請求:

服務器對第二次INVITE會話邀請請求的響應消息:

⑧ Contact 字段:給出一個URL,用戶可以根據此URL進一步的通訊

⑨ Content-Length 字段:消息體的大小

不攜帶響應體的請求響應信息中的Content-Length字段值為0:

⑩ Content-Type 字段: 消息體的媒體類型

①① Expires 字段:消息內容截止的日期和時間

①② User-Agent 字段:發起請求的用戶代理客戶及相關的信息

4、SIP消息體:

①v :協議的版本

②o :與會話所有者的相關參數

③s :會話標題或會話名稱

④c :真正流媒體使用的IP地址

⑤t :會話的開始時間與結束時間

⑥m :會話所支持的媒體類型

主叫與被叫的通話的音頻RTP流都從主叫的9501端口發出:

主叫與被叫的通話的視頻RTP流都從主叫的9503端口發出:

服務器向主叫發出的信息(例如權限不夠,號碼有誤等)都是由服務器的15448端口發出:

⑦a :媒體的屬性行

5、SIP狀態碼:

① 1XX :請求已經收到繼續處理請求

② 2XX :行動已成功的接收到

③ 3XX :為完成呼叫請求還需采取進一步動作

④ 4XX :請求有語法錯誤不能被服務器端執行,客戶端需修改請求,再次重發

⑤ 5XX :服務器出錯不能執行合法請求

⑥ 6XX :任何服務器都不能執行請求

實例:使用Wireshark網絡抓包分析工具對一次典型的SIP呼叫流程進行抓包分析

請求行:

①Request-Line 表明它是一個請求行

②Method 表明這個請求行的方法是INVITE 即它發出一個INVITE請求

③Message Header 消息頭

  • via 消息經過192.168.50.108
  • From 請求由192.168.50.108 上的分機1000發起
  • Contact 用戶可用此URL通信
  • to 請求的目的方是192.168.50.105上的分機4000
  • Call-ID 此次回話唯一標識
  • Cseq 請求的序號
  • Max-Forwards 消息最大被轉發70次

④Message Body消息體

  • v 協議版本為 0
  • o 會話所有者是192.168.50.108
  • s 會話的名稱是session
  • c 流媒體使用的IP為192.168.50.108
  • m audio標示發起的為語音呼叫 支持0 8 18 3 114 101即 PCMU PCMA GSM..對應編號的編碼方法

狀態行:

①Statue-Line 表明為狀態行

②Status-Code 表明狀態碼為200OK

③Message Header/Message Body分析同上

基於上述抓包分析繪制整體SIP呼叫流程圖:

 

參考博客:https://blog.csdn.net/u014257614/article/details/23456107


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM