用wireshark解析应用层存储包

工作中经常需要统计服务器上的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,然后点击右侧界面edit按钮。在弹出框中点击new,如下界面

在payload protocol中填入rtp,其他为空即可。

注意最开始的DLT=147,这个对应pcap文件头中的linktype,需要把pcap文件头的linktype置为147.

设置完后,再打开pcap文件,即可以看到如下界面

可以看到每个rtp包的sequence,时间戳等。也可以很方便的做各种统计分析了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 14:43:52

用wireshark解析应用层存储包的相关文章

wireshark解析三次握手和四次挥手

一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.它们一起处理与电缆(或其他任何传输媒介)的物理接口细节. 2. 网络层,也称作互联网层,处理分组在网络中的活动,例如分组的选路.网络层协议包括IP协议(网际协议).ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议). 3.

c#网络通信框架networkcomms内核解析之七 数据包创建器(PacketBuilder)

PacketBuilder 数据包创建器,用于辅助创建数据包. 程序把Tcp连接上收到的二进制数据暂时存储在 packetBuilder中,如果收到的数据足够多,程序会把数据包包头解析出来,并根据数据包包头中的数据,解析出数据包大小,根据数据包大小,从PacketBuilder中截取相应的二进制数据,把这部分数据以内存流(MemoryStream)的形式,加上数据包包头一起交给NetworkComms.CompleteIncomingItemTask()方法进行处理. PacketBuilder

wireshark长时间抓包分多个文件

前言 说一说这个问题的由来,一般使用wireshark不需要长时间抓包的,但是有时候遇到网络通信中非常棘手的问题,例如一个小时出现一次或者几个小时出现一次问题的情况,这种情况下就必须长时间抓包了.但是如果在wireshark中开始抓包之后等上几个小时肯定会出问题,因为这个时候抓包的内容都是存放在内存中的,几个小时的数据包,特别是如果涉及到音视频的数据包是很大的,几个小时可能会达到几个G的大小,这种情况下wireshark会内存溢出,程序直接异常. 这个时候就需要使用wireshark提供的自动分

Wireshark解析自定义加密协议

一.概述 网上撰文写wireshark使用lua脚本解析协议的文章比较多. 笔者最近也因工作需要使用wireshark解析协议.但因网络安全,协议的数据部分被加密了.无法简单的使用lua脚本进行解析. 考虑到加密算法和压缩算法的复杂性,采用调用lua C库的方法,完成解密(解压). 下面与大家分享下大致思路. 二.目标及思路 协议的大致格式如下: 协议字段 命名 协议版本(1字节) protoVersion 协议命令类型(2字节) protoCmdType 协议加密类型(1字节) protoEn

wireshark解析报文一点根据

wireshark解析报文一点根据 问题:遇到一个问题,net-snmp发出trap的时候,通过wireshark抓包发现只能发送知名端口162的告警报文.处理过程如下: 检查代码:经过代码排查发现net-snmp没有对端口做任何限制. 抓包:经过抓包,发现都发出了UDP报文.对报文进行过滤,过滤条件为 "snmp".发现只有端口为162时,才有报文报文标记为snmp报文,端口为非162时,过滤后,没有snmp报文. 通过对udp报文进行重新解析,发现其中udp报文中的data部分为s

c#网络通信框架networkcomms内核解析之八 数据包的核心处理器

我们先回顾一个 c#网络通信框架networkcomms内核解析之六 处理接收到的二进制数据 中,主程序把PacketBuilder 中的数据交给核心处理器处理的过程 //创建优先级队列项目 PriorityQueueItem item = new PriorityQueueItem(priority, this, topPacketHeader, packetBuilder.ReadDataSection(packetHeaderSize, topPacketHeader.PayloadPac

TcpIP协议,HTTP,DNS 实战:基于wireshark与BurpSuit抓包分析

TcpIP协议,HTTP,DNS 实战:基于wireshark与BurpSuite抓包分析

ubuntu系统下wireshark普通用户抓包设置

dumpcap需要root权限才能使用的,以普通用户打开Wireshark,Wireshark当然没有权限使用dumpcap进行截取封包. 虽然可以使用 sudo wireshark 但是,以sudo的方式用root打开Wireshark显然是不安全的,也不是很方便,因为得到的封包数据也属于root用户. 解决这个问题的办法——可以使用用户组功能使用Wireshark,具体操作: 1.添加wireshark用户组 sudo groupadd wireshark 2.将dumpcap更改为wire

wireshark Capture Filter 抓包时崩溃问题解决方法

wireshark过滤抓包时,capture fillter填写完后会崩溃的问题,报The link type of interface \Device\NPF_{11A6562D-E3B3-32BE-AEA1-3ACE8EBC1949} was not specified.错误. 点击Compile selected BPFs直接崩溃. 最后查出来是因为1.11.2导致的问题,我升级到1.11.3后,就没有这个问题了.坑呀. wireshark Capture Filter 抓包时崩溃问题解决