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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器