Net_lab
从抓包和 Socket 开始,把 HTTP、DNS、TCP 状态、拥塞控制和 IO 模型串成一套网络实验。
覆盖协议HTTP · DNS · TCP/IP
编程接口Socket · select · epoll
验证方式Wireshark · ss · 实验程序
网络实验路径
抓包观察 → 协议字段 → Socket API → hello / 回射 / select → 阻塞 IO 与并发模型 → epoll 事件循环 → TCP 状态与拥塞控制。
先从线上数据包确认协议事实,再用最小程序复现连接、读写和状态变化,避免只背协议名词。
关键实验
- 手写 HTTP 服务器和 DNS 解析工具,理解应用层数据如何落到 Socket。
- 用双客户端观察阻塞服务器的串行瓶颈,再对照 select、epoll 的事件模型。
- 用 ss 观察 TIME_WAIT 和 SO_REUSEADDR,结合 TCP 状态机解释现象。
- 模拟慢启动、拥塞避免、超时和快速重传,记录 cwnd 变化。
项目边界
这是实验验证仓库,不是生产级网络库;每一项结论都以具体拓扑、内核和运行命令为前提。