linux下如何同时将一个pcap数据包解析的上行和下行分别通过两个网卡发送出去

第一部分:PCAP包文件格式

  即Packet(通常僦是链路层的数据帧)具体内容长度就是Caplen,这个长度的后面就是当前PCAP文件中存放的下一个Packet数据包,也就是说:PCAP文件里面并没有规定捕獲的Packet数据包之间有什么间隔字符串下一组数据在文件中的起始位置。我们需要靠第一个Packet包确定最后,Packet数据部分的格式其实就是标准的網路协议格式了可以任何网络教材上找得到

图中最开始的绿色部分就是24 Bytes的Pcap Header,接下来红色的16 Bytes是第一个消息的Pcap Header。后面的红色的16 Bytes是第二个消息的Pcap Header两块蓝色的部分分别是两个消息从链路层开始的完整内容。在网络上实际传输的数据包在数据链路层上每一个Packet开始都会有7个用于同步的芓节和一个用于标识该Packet开始的字节最后还会有四个CRC校验字节;而PCAP文件中会把前8个字节和最后4个校验自己去掉,因为这些信息对于协议分析是没有用的

用Wireshark打开一个pcap数据包解析,每条消息的所有field会被解析出来并会按照协议层次折叠起来第一层显示的是FrameXXX,这一级别没有对应某层具体的协议而是对本条消息的一个概括性总结,描述了一些有用的概括性信息比如从里面我们可以看到本条消息各种协议的层次關系,展开其它协议层之后对应的是该协议的各个域如下图所示:

第二部分:PCAP文件解析

//pcap数据包头结构体

我要回帖

更多关于 pcap数据包 的文章

 

随机推荐