计算机网络¶
计算机网络课程的目标不是背协议名词,而是让后端工程师能解释请求为什么超时、连接为什么泄漏、DNS 为什么偶发失败、TLS 为什么握手慢,以及如何用工具定位真实生产问题。
学习目标¶
学完本课程后,学习者应该能够:
- 理解 TCP/IP 分层、IP、路由、NAT、DNS、TCP、UDP、HTTP、TLS 的基本工作方式。
- 能解释一次 HTTP / RPC 请求从客户端到服务端经历了哪些网络环节。
- 能正确配置 Go HTTP Client、连接池、超时、重试和连接关闭。
- 能初步排查 DNS 失败、连接超时、TLS 失败、TIME_WAIT、CLOSE_WAIT、端口耗尽等问题。
- 能理解负载均衡、反向代理、API Gateway、gRPC 与服务发现的网络基础。
课程结构¶
建议按下面顺序学习:
为什么后端工程师要学网络¶
后端服务的绝大多数依赖都在网络另一端:
- 客户端通过 HTTP / HTTPS 访问服务。
- 服务调用其他服务通常走 HTTP、gRPC 或消息协议。
- 数据库、Redis、Kafka 等基础设施都依赖 TCP 连接。
- Kubernetes Service、Ingress、CoreDNS 都建立在网络机制之上。
- 第三方 API 故障常常表现为超时、重置、TLS 错误或 DNS 错误。
网络知识能帮助你把“接口慢”拆成 DNS、连接建立、TLS、请求发送、服务处理、响应读取等阶段,而不是只凭感觉改代码。
学习方式¶
- 先理解一次请求的路径,再逐层补协议细节。
- 每个协议都问三个问题:解决什么问题、有什么代价、失败时如何表现。
- Go 示例优先关注超时、连接池、资源关闭、上下文取消和错误处理。
- 排障命令要理解观察对象,不要只背命令。
- 实战任务先自己写排查思路,再展开参考答案对照。
学习提醒
网络问题最怕“凭感觉”。高级后端工程师需要把现象转化成可验证的假设:DNS 失败、连接失败、TLS 失败、服务端慢、响应读取慢,排查方向完全不同。