Appearance
Appearance
IP Reassembly 是 Wireshark 和 TShark 中的一项功能,用于在调用更高层 dissector 之前,自动将所有分片的 IP Datagrams 重组为完整的 IP packet。
该功能需要 Wireshark 消耗大量额外内存来存储重组缓冲区,因此默认禁用。
要启用 IP Reassembly,请进入 preferences 并勾选 reassembly 对应的复选框
启用 IP Reassembly 后,TShark 和 Wireshark 中会发生几项变化。首先,Wireshark 将不再在包含 IP packet header 的 frame 中解析 UDP 或 TCP header(或这些协议之上的任何协议)。相反,对 UDP 或 TCP protocol dissectors 的调用会被延迟,直到所有 IP fragments 都已接收,并且完整的 IP datagram 已经完全重组。
这种差异表现为:未启用 IP Reassembly 时,上层协议,即 UDP 或 TCP 以及其上的任何内容,只要在初始 fragment(fragment offset 为 0)对应的该 frame 中存在,就会针对该特定 frame 被解析并显示。该 frame 通常还会在 packet summary line 中显示类似“[Short Frame]”的信息文本。该 IP datagram 的所有其他 IP Fragments 只会被解析到 IP layer(含 IP layer)为止。
启用此功能后,IP datagram 的解析会被延迟,直到捕获中完整 IP datagram 被完全重组的那个 packet。
这意味着某些使用 reassembly 的 packets,例如 NFSoverUDP,在启用 IP Reassembly 后会以不同方式解析,甚至会在不同的 frames 中解析。
IP Reassembly 是一个全有或全无的功能。如果在捕获中找不到完成重组所需的每一个 IP Fragment,那么就完全不会进行任何解析。甚至 TCP 或 UDP layer 也不会解析。
IP Reassembly 无法重组 packets 的常见原因:
短 packets。你捕获 packet 时使用的 SnapLen 小于链路的 MTU,因此部分 packet 内容缺失,那么 Wireshark 甚至不会尝试执行 reassembly。
IP Header Checksum 无效。如果 IP Header Checksum 无效,那么 IP Reassembly 功能会忽略该 packet。
某些 IP Fragments 只是没有出现在捕获中。这是现实情况,你永远无法保证经过线路的每一个 packet 都确实被捕获并写入 Capture File。抱歉,这就是现实 😦
如果 trace 中存在 IP Fragments,此功能在运行时将消耗大量额外内存。对于巨大的 NFSoverUDP traces,启用此功能是非常非常糟糕的主意,因为它会像没有明天一样吞噬内存。
要启用 IP Reassembly,请勾选此首选项设置
Reassemble fragmented IP datagrams.
Imported from https://wiki.wireshark.org/IP_Reassembly on 2020-08-11 23:15:19 UTC