V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
amiwrong123
V2EX  ›  Wireshark

wireshark 如何抓到 ip 数据包被分片的情况

  •  
  •   amiwrong123 · Mar 1, 2021 · 2596 views
    This topic created in 1893 days ago, the information mentioned may be changed or developed.

    根据 v 友们的建议,用起来了 wireshark,确实很不错,结合看书。

    但现在有个问题,好像我总是抓不到 ip 数据包被分片的情况?

    6P21vq.png

    如上图,好像只能找到 dont fragment 的 IP 数据包。

    还是我姿势不对啊。。

    6 replies    2025-09-12 13:35:47 +08:00
    qakito
        1
    qakito  
       Mar 1, 2021
    TCP 为了传输效率是不允许分片的。如何做到不分片请查阅 MSS 。
    最简单就是 ping 大包了:
    ping A.B.C.D -l 10000(windows)
    ping A.B.C.D -s 10000(linux)
    amiwrong123
        2
    amiwrong123  
    OP
       Mar 1, 2021
    @qakito #1
    嗯嗯,因为 MSS 就是根据 MTU 来的嘛,所以 ip 数据包到了链路层 不会被分片。

    不过我好像在哪里看到说:没有一个简单的方法能找到 MTU 。也就是说,TCP 建立连接时确定下来的 MTU 是错的,是不是就是因为这种情况,所以 IP 数据包 才有可能被分片。

    晚上回家了,试试你的方法。主要想看下 IP 包被分片后,这些数据在 wireshark 里长什么样子。
    amiwrong123
        3
    amiwrong123  
    OP
       Mar 1, 2021
    wireshark 节点的帖子,原来不配在首页上的吗
    lcdtyph
        4
    lcdtyph  
       Mar 1, 2021 via iPhone
    你直接发个超长 ping request 就能看到分片的 ip 层报文了
    qakito
        5
    qakito  
       Mar 1, 2021
    这就牵涉到 path mtu
    但 TCP 是置了 DF 位,除非外层有其他 VPN(IPSec/MPLS/GRE 之类的),否则不可能抓到分片报文
    tubowen
        6
    tubowen  
       Sep 12, 2025 via Android
    因为分片是网卡硬件做的,wireshark 只能在操作系统层面抓,得发大包,然后在中间的交换机,做端口镜像去抓才能观察到
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4937 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 09:56 · PVG 17:56 · LAX 02:56 · JFK 05:56
    ♥ Do have faith in what you're doing.