Linux上的IP碎片
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux上的IP碎片相关的知识,希望对你有一定的参考价值。
我有一个位于2个路由器之间的Linux系统(嗅探器)。两个路由器都支持Jumbo帧,而我的系统仅限于MTU 1500。
我的理解是发送路由器将Jumbo帧分段为基于MTU 1500的IP数据报,linux将根据RFC 815重新组装它们。
关于这个过程的几个问题:
- 在Linux中,哪个Layer负责重组过程?哪个文件?
- 此过程(分段和重组)是否适用于所有第3层协议(IPv4 IPv6 for ex)?
- 假设我的嗅探器构造了一个大数据包并将其发送出去,那么碎片是否会由linux堆栈自动发生?
谢谢,冉
答案
我可以回答你的一些问题:
在Linux中,哪个Layer负责重组过程?哪个文件?
它是第3层。您可以检查文件reassembly.c
和inet_fragment.c
。你可以找到函数fq_find
并从那里进一步追踪。
此过程(分段和重组)是否适用于所有第3层协议(IPv4 IPv6 for ex)?
v4和v6的代码类似,所有第3层协议都应如此。
假设我的嗅探器构造了一个大数据包并将其发送出去,那么碎片是否会由linux堆栈自动发生?
我已经读过关于碎片卸载的概念,其中碎片发生在NIC,因此可能没有必要将n / w堆栈进行碎片化。
以上是关于Linux上的IP碎片的主要内容,如果未能解决你的问题,请参考以下文章