在使用nexmon工具时,其提取的CSI最后保存在pcap文件中,因此学习一下pcap文件。
抓包(Packet Capture)是一种网络分析工具,而PCAP是一个数据包抓取库, 很多软件都是用它来作为数据包抓取工具的,比如WireShark也是用PCAP库来抓取数据包的。PCAP抓取出来的数据包并不是原始的网络字节流,而是对其进行从新组装,形成一种新的数据格式。它可以记录网络数据包的详细信息,包括源地址、目标地址、协议类型、数据内容等。
在 Linux 中,可以使用工具如 tcpdump 或 Wireshark 来进行抓包操作。以下是一些常见的抓包工具和示例用法:
- tcpdump:
- 安装 tcpdump:如果系统未安装 tcpdump,可以使用包管理工具进行安装。例如,在 Debian/Ubuntu 系统中可以使用 命令安装。
- 抓取数据包:可以使用以下命令抓取指定网络接口的数据包,并将结果保存到文件中: 其中 指定抓取的网络接口为 eth0, 指定将抓取的数据包保存到 capture.pcap 文件中。
- 查看抓包结果:可以使用 Wireshark 或 tcpdump 自带的命令行工具(例如 )来查看抓取的数据包内容。
- Wireshark:
- 安装 Wireshark:可以从 Wireshark 官网下载安装包,并根据系统进行安装。
- 使用 Wireshark 图形界面进行抓包操作:打开 Wireshark 图形界面,在菜单栏选择相应的网络接口(如 eth0),然后点击“开始捕获”按钮进行抓包。抓包结束后,可以保存捕获的数据包到 PCAP 文件中。
Tips:在使用抓包工具时需要管理员权限或 root 权限,以便访问网络接口并进行数据包捕获操作。另外,抓包操作会捕获网络上的所有数据包,包括敏感信息,请在合法授权和合规的情况下使用抓包工具。
- 文件头header:24字节
数据包头 + 数据包 :数据包头为16字节,后面紧跟数据包
数据包头 + 数据包 …:一个用PCAP抓取的数据包的文件格式如下:
- Pcap文件头24B各字段说明:
里定义了文件头的格式4B:0x1A 2B 3C 4D :用来标示文件的开始
2B,0x02 00 :当前文件主要的版本号
2B,0x04 00 当前文件次要的版本号
4B 当地的标准时间;全零
4B 时间戳的精度;全零
4B 最大的存储长度,4字节抓包最大长度如果要抓全,设为0x0000ffff
(65535),tcpdump -s 0就是设置这个参数,缺省为68字节
4B 链路类型- 常用类型:
0 BSD loopback devices, except for later OpenBSD
1 Ethernet, and Linux loopback devices
6 802.5 Token Ring
7 ARCnet
8 SLIP
9 PPP
10 FDDI
100 LLC/SNAP-encapsulated ATM
101 “raw IP”, with no link
102 BSD/OS SLIP
103 BSD/OS PPP
104 Cisco HDLC
105 802.11
108 later OpenBSD loopback devices (with the AF_value in network byte order)
113 special Linux “cooked” capture
114 LocalTalk
其中我们最为常见的类型就是1,以太网链路。
- 常用类型:
- Pcap数据包头各字段说明:
时间戳高位,精确到seconds;时间戳低位,精确到microseconds;8字节的抓包时间 ,4字节表示秒数,4字节表示微秒数;
4字节 保存下来的包长度(最多是snaplen,比如68字节),即抓取到的数据帧长度,由此可以得到下一个数据帧的位置。
4字节数据包的真实长度,即离线数据长度:网络中实际数据帧的长度,一般不大于caplen,多数情况下和Caplen数值相等。
即 Packet(通常就是链路层的数据帧去掉前面用于同步和标识帧开始的8字节和最后用于CRC校验的4字节)具体内容,长度就是Caplen,这个长度的 后面,就是当前PCAP文件中存放的下一个Packet数据包,也就是说:PCAP文件里面并没有规定捕获的Packet数据包之间有什么间隔字符串,我 们需要靠第一个Packet包确定下一组数据在文件中的起始位置,向后以此类推。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/11187.html