linux会不会做外网ip分片

kis*_*e . 7 linux-kernel

我想了解 Linux 是否能够在内部 IP 或外部 IP 级别对传出数据包进行分段?我在Linux内核源代码中查看了/net/ipv4/files中的源代码,但没有找到对碎片级别的引用。或者我应该查看第 2 层文件,在那里可以根据 MTU 大小做出决定?

Gia*_*zzi 2

是的,Linux 可以进行分段,但就像传入的数据包一样,内核会尽力不首先进行分段(例如,在发送、接收数据之前进行路径 MTU 发现)。

您可以看到例如https://github.com/torvalds/linux/blob/master/net/ipv4/ip_output.c 函数ip_do_fragment