为什么需要网络层#
从数据链路层到网络层 视频讲解 https://www.bilibili.com/video/BV12kso6TEVG/
一句话#
数据链路层只负责"这一段路",网络层负责"从头到尾"——链路层把帧送到隔壁,网络层把分组送到地球另一端;两者靠"一段一段接力"接起来。
一、先看数据链路层做到了什么#
前面几集讲的东西,合起来是一句话:在同一个网络内部,帧能准确送到任何一台机器。
| 已经解决的问题 | 关键机制 |
|---|---|
| 帧长什么样 | 帧头 + 数据 + FCS,有明确的起止 |
| 谁发给谁 | MAC 地址(48 位硬件地址,烧在网卡上) |
| 怎么送 | 交换机查转发表,按目的 MAC 从对应端口转发 |
| 撞车怎么办 | CSMA/CD(半双工时代)或全双工交换 |
到这一步,一个局域网里的通信确实没有问题了。
但"一个局域网"是个很硬的边界。
二、链路层的三个天花板#
天花板 ①:出了这个网就断了#
交换机只认自己这个网里的 MAC 地址。北京、上海、广州各有一个局域网,各自内部都跑得很好,但三个网之间没有交换机能把它们接起来——转发表里根本没有外面世界的条目。
交换机是"本地户籍警",它只知道本辖区有谁。
天花板 ②:MAC 地址没有层次#
MAC 地址是 48 位、出厂就烧死的硬件地址,写法如 00-1A-2B-3C-4D-5E。
关键在于:它和这台机器在网络中的位置没有任何关系。 换一个城市、换一个网络,MAC 地址一点不变;反过来说,拿到一个 MAC 地址,你也推不出它在哪儿。
这就意味着,要在一张覆盖全球的表里找一台机器,只能一个一个比对——全世界几十亿个地址,这种做法在规模上直接崩溃。
类比:MAC 地址像身份证号,全国唯一,但你拿着身份证号并不知道这个人住哪儿。 IP 地址像"邮编 + 门牌",先按邮编定位到片区,再在片区里找门牌——可以按块缩小范围。
严谨性补充(本片为教学简化):MAC 地址其实不是完全随机——前 24 位是 OUI(组织唯一标识符),由 IEEE 分配给厂商,所以能看出是哪家造的。但这个"层次"只到厂商,和网络拓扑无关,对路由毫无帮助。教材的说法是「MAC 地址没有层次」,指的是没有拓扑层次,这一点要跟学生讲清楚。
天花板 ③:底下的网络不是同一种#
现实中的底层网络五花八门:
| 网络 | 帧的样子 |
|---|---|
| 以太网(有线局域网) | 目的 MAC / 源 MAC / 类型 / 数据 / FCS |
| Wi-Fi(无线局域网,802.11) | 帧控制 / 地址 1 / 地址 2 / 地址 3 / 数据 + FCS |
| PPP(运营商点对点链路) | 7E / FF / 03 / 协议 / 信息 / FCS / 7E |
字段的个数、顺序、含义全都不一样。 两个异构网络直接对接,等于两个说不同语言的人面对面——谁也听不懂谁。
教材 §4.1.2 举的例子是以太网、令牌环网、ATM、帧中继。片子里换成学生更熟的以太网 / Wi-Fi / PPP,道理完全一样:异构。
三、网络层的解法:在上面盖一层#
网络层不去改造底下的网络(那要动全世界已有的设备,根本做不到),而是在它们上面另铺一层:
- 统一的地址——IP 地址,与底层用的是什么网络无关;
- 统一的报文格式——IP 数据报,到了哪一层都能被识别。
底下怎么跑一概不管,上面看起来,全世界就成了一个网。
这就是教材里的 虚拟互连网络(virtual internetwork),也叫 IP 网。
"虚拟"两个字是重点:它并不是真的一张网,而是把许多张互不相同的物理网络"看起来"粘成一张。真实存在的是一个个具体的网络;IP 网是它们之上的抽象。
┌──────────────────────────────────────────────┐
│ 统一的 IP 层(统一地址 + 统一报文格式) │
└──────────────────────────────────────────────┘
│ │ │
┌───────┐ ┌────────┐ ┌────────┐
│ 以太网 │ │ Wi-Fi │ │ PPP │ ← 底下各不相同
└───────┘ └────────┘ └────────┘
四、网络层具体做三件事#
| # | 工作 | 一句话 | 产物 |
|---|---|---|---|
| 1 | 编址(addressing) | 给每台主机发一个带层次的逻辑地址 | IP 地址 |
| 2 | 路由(routing) | 算出从源到目的该走哪条路 | 路由表 / 路线图 |
| 3 | 转发(forwarding) | 分组到了某个路由器,查表决定从哪个口出去 | 下一跳 |
路由 ≠ 转发(最容易混的一对)#
| 路由 routing | 转发 forwarding | |
|---|---|---|
| 范围 | 全局:整张网的拓扑 | 本地:一台路由器的一个接口 |
| 时机 | 提前算好,周期性更新 | 每个分组到达时都要做 |
| 做什么 | 跑路由协议,算出路线 | 拿目的地址查表,选出口 |
| 类比 | 出发前规划整条路线 | 每到一个路口看一眼路牌 |
一句话:路由负责画路线图,转发负责照着图走一步。
五、为什么非要分两层地址#
| MAC 地址(链路层) | IP 地址(网络层) | |
|---|---|---|
| 性质 | 硬件地址,烧在网卡上 | 逻辑地址,由网络分配 |
| 作用范围 | 只在本地链路有效 | 端到端全程有效 |
| 随位置变化 | 不变(跟着网卡走) | 换网络就得换 |
| 有没有层次 | 无拓扑层次 | 有(网络号 + 主机号) |
| 谁在用 | 交换机 | 路由器 |
记住这一条:帧只在一段链路上跑,MAC 地址只在这一段有意义;IP 数据报要跑全程,IP 地址一路不变(NAT 等特殊情况除外)。
这里只点一句,不展开:分组每经过一个路由器,帧头会拆掉重装(MAC 地址换成本段的),IP 头原样不动。这正好就是"链路层管一段、网络层管全程"最直观的证据——下一集讲 IP 地址时会详细拆开看。
六、本集没讲、但要知道的#
| 内容 | 归属 | 说明 |
|---|---|---|
| IP 地址的具体格式(分类 / 子网 / CIDR) | §4.2 | 下一集 |
| ARP:怎么用 IP 地址找到 MAC 地址 | §4.2.2 | 后续单独一集 |
| IP 数据报的字段 | §4.2.1 | 后续 |
| 路由协议(RIP / OSPF / BGP) | §4.5 | 后续 |
| 网络层提供的两种服务(虚电路 / 数据报) | §4.1.1 | 本集回避,避免与"三件事"抢主线 |
七、三个自测问题#
- 一台主机换了个办公室、接到另一个网段,它的 MAC 地址和 IP 地址分别变不变?
- "路由"和"转发",哪一个每收到一个分组都要做一次?
- 如果全世界只用 MAC 地址通信,不用 IP 地址,最先崩掉的是什么?
参考答案:1)MAC 不变、IP 要变;2)转发;3)路由/转发表的规模——没有层次的地址无法聚合,表会大到无法维护。