Skip to content

01 · 网络分层与 TCP / UDP 职责 ​

网络分层是"把复杂问题切成能独立替换的层"。本篇讲清每一层解决什么问题、前后端各自在哪一层打交道,以及 TCP 与 UDP 的本质差别——"可靠 vs 快"到底换来了什么。

速览卡 ​

项内容
一句话定位建立网络分层心智,理解前后端各自站哪一层
核心内容五层模型、每层解决什么、TCP vs UDP、端口/套接字
读完能回答为什么丢包重传是 TCP 的事不是 HTTP 的事?UDP 什么时候反而更好?
相关板块N02 TCP 握手与挥手 | A04 浏览器与网络 | N12 IO 模型

一、五层模型:每层只解决一件事 ​

层例子解决什么前后端在哪打交道
应用层HTTP/HTTPS、DNS、WebSocket业务协议前后端的主要战场
传输层TCP、UDP端到端的可靠/不可靠传输后端常关心
网络层IP跨网络寻址与路由一般不管
数据链路层以太网/WiFi同一链路内的帧传输不管
物理层网线/信号比特传输不管

关键认知:HTTP 是"应用层协议",它假设传输层已经可靠。 丢包重传、乱序重组是 TCP 的事;HTTP 不关心。这也是为什么"一次请求慢"要往 TCP 层找原因。


二、TCP 与 UDP:可靠 vs 快,不是"谁更好" ​

维度TCPUDP
连接面向连接(先握手)无连接(发就完了)
可靠确认重传、有序不保证
头部20 字节起8 字节
典型场景HTTP/HTTPS、文件传输视频/语音/游戏实时、DNS 查询
代价握手/重传/拥塞控制带来延迟可能丢包、乱序

判断框架:数据丢了要重来 → TCP;数据过了就作废(实时音视频、位置) → UDP。 视频通话用 UDP 不是因为"不在乎",而是"晚了就没用"——重传一个 200ms 前的帧没意义。


三、端口与套接字:应用怎么被找到 ​

text
IP      找到"哪台机器"
端口    找到"机器上的哪个进程"
套接字  一条"IP:端口 ↔ IP:端口"的连接两端

常见端口:

端口服务
80HTTP
443HTTPS
53DNS
22SSH
3306MySQL
6379Redis

四、前后端分别在哪些层 ​

关注点前端后端
HTTP 语义(方法/状态码/头)✅ 天天见✅ 设计接口
TLS 证书✅ 报错常见(NET::ERR_CERT_...)✅ 配置与校验
TCP 握手/TIME_WAIT不直接见✅ 连接池/高并发时关心
DNS/CDN现象(慢、解析失败)✅ 设计
IP/路由几乎不管部署时关心

前端看到的大多数"网络问题"是应用层表现;排障往往要往下追,这就是 N11 抓包 的价值。


五、自检清单 ​

  • [ ] 能画出五层模型,说出每层解决什么
  • [ ] 知道 HTTP 不负责可靠性,重传是 TCP 的事
  • [ ] 能说清 TCP/UDP 各自的代价与典型场景
  • [ ] 知道 IP/端口/套接字三者关系
  • [ ] 知道前后端各自主要在哪层打交道

六、常见误区 ​

误区事实
"HTTP 会重传"重传是 TCP 的职责,HTTP 假设传输可靠
"UDP 比 TCP 落后"UDP 适合"过了就没用"的实时数据
"慢就是后端慢"可能卡在 TCP 握手、TLS、DNS、拥塞
"端口就是协议"端口只定位进程,用哪个协议取决于应用
"分层越多越慢"分层让每层可独立优化与替换

七、动手练习 ​

练习 A:追一次"页面加载慢" ​

打开浏览器的 Network 面板,看一次资源加载的 Timing 分段(DNS/TCP/TLS/下载),说出每个阶段属于哪一层。

练习 B:判断协议 ​

给五个场景选 TCP 还是 UDP:网页浏览、在线会议、DNS 查询、文件上传、多人游戏位置同步。说出理由。

练习 C:讲给前端同事听 ​

用一句话向不懂网络的前端解释"为什么直播卡顿不靠重传解决"。


相关文档 ​

本区 ​

其他域 ​