The Linux Network Stack
summary
Explains the Linux networking stack from NIC DMA into the sk_buff structure through softirqs and NAPI, including the NAPI hybrid interrupt behavior and per-CPU scaling mechanisms (XPS/XRPS) and how latency is traded for CPU. Describes concrete offloads (GSO/GRO, checksum offload, segmentation), target hardware such as 100 Gbit NICs and limits seen (hundreds of thousands of connections/sec), and recent usable components and patches like tc qdiscs, BPF hooks, nftables and zero-copy sendmsg.
AI-written summary · about
chapters (17)
- 0:00Intro
- 0:17Problems
- 2:02Agenda
- 3:13How Does a Packet Reach the Kernel?
- 7:19Interrupt
- 9:57Newer Ethernet Cards/Drivers
- 11:53RX Ring Network Card (Example)
- 13:44packet rx
- 17:44socket buffer
- 22:34IPv4 Architecture
- 25:19How Does a Packet Reach the Network Card?
- 28:28packet tx
- 29:57GSO, GRO
- 35:45Nonlinear skbs
- 36:42Scaling: RSS (Receive Side Scaling), RPS
- 39:10Scaling: XPS (Transmit Packet Steering)
- 39:22Byte Queue Limits (BQL)
related talks
42mDemystifying PCI Interrupts: Understanding MSI/MSI‑X in Linux
33mNon-Imperative Network Programming
07mLightning Talk: Optimizing Security Container Runtime's Network Performance with Modular Plugin TCP/IP Stack
23mBreaking Theoretical Limits: The Gap Between Virtual NICs and Physical Network Cards
01h 00mCommSec D1 - An Isolated Data Center Security Policy Model Using SmartNICs
42mAccelerating Envoy with the Linux Kernel
37mSPDK Based User Space NVMe Over TCP Transport Solution
42mThe Linux network stack extension for DDoS mitigation and web security
