
数据链路层及MAC地址
数据链路层及 MAC 地址
局域网
局域网组网中,以太网是目前唯一的标准。
以太网相关标准
IEEE802:
- Length:表示 data 数据长度,需满足 <= 1500(0x05DC)。
- LLC(逻辑链路控制):属于公有化协议,包含以下部分:
- D.SAP:目标服务接入点。
- S.SAP:源服务接入点。
- Control(0x03):在逻辑意义上控制链路。
- SNAP(子网络接入点):属于私有化协议,包含:
- OrgCode:厂商标识。
- Type:标识使用的是哪一个私有化协议。
Ethernet2(以太网二型帧):
- D.MAC(6B):目的 MAC,记录接收者的 MAC 信息。
- S.MAC(6B):源 MAC,记录发送者的 MAC 信息。
- Type(2B):类型,用于标识上层公有协议,数值 >= 1536 (0x0600)。例如,ARP = 0x0806 、IPV4 = 0x0800 、IPV6 = 0x086DD。
- FCS(4B):帧校验序列,采用 CRC 循环冗余校验进行差错检测。
- Data(46-1500B):为上层传过来的数据。
数据传输流程
- 发送者:填充源目的 MAC 信息、type(标识上层协议),进行 CRC 检验并将结果填充到 FCS。然后借助物理层,将数据转变成二进制比特流从链路中传递。
- 接收者:
- 检查数据的目的 MAC 地址,若不是本地 MAC 则丢弃;若是,则进行下一步。
- 对数据进行 CRC 检验,与 FCS 比较,若不同则丢弃;若相同,则进行下一步。
- 查看 type 字段,将数据交由标识的上层协议进行处理,至此数据链路层工作完成。
相关概念
- E2 和 IEEE 802.3 的作用:定义帧头和帧尾的格式。
- 分组转发:将数据切割成大小一致的长度,使网络中传递的数据长度大致相同,提升数据转发效率。
- MTU(最大传输单元):是每条链路上的概念。若报文 MTU 值过大,而链路所能承载的 MTU 过小,会导致数据分片或丢弃。
广域网
广域网涉及的协议有 PPP 和 HDLC 等。
MAC 地址(物理地址 / 网卡地址)
- 概念:每个设备出厂时,MAC 地址烧录进网卡芯片中,共 48 位。前 24 位代表供应商代码,后 24 位由厂商自行分配。
- 分类及通信特点:
- 单播:点对点、单对单的通信。数据封装时,源 MAC 和目的 MAC 都是单播 MAC 即为单播通信。单播 MAC 地址从高位向低位(从左往右)第 8 位一定为 0,其他位任意。
- 组播:点对多点、单对多的通信,类似 qq 群聊。组播 MAC 地址从高位向低位第 8 位一定为 1,其他位任意。组播 MAC 仅能充当目的地址,不能作为源地址。设备加组可通过 IGMP(互联网组管理协议)或应用软件实现。
- 广播:点对所有、单对所有的通信,是强制的接受处理。广播 MAC 地址从高位向低位 48 位全部为 1。广播 MAC 仅能充当目的地址,不能作为源地址。
- 不同场景下接收者的动作:
- 单播数据:
- 检查目的 MAC,若不是本地 MAC 则丢弃;若是,则进行下一步。
- 进行 CRC 检验,与 FCS 比对,若不同则丢弃;若相同,则进行下一步。
- 查看 type 字段,交由标识的上层协议处理,数据链路层工作结束。
- 组播数据:
- 检查目的 MAC,若本地未加组则丢弃;若已加组,则进行下一步。
- 进行 CRC 检验,与 FCS 比对,若不同则丢弃;若相同,则进行下一步。
- 查看 type 字段,交由标识的上层协议处理,数据链路层工作结束。
- 广播数据:
- 检查目的 MAC,若是广播则直接进行下一步。
- 进行 CRC 检验,与 FCS 比对,若不同则丢弃;若相同,则进行下一步。
- 查看 type 字段,交由标识的上层协议处理,数据链路层工作结束。
- 单播数据:
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自Ciallo~(∠・ω< )⌒★
评论