主题
第二章 物理层与数据链路层:比特、帧与以太网
1. 这两层在解决什么问题
上一章说过,分层的本质是分工。最底下两层的分工是:
- 物理层:解决"0 和 1 怎么变成线缆里的信号"——这是把数字世界接到物理世界的那根插头。
- 数据链路层:解决"同一段链路上的两台设备,怎么把一串比特组织成有意义的数据块并可靠交付"——包括在哪断句(成帧)、错没错(差错检测)、发给谁(MAC 地址)、谁先说话(介质访问控制)。
注意关键词是"同一段链路"。链路层的视野只有一跳:从你的电脑到交换机,或者从交换机到路由器。跨越多个网络找路是网络层(下一章)的事。很多考题的坑就埋在这个视野差上。
2. 物理层:信号、带宽与传输介质
2.1 信号与带宽
计算机内部的数据是离散的 0 和 1,但线缆里跑的是连续的物理量——电压、光强或电磁波。物理层的任务就是规定"什么样的信号代表 0,什么样代表 1",以及接口的形状、电平、速率等。
带宽在日常语境里指传输速率,单位是比特每秒(bps)。要特别注意单位换算这个送分兼送命题:
- 网络速率的 k、M、G 按 1000 进位:1 Mbps = 10⁶ bps。
- 存储容量的 K、M、G 通常按 1024 进位,且 1 字节 B = 8 比特 b。
- 所以 100 Mbps 的网络,理论下载速度是 100 ÷ 8 = 12.5 MB/s 左右,而不是 100 MB/s。运营商说的"百兆宽带"是比特,下载软件显示的是字节。
2.2 三大传输介质对比
| 维度 | 双绞线 | 光纤 | 无线(电磁波) |
|---|---|---|---|
| 传输载体 | 电信号 | 光信号 | 空间电磁波 |
| 速率与距离 | 中等,百米级 | 极高,可达数十公里 | 视技术而定,受环境影响大 |
| 抗电磁干扰 | 一般(靠双绞抵消) | 极强(光不受电磁干扰) | 弱,易受干扰和窃听 |
| 成本 | 低 | 介质便宜但设备贵 | 部署灵活,无需布线 |
| 典型场景 | 局域网入户网线 | 骨干网、长途干线 | WiFi、蜂窝网络 |
两个白话点透:双绞线之所以"绞",是让两根线受到的干扰互相抵消;光纤靠光的全反射在纤芯里传播,光不带电荷,所以天生免疫电磁干扰——这就是骨干网清一色用光纤的原因。
2.3 编码与调制的直觉
把 0 和 1 变成信号有两条路:
- 编码:直接用数字信号表示,比如高电平代表 1、低电平代表 0。实际方案(如曼彻斯特编码)会更聪明一些——用"电平跳变"而不是"电平本身"表示数据,让接收方能顺便对齐时钟。
- 调制:把数字信息"搭载"到一个连续的载波上,通过改变载波的幅度、频率或相位来区分 0 和 1。家里的"调制解调器"(Modem)名字就是这么来的:调制(发送时数字变模拟)加解调(接收时模拟变数字)。
考试只考直觉:数字信道用编码,模拟信道用调制,不必深入数学。
2.4 通信方向:单工、半双工、全双工
按数据流动的方向,通信方式分三种,用生活场景一记就牢:
| 方式 | 定义 | 生活类比 | 网络例子 |
|---|---|---|---|
| 单工 | 只能单方向传输 | 广播电台,你只能听 | 传统电视信号 |
| 半双工 | 双向都行,但同一时刻只能一个方向 | 对讲机,"完毕"后对方才能说 | 集线器时代的以太网 |
| 全双工 | 双向可同时传输 | 打电话,双方随时插话 | 交换机连接的现代以太网 |
这个概念和上一小节的 CSMA/CD 直接挂钩:共享总线只能半双工,所以需要 CSMA/CD 来协调;交换机给每台主机一条独享通道,全双工同时收发,冲突从物理上消失,CSMA/CD 也就没了用武之地。
另一组区分是串行与并行:串行传输一次送一个比特(网线、USB),并行一次送多个比特(早期打印机线、内存总线)。长距离通信几乎都用串行——并行的多根线在长距离上难以保持同步,成本也高。
3. 数据链路层三件事:成帧、差错检测、介质访问
3.1 成帧:在比特流里"断句"
物理层交上来的是没头没尾的比特流,链路层要在里面划出边界:"从这里到那里是一个帧"。就像一篇没有标点的文章需要断句。常见做法是用特定的定界符标记帧的开始和结束,如果数据里恰好出现和定界符相同的比特串,就用"填充"手段转义——和写字符串时给引号加反斜杠是一个思路。
3.2 差错检测:奇偶校验与 CRC
信号在传输中可能被干扰,某个比特从 0 变成 1。接收方怎么发现?思路是发送方按约定规则附加冗余信息,接收方用同样规则验算。
奇偶校验是最简单的方案:在数据后面补 1 个比特,让整体中 1 的个数凑成偶数(偶校验)或奇数(奇校验)。接收方数一遍 1 的个数就能验算。它的弱点很明显:只能发现奇数个比特出错——如果恰好错了 2 个比特,1 的个数奇偶性不变,错误就漏网了。
CRC(循环冗余校验)是以太网实际用的方案。直觉上可以这样理解:把整个数据帧看成一个巨大的二进制数,用双方约定的一个"除数"去做除法,把余数附在帧尾一起发送;接收方收到后做同样的除法,余数对不上就说明传输出错。因为除法把每一个比特都卷了进来,任何位置的少量错误几乎都会改变余数,所以 CRC 的检错能力远强于奇偶校验。
| 对比项 | 奇偶校验 | CRC |
|---|---|---|
| 冗余开销 | 1 比特 | 通常 32 比特(以太网) |
| 检错能力 | 只能发现奇数个错 | 能发现绝大多数错误 |
| 能否纠错 | 不能 | 不能(发现错误后整帧丢弃) |
| 应用 | 简单串行通信 | 以太网帧尾 FCS 字段 |
划重点:以太网的差错处理策略是"检错重于纠错"——发现帧出错就直接丢弃,不负责重传。要不要补发,由上层(通常是 TCP)决定。这正是第一章端到端原则的体现。
3.3 MAC 地址与以太网帧结构
链路上可能接着很多设备,帧发给谁?答案是给每块网卡一个全球唯一的MAC 地址(也叫物理地址、硬件地址):48 位二进制,习惯写成 12 个十六进制数,如 00-1A-2B-3C-4D-5E。前 24 位标识网卡厂商,后 24 位由厂商分配,出厂即固化。
以太网帧的结构(简化):
| 字段 | 目的 MAC | 源 MAC | 类型 | 数据 | FCS 校验 |
|---|---|---|---|---|---|
| 长度 | 6 字节 | 6 字节 | 2 字节 | 46~1500 字节 | 4 字节 |
三个常考细节:
- 目的地址在前,源地址在后——设备收到帧第一件事是判断"是不是发给我的",所以目的地址放最前面最高效。
- 数据字段上限 1500 字节,这个值叫 MTU(最大传输单元),第三章讲 IP 分片时会再遇到它。
- FCS(帧校验序列)在帧尾,存放 CRC 余数——因为校验值要等整帧数据都过了一遍才算得出来,边发边算,算完正好接在尾巴上。
3.4 CSMA/CD:一群人共用一条线时怎么说话
早期以太网所有主机共享同一根总线,同一时刻只能有一台发送,两台同时发送信号会互相干扰,称为冲突。CSMA/CD(载波监听多路访问/冲突检测)就是解决"谁先说话"的礼仪,可以概括为三句大白话:
- 先听后说(载波监听):发送前先听信道,有人在说就等。
- 边说边听(冲突检测):发送过程中持续监听,发现信号异常说明撞车了。
- 撞车就停,随机等待再重试:立即停止发送,各自随机退避一段时间再来——随机是关键,否则两台机器会永远同时重试、永远相撞。
必须记住的一点:现代交换机组网的全双工以太网里已经没有冲突,CSMA/CD 实际上退役了——但它仍是考试常客,考的是"共享介质时代"的经典思想。
4. 交换机:链路层的核心设备
4.1 自学习:交换机怎么知道谁在哪个口
交换机有多个端口,内部维护一张 MAC 地址表(记录"哪个 MAC 地址在哪个端口")。这张表不用人工配置,交换机自学习:
- 学习:每收到一个帧,就看它的源 MAC 地址,记下"这个地址来自这个端口"。
- 转发:查目的 MAC 在表里对应哪个端口,只从那个端口发出(表中没有就向除来源口外的所有端口泛洪)。
一句大白话点透:交换机靠"看信封上的寄件人"偷偷记住每个人住哪个门口,下次送信就能直投,不用挨家敲门。
补充三个细节:
- MAC 地址表的表项有老化时间,一段时间没见到某地址的帧就删掉——设备可能换了端口,旧记录留着会送错门。
- 帧按目的地址分三类:单播帧(发给某一台)、广播帧(目的地址全 1,即 FF-FF-FF-FF-FF-FF,发给本网所有设备)、组播帧(发给加入某个组的设备)。交换机对广播帧一律向所有端口转发——这正是"交换机不隔离广播域"的原因。
- 交换机的转发模式有存储转发(收完整帧、校验通过再转发,可靠但稍慢)和直通(读到目的地址就开始转发,快但错帧也会被转出去)两种,现代设备以存储转发为主。
4.2 集线器 vs 交换机 vs 路由器
| 对比项 | 集线器 | 交换机 | 路由器 |
|---|---|---|---|
| 工作层次 | 物理层 | 数据链路层 | 网络层 |
| 依据什么转发 | 不看内容,向所有口复制信号 | MAC 地址表 | IP 路由表 |
| 冲突域 | 所有端口同属一个冲突域 | 每个端口一个冲突域(隔离冲突域) | 隔离冲突域 |
| 广播域 | 一个 | 默认一个(不隔离广播) | 每个接口一个(隔离广播域) |
| 定位白话 | 无脑喇叭 | 小区门房,认人脸不认地址 | 邮局,跨城市寻路 |
冲突域指"会发生信号相撞的范围",广播域指"一个广播帧能传到的范围"。记忆口诀:交换机隔冲突不隔广播,路由器两个都隔。这是选择题最爱考的一组结论。
4.3 VLAN 一句话
VLAN(虚拟局域网):在一台物理交换机上用逻辑配置把端口划成多个互不相通的"虚拟交换机",从而在链路层隔离广播域——不用路由器也能把一个大广播域切小,不同 VLAN 之间要互通仍需借助网络层设备。
5. 无线局域网:为什么 WiFi 不用 CSMA/CD
WiFi(IEEE 802.11 标准)同样工作在物理层和链路层,但它不能照搬 CSMA/CD,原因有二:
- 无线网卡边发边收很困难:自己发射的信号强度远大于远处传来的信号,"边说边听"听不出撞车。
- 隐藏终端问题:A 和 C 都能连到中间的 B,但 A 与 C 相距太远互相听不见——A 监听时以为信道空闲,其实 C 正在向 B 发送,冲突在 B 处发生而 A 毫不知情。
所以 WiFi 改用 CSMA/CA(冲突避免):既然检测不到冲突,就想办法事先避免——发送前随机退避一段时间再抢信道,重要数据可先用小体积的"请求发送/允许发送"握手预约信道,并且每帧都要接收方确认,没等到确认就当作冲突了重发。
一句大白话点透:有线以太网是"撞了再说",WiFi 是"宁可多等,尽量别撞,撞没撞靠回执判断"。
| 对比项 | CSMA/CD 有线 | CSMA/CA 无线 |
|---|---|---|
| 冲突策略 | 检测冲突,撞后处理 | 避免冲突,事先谦让 |
| 能否边发边听 | 能 | 难 |
| 确认机制 | 无(链路层不确认) | 每帧需确认 |
6. 本章知识在真实网络中的位置
家庭上网的完整链路层图景:手机通过 WiFi(无线链路层协议)连到路由器,台式机通过双绞线(物理层介质)连到同一台设备,帧在局域网内靠 MAC 地址投递;一旦目的地在外网,帧就交给网关(家用路由器),由网络层接手——这正是下一章的起点。
本章要点回顾
| 知识点 | 一句话结论 |
|---|---|
| 物理层任务 | 比特与信号的互相转换,规定接口与介质特性 |
| 速率换算 | 1 字节 = 8 比特,百兆宽带下载峰值约 12.5 MB/s |
| 介质选择 | 短距离用双绞线,长距离大容量用光纤,移动场景用无线 |
| 链路层三件事 | 成帧、差错检测、介质访问控制 |
| 奇偶校验 | 只能发现奇数个比特错误 |
| CRC | 以太网帧尾 FCS,检错强但不纠错,错帧直接丢弃 |
| MAC 地址 | 48 位,全球唯一,固化在网卡,前 24 位是厂商号 |
| CSMA/CD | 先听后说、边说边听、撞了随机退避 |
| 交换机自学习 | 记源地址建表,查目的地址转发,查不到就泛洪 |
| 三设备对比 | 集线器·物理层,交换机·隔冲突域,路由器·隔广播域 |
| 通信方向 | 单工只收、半双工轮流、全双工同时;交换式以太网全双工 |
| 广播帧 | 目的 MAC 全 F,交换机向所有端口转发 |
| WiFi | 用 CSMA/CA 事先避让并靠确认判断,因无线难以边发边听 |
| VLAN | 逻辑划分广播域,跨 VLAN 通信需网络层设备 |
做题提醒
- 单位陷阱:Mbps 是比特每秒,MB/s 是字节每秒,差 8 倍。计算下载时间的题先统一单位再动笔。
- MAC 地址是 48 位(6 字节),IP 地址是 32 位(4 字节),别记反;"MAC 地址工作在网络层"是错误说法。
- 奇偶校验"能检出所有错误"或"能纠正错误"都是错的——它只能发现奇数个比特出错,且不能纠错。
- 以太网发现帧出错的处理是"丢弃",不是"要求重传"——可靠性交给上层,这是端到端原则的应用。
- "交换机隔离广播域"是经典错误选项:交换机默认只隔离冲突域,隔离广播域靠路由器或 VLAN。
- CSMA/CD 属于半双工共享介质时代的机制,全双工交换式以太网中不再需要;题目若问"以太网一定使用 CSMA/CD"应判错。
