Linux内核模块:套接字缓冲区(sk_buff-> len)不确定行为

赤舞

我有一个内核模块,该模块从netfilter钩子读取数据包并用于sk_buff访问数据。

我观察到的是,当数据sk_buff->len包以较低的速率传入时行为正常,但是当数据包以较高的速率(1Gbps等)到达时,则sk_buff->len少数数据包开始增加(始终是8的倍数)。

我正在重放的数据也有零散的数据包。零散的数据包是否被添加到相同的数据包中,sk_buff从而导致数据包增加sk_buff->len如果是,如何sk_buff知道堆栈以及在什么时候?

有人可以解释为什么会发生这种情况以及如何解决它。对某些文档的任何引用也会有所帮助。

赤舞

出现此现象的原因是GRO(通用接收卸载)。与TSO或GSO一样,它是在接收端的一种优化。它将具有相同tcp和ip标头的数据包附加到一个大skb缓冲区中,以使内核处理更加容易。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Linux内核中找到sk_buff的所有者套接字?

来自分类Dev

不确定的行为?

来自分类Dev

“不确定的行为”总是不确定的吗?

来自分类Dev

“不确定的行为”总是不确定的吗?

来自分类Dev

销毁期间行为不确定?

来自分类Dev

关于对象的不确定行为

来自分类Dev

Python 3的不确定行为

来自分类Dev

这是不确定的行为吗?

来自分类Dev

Linux 内核模块:printk 消息不是我希望在缓冲区日志中的位置

来自分类Dev

如何快速将不确定大小的缓冲区写入NVMe SSD

来自分类Dev

这是不确定的行为还是误报?

来自分类Dev

HHVM类型检查器的不确定行为

来自分类Dev

不确定的行为导致时间旅行

来自分类Dev

评估顺序和不确定的行为

来自分类Dev

遗漏是某种不确定的行为吗?

来自分类Dev

测试python函数的不确定行为

来自分类Dev

Python multiprocessing.Process行为不确定

来自分类Dev

避免不确定的行为:临时对象

来自分类Dev

何时移位会导致不确定的行为

来自分类Dev

Python 2.7 Ctrl + C不确定行为

来自分类Dev

LLVM / LLDB的不确定行为(XCode 5.1.1)

来自分类Dev

python relativedelta中的不确定行为

来自分类Dev

如何在Linux内核模块中分配由1GB HugePages支持的DMA缓冲区?

来自分类Dev

切片->不确定-len做什么

来自分类Dev

在Linux内核模块之间共享缓冲区,导致“无法处理虚拟地址XXXXX上的内核页面调度请求”

来自分类Dev

错误10038“非套接字上的套接字操作”后的TIdFTP状态不确定

来自分类Dev

为什么这个cuda内核会产生不确定的结果?

来自分类Dev

不确定如何从Python标准库导入模块

来自分类Dev

不确定为什么“ userApp”模块不可用

Related 相关文章

热门标签

归档