V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
amiwrong123
V2EX  ›  Wireshark

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

  •  
  •   amiwrong123 · 2021-03-01 11:30:45 +08:00 · 1778 次点击
    这是一个创建于 1396 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    6P21vq.png

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

    还是我姿势不对啊。。

    5 条回复    2021-03-01 12:36:27 +08:00
    qakito
        1
    qakito  
       2021-03-01 11:41:17 +08:00
    TCP 为了传输效率是不允许分片的。如何做到不分片请查阅 MSS 。
    最简单就是 ping 大包了:
    ping A.B.C.D -l 10000(windows)
    ping A.B.C.D -s 10000(linux)
    amiwrong123
        2
    amiwrong123  
    OP
       2021-03-01 11:47:40 +08:00
    @qakito #1
    嗯嗯,因为 MSS 就是根据 MTU 来的嘛,所以 ip 数据包到了链路层 不会被分片。

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

    晚上回家了,试试你的方法。主要想看下 IP 包被分片后,这些数据在 wireshark 里长什么样子。
    amiwrong123
        3
    amiwrong123  
    OP
       2021-03-01 11:53:29 +08:00
    wireshark 节点的帖子,原来不配在首页上的吗
    lcdtyph
        4
    lcdtyph  
       2021-03-01 12:13:12 +08:00 via iPhone
    你直接发个超长 ping request 就能看到分片的 ip 层报文了
    qakito
        5
    qakito  
       2021-03-01 12:36:27 +08:00
    这就牵涉到 path mtu
    但 TCP 是置了 DF 位,除非外层有其他 VPN(IPSec/MPLS/GRE 之类的),否则不可能抓到分片报文
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1026 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:58 · PVG 04:58 · LAX 12:58 · JFK 15:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.