
书: https://pan.baidu.com/s/1untyKaWXt7RJt7udfaVI6A?pwd=44y8
笔记如下:
- Linux网络协议栈架构:解析内核网络子系统的分层设计(Socket层、TCP/IP层、设备驱动层)。
- Socket实现机制:深入剖析socket()系统调用的内核处理流程,包括struct sock结构体管理。
- TCP协议栈核心:详解拥塞控制(CUBIC/BBR)、重传机制、滑动窗口在内核中的实现。
- IP层处理:分析路由子系统(FIB)、IP分片重组、NAT转换及Netfilter钩子(PRE_ROUTING等)。
- 网络设备驱动:开发基于NAPI的网卡驱动,处理DMA环形缓冲区与中断合并优化。
- 多队列网卡:配置RSS(接收端缩放)与XPS(传输数据包转向)提升多核处理能力。
- 内核协议栈优化:调整tcp_no_delay、tcp_tw_reuse等参数应对高并发场景。
- eBPF与网络:编写eBPF程序(XDP/tc钩子)实现包过滤、流量统计与DDoS防御。
- 虚拟网络设备:实现tap/tun虚拟设备,分析veth pair、bridge在容器网络中的作用。
- VLAN与VXLAN:配置内核支持的虚拟网络协议,实现大二层网络扩展。
- ICMP与ARP:跟踪内核中ICMP报文处理流程及ARP缓存表动态更新机制。
- 网络命名空间:利用Network Namespace隔离网络栈,支撑容器化网络需求。
- QoS与流量控制:通过tc工具配置HTB、QFQ等队列规则实现带宽限速。
- 内核bypass技术:对比DPDK、XDP等用户态网络加速方案的性能差异。
- 套接字缓冲区:分析sk_buff结构的内存管理及零拷贝(sendfile)优化原理。
- 无线网络栈:探索mac80211框架及Wi-Fi驱动(如ath9k)的内核集成方式。
- 安全机制:配置iptables/nftables防火墙规则,理解CONFIG_SECURITY_NETWORK编译选项。
- 内核调试工具:使用dropwatch、ss、ethtool诊断网络丢包与性能瓶颈。
- 协议栈扩展:注册自定义L4协议(如实现QUIC内核模块)。
- 云原生网络:分析Cilium+eBPF如何替代kube-proxy实现Kubernetes Service负载均衡。