物理层(一):物理层的作用、传输介质与信号编码
各位同学,咱们今天正式进入协议栈的第一层——物理层。很多初学者觉得这层太“硬”,全是线缆和电平,不如上层协议有意思。但我做了十几年网络项目,可以负责任地告诉你:物理层出问题,上层再好的协议也白搭。
我记得有一次帮客户排查一个千兆以太网丢包问题,抓包分析、协议栈调参折腾了两天,最后发现是某段网线的水晶头压线顺序错了。嗯,从那以后,我养成了一个习惯——先看物理层。
1. 物理层到底在干什么?
物理层的任务,说白了就三件事:
- 定义接口和介质:用什么线、什么接头、怎么插拔。
- 表示比特:把0和1变成电信号、光信号或无线电波。
- 传输比特:保证比特能从A点跑到B点,哪怕中间有干扰。
你想想看,应用层发了一个HTTP请求,到了传输层被切成TCP段,网络层加上IP头变成包,数据链路层又加了MAC头和FCS变成帧。最后到了物理层,所有这些数据都被打散成一个个比特,通过介质发送出去。
核心概念:物理层不关心数据内容,它只负责把比特从一端搬到另一端。至于搬过去的比特对不对,那是上层的事。
2. 传输介质:三种主流“管道”
传输介质就是比特的物理通道。我这些年接触过的项目里,90%的场景都跑不出这三种:双绞线、光纤、同轴电缆。
2.1 双绞线
双绞线是咱们最常见的网线。两根细铜线互相缠绕,目的是抵消电磁干扰。为什么?因为两根线受到的干扰信号相位相反,一相减就抵消了。
双绞线分两类:
- STP(屏蔽双绞线):外面包了一层金属屏蔽层,抗干扰更强,但贵且难施工。
- UTP(非屏蔽双绞线):没有屏蔽层,便宜、灵活,家用和办公环境的主力。
咱们常说的“超五类”“六类”就是UTP的等级。我建议你记住这个对应关系:
| 类别 | 最高频率 | 最大速率 | 典型应用 |
|---|---|---|---|
| Cat 5e | 100 MHz | 1000 Mbps | 百兆/千兆以太网 |
| Cat 6 | 250 MHz | 1000 Mbps | 千兆以太网 |
| Cat 6A | 500 MHz | 10 Gbps | 万兆以太网 |
| Cat 7 | 600 MHz | 10 Gbps | 数据中心 |
避坑指南:我曾经在一个机房项目中看到施工队把Cat 6A网线当Cat 5e用,结果万兆链路死活起不来。检查才发现,他们用了Cat 5e的配线架和模块——整条链路的性能取决于最差的那个环节。
2.2 光纤
光纤用光信号传输比特,速度更快、距离更远、完全不受电磁干扰。光纤的核心原理是全内反射——光在纤芯里不断反射前进。
光纤分两种:
- 多模光纤(MMF):纤芯较粗(50μm或62.5μm),光以多个角度传播。距离短(几百米),成本低。
- 单模光纤(SMF):纤芯很细(约9μm),光只沿一条直线传播。距离远(几十公里),成本高。
我个人习惯这样选型:
- 机房内部、楼宇之间(≤500米)→ 多模光纤 + 850nm激光器
- 城域网、长途干线(≥1公里)→ 单模光纤 + 1310nm/1550nm激光器
2.3 同轴电缆
同轴电缆现在用得少了,但它在有线电视和早期以太网(10Base2/10Base5)里是主角。结构是:中心铜线 → 绝缘层 → 金属屏蔽网 → 外皮。屏蔽效果好,带宽也够,但布线不灵活、成本不低,所以逐渐被双绞线和光纤取代。
三种介质的对比,我整理了一张表:
| 特性 | 双绞线 | 光纤 | 同轴电缆 |
|---|---|---|---|
| 带宽 | 100 MHz ~ 600 MHz | 数百 GHz | 数百 MHz |
| 最大距离 | 100 m(电信号衰减) | 40 km+(单模) | 500 m(粗缆) |
| 抗干扰 | 一般(UTP)/ 好(STP) | 极好 | 好 |
| 成本 | 低 | 中高 | 中 |
| 典型场景 | 局域网、家庭网络 | 骨干网、数据中心 | 有线电视、监控 |
3. 信号与编码:比特怎么变成信号?
介质选好了,接下来要解决一个问题:0和1怎么在线上跑?
物理层用信号来表示比特。最常见的信号是电压信号:高电压代表1,低电压代表0。但直接这么干会出问题——如果连续发一串1,线上一直维持高电压,接收端怎么知道发了几个1?
这就引出了编码。编码就是约定好“电压变化”和“比特”之间的映射规则。我重点讲两种:NRZ 和 曼彻斯特编码。
3.1 NRZ(不归零编码)
NRZ是最简单的编码:
- 高电平 → 1
- 低电平 → 0
每个比特占用一个固定的时间窗口(称为“位时间”)。发送端在这个窗口内保持电平不变。
优点:实现简单,带宽利用率高。
致命缺点:
- 无同步机制:连续多个1或0时,电平不变,接收端无法判断到底发了几个比特。
- 直流分量问题:长时间高电平会产生直流偏置,变压器耦合的接口会出问题。
我踩过的坑:早年做RS-232串口通信时,用NRZ编码传大量0x00数据(全是0),结果接收端时钟漂移,数据全错。后来加了同步头才解决。NRZ在短距离、低速率下还能用,但高速网络基本不用它。
3.2 曼彻斯特编码
曼彻斯特编码解决了NRZ的同步问题。规则是:
- 从高到低的跳变 → 1
- 从低到高的跳变 → 0
每个比特中间都有一次电平跳变。这个跳变既是数据,也是时钟信号。接收端可以从跳变中提取同步信息。
优点:自带时钟同步,没有直流分量。
缺点:带宽效率低——每个比特需要两次电平变化,信号频率是NRZ的两倍。
两种编码的对比:
| 特性 | NRZ | 曼彻斯特编码 |
|---|---|---|
| 同步方式 | 需要外部时钟 | 自同步(跳变即时钟) |
| 带宽效率 | 高(1 bit/Hz) | 低(0.5 bit/Hz) |
| 直流分量 | 有(长1或长0时) | 无 |
| 实现复杂度 | 低 | 中 |
| 典型应用 | RS-232、USB(早期) | 10Base-T以太网 |
4. 知识体系总览
下面这张图把本章的核心知识点串起来了。你可以把它当作物理层第一部分的“地图”。
5. 小结与个人建议
物理层这一章,我讲了三个核心点:
- 物理层的作用:定义接口、表示比特、传输比特。不关心数据内容。
- 三种传输介质:双绞线(便宜、短距)、光纤(高速、长距)、同轴电缆(逐渐淘汰)。
- 两种编码方式:NRZ(简单但有同步问题)、曼彻斯特编码(自同步但带宽效率低)。
我个人建议你记住一句话:物理层的选择决定了系统的天花板。介质选错了,速率上不去;编码选错了,距离拉不远。后面讲数据链路层时,你会发现很多问题追根溯源,都出在物理层。
学习小技巧:如果你手边有示波器或逻辑分析仪,抓一段10Base-T的曼彻斯特编码波形看看。亲眼看到电平跳变和比特的对应关系,比背十遍规则都管用。