Wireshark抓包分析Sip流程

转自:http://blog.csdn.net/u014257614/article/details/23456107


Wireshark个网络封包分析软个网络封包分析软件,网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。

SIP是一个计算机网络中应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话

SIP消息分为俩种:客户端到服务器的请求,服务器到客户端的响应.

SIP消息是由一个起始行(start-line),一个或多个字段组成的消息头(field),一个标志消息头结束的空行(CRLF),作为可选项的消息体(messge - body)

描述消息体(message-body)的头称为实体头(entity-header)

起始行分为:

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

   状态行(Statue - Line) :响应消息的起始行

SIP规定了六种方法:INVITE ACK CANCEL OPTIONS BYE REGISTER

   INVITE:用于邀请用户或服务参加一个会话

   ACK:请求用于客户端向服务器证实收到对INVITE请求的最终应答

   CANCEL:用于取消一个Call-ID From To Cseq 字段相同正在进行的请求,但取消不了已完成的请求

   OPTIONS:用于向服务器查询其能力

   BYE:用于结束会话

   REGISTER:用于客户向注册服务器注册用户位置等信息

SIP消息头字段:

   via 字段给出请求消息迄今为止经过的路径

   Request-URI 注册请求的目的地址

   Max-Forwords 请求消息允许被转发的次数

   From 请求的发起者

   To   请求的目的接收方

   Call-ID 唯一标识特定邀请或某个客户机的注册请求消息

   Cseq 标识服务器发出的不同请求,若Call-ID相同Cseq值必须各不相同

   Contact 给出一个URL,用户可以根据此URL进一步的通讯

   Content-Length 消息体的大小

   Content-Type 消息体的媒体类型

   Expires 消息内容截止的日期和时间

   User-Agent 发起请求的用户代理客户及相关的信息

SIP消息体:

   v 协议的版本

   o 与会话所有者的相关参数

   s 会话标题或会话名称

   c 真正流媒体使用的IP地址

   t 会话的开始时间与结束时间

   m 会话所支持的媒体类型

   a 媒体的属性行

SIP状态码定义如下:

   1XX:请求已经收到继续处理请求

   2XX:行动已成功的接收到

   3XX:为完成呼叫请求还需采取进一步动作

   4XX:请求有语法错误不能被服务器端执行,客户端需修改请求,再次重发

   5XX:服务器出错不能执行合法请求

   6XX:任何服务器都不能执行请求

了解了上述SIP基本知识,那我们利用wireshark工具对一次典型的呼叫流程进行抓包分析

Wireshark抓包分析Sip流程:

  

 上图是一次典型的呼叫流程:

 我们分析一个请求行与一个状态行剩余自己进行对比分析:

 请求行:

  

 Request-Line 表明它是一个请求行

   Method 表明这个请求行的方法是INVITE 即它发出一个INVITE请求

 Message Header 消息头 //结合上述SIP头字段分析即可

   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分析同上

基于上述抓包绘制整体呼叫流程图:




你可能感兴趣的:(日常记录)