网络基础,尤其是网络协议(TCP/IP 协议栈为主)在网络开发中极为重要。本系列按”基础 → 传输层 → 应用层 → 串联 → 工具”五步展开。
第一步:计算机网络基础
构筑任何知识体系之前,先学习整体知识点(最好是一本完整的书)。这里主要基于《计算机网络(第五版)》(谢希仁)梳理,分三部分:
- 计算机网络基础部分梳理 —— 性能指标、分层模型、交换技术等课程主干知识点
- 7 层协议,4 层,5 层 —— 构建全局观分三步:理解全局的网络层次;理解每一层次中常见的网络设备及功能;理解每一层的常见协议。在此基础上将其他知识点放置到相应层次(零散知识点没法帮你构筑完整体系,推荐完整看一本书)
- IP 相关协议详解 —— IP 协议(网络层)及其配套协议:数据链路层的 ARP、网络层的 ICMP/IGMP、IPv6、网络地址转换 NAT 等
第二步:传输层协议 TCP/UDP
TCP/UDP 是后面应用层协议的基础:
- TCP 协议详解 —— TCP 是一个巨复杂的协议,细节推荐 W.Richard Stevens《TCP/IP 详解 卷 1:协议》;本文梳理自左耳朵耗子的《TCP 的那些事儿》
- UDP 协议详解 —— 基于 TCP 和 UDP 的协议非常广泛,有必要对照理解
第三步:应用层协议
HTTP 基于 TCP 实现,Web 开发必学;DNS 基于 UDP 实现:
第四步:知识点贯穿理解
- 输入 URL 到页面加载过程详解 —— 第一,将 TCP、HTTP、DNS 解析等知识点贯穿起来;第二,在此基础上介绍浏览器渲染过程,为 Web 优化提供基础
第五步:相关工具
- netstat 查看服务及监听端口详解 —— Linux 下了解系统开放了哪些端口、具体进程和用户
- tcpdump 使用详解 —— 基于 libpcap 的网络抓包神器,通过具体示例介绍不同场景下的使用方法
- Wireshark 介绍及抓包分析 —— 网络封包分析软件:网络管理员用它检测问题,安全工程师用它检查安全风险,开发者用它为协议调试
阅读建议
先按 1-4 步顺序建立体系,工具篇(第五步)可以在抓包分析需求出现时随时查阅。配合 Linux 常用工具(curl、ab 压测)食用更佳。