本系列文章


系统理解一个领域的核心就是理解该领域的关键概念。以下术语构成了 Linux 网络内核的核心概念体系,理解它们有助于深入掌握网络实现原理,作为备忘整理与此。

硬件层面术语

术语英文全称核心概念在网络中的作用关键特征
PCIPeripheral Component Interconnect外设总线标准连接网卡与CPU/内存的高速通道支持DMA、中断、热插拔
PCIePCI ExpressPCI的串行版本提供更高带宽的网卡连接点对点连接、多通道并行
BARBase Address RegisterPCI设备地址寄存器映射网卡寄存器到内存空间6个BAR,定义MMIO区域
MMIOMemory-Mapped I/O内存映射IOCPU通过内存访问方式控制网卡统一地址空间、高效访问
DMADirect Memory Access直接内存访问网卡直接读写内存,绕过CPU减少CPU负载、提高吞吐量
IOMMUInput-Output Memory Management UnitIO内存管理单元为设备提供虚拟地址转换内存保护、虚拟化支持

中断

处理术语

术语英文全称核心概念在网络中的作用关键特征
硬中断Hardware Interrupt / IRQ硬件向CPU发送的信号网卡通知CPU有数据到达立即响应、抢占式、短时间处理
软中断Software Interrupt / SoftIRQ内核延迟处理机制处理网络数据包的主要方式可调度、批量处理、NET_RX/NET_TX
MSIMessage Signaled Interrupts消息信令中断替代传统引脚中断的现代方式通过内存写操作触发中断
MSI-XMSI ExtendedMSI的扩展版本支持多队列网卡的多中断每个队列独立中断、更好的CPU分布
NAPINew APILinux网络轮询机制高负载时用轮询替代中断中断+轮询混合、避免中断风暴

内存

管理术语

术语英文全称核心概念在网络中的作用关键特征
Ring BufferCircular Buffer环形缓冲区网卡与驱动间的数据交换结构固定大小、无锁、生产者消费者模型
skbSocket Buffer网络数据包结构Linux内核网络数据的统一表示分层结构、元数据+数据、可克隆
skb_shared_info-skb共享信息存储分片、GSO等扩展信息支持零拷贝、分片重组
DMA映射DMA MappingDMA地址转换将虚拟地址转换为设备可访问地址一致性内存、流式映射
Page Pool-页面池预分配网络接收缓冲区减少内存分配开销、提高性能
SLUB-Linux内存分配器为skb等小对象提供高效分配对象复用、CPU本地缓存

网络驱动术语

术语英文全称核心概念在网络中的作用关键特征
网络驱动Network Driver硬件抽象层连接硬件网卡与内核网络栈实现net_device_ops、管理硬件
net_deviceNetwork Device网络设备结构内核中网络接口的抽象包含操作函数、统计信息、配置参数
netdev_opsNetwork Device Operations网络设备操作集定义网络接口的标准操作open/close、xmit、ioctl等
ethtoolEthernet Tool网络工具接口用户空间配置和查询网络设备统计信息、参数配置、诊断功能
多队列Multi-Queue多发送/接收队列利用多CPU并行处理网络数据RSS、XPS、每CPU队列
RSSReceive Side Scaling接收端扩展将接收流量分散到多个CPU基于哈希、负载均衡、提高并发

协议

栈术语

术语英文全称核心概念在网络中的作用关键特征
netfilter-网络过滤框架提供防火墙、NAT等功能的钩子5个钩子点、可插拔模块
iptables-防火墙工具基于netfilter的用户空间配置工具表/链结构、规则匹配
路由Routing数据包转发决策决定数据包的下一跳地址路由表、策略路由、多路径
邻居子系统Neighbor SubsystemARP/NDP管理维护IP地址到MAC地址的映射邻居缓存、状态机、老化机制
协议栈Protocol Stack分层网络处理实现TCP/IP等网络协议分层设计、数据封装/解封装
Socket-网络编程接口应用程序访问网络的标准API文件描述符、多种类型、缓冲区

性能优化

术语

术语英文全称核心概念在网络中的作用关键特征
TSOTCP Segmentation OffloadTCP分段卸载硬件替代软件进行TCP分段减少CPU负载、大包处理
GSOGeneric Segmentation Offload通用分段卸载软件延迟分段到发送时提高协议栈效率、支持多协议
LROLarge Receive Offload大包接收卸载硬件将小包聚合成大包减少中断次数、提高吞吐量
GROGeneric Receive Offload通用接收卸载软件实现的LRO更通用、更可控
Checksum Offload-校验和卸载硬件计算/验证校验和减少CPU计算负担
VLAN Offload-VLAN卸载硬件处理VLAN标签硬件插入/剥离VLAN头

虚拟化

相关术语

术语英文全称核心概念在网络中的作用关键特征
SR-IOVSingle Root I/O Virtualization单根IO虚拟化一个物理网卡虚拟出多个VF硬件虚拟化、直通性能
VFVirtual Function虚拟功能SR-IOV创建的虚拟网卡独立的PCI功能、直接分配给VM
PFPhysical Function物理功能SR-IOV的主功能管理VF、提供配置接口
BridgeNetwork Bridge网络桥接连接不同网络段二层转发、MAC地址学习
VETHVirtual Ethernet虚拟以太网虚拟的网络接口对容器网络、命名空间通信
TAP/TUN-虚拟网络设备用户空间程序访问网络栈TAP二层、TUN三层

调试与监控术语

术语英文全称核心概念在网络中的作用关键特征
proc文件系统-内核信息接口通过文件系统暴露内核状态/proc/net/*、运行时查看
sysfs-系统文件系统设备和驱动信息接口/sys/class/net/*、配置参数
tracepoint-内核跟踪点内核函数执行的观察点动态跟踪、性能分析
perfPerformance性能分析工具网络性能热点分析CPU采样、事件计数、调用图
tcpdump-数据包捕获工具网络流量分析和调试libpcap、过滤表达式
ssSocket StatisticsSocket统计工具查看网络连接状态替代netstat、更高效

现代网络技术术语

术语英文全称核心概念在网络中的作用关键特征
XDPeXpress Data Path快速数据路径在驱动层进行高速包处理eBPF、零拷贝、可编程
eBPFextended Berkeley Packet Filter扩展包过滤器内核态可编程执行环境安全沙箱、即时编译、多用途
DPDKData Plane Development Kit数据面开发套件用户空间高性能网络处理轮询模式、大页内存、CPU绑定
AF_XDPAddress Family XDPXDP地址族用户空间零拷贝网络接口与XDP配合、高吞吐量
io_uring-异步IO接口高效的异步网络IO环形队列、批量提交
BPF Maps-BPF数据结构eBPF程序的数据存储和通信多种类型、用户内核空间共享