第二章 物理层与数据链路层:物理层介质与信号、以太网协议、MAC地址、ARP协议工作原理

各位好,欢迎来到第二章。

上一章我们聊了网络的分层模型,说白了就是给网络通信搭了个架子。这一章,咱们得往架子的最底下两层钻——物理层和数据链路层。

这两层是干啥的?简单说,物理层管“怎么把比特流变成电信号、光信号扔到线上去”,数据链路层管“怎么在一条链路上,把数据从一个节点靠谱地传到另一个节点”。

嗯,听起来有点抽象。别急,我带你一个一个拆开看。

2.1 物理层:介质与信号

物理层,是整个网络通信的“地基”。没有它,你写的代码再漂亮,数据也出不了门。

它的核心任务就一个:把0和1变成能在介质上传输的物理信号。

2.1.1 传输介质

传输介质,就是信号走的“路”。常见的分两类:

  • 有线介质:双绞线(网线)、同轴电缆、光纤
  • 无线介质:无线电波、微波、红外线

我个人最常用的是双绞线和光纤。双绞线便宜、好施工,家里和办公室基本都是它。光纤呢,抗干扰、传输距离远,数据中心和骨干网离不开它。

小经验: 我在项目里遇到过,一根看似完好的网线,因为弯折半径太小,导致内部铜芯断裂,信号时断时续。所以布线时,别把网线折成死弯。

2.1.2 信号与编码

信号分两种:模拟信号和数字信号。

我们网络里用的,基本都是数字信号。数字信号怎么表示0和1?常见的方式是调幅、调频、调相。但以太网里,最常用的是曼彻斯特编码和4B/5B编码。

曼彻斯特编码,说白了就是每个比特中间有一次跳变。从高到低表示0,从低到高表示1。这样接收方就能从跳变里提取时钟,同步收发。

核心要点: 物理层不关心数据是什么含义,它只负责把比特流从一个节点搬到另一个节点。至于比特流里有没有错误,那是数据链路层的事。

2.2 数据链路层:以太网协议与MAC地址

物理层把比特流扔过去了,但问题来了:我怎么知道这些比特是发给我的?

这就是数据链路层要解决的事。它把比特流封装成帧,在帧里加上源和目的地址,然后通过介质访问控制,让多个节点共享一条链路。

2.2.1 以太网协议

以太网,是目前局域网里最主流的协议。它的帧结构长这样:

| 前导码 (7字节) | 帧起始定界符 (1字节) | 目的MAC (6字节) | 源MAC (6字节) | 类型/长度 (2字节) | 数据 (46-1500字节) | 帧校验序列 (4字节) |

嗯,看着有点长。但核心就几个字段:

  • 目的MAC:这帧要发给谁
  • 源MAC:谁发的
  • 类型/长度:上层协议是啥(比如0x0800表示IP)
  • 数据:真正的载荷
  • 帧校验序列:检查传输过程中有没有出错
注意: 以太网帧最小64字节,最大1518字节。数据部分如果不够46字节,要填充。我曾经调试过一个丢包问题,最后发现是某个交换机对小于64字节的帧直接丢弃了。

2.2.2 MAC地址

MAC地址,就是网卡的“身份证”。它长48位,通常写成6组十六进制数,比如 00:1A:2B:3C:4D:5E。

前24位是厂商代码,后24位是厂商分配的序列号。理论上全球唯一。

但注意,MAC地址只在同一个广播域内有效。出了路由器,MAC地址就不管用了,得靠IP地址。

避坑指南: 我曾经遇到过,两台设备MAC地址冲突,导致网络时断时续。排查了半天,最后发现是某台设备的网卡被刷了错误的MAC。所以,别轻易改MAC地址。

2.3 ARP协议:地址解析协议

好了,现在我们知道,IP地址是逻辑地址,MAC地址是物理地址。但问题来了:我知道对方的IP,怎么知道它的MAC?

这就是ARP协议干的事。

2.3.1 ARP工作原理

ARP,全称Address Resolution Protocol,地址解析协议。它的工作流程很简单:

  1. 主机A想发数据给主机B,知道B的IP,但不知道B的MAC。
  2. 主机A在局域网里广播一个ARP请求:“谁的IP是192.168.1.2?请告诉我你的MAC。”
  3. 所有主机都收到这个广播,但只有主机B回应:“我是192.168.1.2,我的MAC是00:1A:2B:3C:4D:5E。”
  4. 主机A收到回应,把IP和MAC的对应关系记到ARP缓存里,然后就可以正常通信了。

嗯,说白了就是“喊一嗓子,谁是谁,报上名来”。

2.3.2 ARP缓存与老化

每次ARP查询都要广播,效率太低。所以每个主机都维护一个ARP缓存表,把最近解析过的IP-MAC对应关系存起来。

缓存条目有生存时间,一般是几分钟到几十分钟。过期了,就删掉,下次再查。

核心要点: ARP协议只在同一个广播域(即同一个局域网)内有效。跨网段的通信,需要路由器帮忙,这时候ARP解析的是路由器的MAC地址。

2.3.3 ARP欺骗与防范

ARP协议有个致命弱点:无状态、无认证。任何主机都可以发送ARP应答,告诉别人“我是某个IP”。

这就导致了ARP欺骗攻击。攻击者发送伪造的ARP应答,把网关的IP映射到自己的MAC上,然后所有流量都经过攻击者,被窃听或篡改。

我曾经...: 在一个客户现场,整个办公室网络慢得像蜗牛。排查后发现,有人私自接了无线路由器,开启了DHCP,还发了ARP欺骗包,导致流量都绕了一圈。最后,我建议客户在交换机上配置了动态ARP检测(DAI),才彻底解决。

2.4 本章知识体系

为了让你更直观地理解这一章的知识结构,我画了一张图:

第二章:物理层与数据链路层知识体系 物理层 传输介质 信号与编码 曼彻斯特编码 4B/5B编码 核心:比特流传输 数据链路层 以太网协议 MAC地址 帧结构 介质访问控制 核心:可靠帧传输 ARP协议(桥梁) IP地址 → MAC地址 的解析 广播请求 + 单播应答 ARP缓存与老化 注意:ARP欺骗风险 物理层管“怎么传”,数据链路层管“传给谁”,ARP管“怎么找到谁”

这张图把这一章的核心逻辑串起来了。物理层负责把比特流变成信号传出去,数据链路层负责把比特流封装成帧,加上MAC地址,确保数据能送到正确的设备。而ARP协议,就是连接IP世界和MAC世界的桥梁。

2.5 本章小结

好了,这一章的内容就这些。我们聊了:

  • 物理层的介质和信号,说白了就是“用什么传、怎么传”
  • 以太网协议和MAC地址,核心是“帧结构”和“地址标识”
  • ARP协议,解决了“已知IP找MAC”的问题

嗯,这些知识看起来基础,但实际工作中,很多网络故障的根因都出在这两层。比如网线坏了、MAC地址冲突、ARP欺骗……所以,别小看它们。

一句话总结: 物理层是路,数据链路层是交通规则,ARP协议是问路的人。路修好了,规则定好了,问路的人靠谱了,数据才能顺畅地跑起来。

下一章,我们会往上走一层,聊聊网络层的核心——IP协议和路由。到时候你会发现,跨网络通信的世界,比局域网精彩得多。


可可精品资料库