2. 物理层与数据链路层
这一章,我们聊聊设备入网最底层的两件事:信号怎么传,以及数据怎么找对门。
物理层和数据链路层,听起来像两个分开的概念。但在实际项目里,它们经常被放在一起讨论。我个人习惯把物理层理解成“路”,数据链路层理解成“交通规则”。路修不好,车跑不起来;规则定不好,车全堵在路口。
好,我们一个一个拆开看。
2.1 物理层:信号是怎么“跑”起来的?
物理层干的事很简单:把0和1变成物理信号,发出去。反过来,把收到的物理信号还原成0和1。
至于用什么介质?常见的有三种:网线(铜缆)、Wi-Fi(无线电波)、蓝牙(也是无线电波,但频段和用法不同)。
2.1.1 网线:电信号在铜线上跑
网线用的是差分信号技术。说白了,就是一对绞在一起的铜线,一根发正信号,一根发反信号。接收端拿两者一减,噪声就被抵消了。
我记得刚入行时,有个项目现场网络老是断断续续。排查了半天,发现施工队把网线跟强电线绑在一起走线管。强电一启动,电磁干扰直接把差分信号干翻了。后来重新布线,问题解决。
网线的物理层标准,目前主流是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以内。差距很明显。
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的信道规划,问题解决。
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地址,知道每个设备接在哪个端口上。
交换机的核心工作流程分三步:
- 学习:收到一个帧时,记录源MAC地址和接收端口,写入MAC地址表。
- 转发:查目标MAC地址,如果表里有记录,只往对应端口发;如果没有,则泛洪(Flood)到所有端口(除了接收端口)。
- 老化:MAC地址表条目有生存时间(通常300秒),超时未更新则删除。
我在调试一个大型监控网络时,发现交换机MAC地址表频繁抖动。查了半天,原来是某台摄像头的网口接触不良,导致链路反复up/down。每次up时,交换机重新学习MAC地址,造成短暂的广播风暴。后来换了根网线,世界清净了。
2.2.3 交换机的三种转发模式
不同交换机处理帧的方式不一样。常见的有三种:
| 模式 | 转发时机 | 延迟 | 错误检测 | 适用场景 |
|---|---|---|---|---|
| 存储转发 | 接收完整帧后 | 高 | 完整CRC校验 | 企业级、核心网络 |
| 直通转发 | 收到目标MAC后立即转发 | 低 | 无 | 低延迟场景(如高频交易) |
| 无碎片转发 | 收到前64字节后 | 中 | 过滤冲突碎片 | 老旧网络、混合环境 |
我个人习惯,在核心层用存储转发,保证数据完整性。在接入层,如果对延迟敏感,可以用直通转发。但要注意,直通转发会把错误帧也传出去,浪费带宽。
2.3 本章知识体系图
下面这张图,把物理层和数据链路层的关系、关键设备、核心概念串起来了。建议你多看几遍,建立整体认知。
2.4 本章小结
这一章我们聊了三件事:
- 物理层:网线用差分信号传电信号,Wi-Fi用OFDM传无线电波,蓝牙用FHSS跳频抗干扰。每种介质都有自己的物理特性和局限。
- MAC地址:设备的“身份证”,48位,分单播、广播、组播三种。交换机靠它来识别设备。
- 交换机:数据链路层的核心设备。它通过学习MAC地址表,实现从“广播吼叫”到“精准投递”的转变。
嗯,这些概念看起来简单,但实际项目中踩的坑往往就出在这些基础环节。网线质量、Wi-Fi信道规划、MAC地址冲突、交换机表项老化——每一个细节都可能成为网络故障的导火索。