先决条件– 以太网简介
所有MAC实现所需的基本帧格式在
IEEE 802.3标准
。尽管使用了几种可选格式来扩展协议的基本功能。
以太网帧以Preamble和SFD开头, 两者均在物理层工作。以太网报头包含源MAC地址和目标MAC地址, 之后是帧的有效负载。最后一个字段是CRC, 用于检测错误。现在, 让我们研究基本帧格式的各个领域。
以太网(IEEE 802.3)帧格式–
文章图片
- 前言–以太网帧以7字节前导码开头。这是一种交替的0和1的模式, 表示帧的开始, 并允许发送方和接收方建立位同步。最初, 引入PRE(Preamble)以允许由于信号延迟而丢失几位。但是今天的高速以太网并不需要Preamble来保护帧位。
PRE(前同步码)指示接收器该帧即将到来, 并允许接收器在实际帧开始之前锁定数据流。 - 帧开始定界符(SFD)–这是一个1字节字段, 始终设置为10101011。SFD指示即将到来的位是帧的开始, 即目标地址。有时SFD被认为是PRE的一部分, 这就是为什么Preamble在许多地方被描述为8字节的原因。 SFD警告一个或多个站, 这是进行同步的最后机会。
- 目的地址–这是6个字节的字段, 其中包含要发送数据的计算机的MAC地址。
- 源地址–这是一个6字节的字段, 其中包含源计算机的MAC地址。由于源地址始终是一个单独的地址(单播), 因此第一个字节的最低有效位始终为0。
- 长度 -长度是一个2字节的字段, 表示整个以太网帧的长度。这个16位字段的长度值可以在0到65534之间, 但是由于以太网自身的某些限制, 长度不能大于1500。
- 数据–这是实际数据插入的地方, 也称为有效载荷。如果通过以太网使用Internet协议, 则IP标头和数据都将插入此处。存在的最大数据可能长达1500字节。如果数据长度小于最小长度(即46个字节), 则添加填充0以符合最小可能的长度。
- 循环冗余校验(CRC)–CRC为4字节字段。此字段包含数据的32位哈希码, 该哈希码是在"目标地址", "源地址", "长度"和"数据"字段上生成的。如果按目的地计算的校验和与发送的校验和值不同, 则接收到的数据已损坏。
扩展以太网框架(以太网II框架)的简要概述:
上面详细讨论了标准IEEE 802.3基本帧格式。现在, 让我们看一下扩展的以太网帧头, 使用它可以使有效载荷甚至大于1500字节。
文章图片
DA
[目标MAC地址]:
6个字节
SA
[源MAC地址]:
6个字节
类型
[0x8870(以太类型)]:
2字节
DSAP
[802.2目标服务访问点]:
1个字节
SSAP
[802.2源服务访问点]:
1个字节
Ctrl
[802.2控制字段]:
1个字节
数据
[协议数据]:
> 46个字节
FCS
[帧校验和]:
4字节
尽管在以太网II帧中缺少长度字段, 但是由于网络接口接受了该帧, 因此知道了帧长度。
GATE CS Corner问题
练习以下问题将帮助你测试知识。在前几年的GATE或GATE模拟测试中, 所有问题都已提出。强烈建议你练习它们。
- GATE CS 2007, 问题85
- GATE CS 2005, 问题74
- GATE CS 2004, 问题90
- GATE IT 2005, 问题27
- GATE CS 2016(Set 2), 问题34
扩展的以太网帧大小支持
思科压机
IEEE 802.3和以太网
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
推荐阅读
- Python MongoDB –限制查询limit用法介绍
- 如何在JavaScript中创建链接()
- C语言中的指针和数组之间的区别()
- SCAN(电梯)磁盘调度算法解析和实现
- jQuery的jQuery属性简要介绍
- PHP | SplFixedArray getSize()函数用法介绍
- 如何在href属性内插入JavaScript变量()
- CSS实现分页详细实现代码
- 数字逻辑中的加法器和减法器