手把手图解用Wireshark抓个包带你‘看见’一次IMS注册和SIP会话的全过程通信工程师的日常工作中最令人着迷的莫过于将抽象的网络协议转化为可视化的数据流。当终端设备向IMS核心网发起注册并建立语音会话时背后究竟发生了什么本文将带你用Wireshark这款网络协议分析利器亲手捕获并解析IMS注册与SIP会话的全过程。不同于教科书式的概念罗列我们将通过真实抓包数据逐帧拆解SIP信令的交互细节让你真正看见协议栈的工作机制。1. 实验环境搭建与准备1.1 工具与测试平台配置要重现完整的IMS注册流程我们需要以下实验环境组件开源IMS测试平台推荐使用Kamailio或OpenIMSCore搭建简易IMS核心网SIP终端Linphone或MicroSIP等支持完整SIP协议的软客户端网络抓包工具Wireshark 3.6需支持SIP和Diameter协议解析虚拟化环境VirtualBox或VMware Workstation关键配置参数示例# Kamailio基础配置示例 listenudp:192.168.1.100:5060 aliasims.example.com提示实验环境建议使用隔离的局域网段避免与生产网络冲突1.2 Wireshark抓包技巧在开始捕获前需要优化Wireshark的配置捕获过滤器udp port 5060 or port 3868SIP和Diameter默认端口显示过滤器SIP会话sipIMS特定消息sip.Method REGISTER || sip.Method INVITE协议解析选项启用SIP和SDP的深度解析配置Diameter字典文件3GPP标准字典常见问题排查表现象可能原因解决方案抓不到SIP包防火墙拦截临时关闭防火墙或添加规则协议解析错误Wireshark版本过旧升级到最新稳定版消息不完整MTU设置不当调整网络设备MTU至15002. IMS注册流程深度解析2.1 初始REGISTER请求分析当UE首次发起注册时Wireshark会捕获到如下关键字段REGISTER sip:ims.example.com SIP/2.0 Via: SIP/2.0/UDP 192.168.1.10:5060;branchz9hG4bK74bf9 Max-Forwards: 70 From: sip:user1ims.example.com;tag12345 To: sip:user1ims.example.com Call-ID: abc123192.168.1.10 CSeq: 1 REGISTER Contact: sip:user1192.168.1.10:5060 Expires: 3600 Authorization: Digest usernameuser1, realmims.example.com, nonce... Content-Length: 0关键字段解读Via显示请求经过的路径ContactUE的实际可达地址Authorization包含AKA鉴权参数Expires注册有效期秒2.2 401 Unauthorized响应网络侧返回的401响应中携带鉴权质询SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 192.168.1.10:5060;branchz9hG4bK74bf9 From: sip:user1ims.example.com;tag12345 To: sip:user1ims.example.com;tag54321 Call-ID: abc123192.168.1.10 CSeq: 1 REGISTER WWW-Authenticate: Digest realmims.example.com, nonce..., algorithmAKAv1-MD5, qopauth Content-Length: 0此时Wireshark的Packet Details面板会显示SIP Protocol Status-Line: SIP/2.0 401 Unauthorized WWW-Authenticate: Digest realmims.example.com... [Full authentication required]2.3 完整注册流程时序成功注册的完整消息交互如下UE → P-CSCF: REGISTER (初始请求)P-CSCF → I-CSCF: REGISTER (查询HSS)I-CSCF → S-CSCF: REGISTER (分配服务节点)S-CSCF → UE: 401 Unauthorized (鉴权质询)UE → S-CSCF: REGISTER (带鉴权响应)S-CSCF → HSS: MAR (多媒体鉴权请求)HSS → S-CSCF: MAA (鉴权通过)S-CSCF → UE: 200 OK (注册成功)在Wireshark中可以通过Follow SIP Stream功能查看完整对话![Wireshark SIP流跟踪截图]3. SIP会话建立过程拆解3.1 INVITE请求关键结构主叫方发起的INVITE请求示例INVITE sip:user2ims.example.com SIP/2.0 Via: SIP/2.0/UDP 192.168.1.10:5060;branchz9hG4bK12345 Max-Forwards: 70 From: sip:user1ims.example.com;tag67890 To: sip:user2ims.example.com Call-ID: xyz789192.168.1.10 CSeq: 1 INVITE Contact: sip:user1192.168.1.10:5060 Content-Type: application/sdp Content-Length: 147 v0 ouser1 2890844526 2890844526 IN IP4 192.168.1.10 s- cIN IP4 192.168.1.10 t0 0 maudio 7078 RTP/AVP 0 8 96 artpmap:0 PCMU/8000 artpmap:8 PCMA/8000 artpmap:96 telephone-event/8000SDP部分参数说明maudio媒体类型和端口RTP/AVPRTP音频视频配置文件artpmap编解码器映射关系3.2 会话建立完整流程典型SIP会话建立过程主叫UE发送INVITE被叫侧返回100 Trying被叫振铃180 Ringing被叫接听200 OK主叫发送ACK确认媒体流建立RTP/RTCP任一方发送BYE结束会话在Wireshark中可以使用IO Graphs功能可视化会话时序![SIP会话时序图]3.3 关键响应消息解析被叫方接听时的200 OK响应SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.1.10:5060;branchz9hG4bK12345 From: sip:user1ims.example.com;tag67890 To: sip:user2ims.example.com;tag98765 Call-ID: xyz789192.168.1.10 CSeq: 1 INVITE Contact: sip:user2192.168.1.20:5060 Content-Type: application/sdp Content-Length: 149 v0 ouser2 2890844726 2890844726 IN IP4 192.168.1.20 s- cIN IP4 192.168.1.20 t0 0 maudio 7080 RTP/AVP 0 8 96 artpmap:0 PCMU/8000 artpmap:8 PCMA/8000 artpmap:96 telephone-event/80004. 高级分析与故障排查4.1 常见异常场景解析场景1注册频繁失败抓包显示连续401响应检查UE与HSS的鉴权参数同步验证AKA算法配置一致性排查网络时延导致的nonce过期场景2INVITE无响应排查路径检查Route头域是否正确验证DNS解析是否正常排查S-CSCF的iFC触发规则4.2 Diameter协议交互分析HSS与CSCF间的Cx接口通信示例Diameter Protocol Version: 0x01 Length: 268 Flags: 0x80 (Request) Command Code: 300 (User-Authorization) ApplicationId: 16777216 (3GPP Cx) Hop-by-Hop Identifier: 0x12345678 End-to-End Identifier: 0x87654321 AVP: Session-Id ims.example.com;12345 AVP: Origin-Host hss.ims.example.com AVP: Origin-Realm ims.example.com AVP: Destination-Realm ims.example.com AVP: User-Name user1ims.example.com AVP: Public-Identity sip:user1ims.example.com4.3 性能优化关键指标通过Wireshark统计功能可分析的QoS参数指标计算公式健康阈值注册时延第一个REGISTER到200 OK间隔 500ms呼叫建立时延INVITE到200 OK间隔 1.5s媒体丢包率RTCP报告中的丢包比例 1%抖动RTP包到达时间方差 30ms在项目实践中我们发现最影响用户体验的往往是媒体流的QoS表现。通过Wireshark的RTP流分析功能可以直观看到丢包和抖动情况。建议重点关注NAT穿越场景下的RTP传输质量必要时启用ICE/STUN/TURN等NAT穿透机制。
手把手图解:用Wireshark抓个包,带你‘看见’一次IMS注册和SIP会话的全过程
手把手图解用Wireshark抓个包带你‘看见’一次IMS注册和SIP会话的全过程通信工程师的日常工作中最令人着迷的莫过于将抽象的网络协议转化为可视化的数据流。当终端设备向IMS核心网发起注册并建立语音会话时背后究竟发生了什么本文将带你用Wireshark这款网络协议分析利器亲手捕获并解析IMS注册与SIP会话的全过程。不同于教科书式的概念罗列我们将通过真实抓包数据逐帧拆解SIP信令的交互细节让你真正看见协议栈的工作机制。1. 实验环境搭建与准备1.1 工具与测试平台配置要重现完整的IMS注册流程我们需要以下实验环境组件开源IMS测试平台推荐使用Kamailio或OpenIMSCore搭建简易IMS核心网SIP终端Linphone或MicroSIP等支持完整SIP协议的软客户端网络抓包工具Wireshark 3.6需支持SIP和Diameter协议解析虚拟化环境VirtualBox或VMware Workstation关键配置参数示例# Kamailio基础配置示例 listenudp:192.168.1.100:5060 aliasims.example.com提示实验环境建议使用隔离的局域网段避免与生产网络冲突1.2 Wireshark抓包技巧在开始捕获前需要优化Wireshark的配置捕获过滤器udp port 5060 or port 3868SIP和Diameter默认端口显示过滤器SIP会话sipIMS特定消息sip.Method REGISTER || sip.Method INVITE协议解析选项启用SIP和SDP的深度解析配置Diameter字典文件3GPP标准字典常见问题排查表现象可能原因解决方案抓不到SIP包防火墙拦截临时关闭防火墙或添加规则协议解析错误Wireshark版本过旧升级到最新稳定版消息不完整MTU设置不当调整网络设备MTU至15002. IMS注册流程深度解析2.1 初始REGISTER请求分析当UE首次发起注册时Wireshark会捕获到如下关键字段REGISTER sip:ims.example.com SIP/2.0 Via: SIP/2.0/UDP 192.168.1.10:5060;branchz9hG4bK74bf9 Max-Forwards: 70 From: sip:user1ims.example.com;tag12345 To: sip:user1ims.example.com Call-ID: abc123192.168.1.10 CSeq: 1 REGISTER Contact: sip:user1192.168.1.10:5060 Expires: 3600 Authorization: Digest usernameuser1, realmims.example.com, nonce... Content-Length: 0关键字段解读Via显示请求经过的路径ContactUE的实际可达地址Authorization包含AKA鉴权参数Expires注册有效期秒2.2 401 Unauthorized响应网络侧返回的401响应中携带鉴权质询SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 192.168.1.10:5060;branchz9hG4bK74bf9 From: sip:user1ims.example.com;tag12345 To: sip:user1ims.example.com;tag54321 Call-ID: abc123192.168.1.10 CSeq: 1 REGISTER WWW-Authenticate: Digest realmims.example.com, nonce..., algorithmAKAv1-MD5, qopauth Content-Length: 0此时Wireshark的Packet Details面板会显示SIP Protocol Status-Line: SIP/2.0 401 Unauthorized WWW-Authenticate: Digest realmims.example.com... [Full authentication required]2.3 完整注册流程时序成功注册的完整消息交互如下UE → P-CSCF: REGISTER (初始请求)P-CSCF → I-CSCF: REGISTER (查询HSS)I-CSCF → S-CSCF: REGISTER (分配服务节点)S-CSCF → UE: 401 Unauthorized (鉴权质询)UE → S-CSCF: REGISTER (带鉴权响应)S-CSCF → HSS: MAR (多媒体鉴权请求)HSS → S-CSCF: MAA (鉴权通过)S-CSCF → UE: 200 OK (注册成功)在Wireshark中可以通过Follow SIP Stream功能查看完整对话![Wireshark SIP流跟踪截图]3. SIP会话建立过程拆解3.1 INVITE请求关键结构主叫方发起的INVITE请求示例INVITE sip:user2ims.example.com SIP/2.0 Via: SIP/2.0/UDP 192.168.1.10:5060;branchz9hG4bK12345 Max-Forwards: 70 From: sip:user1ims.example.com;tag67890 To: sip:user2ims.example.com Call-ID: xyz789192.168.1.10 CSeq: 1 INVITE Contact: sip:user1192.168.1.10:5060 Content-Type: application/sdp Content-Length: 147 v0 ouser1 2890844526 2890844526 IN IP4 192.168.1.10 s- cIN IP4 192.168.1.10 t0 0 maudio 7078 RTP/AVP 0 8 96 artpmap:0 PCMU/8000 artpmap:8 PCMA/8000 artpmap:96 telephone-event/8000SDP部分参数说明maudio媒体类型和端口RTP/AVPRTP音频视频配置文件artpmap编解码器映射关系3.2 会话建立完整流程典型SIP会话建立过程主叫UE发送INVITE被叫侧返回100 Trying被叫振铃180 Ringing被叫接听200 OK主叫发送ACK确认媒体流建立RTP/RTCP任一方发送BYE结束会话在Wireshark中可以使用IO Graphs功能可视化会话时序![SIP会话时序图]3.3 关键响应消息解析被叫方接听时的200 OK响应SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.1.10:5060;branchz9hG4bK12345 From: sip:user1ims.example.com;tag67890 To: sip:user2ims.example.com;tag98765 Call-ID: xyz789192.168.1.10 CSeq: 1 INVITE Contact: sip:user2192.168.1.20:5060 Content-Type: application/sdp Content-Length: 149 v0 ouser2 2890844726 2890844726 IN IP4 192.168.1.20 s- cIN IP4 192.168.1.20 t0 0 maudio 7080 RTP/AVP 0 8 96 artpmap:0 PCMU/8000 artpmap:8 PCMA/8000 artpmap:96 telephone-event/80004. 高级分析与故障排查4.1 常见异常场景解析场景1注册频繁失败抓包显示连续401响应检查UE与HSS的鉴权参数同步验证AKA算法配置一致性排查网络时延导致的nonce过期场景2INVITE无响应排查路径检查Route头域是否正确验证DNS解析是否正常排查S-CSCF的iFC触发规则4.2 Diameter协议交互分析HSS与CSCF间的Cx接口通信示例Diameter Protocol Version: 0x01 Length: 268 Flags: 0x80 (Request) Command Code: 300 (User-Authorization) ApplicationId: 16777216 (3GPP Cx) Hop-by-Hop Identifier: 0x12345678 End-to-End Identifier: 0x87654321 AVP: Session-Id ims.example.com;12345 AVP: Origin-Host hss.ims.example.com AVP: Origin-Realm ims.example.com AVP: Destination-Realm ims.example.com AVP: User-Name user1ims.example.com AVP: Public-Identity sip:user1ims.example.com4.3 性能优化关键指标通过Wireshark统计功能可分析的QoS参数指标计算公式健康阈值注册时延第一个REGISTER到200 OK间隔 500ms呼叫建立时延INVITE到200 OK间隔 1.5s媒体丢包率RTCP报告中的丢包比例 1%抖动RTP包到达时间方差 30ms在项目实践中我们发现最影响用户体验的往往是媒体流的QoS表现。通过Wireshark的RTP流分析功能可以直观看到丢包和抖动情况。建议重点关注NAT穿越场景下的RTP传输质量必要时启用ICE/STUN/TURN等NAT穿透机制。