Linux上的IP碎片

问题描述 投票:1回答:1

我有一个位于2个路由器之间的Linux系统(嗅探器)。两个路由器都支持Jumbo帧,而我的系统仅限于MTU 1500。

我的理解是发送路由器将Jumbo帧分段为基于MTU 1500的IP数据报,linux将根据RFC 815重新组装它们。

关于这个过程的几个问题:

  1. 在Linux中,哪个Layer负责重组过程?哪个文件?
  2. 此过程(分段和重组)是否适用于所有第3层协议(IPv4 \ IPv6 for ex)?
  3. 假设我的嗅探器构造了一个大数据包并将其发送出去,那么碎片是否会由linux堆栈自动发生?

谢谢,冉

networking ip embedded-linux ip-fragmentation
1个回答
1
投票

我可以回答你的一些问题:

在Linux中,哪个Layer负责重组过程?哪个文件?

它是第3层。您可以检查文件reassembly.cinet_fragment.c。你可以找到函数fq_find并从那里进一步追踪。

此过程(分段和重组)是否适用于所有第3层协议(IPv4 \ IPv6 for ex)?

v4和v6的代码类似,所有第3层协议都应如此。

假设我的嗅探器构造了一个大数据包并将其发送出去,那么碎片是否会由linux堆栈自动发生?

我已经读过关于碎片卸载的概念,其中碎片发生在NIC,因此可能没有必要将n / w堆栈进行碎片化。

© www.soinside.com 2019 - 2024. All rights reserved.