当前位置:网站首页 > 技术博客 > 正文

pcap_open



在使用nexmon工具时,其提取的CSI最后保存在pcap文件中,因此学习一下pcap文件。

  抓包(Packet Capture)是一种网络分析工具,而PCAP是一个数据包抓取库, 很多软件都是用它来作为数据包抓取工具的,比如WireShark也是用PCAP库来抓取数据包的。PCAP抓取出来的数据包并不是原始的网络字节流,而是对其进行从新组装,形成一种新的数据格式。它可以记录网络数据包的详细信息,包括源地址、目标地址、协议类型、数据内容等。

在 Linux 中,可以使用工具如 tcpdump 或 Wireshark 来进行抓包操作。以下是一些常见的抓包工具和示例用法:

  1. tcpdump
    • 安装 tcpdump:如果系统未安装 tcpdump,可以使用包管理工具进行安装。例如,在 Debian/Ubuntu 系统中可以使用 命令安装。
    • 抓取数据包:可以使用以下命令抓取指定网络接口的数据包,并将结果保存到文件中:
       其中 指定抓取的网络接口为 eth0, 指定将抓取的数据包保存到 capture.pcap 文件中。
    • 查看抓包结果:可以使用 Wireshark 或 tcpdump 自带的命令行工具(例如 )来查看抓取的数据包内容。
  2. Wireshark
    • 安装 Wireshark:可以从 Wireshark 官网下载安装包,并根据系统进行安装。
    • 使用 Wireshark 图形界面进行抓包操作:打开 Wireshark 图形界面,在菜单栏选择相应的网络接口(如 eth0),然后点击“开始捕获”按钮进行抓包。抓包结束后,可以保存捕获的数据包到 PCAP 文件中。

Tips:在使用抓包工具时需要管理员权限或 root 权限,以便访问网络接口并进行数据包捕获操作。另外,抓包操作会捕获网络上的所有数据包,包括敏感信息,请在合法授权和合规的情况下使用抓包工具。

  • 文件头header:24字节
    数据包头 + 数据包 :数据包头为16字节,后面紧跟数据包
    数据包头 + 数据包 …:一个用PCAP抓取的数据包的文件格式如下:
  1. 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,以太网链路。
  2. Pcap数据包头各字段说明:
     

    时间戳高位,精确到seconds;时间戳低位,精确到microseconds;8字节的抓包时间 ,4字节表示秒数,4字节表示微秒数;
    4字节 保存下来的包长度(最多是snaplen,比如68字节),即抓取到的数据帧长度,由此可以得到下一个数据帧的位置。
    4字节数据包的真实长度,即离线数据长度:网络中实际数据帧的长度,一般不大于caplen,多数情况下和Caplen数值相等。
    即 Packet(通常就是链路层的数据帧去掉前面用于同步和标识帧开始的8字节和最后用于CRC校验的4字节)具体内容,长度就是Caplen,这个长度的 后面,就是当前PCAP文件中存放的下一个Packet数据包,也就是说:PCAP文件里面并没有规定捕获的Packet数据包之间有什么间隔字符串,我 们需要靠第一个Packet包确定下一组数据在文件中的起始位置,向后以此类推。

版权声明


相关文章:

  • 检测网络连接问题windows网络诊断2024-12-19 08:01:02
  • python中与或非2024-12-19 08:01:02
  • linux中chmod是什么意思2024-12-19 08:01:02
  • 五大推荐系统算法2024-12-19 08:01:02
  • 137端口对应的服务2024-12-19 08:01:02
  • xcpru2024-12-19 08:01:02
  • 若快网络科技游戏开发的游戏2024-12-19 08:01:02
  • 一句话木马教程2024-12-19 08:01:02
  • 程序员如何接私活2024-12-19 08:01:02
  • 左移右移运算符号2024-12-19 08:01:02