使用Wireshark进行SIP包解析

本文详细介绍了如何使用Wireshark进行SIP包解析,包括安装、功能介绍及实际应用,如网络管理员解决问题、网络安全工程师检测隐患、开发人员测试协议执行情况和学习网络协议等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 安装Wireshark

       下载Wireshark后,安装很简单,基本上只需要点击“Next”和“I agree”等按钮,不再赘述。

2. Wireshark介绍

参见:http://man.lupaworld.com/content/network/wireshark/Introduction.html

copy一下简要介绍:

Wireshark 是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包, 并尝试显示包的尽可能详细的情况。

你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样。(当然比那个更高级)

过去的此类工具要么是过于昂贵,要么是属于某人私有,或者是二者兼顾。 Wireshark出现以后,这种现状得以改变。

Wireshark可能算得上是今天能使用的最好的开元网络分析软件。

下面是Wireshark一些常用的应用举例:

l         网络管理员用来解决网络问题;

l         网络安全工程师用来检测安全隐患;

l         开发人员用来测试协议执行情况;

l         用来学习网络协议。

3. 使用Wireshark进行SIP包解析

3.1 抓包

       因为最近项目中有用到SIP,发现Wireshark在进行SIP包解析还是比较方便的。

       Wireshark的窗口如下图所示:

       点击左上方的“”按钮,弹出设置捕捉属性框窗口如下图所示:
   

       在“Capture”下方的下拉框中选择可用的本地接口,笔者选择:
    

而后点击下方的“Start”按钮,开始抓图。因为此时没有过滤,所以抓的信息时各种各样的包信息,可在输入框中输入“SIP || rtsp”来过滤SIPRTSP包,如下图所示:

       点击左上方的停止按钮停止抓包。

3.2 对包进行解析

       SIP是属于VoIP协议族的,我们可以对我们所抓的SIP包进行解析,在工具栏选择“Telephony->VoIP calls”,弹出窗口如下图所示:

       选择某条信息后,点击“Graph”按钮,弹出窗口如下图所示:
   

       在上图中清晰的画出了SIP交互的流程,对我们分析流程的正确性等很有帮助。

### 三、Wireshark SIP 通话抓包方法详解 在使用 Wireshark 抓取 SIP 通话数据包时,关键在于正确设置过滤条件以及理解 SIP 信令的交互流程。以下是具体的操作步骤和注意事项: 1. **选择合适的网络接口** 打开 Wireshark 后,首先需要选择一个合适的网络接口进行抓包。通常,SIP 通信使用 UDP 或 TCP 协议,默认端口为 5060。因此,选择与 SIP 通信相关的接口(如以太网或无线网络接口)是首要步骤[^1]。 2. **设置显示过滤器** 在抓包过程中,为了只显示 SIP 相关的数据包,可以在 Wireshark显示过滤器栏中输入 `sip`。这样可以过滤掉其他不相关的流量,使得 SIP 信令更加清晰可见[^2]。 3. **设置捕获过滤器(可选)** 如果希望在抓包时就只捕获 SIP 数据包,可以使用捕获过滤器。在开始抓包之前,点击“捕获选项”,然后在“输入”部分设置捕获过滤器为 `port 5060`。这样可以减少抓包时的冗余数据量,提高效率。 4. **发起 SIP 通话** 在完成上述设置后,可以开始进行 SIP 通话。例如,使用 SIP 软电话发起一次呼叫,此时 Wireshark 将捕获到相关的 SIP 信令数据包。 5. **分析 SIP 信令流程** SIP 通话的建立过程通常包括以下几个关键步骤: - **INVITE 请求**:主叫方向被叫方发送 `INVITE` 请求,表示希望建立通话连接。 - **100 Trying 响应**:被叫方收到 `INVITE` 请求后,会返回一个 `100 Trying` 状态码,表示正在处理请求。 - **200 OK 响应**:如果被叫方接受通话请求,将返回 `200 OK` 状态码。 - **ACK 请求**:主叫方收到 `200 OK` 后,发送 `ACK` 请求以确认连接建立。 - **RTP 通信**:一旦 SIP 信令完成,双方将通过 RTP 协议传输实际的媒体数据(如音频或视频)[^2]。 6. **查看 SIP 数据包详细信息** 在 Wireshark 中,点击任意一个 SIP 数据包,可以在下方窗格中查看其详细信息。SIP 数据包的结构通常包括请求行、状态行、头字段和消息体。通过这些信息,可以深入了解 SIP 信令的具体内容,例如 `INVITE` 请求中的 SDP(Session Description Protocol)描述,以及 `200 OK` 响应中的媒体参数。 7. **使用 IO Graphs 分析流量** Wireshark 还提供了 IO Graphs 功能,可以通过图形化方式展示 SIP 和 RTP 流量的变化趋势。此功能可以帮助分析通话过程中的流量波动,识别潜在的性能问题。 8. **保存抓包结果** 完成抓包后,可以将结果保存为 `.pcap` 文件,以便后续分析或分享给其他技术人员。保存时可以选择仅保存 SIP 相关的数据包,或者保存所有捕获到的数据包。 ### 四、常见问题排查技巧 - **SIP 信令未出现**:如果在抓包过程中未看到 SIP 信令,可能是由于 SIP 服务未启动,或者网络接口选择错误。此时应检查 SIP 客户端的配置,并确认是否选择了正确的网络接口。 - **SIP 信令被加密**:某些 SIP 通信可能使用 TLS 加密,导致 Wireshark 无法直接解析 SIP 数据包。此时需要配置 Wireshark 使用 TLS 证书进行解密。 - **媒体流未建立**:即使 SIP 信令成功完成,媒体流(如 RTP)仍可能因 NAT 或防火墙问题而无法建立。可以通过检查 `INVITE` 和 `200 OK` 中的 SDP 描述,确认媒体端口和 IP 地址是否正确。 ```bash # 示例:使用 tshark 命令行工具捕获 SIP 数据包 tshark -i eth0 -f "port 5060" -w sip_capture.pcap ``` ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值