网络协议栈内核实现与优化

📚 共计 30 章节
01
网络协议栈概述
OSI七层模型与TCP/IP四层模型对比 · Linux网络协议栈架构总览 · 数据包在内核中的旅程
基础总览
02
网络设备驱动基础
struct net_device · NAPI与中断收包 · sk_buff深度解析
驱动核心
03
链路层实现
以太网帧格式 · LLC子层 · ARP内核实现 (邻居子系统)
链路层ARP
04
网络层核心-IPv4
IP头部结构 · 路由核心数据结构 · IP分片与重组
IPv4路由
05
网络层核心-IPv6
IPv6头部与扩展头部 · 邻居发现协议NDP · IPv6路由架构
IPv6NDP
06
ICMP协议实现
ICMP报文类型与处理 · ping内核路径 · 错误报告机制
ICMP诊断
07
传输层-UDP
UDP套接字创建与绑定 · 发送/接收路径 · 性能瓶颈分析
UDP性能
08
传输层-TCP基础
TCP头部标志位与状态机 · 三次握手/四次挥手 · 序列号与确认
TCP状态机
09
传输层-TCP拥塞控制
Reno/NewReno/CUBIC · tcp_congestion_ops · BBR简介
拥塞控制算法
10
传输层-TCP流量控制
滑动窗口 · 接收窗口与通告窗口 · 零窗口探测
流量控制窗口
11
Socket层
struct socket/sock · 协议族注册 · 系统调用到内核路径
Socket系统调用
12
epoll与IO多路复用
select/poll/epoll对比 · 红黑树与就绪链表 · 边缘/水平触发
epollIO
13
Netfilter框架
钩子点 · iptables内核实现 · conntrack连接跟踪
Netfilter防火墙
14
网络命名空间
struct net · veth/bridge虚拟化 · 容器网络原理
命名空间容器
15
路由子系统
策略路由 · FIB规则与查找 · dst_entry缓存
路由策略
16
邻居子系统
ARP表与ND表 · 邻居状态机 · 代理ARP与无端ARP
邻居ARP
17
多队列网卡与RSS
多队列原理 · Receive Side Scaling · Flow Director
多队列RSS
18
XDP (eXpress Data Path)
XDP程序挂载与执行 · BPF map交互 · XDP vs DPDK
XDP高速
19
eBPF在网络中的应用
kprobe/tracepoint · tc BPF (cls_bpf) · socket BPF过滤
eBPF可编程
20
内核协议栈性能调优
sysctl参数 · 中断亲和性 · 内存与缓存优化
调优性能
21
零拷贝技术
sendfile/splice · Page flip与DMA · Kafka/Nginx实践
零拷贝DMA
22
内核旁路技术
DPDK轮询模式 · RDMA (InfiniBand/RoCE) · 用户态协议栈
旁路DPDK
23
TCP卸载引擎 (TOE)
TSO/GSO/LRO/GRO · 校验和卸载 · TLS卸载
TOE硬件卸载
24
IPv4组播与IGMP
IGMP版本与报文 · 内核组播路由 (MRT) · PIM-SM简介
组播IGMP
25
多路径TCP (MPTCP)
子流建立与路径管理 · 内核MPTCP架构 · 应用场景
MPTCP多路径
26
网络流量控制
TC框架 · HTB/CBS/TBF · cgroup带宽控制
TCQoS
27
内核网络调试工具
ftrace跟踪 · perf分析 · dropwatch监控丢包
调试工具
28
安全与防火墙
iptables/nftables内核 · stateful firewall · SYN Cookie
安全防火墙
29
无线网络协议栈
802.11 MAC管理 · cfg80211/mac80211 · WPA2/3加密
无线WiFi
30
未来趋势与总结
eBPF重构网络栈 · QUIC内核集成 · 可编程网络 (P4, SmartNIC)
趋势总结