01 第1周D2 网络TCPIP
D2 网络基础 · TCP/IP
D2 网络基础 · TCP/IP
标准(必讲)。为理解"请求怎么在网络上跑"打地基;D3 讲 HTTP 时直接用到。
教学目标(学完能做什么)
- 能说出 TCP/IP 四层模型每一层的职责,举一个真实例子
- 能解释 TCP 三次握手 / 四次挥手的过程与作用
- 能说出公司常见服务用的端口(443/22/5432/80)
- 会用
curl、tcpdump、ping、nc做基础网络排查 - 能解释 NAT 与公网/私网 IP 的区别
前置要求
- D1(业务全景,知道公司域名与"请求要经过网络"这件事)
本模块在业务中的位置
- 公司是典型的"服务器对外提供服务":客户请求(HTTPS/443)→ 云服务器/公网 → 集群 → 服务。TCP/IP 是这条路上最底层的地基;后续 D3 HTTP、D4 DNS 都建立在这层之上。
内容分段
1. 网络分层模型
- TCP/IP 四层(从上到下):
- 应用层:HTTP、HTTPS、DNS、SMTP……(D3/D4 讲)
- 传输层:TCP(可靠、面向连接)、UDP(快、无连接)
- 网络层:IP(寻址、路由)
- 链路层:以太网、Wi-Fi(物理传输)
- 对照记忆:OSI 七层太理论,公司日常用四层就够。
- 一句话:每一层只管自己的事,向下封装、向上服务。
2. IP 地址与端口
- IPv4:
43.132.237.162(公司 prod master 公网 IP,见 CLAUDE.md)。 - 公网 IP vs 私网 IP:公网全球唯一;私网(192.168.x / 10.x / 172.16-31.x)只在局域网内,如公司 dev 集群
192.168.1.240。 - 端口:进程的"门牌号"。常见端口:
- 22 SSH(远程登录)
- 80 HTTP / 443 HTTPS(Web 服务,公司服务大多走 443)
- 5432 PostgreSQL(公司数据库)
- 6443 K8s API server(集群管理)
- 记法:访问一个服务 = 目标 IP + 目标端口,如
43.132.237.162:6443。
3. TCP 三次握手与四次挥手
- 三次握手(建立连接):
- 客户端发
SYN - 服务端回
SYN + ACK - 客户端回
ACK→ 连接建立
- 客户端发
- 四次挥手(断开连接):
FIN → ACK → FIN → ACK。 - 为什么是三次?—— 确保双方都确认"能发能收"。
- 抓包实操:下面第 6 节会实际看到这三条包。
4. UDP 与 TCP 对比
| 特性 | TCP | UDP |
|---|---|---|
| 连接 | 面向连接 | 无连接 |
| 可靠性 | 可靠(重传/顺序) | 尽力而为 |
| 用途 | HTTP、SSH、数据库 | DNS 查询、视频、游戏 |
- 记忆:文件、请求要可靠用 TCP;实时快传用 UDP。DNS 默认走 UDP/53,查不到会转 TCP。
5. NAT(网络地址转换)
- 公司多台内网机器共用一个公网 IP 出去上网,就是 NAT 在做"地址翻译"。
- 反向场景:公网客户访问公司服务器,靠端口转发/负载均衡把公网 443 转发到内部服务。
- 理解即可,D8 讲 K8s 的 Service/Ingress 时会再见到这种"转发"思想。
6. 动手排查工具
# 域名/IP 连通性
ping -c 3 kuma.akria.net
# 看端口是否开放(TCP 连不连得上)
nc -vz kuma.akria.net 443
nc -vz 43.132.237.162 22 # 公司 master 的 SSH
# 抓包看三次握手(需要权限,讲师演示)
sudo tcpdump -i any host kuma.akria.net and tcp port 443 -n
# 另一个终端同时 curl,观察 SYN/ACK
curl -sI https://kuma.akria.net- 讲师现场跑一遍
tcpdump,指给学员看 SYN / SYN+ACK / ACK 三条包。 - 常见误区:
ping通 ≠ 服务正常(ping 是 ICMP,不是业务端口);要用nc -vz 端口或curl验证业务。
讲解节奏建议(约 90 分钟)
| 时段 | 内容 |
|---|---|
| 09:00-09:15 | 引入:请求在网络上是怎么走的(D1 架构图上加一条"网线") |
| 09:15-09:40 | 四层模型 + IP/端口(对照公司 IP) |
| 09:40-10:00 | TCP 三次握手四次挥手(白板画时序图) |
| 10:00-10:15 | UDP 对比 + NAT |
| 10:15-10:45 | 抓包演示:tcpdump + curl 看三次握手 |
| 10:45-11:15 | 学员实操:ping / nc / curl 排查公司域名 |
| 11:15-11:45 | 常见误区 + 小结 |
| 11:45-12:00 | 布置 D2 作业 |
常见误区汇总
| 误区 | 正确理解 |
|---|---|
| ping 通 = 服务正常 | ping 是 ICMP,只测网络通不通;业务端口要 nc -vz / curl 验证 |
| TCP/IP = 一个协议 | 是一组协议族的统称,含 IP/TCP/UDP/HTTP 等 |
| IP 一样端口随便 | 端口是进程的门牌,同一 IP 上不同端口是不同的服务 |
| 三次握手是"传三次数据" | 是建立连接的控制过程,还没传业务数据 |
| 私有 IP 能被公网直接访问 | 不能,必须靠 NAT/端口转发;所以公司服务对外都要走公网入口 |