我开始使用 BPF 程序来实现内核中的一些网络功能,我遇到的困惑之一是 - 结构中到底包含什么sk_buff
?
在接收路径上,大多数在线资源提到sk_buff
要为每个传入数据包分配。
然而,外出路径上会发生什么?一个socket消息是不是先通过L3协议分成数据包,然后分配到网络上sk_buff
?这也矛盾一些在线资源表示 ask_buff
在 Linux 内核堆栈进行任何处理之前被分配。
sk_buff
那么接收和发送路径上的结构体中究竟存储了什么?
我开始使用 BPF 程序来实现内核中的一些网络功能,我遇到的困惑之一是 - 结构中到底包含什么sk_buff
?
在接收路径上,大多数在线资源提到sk_buff
要为每个传入数据包分配。
然而,外出路径上会发生什么?一个socket消息是不是先通过L3协议分成数据包,然后分配到网络上sk_buff
?这也矛盾一些在线资源表示 ask_buff
在 Linux 内核堆栈进行任何处理之前被分配。
sk_buff
那么接收和发送路径上的结构体中究竟存储了什么?