我想了解 Linux 是否有能力在内部 IP 或外部 IP 级别对传出数据包进行分段?我查看了Linux内核源代码中的/net/ipv4/files中的源代码,但没有找到对碎片级别的引用。或者我应该查看第 2 层级别文件,其中可能根据 MTU 大小做出决定?
答案1
是的,Linux 可以进行碎片处理,但就像传入的数据包一样,内核会尽力不首先进行碎片处理(例如,路径MTU发现在发送、接收数据之前)。
你可以看到例如https://github.com/torvalds/linux/blob/master/net/ipv4/ip_output.c
功能ip_do_fragment