2. 物理层与数据链路层

这一章,我们聊聊设备入网最底层的两件事:信号怎么传,以及数据怎么找对门。

物理层和数据链路层,听起来像两个分开的概念。但在实际项目里,它们经常被放在一起讨论。我个人习惯把物理层理解成“路”,数据链路层理解成“交通规则”。路修不好,车跑不起来;规则定不好,车全堵在路口。

好,我们一个一个拆开看。

2.1 物理层:信号是怎么“跑”起来的?

物理层干的事很简单:把0和1变成物理信号,发出去。反过来,把收到的物理信号还原成0和1。

至于用什么介质?常见的有三种:网线(铜缆)、Wi-Fi(无线电波)、蓝牙(也是无线电波,但频段和用法不同)。

2.1.1 网线:电信号在铜线上跑

网线用的是差分信号技术。说白了,就是一对绞在一起的铜线,一根发正信号,一根发反信号。接收端拿两者一减,噪声就被抵消了。

我记得刚入行时,有个项目现场网络老是断断续续。排查了半天,发现施工队把网线跟强电线绑在一起走线管。强电一启动,电磁干扰直接把差分信号干翻了。后来重新布线,问题解决。

避坑指南: 网线跟强电平行走线时,间距至少保持30cm。交叉走线时,必须垂直交叉。我曾经见过一个工厂,网线跟380V动力线同管敷设,结果交换机端口直接烧了PHY芯片。

网线的物理层标准,目前主流是1000BASE-T(千兆以太网)和10GBASE-T(万兆以太网)。它们都用4对双绞线,但频率和编码方式不同。

标准 速率 线对数 最大距离 编码方式
100BASE-TX 100 Mbps 2对 100米 4B/5B + MLT-3
1000BASE-T 1 Gbps 4对 100米 4D-PAM5
10GBASE-T 10 Gbps 4对 100米(Cat6a以上) DSQ128 + PAM-16

嗯,这里要注意:100米是理论极限。实际项目中,我建议留20%的余量,也就是80米以内最稳。超过这个距离,信号衰减和延迟抖动都会明显增加。

2.1.2 Wi-Fi:电磁波在空气里飞

Wi-Fi用的是ISM频段(工业、科学、医疗频段),不需要授权就能用。主流频段有两个:2.4 GHz 和 5 GHz。

2.4 GHz穿墙能力强,但干扰也大——微波炉、蓝牙、甚至无线鼠标都在这个频段。5 GHz速度快,但穿墙能力弱,遇到一堵混凝土墙,信号可能直接掉两格。

Wi-Fi的物理层技术,核心是OFDM(正交频分复用)。它把信道切成很多个子载波,数据并行传输。你想想看,一条宽马路分成多个车道,每辆车跑自己的道,互不干扰,效率自然高。

Wi-Fi 6(802.11ax)更进一步,引入了OFDMA。OFDMA允许在一个子载波上同时服务多个设备。我在做智慧园区项目时,一个AP下面挂了80多个IoT传感器。用Wi-Fi 5的话,时延能到50ms以上;换成Wi-Fi 6后,时延降到10ms以内。差距很明显。

核心要点: Wi-Fi的物理层速率不等于实际吞吐量。协议开销、冲突重传、环境干扰都会吃掉大量带宽。实际吞吐量通常是物理层速率的50%~70%。

2.1.3 蓝牙:低功耗的短距离通信

蓝牙跟Wi-Fi一样用2.4 GHz频段,但它的设计目标不一样:低功耗、短距离、低成本。

蓝牙的物理层采用跳频扩频(FHSS)技术。它在79个信道(BLE是40个信道)之间快速跳变,每秒跳1600次。这样做的好处是抗干扰能力强——某个信道被占了,下一秒就跳到别的信道去了。

蓝牙有两个主要版本:经典蓝牙(BR/EDR) 和 低功耗蓝牙(BLE)。经典蓝牙适合传音频(比如蓝牙耳机),BLE适合传小数据包(比如手环、传感器)。

我做过一个可穿戴设备项目,用BLE传输心率数据。刚开始发现设备偶尔断连,排查后发现是Wi-Fi干扰。BLE的广播信道(37、38、39)正好落在Wi-Fi的信道1、6、11附近。后来调整了Wi-Fi的信道规划,问题解决。

小技巧: 如果你的BLE设备跟Wi-Fi共存,尽量把Wi-Fi固定在信道1、6、11之外的频段,或者开启Wi-Fi的蓝牙共存机制。

2.2 数据链路层:数据怎么找到正确的设备?

物理层把信号发出去了,但信号是广播的——同一根网线上所有设备都能收到。怎么确保数据只被目标设备接收?

这就是数据链路层的工作。它负责把物理层的比特流组织成帧(Frame),并在帧头里加上MAC地址,告诉网络:“这个包是给谁的。”

2.2.1 MAC地址:设备的“身份证”

MAC地址是48位的,通常写成6组十六进制数,比如 00:1A:2B:3C:4D:5E。

前24位是OUI(组织唯一标识符),由IEEE分配给厂商。后24位是厂商自己分配的,保证同一厂商下不重复。

理论上,每个网卡的MAC地址是全球唯一的。但实际项目中,我遇到过MAC地址冲突的情况——某批山寨网卡,厂商直接复制了别人的OUI和序列号。两台设备一上电,交换机直接懵了,数据乱跳。

MAC地址有三种类型:

  • 单播地址:目标是一个特定设备。帧头目标MAC的第一个字节最低位为0。
  • 广播地址:目标是所有设备。全F,即 FF:FF:FF:FF:FF:FF。
  • 组播地址:目标是一组设备。第一个字节最低位为1,但不是全F。

你想想看,如果每次发数据都用广播,那网络里所有设备都得停下来处理这个包。效率极低。所以正常通信都是用单播,只有特殊情况(比如ARP请求)才用广播。

2.2.2 交换机的工作原理:从“吼”到“精准投递”

在没有交换机之前,网络是用集线器(Hub)连接的。集线器是个纯粹的物理层设备,它收到信号就复制到所有端口。说白了,就是一个人对着所有人吼:“谁的东西?快来拿!”

交换机不一样。它是数据链路层设备,能识别MAC地址,知道每个设备接在哪个端口上。

交换机的核心工作流程分三步:

  1. 学习:收到一个帧时,记录源MAC地址和接收端口,写入MAC地址表。
  2. 转发:查目标MAC地址,如果表里有记录,只往对应端口发;如果没有,则泛洪(Flood)到所有端口(除了接收端口)。
  3. 老化:MAC地址表条目有生存时间(通常300秒),超时未更新则删除。

我在调试一个大型监控网络时,发现交换机MAC地址表频繁抖动。查了半天,原来是某台摄像头的网口接触不良,导致链路反复up/down。每次up时,交换机重新学习MAC地址,造成短暂的广播风暴。后来换了根网线,世界清净了。

关键概念: 交换机是基于MAC地址转发的,不是基于IP地址。IP地址是网络层的事,交换机不关心。它只看帧头里的目标MAC。

2.2.3 交换机的三种转发模式

不同交换机处理帧的方式不一样。常见的有三种:

模式 转发时机 延迟 错误检测 适用场景
存储转发 接收完整帧后 高 完整CRC校验 企业级、核心网络
直通转发 收到目标MAC后立即转发 低 无 低延迟场景(如高频交易)
无碎片转发 收到前64字节后 中 过滤冲突碎片 老旧网络、混合环境

我个人习惯,在核心层用存储转发,保证数据完整性。在接入层,如果对延迟敏感,可以用直通转发。但要注意,直通转发会把错误帧也传出去,浪费带宽。

2.3 本章知识体系图

下面这张图,把物理层和数据链路层的关系、关键设备、核心概念串起来了。建议你多看几遍,建立整体认知。

物理层与数据链路层知识体系 物理层(Physical Layer) 网线(铜缆) 差分信号 · 100米极限 Wi-Fi(无线电波) OFDM/OFDMA · 2.4/5 GHz 蓝牙(无线电波) FHSS跳频 · BLE低功耗 数据链路层(Data Link Layer) MAC地址 48位 · 单播/广播/组播 交换机 学习 · 转发 · 老化 转发模式 存储转发 · 直通 · 无碎片 封装成帧 物理层负责“怎么传”,数据链路层负责“传给谁”。 两者配合,才能实现设备间的可靠通信。

2.4 本章小结

这一章我们聊了三件事:

  • 物理层:网线用差分信号传电信号,Wi-Fi用OFDM传无线电波,蓝牙用FHSS跳频抗干扰。每种介质都有自己的物理特性和局限。
  • MAC地址:设备的“身份证”,48位,分单播、广播、组播三种。交换机靠它来识别设备。
  • 交换机:数据链路层的核心设备。它通过学习MAC地址表,实现从“广播吼叫”到“精准投递”的转变。

嗯,这些概念看起来简单,但实际项目中踩的坑往往就出在这些基础环节。网线质量、Wi-Fi信道规划、MAC地址冲突、交换机表项老化——每一个细节都可能成为网络故障的导火索。