《深入理解Linux网络技术内幕》配套学习大纲 + 源码Demo + 进阶实战实例
书籍核心定位全书围绕Linux内核网络协议栈完整实现从数据包接收→协议层处理→转发→发送全链路拆解覆盖网卡驱动、sk_buff、NAPI、TCP/IP四层协议、路由、Netfilter、套接字、拥塞控制等核心源码逻辑。整体学习总纲学习路线网络硬件层 → 内核数据包载体(sk_buff) → 网卡收发包机制(NAPI/中断) → 链路层 → IP层 → 路由子系统 → 传输层(TCP/UDP) → 套接字层 → 防火墙Netfilter → 高级网络特性 → 性能调优 嵌入式工程落地第一部分Linux网络整体架构与基础环境第1章Linux网络体系整体架构核心知识点Linux网络五层架构划分硬件网卡→设备层→链路层→网络层→传输层→应用层数据包完整流转路径网线物理帧 → 网卡DMA → sk_buff → NAPI收包 → 内核协议栈逐层解析 → 用户态Socket内核网络核心子系统划分网络设备子系统net/core/dev.c数据包管理子系统skbuff.cIPv4协议栈net/ipv4/路由子系统fibNetfilter过滤子系统套接字管理子系统配套实操命令Demo# 查看本机网络协议栈运行状态cat/proc/net/sockstat# 查看所有网络协议注册情况cat/proc/net/protocols# 查看本机路由表内核路由route-niproute show进阶实例绘制RK3588平台千兆网卡数据包全流程时序图区分协议栈接收路径与转发路径底层差异第二部分网络设备层核心书籍重点·底层根基第2章网络设备net_device结构体详解核心知识点struct net_device完整成员解析硬件信息、MAC、队列、操作集、状态标志网卡状态机DOWN→UP→RUNNING→NO-CARRIER网卡发送队列/接收队列原理虚拟网卡与物理网卡内核统一抽象设计基础Demo自定义虚拟网卡复用你已有工程#includelinux/module.h#includelinux/netdevice.hstaticstructnet_device*vdev;staticnetdev_tx_tdemo_xmit(structsk_buff*skb,structnet_device*dev){pr_info(内核设备层发送数据包 长度:%d\n,skb-len);dev_kfree_skb(skb);returnNETDEV_TX_OK;}staticconststructnet_device_opsdev_ops{.ndo_start_xmitdemo_xmit,};staticint__initdev_demo_init(void){vdevalloc_netdev(0,testnic%d,NET_NAME_UNKNOWN,ether_setup);vdev-netdev_opsdev_ops;register_netdev(vdev);return0;}staticvoid__exitdev_demo_exit(void){unregister_netdev(vdev);free_netdev(vdev);}module_init(dev_demo_init);module_exit(dev_demo_exit);MODULE_LICENSE(GPL);讲解所有物理网卡(GMAC)、虚拟网卡(tap/veth)在内核全部统一使用net_device抽象上层协议栈无感知差异。进阶实例读取net_device内部统计字段实现内核态网卡流量统计编写内核模块动态修改网卡MTU、MAC地址、速率模式第3章sk_buff数据包缓冲区全书重中之重核心知识点sk_buff内存布局head/data/tail/end 四区划分头部预留、数据追加、数据剥离、线性化、分片重组skb内存池分配机制、预分配缓存优化共享skb与独立skb拷贝区别skb_clone / skb_copy基础Demoskb标准操作已配套工程实现预留协议头、填充数据、头部删减、释放流程进阶实例内核实现IP数据包自定义篡改修改源IP/目的IP实现大报文skb_segment分片与skb_coalesce合并基于skb实现内核层抓包过滤系统第4章网卡收包机制中断 NAPI机制核心知识点传统中断收包弊端中断风暴、CPU占用高NAPI混合收包完整状态机收包预算budget、轮询权重、繁忙轮询机制RK3588 GMAC多队列RSS多核负载均衡原理基础Demo精简NAPI注册轮询收包标准内核代码进阶实例手动关闭硬件中断纯NAPI轮询收包压测网络中断CPU亲和性绑定把收包线程固定到大核A76高并发场景下NAPI参数调优实战第5章MDIO总线与PHY芯片驱动核心知识点MDIO总线读写PHY寄存器原理以太网自动协商、速率双工协商底层流程链路状态检测、断线重连内核实现RGMII/RMII时序延迟配置原理实操Demo# 读取PHY寄存器mdio-tool eth0read01# 强制设置网卡千兆全双工ethtool-seth0 speed1000duplex full autoneg off进阶实例自定义非标工业PHY驱动开发内核实时监听网线插拔事件并上报状态第三部分链路层与ARP协议第6章二层以太网帧处理核心知识点以太网帧头部格式解析广播帧、组播帧、单播帧内核分发逻辑VLAN标签内核剥离与硬件加速原理进阶实例内核模块拦截二层以太网帧实现二层数据转发基于VLAN实现嵌入式多网段隔离组网第7章ARP地址解析协议核心知识点ARP请求/应答内核处理流程ARP缓存表老化、更新、失效机制免费ARP、ARP代理底层实现ARP攻击内核防护原理实操查看# 查看内核ARP缓存表cat/proc/net/arp进阶实例编写内核模块伪造ARP应答实现内网ARP欺骗实验内核态清理异常ARP缓存解决静态IP不通故障第四部分网络层 IPv4 协议栈书籍核心第8章IP头部解析与数据包分片核心知识点IPv4头部12个字段完整内核解析逻辑入站IP校验和校验流程大数据包IP分片、接收重组完整流程不同协议号分发ICMP/TCP/UDP/IGMP基础Demo内核模块解析skb内IP头部打印源目IP、协议类型、TTL进阶实例内核修改IP报文TTL值实现路由跳数伪装手动控制IP分片大小优化嵌入式窄带宽传输第9章路由子系统FIB与路由查找核心知识点内核路由表结构静态路由/动态路由最长前缀匹配路由查找算法路由缓存、路由策略、默认路由优先级本机路由、直连路由、网关路由区分实操命令# 查看内核路由缓存cat/proc/net/route# 追踪内核路由走向iproute get114.114.114.114进阶实例内核态动态添加/删除路由条目实现双网卡多路由策略分流内网走eth0外网走eth1第10章ICMP网络控制报文协议核心知识点Ping请求/应答内核完整处理流程超时、不可达、重定向ICMP报文处理ICMP限速、防洪水攻击内核机制进阶实例内核拦截禁止本机被ping通自定义ICMP错误报文回复第五部分传输层 TCP/UDP 协议栈全书最难第11章UDP协议源码实现核心知识点UDP无连接特性内核实现UDP头部校验、端口分发、队列缓冲UDP接收缓冲区/发送缓冲区内核参数原理UDP洪水攻击原理与内核防御基础Demo用户态UDP服务端客户端通信Demo进阶实例内核态批量加速UDP报文收发关闭UDP校验和实现高速数据透传第12章TCP协议完整内核实现重中之重核心知识点TCP四次握手建立连接底层流程TCP滑动窗口、拥塞窗口、接收窗口原理超时重传、快速重传、SACK选择确认TCP状态机全状态流转LISTEN/SYN_SENT/ESTABLISHED/TIME_WAIT内核拥塞控制算法CUBIC / BBR / DCTCP源码逻辑TCP粘包、拆包内核底层成因基础Demo标准Socket TCP服务端客户端通信实例进阶实例内核开启/关闭TCP Fast Open快速连接修改内核TCP参数优化高延迟嵌入式网络实战切换BBR拥塞控制并压测对比吞吐内核模块劫持TCP报文实现内容过滤第13章套接字Socket层实现核心知识点Socket文件描述符在内核的抽象实现阻塞/非阻塞Socket内核等待队列原理IO多路复用select/poll/epoll内核底层机制原始套接字、数据报套接字、流式套接字差异进阶实例嵌入式高并发epoll服务端编写AF_PACKET原始套接字抓取二层三层裸数据包第六部分Netfilter 防火墙与网络安全第14章Netfilter五大钩子完整原理核心知识点PRE_ROUTING / LOCAL_IN / FORWARD / LOCAL_OUT / POST_ROUTING五大挂载点数据包在内核经过钩子的完整顺序iptables/nftables底层依托Netfilter实现原理数据包丢弃、放行、修改、转发、地址转换原理基础DemoIP黑名单拦截内核模块你已完成工程进阶实例内核态端口流量限速模块实现内核级端口映射NAT转发恶意畸形数据包内核清洗过滤第七部分高级网络特性第15章虚拟网络技术核心知识点tun/tap虚拟设备原理veth成对虚拟网卡通信机制macvlan/ipvlan物理网卡多IP虚拟化内核网桥bridge转发原理实操Demo# 创建macvlan虚拟网卡iplinkaddlinketh0 macv0typemacvlan mode bridgeifconfigmacv0192.168.2.20 up进阶实例基于tun设备实现简易VPN隧道通信RK3588搭建嵌入式极简网桥局域网第16章网卡绑定Bonding与网络冗余核心知识点Bonding七种工作模式内核实现差异主备模式热切换、负载聚合模式带宽叠加原理链路故障检测内核机制进阶实例工业设备双网口自动热备份工程实战第17章流量控制与QoS内核实现核心知识点内核TC流量调度队列原理优先级队列、限流、整形、抖动消除工业以太网QoS报文优先级映射进阶实例嵌入式网关按端口划分带宽优先级第八部分嵌入式Linux网络性能调优工程落地第18章内核网络全局参数调优核心知识点套接字缓冲区、连接数、超时时间全套参数原理网络软中断调度优化网卡队列、NAPI、RSS极限性能优化RK3588大小核网络任务调度优化策略配套最优调优配置可直接写入sysctlshturl.cc/YjxvAKkw 4096 shturl.cc/JgFKeFi 16777216 shturl.cc/8hHfHki 16777216 shturl.cc/vXBokHIGtd6 1 shturl.cc/iP6mhN06PtBQWp 10 shturl.cc/HgSU0h8n9uwFe1xg7QTJd bbr进阶实战iperf3千兆满速压测性能瓶颈定位高并发短连接服务内核最优参数调优第九部分书籍学习配套实战项目由浅入深入门级项目sk_buff数据包读写与拷贝实验虚拟网卡驱动编写与通信测试简易ARP状态查看工具进阶级项目Netfilter内核防火墙黑白名单系统内核态UDP/TCP流量限速系统基于NAPI优化千兆网卡收包性能企业级嵌入式实战项目RK3588工业多协议网关TCP/UDP/ModbusTCP转发双网卡冗余热备份网络系统嵌入式轻量级内核VPN隧道基于原始套接字的网络抓包分析工具千兆零拷贝高速数据转发服务第十部分书籍学习高效研读方法先抓链路设备层搞定sk_buff、NAPI、net_device打通底层再啃IP路由层理解数据包转发核心逻辑攻坚TCP传输层状态机、拥塞控制是全书最难重点最后学习安全与虚拟化Netfilter、虚拟网络做工程落地源码对照看书同时对照 Linux7.0.3 内核对应.c文件逐行研读边学边写每章节写完对应Demo内核模块/应用层代码附赠书籍对应内核源码快速索引书籍章节内容内核源码路径网络设备net/core/dev.csk_buff管理net/core/skbuff.cNAPI机制net/core/dev.c / include/linux/napi.hIPv4协议net/ipv4/ip_input.c ip_output.c路由系统net/ipv4/fib_frontend.cTCP协议net/ipv4/tcp_*.cNetfilternet/netfilter/网桥net/bridge/Bondingdrivers/net/bonding/后续可提供本书每一章课后练习题答案全套配套Demo源码打包应用层内核层TCP协议栈逐行源码深度解析文档结合RK3588硬件的书本知识点硬件落地教程