网络架构
本板块介绍 一些网络架构的技术
在本版块中有相当多的工程实践(如使用 FRP、Nginx、SSH、Flask、服务器等),也有 计算机网络基础理论(如通信原理、协议细节、端口机制),从而提升系统设计能力。
计算机网络学习路线:
基础知识 ➜ 网络协议 ➜ 应用开发 ➜ 安全与性能 ➜ 网络系统设计
第一阶段:基础架构
掌握核心概念:
- 网络通信的五层模型:
- 应用层(HTTP, DNS)
- 传输层(TCP, UDP)
- 网络层(IP, 路由)
- 数据链路层(MAC, 以太网)
- 物理层(电信号,光信号)
- 重要概念:
- IP 地址 / MAC 地址
- DNS(域名解析)
- 端口(Port)
- 三次握手 / 四次挥手(TCP)
- NAT、内网 / 外网、端口映射
📘 推荐资料:
- B站王道计算机网络:入门通俗易懂
- 小林 coding 图解系列:https://github.com/gyf304/CS-Books#计算机网络
- 《图解HTTP》/《图解TCP/IP》(非常轻松易读)
第二阶段:理解网络协议与实践
逐层深入了解:
| 层级 | 内容 |
|---|---|
| 应用层 | HTTP/HTTPS、DNS、FTP、SMTP |
| 传输层 | TCP/UDP,流与包,拥塞控制,TCP连接状态(SYN/ACK) |
| 网络层 | IP协议、子网掩码、ARP、ICMP、NAT |
| 数据链路层 | ARP协议、以太网帧格式、交换机、MAC地址 |
👨 💻 同时结合工具实践:
- Wireshark 抓包分析(三次握手、DNS解析、HTTP)
- curl 观察 HTTP 请求
- ping / traceroute 分析路径
- 使用
netstat/ss/lsof查看端口使用
第三阶段:实际开发中如何使用网络
从工具变为能力:
- Socket 编程: 学习 Python / C 中的 socket 编程,理解客户端与服务器通信
- HTTP 应用开发: 学习 RESTful API,熟悉请求方法(GET/POST/PUT/DELETE)
- 反向代理: Nginx / FRP / SSH 隧道等原理
- 多线程 / 异步 IO: 解决并发访问问题
📘 推荐练手项目:
- 写一个简单聊天室(TCP)
- 写一个 Web 服务器(HTTP)
- 用 Python requests 编写爬虫
第四阶段:性能与安全深入
- TCP 拥塞控制算法(Cubic / BBR)
- HTTPS / TLS 握手流程
- 防火墙、DoS 攻击原理
- CDN 与反向代理缓存机制
- QUIC / HTTP3 的优势与原理
📘 推荐视频 / 资料:
- Cloudflare 博客:https://blog.cloudflare.com/
- 《深入理解计算机系统》中的网络章节(CS:APP)
- HTTP2/3 对比分析文章
推荐系统课程
| 平台 | 课程名 | 难度 | 备注 |
|---|---|---|---|
| 网易云课堂 | 哈工大《计算机网络》 | 中 | 内容全面、讲得清晰 |
| CS144 | Stanford 的 Computer Networking | 高 | 高级网络编程 + Socket 实践 |
| 书籍 | 《计算机网络-自顶向下方法》(Computer Networking) | 中高 | 美本教材,系统但篇幅较长 |
| 书籍 | 《图解TCP/IP》 / 《图解HTTP》 | 入门 | 图示生动,便于初学者理解 |