wireshark 抓的包小于最小帧长 60

2015-10-29 05:23:35 +08:00
 shally1995

lz 最近在学习用 wireshark 抓包分析,发现为什么抓了不少的帧是 54 字节的,不是说最小帧长是 60 吗?而且抓 54 字节的帧基本是 TCP 协议的, 14 字节的以太网首部, 20 字节的 ip 首部, 20 字节的 tcp 首部,按理应该有 6 字节的数据啊,怎么没有呢?求各位大大解惑

4236 次点击
所在节点    问与答
2 条回复
gccon
2015-10-29 07:43:25 +08:00
以太网规定,以太网帧数据域部分最小为 46 字节,也就是以太网帧最小是 6 + 6 + 2 + 46 + 4 = 64 。除去 4 个字节的 FCS ,因此,抓包时就是 60 字节。当数据字段的长度小于 46 字节时, MAC 子层就会在数据字段的后面填充以满足数据帧长不小于 64 字节。由于填充数据是由 MAC 子层负责,也就是设备驱动程序。不同的抓包程序和设备驱动程序所处的优先层次可能不同,抓包程序的优先级可能比设备驱动程序更高,也就是说,我们的抓包程序可能在设备驱动程序还没有填充不到 64 字节帧的时候,已经捕获了数据。因此不同的抓包工具抓到的数据帧的大小可能不同。(比如, wireshark 抓到的可能没有填充数据段,而 sniffer 抓到的就有填充数据段),(不过 根据我的观察 wireshark 不同的版本抓获的最小数据包的大小好像有 60 字节也有 54 字节的情况.....)
lrvy
2015-10-29 08:59:07 +08:00
46~1518

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/231882

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX