工作中常常须要统计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。例如以下界面
在payload protocol中填入rtp,其它为空就可以。
注意最開始的DLT=147,这个相应pcap文件头中的linktype,须要把pcap文件头的linktype置为147.
设置完后。再打开pcap文件。即能够看到例如以下界面
能够看到每一个rtp包的sequence。时间戳等。也能够非常方便的做各种统计分析了。