🚗 车载Linux · 网络协议栈优化与调试
📘 30章 实战目录
01
车载网络协议栈概述
背景
车载以太网背景、TCP/IP协议栈在车内的角色、与传统IT网络的差异。
02
Linux网络协议栈架构
分层
内核网络子系统分层(Socket层、传输层、网络层、驱动层)、关键数据结构(sk_buff、net_device)。
03
网络性能指标与瓶颈分析
度量
吞吐量、延迟、丢包率、CPU占用率;如何用perf/top定位瓶颈。
04
中断与NAPI机制
调优
传统中断风暴问题、NAPI轮询机制原理、实际调优参数(gro_flush_timeout、napi_defer_hard_irqs)。
05
套接字缓冲区(sk_buff)优化
内存
sk_buff结构体详解、内存分配策略(SLAB/SLUB)、避免sk_buff复制的零拷贝技术。
06
协议栈内存管理
DMA
DMA缓冲区、Ring Buffer大小调整(ethtool -G)、内存碎片化处理。
07
TCP/IP协议栈参数调优
内核
内核参数(tcp_rmem、tcp_wmem、tcp_congestion_control)、sysctl配置实战。
08
网络设备驱动优化
多队列
中断亲和性(IRQ Affinity)、多队列网卡(RSS/RPS/RFS/XPS)配置与原理。
09
套接字选项(Socket Options)
选项
SO_RCVBUF、SO_SNDBUF、TCP_NODELAY、SO_BUSY_POLL在车载场景下的应用。
10
网络流量控制(TC)
QoS
Linux TC框架、HTB/CBS/Qdisc在车载AVB/TSN中的应用、带宽预留配置。
11
网络协议栈调试工具(上)
抓包
tcpdump、tshark、Wireshark抓包分析、过滤规则实战。
12
网络协议栈调试工具(下)
诊断
netstat、ss、ip、ethtool、tc命令详解与故障排查。
13
内核跟踪与动态调试
ftrace
ftrace、tracepoint、perf probe在协议栈中的应用、延迟追踪。
14
eBPF与网络性能分析
bcc
eBPF基础、bcc工具集(tcplife、tcptop、tcpconnect)、编写简单eBPF程序监控延迟。
15
网络延迟优化实战
PTP
从应用层到物理层的全链路延迟分析、SO_TIMESTAMPING、PTP时间同步。
16
吞吐量优化实战
卸载
巨型帧(Jumbo Frame)、TSO/GSO/GRO/LRO卸载技术、校验和卸载。
17
车载网络确定性通信
AVB/TSN
AVB/TSN协议族简介、gPTP(802.1AS)、Credit-Based Shaper(802.1Qav)。
18
Linux对TSN的支持
taprio
tc-taprio(时间感知整形器)、tc-etf(最早发送时间)、实际配置案例。
19
SocketCAN与CAN/CANFD协议栈
CAN
SocketCAN架构、CAN帧格式、CAN总线调试工具(candump、cansend)。
20
车载网络诊断协议
DoIP
DoIP(ISO 13400)在Linux上的实现、UDS over IP、诊断报文捕获与分析。
21
SOME/IP协议栈
中间件
SOME/IP中间件原理、服务发现(SD)、在Linux上的部署与性能测试。
22
DDS在车载中的应用
DDS
DDS协议概述、FastDDS/cycloneDDS在Linux上的配置、QoS策略调优。
23
网络协议栈安全加固
安全
防火墙(iptables/nftables)、TCP SYN Cookie、BPF防DDoS、SELinux网络上下文。
24
虚拟化网络性能
虚拟化
Linux Bridge、Macvlan、IPVLAN、DPDK在车载虚拟化场景下的对比。
25
容器网络性能
容器
Docker/Containerd网络模式(Bridge/Host/Macvlan)、CNI插件、容器内协议栈调优。
26
网络协议栈启动优化
启动
内核网络子系统初始化流程、减少启动时DHCP延迟、静态IP配置加速。
27
低功耗模式下的网络管理
低功耗
WoLAN(Wake on LAN)、网络设备电源管理、暂停帧(802.3x)处理。
28
多网卡与路由策略
MPTCP
策略路由(ip rule)、多路径TCP(MPTCP)在车载双链路冗余中的应用。
29
网络监控与可观测性
监控
Prometheus + node_exporter网络指标采集、Grafana仪表盘、告警规则设计。
30
综合案例:车载中央网关网络性能调优
实战
从需求分析、瓶颈定位、参数调优到最终验证的全流程实战。