首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无线堆栈中的以太网校验和检查

无线堆栈中的以太网校验和检查
EN

Stack Overflow用户
提问于 2009-12-09 00:12:22
回答 4查看 2.8K关注 0票数 1

当通过无线连接接收原始以太网数据包时,在哪里计算以太网校验和,在哪里处理错误?

是由无线堆栈处理,还是由上层处理?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-09 00:30:23

校验和可以在various places中执行。最新的以太网卡从网络堆栈卸载校验和。我不得不禁用硬件校验和,以使网络取证更容易。这显然是有意义的,因为如果没有此功能,硬件将始终静默地丢弃数据包。

票数 1
EN

Stack Overflow用户

发布于 2009-12-09 00:19:42

通常,以太网级FCS (帧校验序列)在硬件MAC (介质访问控制器)中处理。请注意,我们在这里讨论的是,而不仅仅是校验和(在以太网帧级别上没有“校验和”)。

如果检测到FCS不匹配,则很可能会在HW MAC级别将其丢弃:然后将更新统计计数器。

换句话说,用一个不可用的框架“打扰”软件堆栈是没有用的。

票数 1
EN

Stack Overflow用户

发布于 2009-12-09 16:51:04

正如其他发帖者所说,FCS通常由网卡本身或驱动程序检查。但是,在读取原始以太网帧的情况下,我认为这完全取决于驱动程序。例如,在可以设置为“监控”或“混杂”模式的WiFi NIC中,您通常不希望它们丢弃具有坏FCS的帧,因为这可能表示您正在查找的错误。

一个数据点:在监控模式下,Intel 4965AGN Linux驱动程序将所有捕获的数据包中的FCS字段设置为0。如果您运行Wireshark,您可以看到它计算了预期的FCS,并报告0字段无效。这是否意味着它会丢弃MAC中具有不良FCS的帧,或者不幸的是,这些帧是否也被丢弃尚不清楚。

因此,如果原始问题是“捕获原始数据包时,我是否必须自己检查FCS”,4965AGN案例中的答案是“您不能”,如果您从NIC获得真正的FCS,则答案可能是“是”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1867992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档