Glossary

概述

参考:

DataPath(数据路径)

网络数据在内核中进行网络传输时,所经过的所有点组合起来,称为数据路径。

Ring Buffer

由网卡驱动程序创建的一种 Ring Buffer 的数据结构,保存在内存中,驱动程序会将这些内存地址告诉 NIC 硬件,以便 NIC 可以通过 DMA(直接内存访问) 将接收到的数据包直接写入这些地址,而无需 CPU 介入。

同时,驱动程序会消费 Ring Buffer 中的网络数据包,并将这些数据包封装成内核通用的 skb 接口,交给内核网络栈。

Socket Buffer(简称 sk_buff 或 skb)

在内核代码中是一个名为 sk_buff 的结构体。内核显然需要一个数据结构来储存报文的信息。这就是 skb 的作用。

sk_buff 结构自身并不存储报文内容,它通过多个指针指向真正的报文内存空间:

image.png

sk_buff 是一个贯穿整个协议栈层次的结构,在各层间传递时,内核只需要调整 sk_buff 中的指针位置就行。

image.png

DEVICE(设备)

在内核代码中,是一个名为 net_device 的结构体。一个巨大的数据结构,描述一个网络设备的所有 属性、数据 等信息。


最后修改 December 30, 2025: clearup programming dir (8346ff5e)