我正在 Wireshark 中检查以太网帧。根据“以太网帧”维基百科文章和附图,“帧以 7 个八位字节的前导码和 1 个八位字节的起始帧定界符 (SFD) 开始。”
文章还强调,“数据包嗅探软件不会显示前导码和起始帧分隔符,因为这些位在传递到 OSI 第 2 层(数据包嗅探器在此收集数据)之前已在 OSI 第 1 层被网络接口控制器剥离。”
我的问题是:有没有办法使用 Wireshark 捕获并显示整个以太网帧?如果没有,是否有可能在不使用额外硬件的情况下实现这一点?
//同步确认
答案1
我的问题是:有没有办法使用 Wireshark 捕获并显示整个以太网帧?
只有当您拥有一个可以捕获整个帧并将其提供给主机的网络适配器、一个设置适配器执行此操作的该适配器的驱动程序以及一个允许提供该功能的操作系统中的捕获机制(或以其他方式连接到 libpcap/WinPcap)时才可以。
我知道不提供前导码和 SFD 的以太网适配器。
但是,至少有些适配器可能会提供 CRC/FCS。(我多年前使用的 Mac 上的适配器提供 CRC/FCS;我认为当前 Mac 上的适配器不提供。)Wireshark 会尝试猜测以太网数据包是否具有 FCS,如果它认为有,就会按 FCS 进行处理。(我在使用有问题的 Mac 时向 Wireshark 添加了执行此操作的代码。)
如果没有,是否有可能不使用额外的硬件来实现这一点?
不,正如答案的前一部分所暗示的那样。
赫优讯系统自动化有限公司有一行netAnalyzer 设备可以进入“透明模式”;在该模式下,前导码、SFD 和 FCS 均存在和 Wireshark能读取这些设备生成的 pcap 文件。
我认为Endace 的 DAG 卡可以提供 FCS,但据我所知,他们不能提供前导码或 SFD。
答案2
根据 Wireshark 的网站,某些操作系统的驱动程序可以让你看到比其他操作系统更多的信息。它指的是 FCS,但我不确定这是否与你询问的 CRC 相同。
答案3
请注意,事实并非如此:
我不知道有任何以太网适配器能够提供前导码和 SFD。
如果你看看类似的东西飞思卡尔 P2020 SoC(以及很可能所有其他网络硬件),它允许您查看传入的前导码、更改前导码的长度以及发出自定义前导码。
这可能在 PC 上并不常见,但对于任何“严肃的”网络设备来说,这似乎很常见。不确定在这样的设备上运行的 Wireshark 是否能够以某种方式与操作系统对话以获取帧,也许将原始数据包嗅探器连接到物理网络会更容易。