📊 总体概览
连载周期 :9-12个月
文章总量 :165篇
发布频率 :每周2-3篇(周二、周四、周日 21:30)
目标读者:工程师、网络爱好者、想深入理解网络的开发者
🎯 六大阶段规划
阶段1:网络基础(20篇)
时间 :第1-2个月
深度 :入门级
目标:建立网络思维框架
核心主题:
-
网络分层那点事(3篇)
- OSI七层 vs TCP/IP四层,到底听谁的
- 为什么要有分层?工程视角的思考
- 数据在各层是如何"变形"的
-
物理层与数据链路层(4篇)
- 网卡到底在干什么
- MAC地址:网卡的身份证
- ARP协议:谁在帮我们找IP
- 交换机:智能的"邮递员"
-
网络层基础(5篇)
- IP地址:互联网的门牌号
- 子网掩码:如何划分"小区"
- 路由表:数据包的导航仪
- ICMP:网络的"心跳检测"
- ping命令背后的故事
-
传输层入门(5篇)
- TCP vs UDP:可靠与速度的博弈
- 端口:进程的"门牌号"
- 三次握手:为什么不是两次或四次
- 四次挥手:分手的艺术
- 滑动窗口:流量的"红绿灯"
-
应用层概览(3篇)
- HTTP/HTTPS:网页背后的协议
- DNS:互联网的"电话簿"
- Socket编程:如何用代码说话
阶段2:抓包实战(25篇)
时间 :第3-4个月
深度 :进阶级
目标:培养抓包分析能力
核心主题:
-
抓包工具入门(5篇)
- tcpdump:命令行抓包神器
- Wireshark:图形化分析利器
- 如何抓到"正确"的包
- 过滤器:从海量数据中找线索
- 抓包实战:分析一次HTTP请求
-
TCP抓包分析(8篇)
- 三次握手的真实抓包
- 四次挥手的各种情况
- 重传机制:超时与快速重传
- 拥塞控制:慢启动与拥塞避免
- TCP选项:那些隐藏的细节
- keep-alive:连接保活的真相
- 异常连接:SYN攻击与防护
- TCP状态机:抓包看状态转换
-
UDP抓包实战(4篇)
- UDP的简洁之美
- DNS查询抓包分析
- 视频流协议分析
- UDP丢包:如何定位问题
-
HTTP/HTTPS抓包(5篇)
- HTTP/1.1 vs HTTP/2:抓包对比
- HTTPS握手过程完整分析
- HTTP缓存机制:304的奥秘
- WebSocket:从HTTP到长连接
- HTTP性能优化:抓包看效果
-
常见问题抓包分析(3篇)
- 连接超时:到底卡在哪里
- 丢包重传:网络抖动的真相
- 性能瓶颈:如何通过抓包定位
阶段3:协议深入(25篇)
时间 :第5-6个月
深度 :深入级
目标:理解协议设计思想
核心主题:
-
TCP协议深度解析(8篇)
- 序列号与确认号:可靠性的基石
- 滑动窗口机制详解
- 拥塞控制算法:从Reno到BBR
- 快速重传与快速恢复
- 延迟确认:性能与可靠性的平衡
- Nagle算法:小包合并策略
- TCP保活机制
- TCP紧急数据:URG标志的真相
-
UDP协议深入(4篇)
- UDP校验和:为什么可以关闭
- UDP多播与广播
- QUIC协议:UDP之上的可靠传输
- UDP在云原生中的应用
-
IP协议详解(6篇)
- IP分片:大包的拆分艺术
- TTL:防止数据包"流浪"
- IP选项:那些被遗忘的功能
- 路由协议概览:RIP/OSPF/BGP
- IP分片重组:内核中的实现
- IP地址分配:DHCP协议分析
-
ICMP协议深入(3篇)
- ICMP类型详解:不止ping
- 路径MTU发现:PMTUD
- ICMP重定向:路由的"建议"
-
应用层协议(4篇)
- HTTP/2与HTTP/3:协议演进
- TLS/SSL:加密通信的基石
- DNS协议深度解析
- gRPC与HTTP/2:现代RPC
阶段4:内核路径(30篇)
时间 :第7-8个月
深度 :内核级
目标:理解内核网络栈实现
核心主题:
-
网络子系统架构(5篇)
- Linux网络栈全景图
- sk_buff:数据包的内核表示
- 网络设备驱动:网卡如何工作
- 中断处理:从硬件到内核
- NAPI:高性能中断处理
-
数据包接收路径(8篇)
- 网卡收到数据后的第一件事
- 软中断:netif_rx
- 协议栈注册:inet_add_protocol
- IP层处理:ip_rcv
- TCP层入口:tcp_v4_rcv
- socket查找:如何找到目标socket
- 数据放入接收队列
- 唤醒应用进程
-
数据包发送路径(8篇)
- 应用层发送:send系统调用
- socket层处理:sock_sendmsg
- TCP层处理:tcp_sendmsg
- IP层封装:ip_queue_xmit
- 邻居子系统:ARP解析
- 队列规则:qdisc
- 网卡发送:hard_start_xmit
- DMA与零拷贝
-
TCP连接管理(5篇)
- socket创建:sock_alloc
- bind与listen:准备接收连接
- accept:获取新连接
- connect:主动建立连接
- close:关闭连接的各种情况
-
性能优化(4篇)
- RPS/RFS:多核接收优化
- XPS:多核发送优化
- TCP参数调优
- 网络性能监控工具
阶段5:IPv4/IPv6(25篇)
时间 :第9个月
深度 :协议级
目标:理解双栈网络
核心主题:
-
IPv4深入(8篇)
- IPv4地址空间:为什么不够用
- NAT:地址转换的利与弊
- 私有地址与公网地址
- IPv4头部字段详解
- 分片与重组的内核实现
- IPv4路由表查找算法
- IPv4的局限性
- IPv4到IPv6的过渡策略
-
IPv6基础(7篇)
- IPv6地址格式:128位的挑战
- IPv6地址类型:单播/多播/任播
- IPv6头部简化:为什么更高效
- IPv6地址自动配置:SLAAC
- IPv6邻居发现:替代ARP
- IPv6扩展头部:灵活的设计
- IPv6的部署现状
-
IPv6高级特性(5篇)
- IPv6多播:高效的一对多通信
- IPv6移动性支持
- IPv6安全:IPsec
- IPv6过渡技术:双栈、隧道、翻译
- IPv6在云原生中的应用
-
双栈网络实践(5篇)
- Linux双栈配置
- 应用程序支持IPv6
- DNS双栈解析
- IPv6抓包分析
- IPv6性能对比
阶段6:eBPF观测(40篇)
时间 :第10-12个月
深度 :专家级
目标:掌握eBPF网络观测能力
核心主题:
-
eBPF基础(8篇)
- eBPF是什么:内核可编程时代
- eBPF程序类型:网络相关
- eBPF maps:内核与用户空间通信
- eBPF加载流程:从字节码到内核
- eBPF工具链:bcc/bpftool/libbpf
- eBPF限制:安全沙箱
- eBPF vs 传统监控:为什么更高效
- eBPF网络钩子:有哪些可用
-
eBPF网络观测(10篇)
- XDP:极致性能的数据包处理
- TC(Traffic Control):流量控制
- socket过滤:BPF_SOCKET_FILTER
- kprobe:内核函数追踪
- tracepoint:内核事件追踪
- eBPF追踪TCP连接
- eBPF监控网络延迟
- eBPF统计丢包原因
- eBPF分析网络吞吐
- eBPF追踪DNS查询
-
eBPF网络编程(10篇)
- XDP实现DDoS防护
- XDP实现负载均衡
- TC实现流量整形
- eBPF实现NAT
- eBPF实现防火墙
- eBPF实现网络监控
- eBPF实现协议解析
- eBPF实现网络策略
- eBPF实现服务网格
- eBPF实现可观测性
-
eBPF实战案例(8篇)
- 排查网络延迟问题
- 排查连接建立失败
- 排查丢包问题
- 排查性能瓶颈
- 实现网络SLA监控
- 实现网络故障自愈
- 实现网络流量分析
- 实现网络安全检测
-
eBPF生态与未来(4篇)
- Cilium:基于eBPF的网络解决方案
- Katran:Facebook的负载均衡器
- eBPF在云原生的应用
- eBPF未来发展方向
📅 发布节奏表
| 月份 | 阶段 | 文章数 | 累计 |
|---|---|---|---|
| 第1-2月 | 网络基础 | 20 | 20 |
| 第3-4月 | 抓包实战 | 25 | 45 |
| 第5-6月 | 协议深入 | 25 | 70 |
| 第7-8月 | 内核路径 | 30 | 100 |
| 第9月 | IPv4/IPv6 | 25 | 125 |
| 第10-12月 | eBPF观测 | 40 | 165 |