目录

  • tcpdump
  • wireshark


tcpdump

  1. tcpdump参数详解
    网上一搜一大堆。最全的不是用tcpdump -h而是man tcpdump来查询手册。
    tcpdump -i eth0 -p udp -xx -Xs 0 -w /root/test2.cap -i 针对eth0网卡的,ifconfig是查看有几个网卡
    -i eth0 表示使用网络接口 eth0。
    -p udp 表示只捕获 UDP 协议的数据包。
    -xx 表示使用最高位数为 256,用于设置 tcpdump 的选项。
    -Xs 0 表示将前 16 个字节的数据作为 UDP 头部,这有助于快速定位 UDP 数据包。
    -w /root/test2.cap 表示将捕获的数据包保存到 /root/test2.cap 文件中。
    这个命令将捕获从网络接口 eth0 中传输的 UDP 数据包,并将它们保存到 /root/test2.cap 文件中。在保存数据包之前,tcpdump 使用 -Xs 0 选项将前 16 个字节的数据作为 UDP 头部,这有助于快速定位 UDP 数据包。同时,tcpdump 使用 -p udp 选项只捕获 UDP 协议的数据包,这有助于减少捕获的数据包数量。

下面的随便看看吧,用得着再说

tcpdump详细参数
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络界面> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。

wireshark

1.下载安装wireshark

下载安装教程 1.5 注意要用管理员方式运行

2.从wireshark中导入上面存的test2.cap

wireshark 播放视频 wireshark提取视频流_wireshark 播放视频


序号,时间戳,源地址,目的地址,协议,包长度

3.右键descode as,存成一个RTP

wireshark 播放视频 wireshark提取视频流_wireshark_02


4.

wireshark 播放视频 wireshark提取视频流_wireshark 播放视频_03


怎么分析?

PT=DynamicRTP-Type-96:属于编码方式

SSRC=xxxx,属于不同的流

Seq = xxx,属于不同的包的需要

看一看seq的数量是不是缺少了一个,缺少了有没有接着给下面的人发送一个含有NACK的RTCP,发了之后有没有接着

分析的目的?

主要看你的程序代码和你抓到的包显现出来是不是一样的

如果有一个RTP包丢失了,服务端会给客户端发一个RTCP,会有很多种情况出现。

wireshark 播放视频 wireshark提取视频流_wireshark_04


举个栗子吧!

wireshark 播放视频 wireshark提取视频流_wireshark_05


丢了一个包RTCP

wireshark 播放视频 wireshark提取视频流_音视频_06


wireshark 播放视频 wireshark提取视频流_UDP_07


我们可以分析如下:

帧号 481:该帧在 Wireshark 中捕获到的帧号为 481。
网络层协议:该帧为 Ethernet II 格式,表明该帧为 IPv4 协议的网络层帧。
源 IP 地址:该帧的源 IP 地址为 172.21.145.154。
目标 IP 地址:该帧的目标 IP 地址为 112.17.79.157。
IP 协议版本:该帧为 IPv4 协议版本 4。
源端口号:该帧的源端口号为 20309。
目标端口号:该帧的目标端口号为 59037。
协议类型:该帧为 User Datagram Protocol(UDP) 协议类型。
RTP 控制协议:该帧中包含 Secure Real-time Transport Control Protocol(RTCP) 协议的控制帧。
NACK:该帧的 RTCP 控制帧中包含一个 NACK(Not All Frames Lost) 消息,表示有一帧数据包丢失。

根据以上分析,我们可以得出以下结论:

该帧为 IPv4 协议的网络层帧,源 IP 地址为 172.21.145.154,目标 IP 地址为 112.17.79.157,源端口号为 20309,目标端口号为 59037,协议类型为 UDP。
该帧中包含 RTCP 协议的控制帧,其中包含一个 NACK 消息,表示有一帧数据包丢失。
NACK 消息的目的是要求发送方重新发送丢失的数据包,以提高数据传输的可靠性。