[Ethernet] Frame Structure
标签搜索
侧边栏壁纸
  • 累计撰写 2 篇文章
  • 累计收到 0 条评论
DV

[Ethernet] Frame Structure

符柯
2022-11-19 / 0 评论 / 109 阅读 / 正在检测是否收录...
参考 《以太网权威指南》第2版,本文内容仅为该书所述内容的部分整理

以太网的四个基本元素

  1. 帧:系统中用来传递数据的一组标准化的数据位。
  2. 介质访问控制协议 :由⼀组嵌在各个以太⽹接⼜的协议组成,允许以太⽹基站 通过半双⼯或全双⼯模式访问以太⽹信道。
  3. 信号组件 :可以在以太⽹信道发送或接收信号的标准化电⼦设备。
  4. 物理介质 :在联⽹的计算机间传递数字以太⽹信号的电缆或者其他硬件。

帧结构

帧头作为指示信息,告知以太网系统中的各个硬件设备,有数据在传输(帧头是较老的10 Mbit/s的以太网系统中使用的,在更新的系统中不再需要,但是为了保证帧结构的一致性,该部分仍然被保留)

帧头后是⽬的地址和源地址。IEEE 标准协会(IEEE-SA)控制地址分配。在分配供应商使⽤的地址块时,IEEE-SA 提供了 24 位的组织唯⼀标识符 (OUI)。每个以太⽹接⼜制造商都有⼀个 OUI。以太⽹接⼜制造商为每个接⼜分配了⼀个独特的 48 位地址,前 24 位地址是制造商的 OUI,后 24 位⽤于确保每个 48 位地址都是独⼀⽆⼆的。这个 48 位的地址通常叫作硬件 (或物理 )地址 ,以表明地址是分配给以太⽹接口的。这个地址也叫作介质访问控制(MAC)地址,这是因为以太⽹介质访问控制系统包括帧和帧的地址。

地址域之后是⼀个 16 位的类型或长度域。通常,这个域⽤来标识数据域采⽤的是哪⼀种⾼级⽹络协议(如 TCP/IP)。这个域也可能⽤来携带长度信息。

类型域之后便是长度为 46 到 1500 字节的数据。数据必须不短于 46 字节。这个长度保证帧信号在⽹络中停留的时间⾜以让最早的 10 Mbit/s 半双⼯系统识别出来。如果数据域携带的⾼层协议数据短于 46 字节,系统将使⽤填充数据将空余部分填满。

最后,在帧的末尾是 32 位的帧校验序列(FCS)域。FCS 包括⼀个循环冗余检验(CRC),⽤来对整帧数据的完整性进⾏检测。

介质访问控制协议

介质访问控制(Medium Access Control,MAC): 按我目前的理解,应该是“共享同一信道的所有设备的通信管理”,可以参考一篇文章深入了解:MAC (Medium Access Control)协议详解 ,2022年,我的工作将会围绕 EMAC 展开。

以太网帧它又来了

帧头

位宽为 64bit,帧头域的引入是为了帮助10 Mbit/s 以太网接口在实际内容到来之前同步数据流。

信号在电缆系统上传递存在延时,帧头域允许若干字节的丢失,在10 Mbit/s的系统上,帧头域可以保护帧的剩余字节。

高速以太网采用更加复杂的机制进行信号编码,以此避免信号启动损失,因此这些(高速以太网)系统不需要帧头来保护帧信号。但是为了兼容早期以太网帧并为帧间管理提供时间,帧头部分仍然保留。

对于帧头位的定义有两种标准,它们之间略有不同,但在帧头的实际使用方式是没有实质差异的,二者传递位的模式也是完全相同的。本文以 IEEE 标准为重点

- DIX 标准

在 DIX 标准中,帧头包括 8 个 “octet”(8位字节):帧头的前 7 字节由交替的 0 和 1 组成。第 8 字节的前 6 位是交替的 0 和 1,末尾两位固定为 “11”,末两位通知接口帧头已经结束,随后传递的将是帧的内容。

- IEEE 标准

在802.3标准中,帧头域分为两个部分,第一部分是7字节的帧头,第二部分是1字节的起始帧分节符(SFD)。和DIX标准相同,SFD最后两位是 “11”

SFD出现了,这里的SFD跟高精度1588中的SFD是同一个东西吗?

目的地址

目的地址在帧头之后,又称作物理地址 或 硬件地址,位宽为48bit,每个以太网接口的目的地址独一无二。目的地址域长48位,可以是目的基站的接口地址,也可以是多播地址或广播地址。

以太⽹接口会读取每帧的⽬的地址。如果⽬的地址既不符合⾃⼰的以太⽹地址,也不和被要求接收的多播或⼴播地址相匹配,那么接口就可以忽略此帧。下⾯是两个标准对⽬的地址的处理⽅式。

- DIX 标准

⽬的地址的第⼀位⽤于区分物理地址和多播地址。如果第⼀位为 0,那么这个地址就是⼀个接口的物理地址 ,也叫单播地址 ,因为这个地址只对应⼀个⽬的地。如果第⼀位为 1,那么此帧将被发送到⼀个多播地址 。如果 48 位都是 1,那么这就是⼀个⼴播地址 ,也叫作全基站地址。

- IEEE 标准

IEEE 802.3 标准对⽬的地址的第⼆位赋予了意义,利⽤其区分本地全局管理地址。全局管理地址是制造商分配给⽹卡的物理地址,⽬的地址的第⼆位为 0 表⽰该地址为全局地址。(DIX 以太⽹地址都是全局管理地址。)如果因为某种原因,以太⽹接口是本地管理的,那么就要把⽬的地址的第⼆位设置为 1。DIX 标准和 IEEE 标准的⼴播地址⼀样,都是所有的位全为 1。

理解物理地址

以太⽹中,48 位的物理地址由 12 个⼗六进制的数表⽰。这 12 个数两两为⼀组,每组 8 位信息。传送从最左的 8 位开始到最右的 8 位。⼀个字节中位的实际传送顺序是从最低位到最⾼位

也就是说,⼀个⽤⼗六进制字符串 F0-2E-15-6C-77-9B 表⽰的以太⽹地址在以太⽹信道传递的字符串从左到右为:0000 1111 0111 0100 1010 1000 0011 0110 1110 1110 1101 1001

因此,这个以⼗六进制数 0xF0 开始的 48 位⽬的地址是单播地址,因为信道传送的第⼀位为 0。

源地址

  1. 位置:在目的地址之后
    //TODO
0

评论 (0)

取消