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

先把rtp头存成pcap格式文件,pcap文件格式及如何存储能够參照这篇文章http://blog.csdn.net/force_eagle/article/details/6681802

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

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

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

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

用wireshark解析应用层存储包-LMLPHP

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

,这个相应pcap文件头中的linktype,须要把pcap文件头的linktype置为147.

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

用wireshark解析应用层存储包-LMLPHP

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

04-27 19:26