V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
shally1995
V2EX  ›  问与答

wireshark 抓的包小于最小帧长 60

  •  
  •   shally1995 · 2015-10-29 05:23:35 +08:00 · 4223 次点击
    这是一个创建于 3100 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    gccon
        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 字节的情况.....)
    lrvy
        2
    lrvy  
       2015-10-29 08:59:07 +08:00
    46~1518
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5246 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:51 · PVG 16:51 · LAX 01:51 · JFK 04:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.