工作中常常须要统计server上的rtp包接收、发送性能。不想自己再做一套统计软件,打算用现有的wireshark来做分析统计。

先把rtp头存成pcap格式文件,pcap文件格式及如何存储能够參照这篇文章

 

然后在wireshark中打开pcap文件,但是问题来了。在wireshark中默认仅仅支持完整的ip报文。

这样须要在每一个rtp包前加上ip头,但是ip头的大小比rtp头都还要大,这样做会浪费非常多存储空间。

 

还有没有更好的办法让wireshark仅仅解析rtp数据呢,通过阅读wireshark源代码,最终找到一种办法。

原来wireshark支持自己定义报文格式,先在软件界面的edit->preference->protocols选中DLT_USER。然后点击右側界面editbutton。在弹出框中点击new。例如以下界面

Wireshark为什么RTP流分析是灰色的 wireshark解析rtp包_统计分析

在payload protocol中填入rtp,其它为空就可以。

注意最開始的DLT=147,这个相应pcap文件头中的linktype,须要把pcap文件头的linktype置为147.

 

设置完后。再打开pcap文件。即能够看到例如以下界面

Wireshark为什么RTP流分析是灰色的 wireshark解析rtp包_存储空间_02

能够看到每一个rtp包的sequence。时间戳等。也能够非常方便的做各种统计分析了。