物理层与数据链路层:从一根线到一帧数据

大家好,欢迎来到第三章。前两章我们聊了TCP/IP的宏观架构,今天要往下挖一层,看看数据到底是怎么在物理介质上跑的。说白了,就是信号怎么变成比特,比特又怎么组装成帧。

我个人习惯把物理层和数据链路层放在一起讲,因为这两层在现实世界里是密不可分的。你想想看,光有物理层,数据就是一串乱码;光有数据链路层,没有线缆,数据连门都出不去。

物理层传输介质:信号的家

物理层干的事很纯粹——把比特流变成电信号、光信号或者无线电波,扔到介质上传输。介质选不对,后面全白搭。我见过不少新手,布线时图便宜用了劣质网线,结果千兆网络死活跑不满,最后排查半天,换根线就好了。

双绞线

这是咱们最常见的传输介质。说白了,就是两两绞在一起的铜线。为什么要绞?因为两根平行线会产生电磁干扰,绞在一起能互相抵消。我当年考CCNA时,老师打了个比方:就像两个人手挽手跳舞,比各跳各的稳当多了。

双绞线分两类:

  • 屏蔽双绞线(STP):外面包了层金属屏蔽层,抗干扰强,但贵、硬、难施工。
  • 非屏蔽双绞线(UTP):没屏蔽层,便宜、灵活,家用和办公最常见。

咱们平时说的“网线”,绝大多数是UTP。按性能分,常见的有Cat5e、Cat6、Cat6a、Cat7。我建议,新布线至少上Cat6,能跑千兆,也能兼容万兆(短距离)。

避坑指南: 我曾经遇到过一个问题——千兆网络偶尔掉包,排查了交换机、网卡、驱动,最后发现是网线水晶头只压了4根线。千兆需要8根全通,4根只能跑百兆。嗯,从那以后我每根线都测通断。

光纤

光纤用光传信号,速度更快、距离更远、抗干扰更强。它分两种:

  • 单模光纤:芯径细(9μm),激光光源,传输距离几十公里,用于骨干网。
  • 多模光纤:芯径粗(50μm或62.5μm),LED光源,传输距离几百米到几公里,用于数据中心内部。

单模贵,多模便宜。我做过一个数据中心项目,机柜之间全用多模OM4光纤,成本可控,性能也够。但你要是拉跨省干线,老老实实上单模。

同轴电缆

同轴电缆现在家用很少见了,但在有线电视和早期以太网(10Base2、10Base5)里是主力。它由内导体、绝缘层、金属屏蔽网和外皮组成,抗干扰比双绞线好。不过,现在除了广电和某些监控系统,基本被双绞线和光纤取代了。

三种介质对比:
介质最大速率最大距离成本抗干扰
双绞线(Cat6)1 Gbps(短距10 Gbps)100米低中
多模光纤10 Gbps+550米(OM4)中高
单模光纤100 Gbps+40公里+高高
同轴电缆10 Mbps(传统)500米(10Base5)低中高

数据链路层功能:把比特变成帧

物理层只管发比特,但比特本身没有意义。数据链路层负责把这些比特组装成“帧”,加上地址、校验信息,让数据能准确送到隔壁设备。

数据链路层核心功能有三个:帧封装、MAC地址寻址、差错控制。我一个个说。

帧封装

网络层把IP包丢下来,数据链路层给它套个“信封”——这就是帧。帧的结构大致是:

| 前导码 | 目标MAC | 源MAC | 类型/长度 | 数据(IP包) | FCS校验 |
| 8字节  | 6字节   | 6字节  | 2字节     | 46-1500字节  | 4字节   |

前导码用来同步时钟,FCS是循环冗余校验(CRC)。注意,数据部分最少46字节,不够要填充。为什么?因为以太网规定帧长不能小于64字节(不含前导码),这是为了冲突检测。

注意: 帧的最大传输单元(MTU)通常是1500字节。如果IP包超过1500字节,IP层会分片。我遇到过一个问题——某些VPN隧道把MTU设小了,结果大包被丢弃,网页打不开。调MTU值是个常见排障手段。

MAC地址

MAC地址是网卡的“身份证”,48位,通常写成六组十六进制数,比如 00:1A:2B:3C:4D:5E。前24位是厂商代码(OUI),后24位是厂商分配的序列号。理论上全球唯一。

但注意,MAC地址只在同一个广播域内有效。数据跨路由器时,源和目标MAC会变,但IP地址不变。这个很多人搞混——MAC是本地寻址,IP是全局寻址。

我记得有一次,客户说网络不通,我一看ARP表,发现两个设备MAC地址一样——有人手动改了MAC。嗯,同一广播域里MAC冲突,交换机直接懵了。

差错控制

数据在物理介质上传输,难免受干扰。数据链路层用FCS(帧校验序列)来检测错误。发送方算好CRC值填在帧尾,接收方重新算一遍,对不上就丢帧。

但注意,数据链路层只检错,不纠错。发现错误怎么办?直接扔掉,让上层(TCP)重传。为什么不做纠错?因为纠错开销太大,不适合高速网络。丢帧重传更简单高效。

小技巧: 如果你怀疑网线质量差导致丢包,可以看交换机的CRC错误计数器。如果这个数一直在涨,基本可以确定物理层有问题。

以太网协议详解

以太网是目前最主流的局域网技术。它定义了物理层和数据链路层的规范。咱们平时用的Wi-Fi、有线网,底层都是以太网(Wi-Fi是无线以太网)。

以太网的核心机制是CSMA/CD(载波监听多点接入/碰撞检测)。说白了就是:

  1. 先听,没人发我就发。
  2. 如果两个人同时发,冲突了,就停。
  3. 等一个随机时间,再重试。

这个机制在早期同轴电缆时代很重要。但现在全双工交换网络普及了,交换机每个端口独享带宽,基本不会冲突。所以现代以太网实际上已经不用CSMA/CD了,但协议里还保留着。

以太网的帧格式,我刚才已经列了。这里再补充一个关键点——以太网有两种封装:Ethernet II(DIX)和IEEE 802.3。Ethernet II用类型字段标识上层协议(比如0x0800是IP),802.3用长度字段。现在绝大多数网络用的是Ethernet II。

常见以太网类型值:
类型值(十六进制)对应协议
0x0800IPv4
0x0806ARP
0x86DDIPv6
0x8100VLAN标签(802.1Q)

你抓包时看到这些值,就知道上层是什么协议了。

本章知识体系

下面这张图,把物理层和数据链路层的关系、核心知识点串起来了。我建议你多看几遍,把层次关系理清楚。

物理层与数据链路层知识体系 物理层 传输介质 双绞线 光纤 同轴电缆 无线 数据链路层 核心功能 帧封装 MAC地址 差错控制 CSMA/CD 比特→帧 以太网协议(Ethernet II / IEEE 802.3) 帧结构:前导码 | 目标MAC | 源MAC | 类型 | 数据 | FCS 关键理解 1. 物理层负责比特传输,介质选型影响速率和距离。 2. 数据链路层把比特组装成帧,用MAC地址寻址,用FCS检错。 3. 以太网是这两层最典型的实现,CSMA/CD是它的核心访问控制机制。