首页 > 其他分享 >PCAP数据包

PCAP数据包

时间:2022-11-22 17:55:27浏览次数:35  
标签:数据 数据包 抓取 Packet 长度 PCAP

  • PCAP是一个数据包抓取库, 很多软件都是用它来作为数据包抓取工具的。 WireShark也是用PCAP库来抓取数据包的。PCAP抓取出来的数据包并不是原始的网络字节流,而是对其进行从新组装,形成一种新的数据格式。

    一个用PCAP抓取的数据包的文件格式如下:

    Pcap文件头24B各字段说明:
    Magic:4B:0x1A 2B 3C 4D:用来标示文件的开始
    Major:2B,0x02 00:当前文件主要的版本号     
    Minor:2B,0x04 00当前文件次要的版本号
    ThisZone:4B当地的标准时间;全零
    SigFigs:4B时间戳的精度;全零
    SnapLen:4B最大的存储长度   
    LinkType: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,以太网链路。


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

    Packet 包头和Packet数据组成 字段说明: Timestamp:时间戳高位,精确到seconds(值是自从January 1, 1970 00:00:00 GMT以来的秒数来记) Timestamp:时间戳低位,精确到microseconds (数据包被捕获时候的微秒(microseconds)数,是自ts-sec的偏移量) Caplen:当前数据区的长度,即抓取到的数据帧长度,由此可以得到下一个数据帧的位置。 Len:离线数据长度网络中实际数据帧的长度,一般不大于caplen,多数情况下和Caplen数值相等。 (例如,实际上有一个包长度是1500 bytes(Len=1500),但是因为在Global Header的snaplen=1300有限制,所以只能抓取这个包的前1300个字节,这个时候,Caplen = 1300 ) Packet 数据:即 Packet(通常就是链路层的数据帧)具体内容,长度就是Caplen,这个长度的后面,就是当前PCAP文件中存放的下一个Packet数据包,也就 是说:PCAP文件里面并没有规定捕获的Packet数据包之间有什么间隔字符串,下一组数据在文件中的起始位置。我们需要靠第一个Packet包确定。 最后,Packet数据部分的格式其实就是标准的网路协议格式了可以任何网络教材上找得到。

    下面是一个PCAP数据包的实例,该数据包包含了两条消息。下图是用十六进制工具将该数据包打开后的截图。

    图中最开始的绿色部分就是24 Bytes的Pcap Header,接下来红色的16 Bytes是第一个消息的Packet Header, 后面的红色的16 Bytes是第二个消息的Packet Header。两块蓝色的部分分别是两个消息从链路层开始的完整内容。在网络上实际传输的数据包在数据链路层上每一个Packet开始都会有7个用于同步 的字节(10101010, 10101010, 10101010, 10101010, 10101010, 10101010, 10101010,)和一个用于标识该Packet开始的字节(10101011),最后还会有四个CRC校验字节;而PCAP文件中会把前8个字节和最 后4个校验自己去掉,因为这些信息对于协议分析是没有用处的。
    用Wireshark打开一个Pcap数据包后, 每条消息的所有field会被解析出来并会按照协议层次折叠起来。第一层显示的是Frame XXX,这一级别没有对应某层具体的协议,而是对本条消息的一个概括性总结,描述了一些有用的概括性信息,比如从里面我们可以看到本条消息各种协议的层次 关系,展开其它协议层之后对应的是该协议的各个域;如下图所示:

  •  

标签:数据,数据包,抓取,Packet,长度,PCAP
From: https://www.cnblogs.com/xkdn/p/16915944.html

相关文章

  • tcpdump抓取CoAP数据包,WireShark解析
    考虑这样的场景,设备使用NB-IoT发送CoAP数据包到服务器,服务器是Linux,作为服务器的Linux通常只有命令行。在这样的场景下想要捕获CoAP数据包进行分析。首先在设备端捕获是不现......
  • WinPcap---捕捉设备报文例子
    WinPcap手册中的例子:1#define_XKEYCHECK_H2#include"pcap.h"3#include<winsock2.h>4#include<string.h>5#include<iostream>67#pragma......
  • python 发送 application/x-www-form-urlencoded 类型的数据包
    在网上百度了很多,坑的要死,基本不咋好用,自己多尝试了几遍,成功实现了。data的构建方式data=f"page={page}&sign={sign}&t={t}"直接这么弄就可以了,不用搞的那么麻烦。......
  • 显示网卡发送发送的数据包流量
    [root@libin5shell]#vimshell2.sh#!/bin/bash#使用死循环实时显示ens160网卡发送的数据包流量while:doecho'本地网卡ens160流量信息如下:'ifconfigens160|......
  • 数据包拓展——tang-jh
      第二天.数据包拓展HTTP简要通信过程建立连接一—>发送请求数据包――>返回响应数据包一—>关闭连接1.浏览器建立与web服务器之间的连接2.浏览器将请求数据打包(生......
  • python winpcap
    fromwinpcapyimportWinPcapDevicesfromwinpcapyimportWinPcapUtilsimportdpktimporttimeimportdatetime#list_device=WinPcapDevices.list_devices()......
  • HDMI原理详解以及时序流程(视频是三对差分信号,音频Audio是PCM级(无压缩)传输,包含在数据包
    资料来源:HDMI介绍与流程-TaigaComplex-博客园最近要用ZYNQ开发版的HDMI做显示,看着硬件管脚和例程只能发呆,于是决心去弄清楚HDMI的工作原理,查找了很多资料,都是碎片化的......
  • ERP 基础数据包括哪些?
    一套真正意义上的ERP系统,上千个数据表,单表字段数上百个,而基础数据首当其冲的就是物料BOM,这些数据包括物料基本数据、工艺流程等,物料表字段数数百个,如下图所示,涉及主要信......
  • 《吐血整理》高级系列教程-吃透Fiddler抓包教程(33)-Fiddler如何抓取WebSocket数据包
    1.简介本来打算再写一篇这个系列的文章也要和小伙伴或者童鞋们说再见了,可是有人留言问WebSocket包和小程序的包不会抓,那就关于这两个知识点宏哥就再水两篇文章。2.什么是......
  • vlc-解码一个RTP数据包函数分析
    函数与解析解码RTP包主要完成的是从RTP包队列中取走一个RTP包,解析是否丢弃,并初始化时间戳,显示时间戳,负载类型,忽略字节等信息,更新包队列信息,并把解析后的该包传递给负载类型......