本篇要回答的问题:网络是怎么把两台计算机连起来的?数据从源主机出发,一层层封包、寻址、路由、穿透 NAT,最终如何抵达目标主机?
前几讲讲完了单机操作系统的进程、存储、输入、输出,但单机软件再强也只是"高级计算器"。本讲跨入网络——把计算机连成互联网。核心是用实物快递的物流类比串起 OSI 分层封包、IP/MAC/域名三类地址、相关协议(DNS/DHCP/ARP/ICMP…)以及交换机、路由器、NAT 三种数据传输场景。
数据的封包过程:一层层套信封
网络协议就是"计算机远程沟通的数据格式",本质是数字内容的物流。传一部电影(应用层数据),要像寄快递一样层层封装:
| 步骤 | 分层 | 信封上写什么 | 解决的问题 |
|---|---|---|---|
| 分批次 | —— | 数据不是流,是有大小上限的数据包 | 单次传输容量有限 |
| 套第一层信封 | 传输层 | 源端口、目标端口、批次编号 | 由哪个应用收件 + 传输可靠性 |
| 套第二层信封 | 网络层(IP) | 源 IP、目标 IP | 跨广域网寻址、跨物流公司标准化 |
| 套第三层信封 | 数据链路层 | 由具体物流公司说了算 | 局部一段路程的传输 |
| 进入流转 | 物理层 | —— | 实际的数字物流系统 |
关键判断:IP 协议最核心的意义是标准化——越往外层信封越和具体物流公司相关,但拆到 IP 这一层,格式必然统一。这正是"互联网"由所有数字物流公司协作而成的根基。
传输层有两套信封:TCP(写了批次编号,保证送达)和 UDP(没写编号,不保证送达)。
网络协议与三层网络地址
通讯首先要有地址。数字世界的地址分三层,由底到高:
| 层次 | 地址 | 特点 |
|---|---|---|
| 链路层 | MAC 地址 | 跟随网卡,与网络环境无关;从北京搬到上海不变 |
| 网络层 | IP 地址 | 类似门牌号,决定路由;IPv4 仅 40 多亿个,故升级 IPv6 |
| 应用层 | 域名 | 给人记忆用,如 www.qiniu.com |
围绕这三类地址,配套了一组辅助协议:
| 协议 | 全称 | 用途 |
|---|---|---|
| DNS | 域名系统 | 地址簿:域名 → IP 查询 |
| DHCP | 动态主机配置协议 | 接入网络时分配 IP、网关地址、DNS 地址 |
| ARP | 地址解析协议 | 以太网内:IP → MAC |
| RARP | 反向地址转换协议 | MAC → IP,已被 DHCP 取代 |
| ICMP | 互联网控制报文协议 | 检测连线状况,ping / traceroute 基于此 |
| IGMP | 互联网组管理协议 | IP 组播成员管理(本文略过) |
数据传输的三种情形
| 情形 | 网络拓扑 | 核心机制 |
|---|---|---|
| 一·同局域网 | 交换机连接,以太网协议 | ARP 拿到目标 MAC → 交换机基于"MAC→端口"表转发 |
| 二·都有公网 IP | 经交换机 + 路由器 | 路由器工作在第三层,按 IP 路由(最佳路径) + 拆包重组 |
| 三·有私有 IP | 经 NAT 网关 | NAT 技术建立 iAddr:port1 ⇔ eAddr:port2 双向映射 |
交换机工作在第二层,只认 MAC 不认 IP,靠不断学习建立"MAC 地址 → 端口"映射表。其六个动作:
| 动作 | 含义 |
|---|---|
| 学习 learning | 记下源 MAC 在哪个端口 |
| 泛洪 flooding | 目标端口未知时向其他所有端口转发 |
| 转发 forwarding | 查表命中后定向转发 |
| 过滤 filtering | 源与目的同端口则不处理 |
| 老化 aging | 超时记录被清除 |
关键洞见:交换机"通讯基本靠吼"——圈子小,吼一段时间路就记住了;但广域网太大没人听得见,所以才需要路由器这种带"导航(路由)"能力的设备,去解决带权有向图上的最佳路径问题。
NAT 穿透:两台都在内网、都无公网 IP 的主机能否直连?答案是不确定——只有目标方是 Full cone NAT(一对一、任何主机都能复用映射)时,中间人服务器才能搭桥成功;其他类型 NAT 对回包主机 IP 有约束,只能由中间人中转。
总结
本讲用快递物流类比把 IP 网络讲透:数据层层封包对应一层层信封,越外层越和具体物流公司相关、越内层(IP)越标准化。寻址有 MAC/IP/域名三层,配套 DNS/DHCP/ARP 等协议;传输则按"同局域网 / 公网 IP / 私有 IP+NAT"三种情形展开,交换机靠学习、路由器靠导航、NAT 靠双向映射。
先把"是什么"回答清楚
| 概念 | 一句话说明 |
|---|---|
| 网络协议 | 计算机远程沟通的数据格式,是数字内容的物流 |
| IP 协议 | 网络层标准化信封,解决跨物流公司寻址 |
| TCP / UDP | 传输层两套信封:保证送达 vs. 不保证但开销小 |
| MAC 地址 | 跟随网卡的唯一身份,无寻址作用 |
| 交换机 | 第二层设备,靠学习 MAC→端口表高速转发 |
| 路由器 | 第三层设备,带路由(导航)能力跨网传输 |
| NAT | 让私网主机通过公网 IP"替身"上网的地址转换技术 |
一句话速记
数据出门要层层套信封,外层认物流公司、内层(IP)必标准化;MAC 靠吼(交换机)、IP 靠导航(路由器)、私网靠替身(NAT)。
几条值得记住的判断
- 越外层信封越私有,越内层越标准——IP 标准化是互联网得以互联的关键。
- 交换机不认 IP 只认 MAC,路由器才认 IP 并解决最佳路径。
- NAT 穿透能否成功取决于 NAT 类型,Full cone 才可直连。
思考题
本讲只讲到 IP 数据包如何抵达,不讲数据重传、也不讲到达应用层后如何处理。回到你自己的系统:当你引入一个"中间人"(代理 / 网关 / NAT)时,它对上下游是透明转发还是有状态映射?这个选择会怎样影响连通性和故障定位?

