lz 最近在学习用 wireshark 抓包分析,发现为什么抓了不少的帧是 54 字节的,不是说最小帧长是 60 吗?而且抓 54 字节的帧基本是 TCP 协议的, 14 字节的以太网首部, 20 字节的 ip 首部, 20 字节的 tcp 首部,按理应该有 6 字节的数据啊,怎么没有呢?求各位大大解惑
1
gccon 2015-10-29 07:43:25 +08:00 via Android 1
以太网规定,以太网帧数据域部分最小为 46 字节,也就是以太网帧最小是 6 + 6 + 2 + 46 + 4 = 64 。除去 4 个字节的 FCS ,因此,抓包时就是 60 字节。当数据字段的长度小于 46 字节时, MAC 子层就会在数据字段的后面填充以满足数据帧长不小于 64 字节。由于填充数据是由 MAC 子层负责,也就是设备驱动程序。不同的抓包程序和设备驱动程序所处的优先层次可能不同,抓包程序的优先级可能比设备驱动程序更高,也就是说,我们的抓包程序可能在设备驱动程序还没有填充不到 64 字节帧的时候,已经捕获了数据。因此不同的抓包工具抓到的数据帧的大小可能不同。(比如, wireshark 抓到的可能没有填充数据段,而 sniffer 抓到的就有填充数据段),(不过 根据我的观察 wireshark 不同的版本抓获的最小数据包的大小好像有 60 字节也有 54 字节的情况.....)
|
2
lrvy 2015-10-29 08:59:07 +08:00
46~1518
|