Appearance
Appearance
Endace DAG 监控接口卡会以其自身的原生格式生成 trace files,该格式称为 Extensible Record Format(ERF)。
ERF 文件由一系列 records 组成。每个 record 描述一个 packet。ERF 文件只包含 ERF records;没有特殊的文件头。这允许在 ERF record 边界上任意进行拼接和拆分。
通用 ERF header
| Byte 3 | Byte 2 | Byte 1 | Byte 0
| timestamp
| timestamp
| type | flags | rlen
| lctr/color | wlen
| extension headers(可选)
| payload
cell 的到达时间,一个 ERF 64-bit timestamp。单个 little-endian 64-bit fixed point number。高 32-bits 包含自起始时间(unix epoch time)以来的整数秒数。低 32-bits 包含秒的二进制小数部分,使最终分辨率约为 233 picoseconds。
| Bits | Description | 7 | 存在 Extension header。 | 6:0 | Extension header type。
| Bits | Description | 7 | 保留 | 6 | 保留 | 5 | DS error。card annotator 内部生成的内部错误。线缆上不存在。 | 4 | RX error。接收数据中的错误。线缆上存在 | 3 | Truncated record(已弃用) | 2 | Varying length record... 保持开启即可,否则 packets 应该被填充 | 1:0 | capture interface 的二进制枚举。11:interface 3/D;10:interface 2/C;01:interface 1/B;00:interface 0/A
Record length,以字节为单位。通过 PCI bus 传输到存储的 record 总长度。下一个 ERF record 的 timestamp 正好从当前 ERF record 的 timestamp 起始位置之后 rlen 字节处开始。
根据 ERF type 的不同,这可以是 loss counter 或 color field。loss counter 记录由于 PCI bus 过载,在 DAG card 与 stream buffer 之间丢失的 packets 数量。loss 记录在同一 stream/interface 上捕获的当前 record 与前一个 record 之间。
Wire length。packet “on the wire” 的长度,包括一些协议开销。该数值的具体解释取决于物理介质。它可能包含 padding。
ERF record 中的 Extension headers 允许与每个 packet 相关的额外数据被传输到 host。如果 type field 的 bit 7 为 1,则存在 Extension header(s)。
Payload 是 record 中的实际数据。它可以通过以下方式计算:payload = rlen - ERF header - Extension headers(可选)- Protocol header - padding。
该 dissector 适用于所有 ERF 文件。它还支持在 Wireshark 中保存 Ethernet 或 HDLC 类型的 pcap 或其他通用数据。在 Ethernet 类型中,如果不存在已有 checksum,则会生成并添加一个 checksum,因为有些工具期望 ERF 文件具有 checksum。ERF、HDLC 会提供 expert info;如果存在更多未加载的 extension headers(最多加载 8 个),也会提供 expert info。
(XXX 添加指向影响 PROTO 解析方式的首选项设置的链接)。
只显示基于 ERF 的流量:
erfhttps://www.endace.com/erf-extensible-record-format-types.pdf
Christopher:与其完全移除 End of Life DAG Cards 的 ERF types,我认为如果它们保留在参考文档的某个位置会更好;毕竟,Wireshark 仍然会为这些 types 提供解析支持,用户也可能希望查阅这些 types。
Stephen:Wireshark 会保留对旧的/未使用的 ERF record types 和 headers 的解析。我们将它们从参考文档中移除,是为了减少那些正在积极使用受支持 cards 的人的混乱。如果有人有疑问,我很乐意在这里加入关于 obsolete formats 的说明。
Guy:我保存了该手册第 6、10 和 19 版的副本,它们应该至少记录了其中一些 record types 和 headers。为了参考用途,我是否应该把它们上传到 Wiki,并从这里指向它们?
Stephen:可以,不过并非所有旧版本都可能有分发许可。另一种选择是,我们正在为格式文档建设一个公开页面,也可以归档相关的历史版本。
Guy:如果“我们”指的是 “Endace”,那我会投票支持后一种方案。
导入自 https://wiki.wireshark.org/ERF,时间为 2020-08-11 23:13:49 UTC