TCP 与 UDP
三次握手、端口、Web 用 TCP。
30 分钟
TCP 与 UDP
传输层在 IP 之上提供端到端通信。TCP 可靠、有序、面向连接,Web 与数据库几乎都用它;UDP 无连接、低延迟,用于 DNS 查询、视频流等场景。
学习目标
- 理解 TCP 三次握手与四次挥手直觉
- 对比 TCP 与 UDP 的适用场景
- 说明 HTTPS 为何建立在 TCP 之上
核心内容
TCP 三次握手
客户端 服务器
│── SYN ───────────────►│
│◄── SYN + ACK ─────────│
│── ACK ───────────────►│
│ 连接建立,可传 HTTP │
每次新建 HTTPS 连接都要握手;HTTP/2 多路复用可复用同一 TCP 连接(http-http2)。
TCP vs UDP
| TCP | UDP | |
|---|---|---|
| 连接 | 面向连接 | 无连接 |
| 可靠性 | 重传、有序 | 不保证 |
| 典型用途 | HTTP、MySQL、SSH | DNS、QUIC 底层 |
| 本站 | :443、:8080、:3306 | 较少直接暴露 |
Web 全走 TCP
浏览器 ──TCP 443──► Nginx(TLS 在 TCP 流上加密)
Nginx ──TCP 8080──► Spring Boot /api/*
Nginx ──TCP 3000──► Next.js /
JVM ──TCP 3306──► MySQL
UDP 在 dns-resolution 解析域名时常见;解析结果仍是 TCP 连公网 IP。
观察连接
ss -tn state established '( dport = :443 or sport = :443 )'
ss -tn | grep ':8080'
curl -v --connect-timeout 5 https://coderoadmap.cn/ 2>&1 | grep Connected
Connection refused = 目标 IP 可达但 端口无进程监听;超时则查防火墙或路由(net-firewall)。
练习
- 口述 TCP 三次握手各步含义
- 说明 MySQL 为何用 TCP 而非 UDP
- 用
ss -tn列出当前到 :443 的 ESTABLISHED 连接
小结
TCP 为 HTTP 与数据库提供可靠通道;端口区分同一 IP 上的不同服务。 下一课专门讲端口规划。
加载本节练习…