Networking 网络—m缓冲区和环形缓冲区在网络域中的作用

Networking 网络—m缓冲区和环形缓冲区在网络域中的作用,networking,linux-kernel,Networking,Linux Kernel,我一直在寻找这个问题的答案,但我找不到明确的答案 从freebsd手册页,它将mbuf描述如下: An mbuf is a basic unit of memory management in the kernel IPC subsystem. Network packets and socket buffers are stored in mbufs. A network packet may span multiple mbufs arranged into a mbuf chain (li

我一直在寻找这个问题的答案,但我找不到明确的答案

从freebsd手册页,它将mbuf描述如下:

An mbuf is a basic unit of memory management in the kernel IPC subsystem. Network packets and socket buffers are stored in mbufs.
A network packet may span multiple mbufs arranged into a mbuf chain (linked list), 
which allows adding or trimming network headers with little overhead.
An mbuf consists of a variable-sized header and a small internal buffer for data.
到目前为止,我能理解的环形缓冲区是NIC驱动程序将为数据包接收过程(本例中为Rx)预先分配数据包缓冲区(环形缓冲区)

我不理解这两个不同的缓冲区在linux网络域中的作用

请回复您对此的理解

谢谢


您已经掌握了振铃缓冲的基本知识

就mbuf而言,如果你听说过的话,它们将类似于pbuf,但看起来它们更复杂一些。它们只是一个简单的结构,使内存管理更容易(在本例中是针对数据包)。除非您处理的是内核代码,否则我认为您永远都不需要使用mbuf,因为套接字系统应该在用户空间中将其从您那里抽象出来


以下是有关mbuf的一些更详细的信息:

您已经掌握了振铃缓冲区的基本知识

就mbuf而言,如果你听说过的话,它们将类似于pbuf,但看起来它们更复杂一些。它们只是一个简单的结构,使内存管理更容易(在本例中是针对数据包)。除非您处理的是内核代码,否则我认为您永远都不需要使用mbuf,因为套接字系统应该在用户空间中将其从您那里抽象出来

以下是有关mbuf的更多详细信息: