专栏定位:自顶向下讲透计算机网络——每一层都讲清,每一种常用协议都讲透。
讲解维度:概念 → 原理 → 应用 → 问题定位(四位一体)。
适合谁读:科普入门者、面试准备者、开发 / 运维 / 网络工程师。
怎么读:本文是总地图;后续按「自上而下」逐层推进,协议一篇一篇拆开。
开篇:先看见「整条路」,再一层层走进去
打开微信发一条消息,背后可能经历:
应用(消息协议)
→ 传输(TCP / UDP / QUIC)
→ 网络(IP 路由)
→ 链路(以太网 / Wi‑Fi)
→ 物理(电 / 光 / 无线电)
你感觉只是「发出去了」,网络却在毫秒级完成:解析名字、建立连接、加密、分段、寻址、转发、确认、重传、拥塞控制。
本专栏采用 自顶向下(Top-Down) 路线:
-
先从你最熟悉的 应用层 入手(浏览器、App、API);
-
再向下进入 传输层、网络层、链路层、物理层;
-
每一层把该层的 主要通信协议 讲清楚;
-
每个协议都按同一套方法写:概念、原理、应用、问题定位。
读完之后,你应能做到:
-
说出一次上网请求穿过了哪些层、用了哪些协议;
-
解释 HTTP / DNS / TCP / IP / ARP / 以太网各自解决什么问题;
-
遇到「连不上 / 很慢 / 偶发失败」时,知道该从哪一层、哪个协议开始查。
第一章 专栏结构:自顶向下 + 四维讲解
1.1 为什么选择「自顶向下」?
自底向上(先物理、再链路、再 IP……)很严谨,但对多数读者太抽象。
自顶向下的好处是:
|
对比 |
自底向上 |
自顶向下(本专栏) |
|---|---|---|
|
起点 |
比特、信号、网线 |
网页打不开、接口超时 |
|
动机 |
「先学完基础」 |
「先解释你每天遇到的现象」 |
|
记忆 |
易前重后轻 |
先有场景,再补机制 |
|
排障 |
后期才用得上 |
每学一层就能多查一类故障 |
1.2 四维讲解模板(后续每篇协议文都会用)
无论讲 HTTP 还是 ARP,结构尽量统一:
① 概念 它是什么?解决什么痛点?在哪一层?
② 原理 报文长什么样?状态怎么流转?关键算法是什么?
③ 应用 生活 / 业务 / 工程里怎么用?和谁配合?
④ 问题定位 常见故障长什么样?用什么命令/抓包证明?
这样你换一篇文章,阅读节奏不变;换一个协议,也能快速建立完整心智模型。
1.3 三条主线始终并行
-
层次线:应用 → 传输 → 网络 → 链路 → 物理。
-
协议线:每层选代表性协议深讲,并横向对比同类协议。
-
排障线:每学完一块,就多一把「定位问题」的尺子。
第二章 全局感:分层是分工,协议是契约
2.1 用「寄快递」理解分层
应用层 —— 写信内容与格式(HTTP、DNS、SMTP、gRPC…)
传输层 —— 寄法:挂号确认(TCP)或平信快寄(UDP/QUIC)
网络层 —— 收件城市与街道(IP、路由、ICMP)
链路层 —— 装上车、邻站交接(以太网、Wi‑Fi、ARP)
物理层 —— 真正跑起来的电/光/无线电
上层不需要知道光纤还是 Wi‑Fi;下层不需要知道你在刷网页还是传文件。
2.2 OSI 七层 vs TCP/IP 四层
|
TCP/IP(工程常用) |
OSI 大致对应 |
本专栏覆盖重点 |
|---|---|---|
|
应用层 |
应用 / 表示 / 会话 |
HTTP(S)、DNS、TLS、WebSocket、SSH、SMTP、DHCP… |
|
传输层 |
传输 |
TCP、UDP、QUIC |
|
网络层 |
网络 |
IPv4/IPv6、ICMP、路由、NAT、VPN 直觉 |
|
链路层 |
数据链路 + 物理(常合并讲) |
以太网、ARP、VLAN、Wi‑Fi;物理层单独补直觉 |
一句话:分层负责分工,协议负责「双方怎么说话」。
2.3 一个 HTTPS 请求的「套信封」直觉
[ 以太网帧 ][ IP ][ TCP ][ TLS ][ HTTP ]
↑ ↑ ↑ ↑ ↑
链路层 网络层 传输层 安全 应用层
排障时永远先问:坏在哪一层的信封?
-
DNS 失败 → 应用层周边
-
TCP 建连失败 → 传输 / 防火墙 / 路由
-
ping 不通 → 网络 / 链路 / 物理
第三章 内容总地图:自顶向下,逐层推进
后续正文按 五大篇章 展开。每一层先讲「这一层存在的意义」,再逐个拆协议;协议文统一走四维结构。
第一篇 先建立全局:从输入网址开始
在正式下潜各层之前,先用一次「打开网页」把全局串起来。
|
序号 |
主题 |
你将带走什么 |
|---|---|---|
|
0.1 |
计算机网络是什么 |
主机、链路、交换、路由、局域网/广域网 |
|
0.2 |
自顶向下总览实验 |
从浏览器到网线的完整路径故事 |
|
0.3 |
延迟 / 带宽 / 丢包 / 抖动 |
性能语言:后面所有排障都用这套词 |
|
0.4 |
最小工具箱入门 |
|
第二篇 应用层:你每天直接接触的协议世界
层目标:理解「程序与程序如何对话」。
将讲解的主要协议(代表,可扩展)
|
协议 |
概念一句话 |
典型应用 |
问题定位切入点 |
|---|---|---|---|
|
DNS |
名字 → IP 的电话簿 |
上网、服务发现 |
解析失败、TTL、缓存污染 |
|
HTTP/1.1 |
请求-响应的万维网语言 |
网页、REST API |
状态码、超时、缓存、头字段 |
|
HTTPS / TLS |
加密与身份认证通道 |
几乎所有现代网站 |
证书错误、握手失败、中间人 |
|
HTTP/2 |
二进制帧 + 多路复用 |
现代站点加速 |
队头阻塞缓解、连接复用 |
|
HTTP/3 (QUIC) |
基于 UDP 的新传输上的 HTTP |
弱网、移动网络优化 |
回落、UDP 被墙、0-RTT |
|
WebSocket |
全双工长连接 |
聊天、行情推送 |
握手升级失败、心跳断连 |
|
DHCP |
自动要地址 |
入网即用 |
拿不到 IP、地址冲突 |
|
SMTP / IMAP / POP3 |
邮件投递与收取 |
邮箱系统 |
端口、认证、垃圾邮件路径 |
|
SSH / SFTP |
远程安全壳与文件 |
运维登录 |
密钥、超时、端口暴露 |
|
gRPC / 自定义 RPC |
高效服务间调用 |
微服务 |
超时、负载均衡、流控 |
应用层篇章结构(示例)
对每一个协议,大致都会覆盖:
-
概念:它属于哪一层?和谁是上下游?
-
原理:报文/交互时序、关键字段、状态机。
-
应用:浏览器、App、网关、CDN、微服务里的真实用法。
-
问题定位:典型故障清单 + 推荐命令/抓包过滤器。
第三篇 传输层:可靠与实时的取舍
层目标:理解「端到端」如何交付字节流或数据报。
|
协议 |
概念一句话 |
原理重点 |
应用 |
问题定位 |
|---|---|---|---|---|
|
UDP |
无连接、尽力而为 |
端口、校验、无重传 |
DNS、直播、游戏、QUIC 底座 |
防火墙丢 UDP、无拥塞控制踩坑 |
|
TCP |
面向连接、可靠字节流 |
握手/挥手、序号 ACK、重传、滑动窗口、拥塞控制 |
Web、文件、数据库连接 |
SYN 丢、重传、复位、半开连接 |
|
QUIC |
用户态、多路复用、连接迁移 |
基于 UDP、0-RTT、流级控制 |
HTTP/3 |
UDP 限制、库版本、握手耗时 |
|
端口与多路复用 |
一机多服务如何区分 |
五元组 |
监听、连接、NAT 穿透直觉 |
端口占用、TIME_WAIT |
本篇还会专题讲:
-
三次握手 / 四次挥手为何存在;
-
流量控制 vs 拥塞控制;
-
队头阻塞:TCP 与 HTTP/1.1、HTTP/2 的关系。
第四篇 网络层:让包跨越「很多个网络」
层目标:理解寻址与转发——包如何一跳跳到达远方。
|
协议 / 主题 |
概念一句话 |
原理重点 |
应用 |
问题定位 |
|---|---|---|---|---|
|
IPv4 |
全球(逻辑)寻址 |
头格式、分片、TTL |
几乎一切互通 |
错掩码、环路、黑洞路由 |
|
IPv6 |
更大地址空间的下一代 |
地址形态、ND 替代 ARP |
双栈、云与运营商 |
只开一半双栈导致偶发失败 |
|
ICMP |
网络层的「报错与探测」 |
echo、unreachable、redirect |
|
禁 ping、TTL 超时含义 |
|
路由基础 |
选路表如何决定下一跳 |
最长前缀匹配 |
家用网关、机房路由 |
默认路由丢失、策略路由 |
|
NAT |
公私网地址转换 |
会话表、端口映射 |
家庭上网、云 VPC |
映射耗尽、ALG、单向不通 |
|
VPN / 隧道直觉 |
把私网「叠」在公网上 |
封装、加密(概念级) |
远程办公、跨云 |
MTU、分流、握手失败 |
第五篇 链路层与物理层:邻站交接与真正的「介质」
层目标:理解「下一跳怎么交出去」,以及信号如何跑在介质上。
|
协议 / 主题 |
概念一句话 |
原理重点 |
应用 |
问题定位 |
|---|---|---|---|---|
|
以太网 |
局域网事实标准 |
帧格式、MAC、交换 |
有线接入、数据中心 |
双工不匹配、错包、环路 |
|
ARP / ND |
IP → MAC 的邻居发现 |
请求应答、缓存 |
同网段通信 |
ARP 欺骗、缓存过期 |
|
VLAN |
广播域的逻辑隔离 |
Tag、Trunk |
园区网、云虚拟网络 |
VLAN 配错、孤岛 |
|
Wi‑Fi |
无线局域网 |
信道、关联、漫游 |
家庭与办公无线 |
干扰、漫游掉线、满格很慢 |
|
物理层直觉 |
比特如何变成信号 |
带宽、噪声、光模块 |
光纤/铜缆/无线 |
光衰、误码、接触不良 |
到这一层,你会真正理解:上层「逻辑通了」,为什么有时仍被一根坏线、一个错误 VLAN 搞垮。
第六篇 横切专题:安全、性能、架构与排障体系
层次讲完后,用横切专题把知识「焊」成工程能力:
|
专题 |
内容 |
|---|---|
|
安全 |
TLS 深入、证书体系、防火墙/ACL、常见中间人与端口暴露 |
|
性能 |
带宽 vs 延迟、吞吐 vs PPS、拥塞、队列、CDN 与缓存 |
|
架构组件 |
反向代理、四层/七层负载均衡、网关、服务网格直觉 |
|
端到端排障手册 |
分层检查清单、抓包过滤器库、故障树(连不上/慢/偶发) |
|
协议栈与网卡一瞥 |
socket → 内核协议栈 → 驱动 → DMA/中断(为进阶铺路) |
第四章 「问题定位」如何贯穿全书?
本专栏不把排障留到最后才讲,而是 每层、每协议都带定位方法。
4.1 分层定位口诀
应用层坏了:DNS / 证书 / HTTP 状态码 / 业务超时
传输层坏了:端口不通 / SYN 无回 / 重传飙高 / RST
网络层坏了:ping 不通 / 路由错 / NAT 异常 / TTL
链路层坏了:同网段都不通 / ARP 失败 / 错包 FCS
物理层坏了:link down / 光衰 / 误码 / 松动
4.2 每篇协议文固定附赠「故障速查」
例如讲 TCP 时,会直接给出:
-
现象:连接超时
-
可能层:传输 / 网络 / 防火墙
-
验证:
ss -lnt、tcpdump host x and port y、对端监听与 ACL -
常见根因清单:未监听、安全组、路由黑洞、SYN Cookie、队列满
学协议 = 同时学排障语言。
4.3 推荐工具与它们主要服务的层次
|
工具 |
主要看哪一层 |
典型用途 |
|---|---|---|
|
浏览器 DevTools |
应用 |
瀑布图、状态码、资源耗时 |
|
|
应用(DNS) |
解析链路与缓存 |
|
|
应用 + TLS |
HTTP/证书握手 |
|
|
传输 |
连接状态、监听端口 |
|
|
网络 |
连通性、路径、丢包 |
|
|
网络 |
路由与过滤 |
|
|
链路 / 物理 |
邻居、网卡、链路状态 |
|
|
跨层 |
用过滤器证明假设 |
最后,在接下来的文章里,我们一起探究计算机网络,你的关注是我更新最大的动力!

1341

被折叠的 条评论
为什么被折叠?



