以太网的 MAC 层

发布时间:2024年01月24日

目录

1. ?MAC 层的硬件地址

48 位的 ?MAC 地址

2. ?MAC 帧的格式

以太网 V2 的 MAC 帧格式

无效的 MAC 帧

IEEE 802.3 MAC 与以太网 V2 MAC 帧格式的区别


1. ?MAC 层的硬件地址

硬件地址又称为物理地址,或 MAC 地址

IEEE 802 标准为局域网规定了一种 48 位的全球地址(简称为地址)是指局域网上的每一台计算机中固化在适配器的 ROM 中的地址

注意:如果连接在局域网上的主机或路由器安装有多个适配器,这样的主机或路由器就有多个“地址”。更准确些说,这种 48 位“地址”应当是某个接口的标识符

例如:

48 位的 ?MAC 地址

·IEEE 注册管理机构 RA 负责向厂家分配前 3 个字节 (即高 24 位),称为组织唯一标识符 OUI (Organizationally Unique Identifier)。

·厂家自行指派后 3 个字节 (即低 24 位),称为扩展标识符 (extended identifier)。

·必须保证生产出的适配器没有重复地址

·地址被固化在适配器的 ROM 中。

IEEE 规定地址字段的第 1 字节的最低位为 I/G (Individual / Group) 位。

单站地址:I/G 位 = 0。

组地址:I/G 位 = 1。组地址用来进行多播

广播地址:所有 48 位都为 1(全 1)。为广播地址。只能作为目的地址使用。

IEEE 把地址字段第 1 字节的最低第 2 位规定为 G/L (Global / Local) 位。

全球管理:G/L 位 = 0。厂商向 IEEE 购买的 OUI 都属于全球管理。

本地管理:G/L 位 = 1。 这时用户可任意分配网络上的地址。

适配器具有过滤功能

·每收到一个 MAC 帧,先用硬件检查帧中的 MAC 地址。

·如果是发往本站的帧则收下,然后再进行其他的处理。

·否则就将此帧丢弃,不再进行其他的处理。

“发往本站的帧”包括以下 3 种帧:

????????·单播 (unicast) 帧(一对一)

????????·广播 (broadcast) 帧(一对全体)

????????·多播 (multicast) 帧(一对多)

混杂方式 (promiscuous mode) 工作的以太网适配器只要“听到”有帧在以太网上传输就接收下来。

2. ?MAC 帧的格式

·常用的以太网 MAC 帧格式有 2 种标准:

? ? ? ? (1)DIX Ethernet V2 标准

? ? ? ? (2)IEEE 的 802.3 标准

·最常用的 MAC 帧是以太网 V2 的格式

以太网 V2 的 MAC 帧格式

上图分析:

MAC 层:

·目的地址字段: 6 字节。

·源地址字段: 6 字节。

·类型字段: 2 字节。类型字段用来标志上一层使用的是什么协议, 以便把收到的 MAC 帧的数据上交给上一层的这个协议。

·数据字段 :46 ~ 1500 字节。数据字段的正式名称是 MAC 客户数据字段。 最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度(46字节)

·FCS 字段 :4 字节。当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。

当传输媒体的误码率为?10^{-8} 时, MAC 子层可使未检测到的差错小于10^{-14}

物理层:

·由硬件在帧的前面插入 8 字节。第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧。

为了达到比特同步,在传输媒体上实际传送的要比 MAC 帧还多 8 个字节。

抓包

无效的 MAC 帧

·数据字段的长度与长度字段的值不一致;

·帧的长度不是整数个字节;

·用收到的帧检验序列 FCS 查出有差错;

·数据字段的长度不在 46 ~ 1500 字节之间。

·有效的 MAC 帧长度为 64 ~ 1518 字节之间。

对于检查出的无效 MAC 帧就简单地丢弃。 以太网不负责重传丢弃的帧。

IEEE 802.3 MAC 与以太网 V2 MAC 帧格式的区别

·当“长度/类型”字段值大于 0x0600(1536) 时,表示“类型”;小于 0x0600 时,表示“长度”。

·当“长度/类型”字段值小于 0x0600 时,数据字段必须装入逻辑链路控制 LLC 子层的 LLC 帧

·在 802.3 标准的文档中,MAC 帧格式包括了 8 字节的前同步码和帧开始定界符。

现在市场上流行的都是以太网 V2 的 MAC 帧,但大家也常常把它称为 IEEE 802.3 标准的 MAC 帧。

无帧长度怎么办?交付给上层多大的数据?

也就是帧定界的帧尾标记。

根据曼彻斯特编码特点,有电平跳变,当接收端发现没有电压的变化,就找到了帧尾的位置,这个位置往前数,四个字节,就是数据字段的结束位置,数据字段不足46个字节,会在数据字段的后面加入一个整数字节的填,充字段,上一层有总长度,根据上一层的,总长度来去掉填充字段。

本文仅为个人学习笔记,欢迎一起学习~

文章来源:https://blog.csdn.net/m0_64621282/article/details/135824512
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。