shally1995
V2EX  ›  问与答

wireshark 抓的包小于最小帧长 60

  •  
  •   shally1995 · Oct 29, 2015 · 5284 views
    This topic created in 3855 days ago, the information mentioned may be changed or developed.

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

    gccon
        1
    gccon  
       Oct 29, 2015 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  
       Oct 29, 2015
    46~1518
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3538 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 00:14 · PVG 08:14 · LAX 17:14 · JFK 20:14
    ♥ Do have faith in what you're doing.