在 Wireshark 中看到的 Frame
层代表的是数据包在物理层面被捕获时的原始信息以及捕获过程本身的元数据。它不是网络协议栈中的一层(如 Ethernet、IP、TCP),而是 Wireshark 为了方便分析而添加的一个“包装层”。
理解 Frame
层的关键点:
-
封装与元数据:
Ethernet
、Internet (IPv4/IPv6)
、Transmission (TCP/UDP)
等层是协议数据本身。它们构成了网络通信的实际内容。Frame
层则包含了关于这个数据包如何被捕获的额外信息。它包裹在协议数据(Ethernet帧)的外面。
-
Frame
层的内容来源:- 物理帧的边界和长度信息: 它告诉你捕获到的原始比特流的起止位置和总长度(包括可能被底层网卡或驱动程序丢弃的部分)。
- 捕获时间戳: 数据包被捕获的精确时间(通常精确到微秒或纳秒),这对于分析时序、延迟、抖动至关重要。
- 捕获接口信息: 数据包是在哪个网络接口(网卡)上被抓到的。
- 捕获长度与实际长度:
Frame lenghth (or Interface frame length)
: 数据包在网络上传输时的原始总长度。包括所有头部、数据和可能存在的尾部(如Ethernet FCS)。Capture length
: 实际被Wireshark捕获并保存下来的数据长度。这个值通常小于等于Frame length
。如果设置了抓包时的“截断长度”,或者数据包在传输过程中损坏导致驱动只提交了部分数据,就会出现捕获长度小于实际长度的情况。
- 协议信息摘要: 通常会在Frame层的摘要行显示一个简化的协议栈(如
TCP
,HTTP
,DNS
等),方便快速浏览。 - 其他元数据: 可能包括数据包在捕获文件中的序号、与该包相关的着色规则信息、时间戳精度等。
-
与
Ethernet
层的关系(容易混淆的点):Ethernet
层是协议栈的第二层(数据链路层)。它包含源/目的MAC地址、EtherType(指示上层协议,如IPv4、IPv6、ARP)以及实际的协议数据载荷(如IP数据包)。- 一个完整的、在物理线路上传输的以太网帧通常包括:
- 前导码和帧起始定界符(通常由网卡处理,不被Wireshark捕获)
- 以太网头部(源MAC、目的MAC、类型) <- 这就是你在
Ethernet
层看到的内容 - 载荷(Payload,如IP数据包)
- 帧校验序列(FCS,通常由网卡校验,可能被丢弃或可选捕获)
Frame
层描述的是包含这个完整以太网帧(或其中被捕获的部分)的“容器”的元信息。 它告诉你这个以太网帧是什么时候被抓到的、有多大、抓到了多少等等。Ethernet
层则是解析这个帧内部协议内容的开始。
总结:
Ethernet
,Internet
,Transmission
层: 是你抓取的数据包本身的内容,属于网络协议栈。Frame
层: 是 Wireshark 添加的关于这个数据包如何被捕获的上下文信息和元数据。它告诉你捕获的时间、位置、原始大小、实际捕获大小等信息,而不是网络协议的一部分。
简单比喻:
- 想象一个信封 (
Frame
)。 - 信封上写着寄出日期时间(捕获时间戳)、从哪里寄出(捕获接口)、信封本身的重量和大小(帧长度/捕获长度)。
- 信封里面是一封信 (
Ethernet
帧)。 - 信的开头写着收信人和寄信人地址 (
Ethernet
层:源/目MAC地址)。 - 信的内容 (
Ethernet
载荷) 本身可能又是一封格式更正式的信 (IP
层),里面装着更核心的内容 (TCP
层和应用层数据)。
Wireshark 的 Frame
层就是那个最外层的信封及其上的邮寄信息。而 Ethernet
、IP
、TCP
等层则是拆开信封后看到的信纸上的内容及其结构。