Linux 协议栈(Linux Networking Stack)是 Linux 内核中处理网络通信的核心子系统,负责实现从物理层到应用层的完整网络协议处理流程。它由一系列分层协作的软件模块组成,是操作系统网络功能的基础架构。
硬件层(NIC驱动)
igb
、e1000
)数据链路层(L2)
eth0
接口)网络层(L3 - IP层)
FIB
转发信息库)ping
依赖的协议)传输层(L4)
套接字层(Socket API)
socket()
、bind()
)应用层(用户态)
iptables
)、NAT 等功能。net.core.rmem_max
(接收缓冲区)、net.ipv4.tcp_window_scaling
(TCP窗口缩放)。net.ipv4.tcp_max_syn_backlog
(SYN队列)、somaxconn
(监听队列)。ethtool -L eth0 combined 8
启用多队列并行处理。iproute2
ip addr
、ip route
(替代传统 ifconfig
/route
)。ss
netstat
)。tcpdump
/Wireshark
perf
/bpftrace
net.ipv4.tcp_slow_start_after_idle
或 NIC 的队列设置。ifconfig
中的 RX dropped
可能因缓冲区不足或中断风暴。conntrack
优化或切换为 nftables
。Linux 协议栈的灵活性和可扩展性使其适用于从嵌入式设备到数据中心的各类场景,而 eBPF 等新技术进一步推动了其高性能演进。