以太网中的各种帧结构

news2024/9/28 3:27:08

帧结构(Ethernet Frame Structure)介绍

以太网信号帧结构(Ethernet Signal Frame Structure),有被称为以太网帧结构,一般可以分为两类 —— 数据帧和管理帧。

按照 IEEE 802.3,ISO/IEC8803-3 系列标准规范,数据帧还可以分为基本数据帧、虚拟局域网(VLAN,Virtual Local Area Network)采用的扩展帧、G bit Ethernet 中的扩充帧、突发帧(Burst Frame)以及帧标志类型放在客户数据区域中的 IEEE 802.3 帧等。

管理帧可包括用于与 PHY 层器件之间交换状态信息,实现控制与配置的管理帧,和用于防止网络拥塞的暂停帧(Pause Frame)等。

1. 数据帧

1.1 基本帧

基本帧(Base Frame)的结构如下图所示,各区域说明如下:
在这里插入图片描述

(1) 帧前序(Preamble):这个区域是:“1”、“0” 交替的 56 bit 数据;

(2) 帧起始符 SOF(Start of Frame Delimiter):固定值为 10101011 的 8 bit 数据,用于表示一帧的开始;

(3) MAC 目的地址与源地址(Destination & Source MAC Address):前三个字节是 IEEE 分配给各产商的地址,后三个字节是个产商自行决定的。源地址总是唯一的,而目的地址可以是单播(Unicast)地址、多播(Multicast)地址或者广播(Broadcast)地址;

【注】 关于MAC地址,请参考下文。

(4) 帧长度 / 类型(L/T,Length/Type):这个区域占用两个字节,其功能是用于表示 MAC 帧内不包括任何填充的数据字段长度或 MAC 帧内数据字段的数据类型。若这个区域的取值小于等于 1500 字节,则这个区域表示的是 MAC 帧内数据字段长度(客户数据区域字节数)。若这个区域的取值大于 1500 字节,则表示客户数据要到达的上册协议类型(客户数据类型区域);

【注】当帧长度 / 类型(L/T)区域只作为帧长度标志区域使用时,称为 IEEE802.3 帧,则这个区域长度小于或等于 1500 字节;而此区域作为帧类型区域时,则称其为 Ethernet-II 帧或者 DIX 帧,此时 L/T 的值大于 1500 字节。

(5) MAC 客户数据(MAC Client Data):即数据段区域,一般在 46~1500 字节之间;

(6) 填充区(Pad):填充区占用的字节数根据需要而定。这个区域的功能是确保帧尺寸不少于 64 字节。当从 MAC 目的地址到帧校验区整个数据帧尺寸少于 64 字节时,利用该区域将帧尺寸填充到 64 字节。因为尺寸小于 64 字节的帧属于违法帧,在接收端会被自动丢弃。如果帧尺寸已经达到 64 字节,则该区域占用的字节数应为零;

(7) 帧校验序列(FCS,Frame Check Sequence):这个区域占用 4 个字节,其功能是用于整个帧的差错校验。在帧的源端,从 MAC 的目的地址到填充区在全帧范围内进行循环冗余校验(CRC-32)计算,将计算结果放入源帧的此区域中,在帧的接收端,重新计算 CRC-32 的值,并进行对比。若一致则传输过程中无误码产生,否则帧中有误码产生。

这里应明确,MAC 客户数据区数据最低不能少于 46 个字节,而最高不能大于 1500 字节;网络 MAC 帧的尺寸最短不能少于 64 字节,而最长不能大于 1518 字节,这里不包括帧前序(Preamble)和帧起始符(SOF,Start of Frame Delimiter)两个区域,共占用 18 字节。

1.2 虚拟网采用的一种扩展帧结构

IEEE 802.3ac 标准有规范了在以太网上运行的虚拟局域网(VLAN,Virtual Local Area Network)采用的一种扩展帧结构。VLAN 协议允许将标识符或 “TAG” 插入以太网帧结构中,如下图所示:
在这里插入图片描述
在上述 VLAN 以太网扩展帧结构中,增加的 VLAN 标记 4 字节分为两部分。前两个字节由 “802.1Q 标记类型” 组成,被固定为 0x8100,为预留长度 / 类型区域,主要是赋予 VLAN 标记。其后两字节分为以下三个功能区域:

(1) 前 3 bit 是用户优先权标志区,用于对该帧分配的优先级指示;

(2) 最后 1 bit 是格式符合规定的指示符(CFI,Canonical Format Indicator),在以太网帧结构中用于指示路由选择信息区域(RIF,Routing Information Field);

(3) 剩余 12 bit 是 VLAN 帧标识符,他是以太网 VLAN 帧的唯一标志。加入 VLAN 标记后,使得 802.3ac 标准帧的最大长度由 1518 字节扩大到 1522 字节。

1.3 G bit 以太网的帧结构

在 1988 年,又制定了针对于 G bit 以太网的 IEEE 802.3z 标准规范,其帧结构图下图所示:
在这里插入图片描述

G bit 以太网 IEEE 802.3z 标准规范的扩充帧结构是在原 IEEE 802.3 标准规范的以太网信号的基本帧结构基础后面增加一个扩充区域,其目的是使帧长最短不少于 512 字节(从目的地址到填充区),从而保证发生的碰撞(冲突)可以传播到网上的每个节点。扩充区 bit 并非是数据,其作用仅仅是扩大了占用载体最短要求时间。

1.4 帧间间隙

以太网设备必须允许在传输帧之间有一个最小空载周期时间,这就是所称的帧间间隙 IFG(Inter-Frame Gap)或称为包间间隙 IPG(Inter-Packet Gap)。

其提供的这段间隙时间,使设备得到恢复,以便设备为接收下一帧做必要的准备。IEEE 标准规范帧间的最小间隔为不少于 96 bit 占用的时间,具体如下表所示:
在这里插入图片描述

2. 管理帧

2.1 基本管理帧

这是用于 PHY(物理层器件)与 STA(站管理实体)之间通信的管理帧(Management Frame),也称为基本管理帧(Base Management Frame)。ISO/IEC、IEEE 标准规范的有线以太网管理数据流的帧结构,其帧长通常为 8 个字节,即 64 bit,如下图所示。管理帧前后都可以是空载状态(IDLE)。
在这里插入图片描述

(1) 管理帧前序(Preamble):占用 4 个字节,为连续 32 个逻辑 “1”,对应于管理数据的 32 个时钟周期。管理帧前序用于连续监视管理接口管理,并从而为管理接口给出接收管理数据做准备的时间;若帧前序出现则标志 STA 处理的开始。管理接口有抑制管理帧前序的能力,以便缩短管理帧的长度,从而使 STA 可以尽快访问管理寄存器。

(2) 管理帧起始符(SOF):占用 2 bit,为固定值 “01”;

(3) 管理帧操作码(OP):占用 2 bit,10b 表示读取管理寄存器,01b 表示写管理寄存器,00b 和 11b 无效;

(4) 管理帧 PHY 地址(PHYAD):占用 5 bit;

(5) 管理帧寄存器地址(REGAD):占用 5 bit;

(6) 帧换向区 TA(Turnaround Field):占用 2 bit;

(7) 管理帧数据(Data):占用 2 个字节,即 16 bit。

2.2 暂停帧

在全双工通信工作模式下,以太网标准规范为了实现对数据流量的控制,规范了一种所谓的暂停帧。

这是应用发送暂停帧(Pause Frame)的方法,通告所有发送数据的站点暂停发送帧信息,防止链路发生拥塞。暂停帧仅适用于全双工通信,并不适用于半双工通信。

链路两端都可以向对端发送暂停帧,并且在对端暂停发送状态时,仍然可以向其发送暂停帧,以便延长对端停发 MAC 帧数据时间。

在全双工通信模式下,链路两端也可以只有一方支持暂停帧,而另一方不支持。只是不支持的一方无法解释其收到的暂停帧。可以通过自动协商原理了解对方端是否具备支持暂停帧的能力。

暂停帧的结构图如下图所示:
在这里插入图片描述

(1)目的地址(DA):可以使单播地址,也可以使广播地址 01-80-C2-00-00-01;

(2)类型区(L/T):固定值 88-08,表示此帧为 MAC 介质介入控制帧;

(3)暂停标志(MAC 操作码):固定值 00-01,表示此帧为暂停帧;

(4)MAC 控制参数:设定延时时间,取值范围为 00-00 到 FF-FF,时间单位为时隙(Slot Time);

(5)备用区域:占用 42 bit,无意义。用于使暂停帧长度满足最小帧的要求。


MAC 地址介绍

网络设备的 MAC 地址是全球唯一的。MAC 地址长度为 48 比特,通常用十六进制表示。MAC 地址包含两部分:前 24 比特是组织唯一标识符(OUI,OrganizationallyUniqueIdentifier),由 IEEE 统一分配给设备制造商。

注: 例如,Lattice 的地址为 00-D0-BD。后 24 位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要 MAC 地址的设备)。

注: 详细信息请参考:http://standards.ieee.org/develop/regauth/oui/oui.txt

局域网上的帧可以通过三种方式发送。

第一种是广播,表示帧从单一的源发送到共享以太网上的所有主机。

广播帧的目的 MAC 地址为十六进制的 FFFFFFFFFFFF,所有收到该广播帧的主机都要接收并处理这个帧。

广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。

当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

如下图所示:

在这里插入图片描述

第二种是单播,指从单一的源端发送到单一的目的端。

每个主机接口由一个 MAC 地址唯一标识,MAC 地址的 OUI 中,第一字节第 8 个比特表示地址类型。

对于主机 MAC 地址,这个比特固定为 0,表示目的 MAC 地址为此 MAC 地址的帧都是发送到某个唯一的目的端。

在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地 MAC 地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。

如下图所示:
在这里插入图片描述

第三种是组播,指给一组特定的主机(多播组)发送数据

组播比广播更加高效,组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的 MAC 地址为该组播 MAC 地址的帧。

组播 MAC 地址和单播 MAC 地址是通过第一字节中的第 8 个比特区分的。组播 MAC 地址的第 8 个比特为 1,而单播 MAC 地址的第 8 个比特为 0。

当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。

如下图所示:
在这里插入图片描述

此外,还有一些特殊的专用 MAC 地址,具体请查阅:

https://standards.ieee.org/products-services/regauth/grpmac/public.html


注:对上文原文中图片做了清晰度增强,下文做了图片替换。

原文来源

via:

上文: 以太网扫盲 —— 帧结构(Ethernet Frame Structure)介绍 Felix 发表于 2019/6/15 16:15:36
https://blog.chinaaet.com/justlxy/p/5100064174

下文: 以太网扫盲 ——MAC 地址介绍 Felix 发表于 2019/6/17 15:12:47
http://blog.chinaaet.com/justlxy/p/5100064182

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1919871.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django 框架下的media和static静态文件

Django有两种静态文件 static: 静态文件夹,存放CSS,JS,网站的一些图片等静态资源,为Templates下的html页面提供的。static是不会变化的 media:媒体文件夹,存放网站中用户所相关的一些文件,比如说用户的图片…

深度解析蚂蚁 SEO 蜘蛛池:提升网站流量的有效利器

在当今数字化时代,网站流量对于企业和个人的在线业务成功至关重要。为了在竞争激烈的网络环境中脱颖而出,众多站长和 SEO 从业者不断探索各种优化策略,其中蚂蚁 SEO 的蜘蛛池成为备受关注的工具之一。 蚂蚁 SEO 蜘蛛池是一种创新的技术手段&a…

24/7/12总结

axios Axios 是一个基于 promise 网络请求库&#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 get请求: <script>function…

Cannot resolve symbol ‘HttpServlet‘

问题&#xff1a;不自动导包。 解决方案&#xff1a; https://blog.csdn.net/chenyu_Yang/article/details/136597181

9.Python学习:Socket

1.网络通信要素&#xff08;IP端口传输协议&#xff09; 2.Socket编程 2.1TCP、UDP协议了解 2.2 Socket流程 服务端有两个socket对象&#xff0c;客户端有一个 3.Socket实战 服务端代码&#xff1a; import socket #创建Socket对象 sksocket.socket() #绑定ip与端口号-使…

一文搞定node.js和Vue脚手架的介绍以及安装

node.js的介绍以及安装 node.js的介绍 node.js提供了前端程序的运行环境&#xff0c;可以把node.js理解成是运行前端程序的服务器。node.js的安装 从官网下载安装即可&#xff1a;http://nodejs.cn/download/不要勾选这个,否则会下载很多东西 node -v 是 查看node的版本 npm…

Ubuntu 22.04.4 LTS (linux) 安装 Auditd 安全审计

1 安装auditd sudo apt update sudo apt-get install auditd 2 修改配置 #sudo vim /etc/audit/auditd.conf #日志文件位置 log_file /var/log/audit/audit.log #日志文件大小(Mb) max_log_file 8 #日志文件数量 num_logs 53 启动服务 sudo systemctl restart aud…

【TOOLS】Chrome扩展开发

Chrome Extension Development 1. 入门教程 入门案例&#xff0c;可以访问【 谷歌插件官网官方文档 】查看官方入门教程&#xff0c;这里主要讲解大概步骤 Chrome Extenson 没有固定的脚手架&#xff0c;所以项目的搭建需要根据开发者自己根据需求搭建项目&#xff08;例如通过…

前端工程化:Webpack配置全攻略

前端工程化&#xff1a;Webpack配置全攻略 前端小伙伴们&#xff0c;今天我们来聊聊那个让人又爱又恨的 Webpack。没错&#xff0c;就是那个配置起来让你想砸键盘&#xff0c;但又离不开它的构建工具。别担心&#xff0c;跟着我来&#xff0c;保证让你从 Webpack 小白变成配置…

【k8s部署elasticsearch】k8s环境下安装elasticsearch集群和kibana

文章目录 简介一.条件及环境说明二.需求说明三.实现原理及说明四.详细步骤4.1.规划节点标签4.2.创建三个statefulset和service headless配置4.3.创建service配置 五.安装kibana六.调整索引分区七.安装说明 简介 k8s集群中搭建有elasticsearch服务一般都会用到pvc&#xff0c;但…

苹果入局,AI手机或将实现“真智能”?

【潮汐商业评论/原创】 “AI应用智能手机不就是现在的AI手机。” 当被问到现阶段对AI手机的看法时&#xff0c;John如是说。“术业有专攻&#xff0c;那么多APP在做AI功能&#xff0c;下载用就是了&#xff0c;也用不着现在换个AI手机啊。” 对于AI手机&#xff0c;或许大多…

阿里云调整全球布局关停澳洲云服务器,澳洲服务器市场如何选择稳定可靠的云服务?

近日&#xff0c;阿里云宣布将关停澳大利亚地域的数据中心服务&#xff0c;这一决定引发了全球云计算行业的广泛关注。作为阿里云的重要海外市场之一&#xff0c;澳洲的数据中心下架对于当地的企业和个人用户来说无疑是一个不小的挑战。那么&#xff0c;在阿里云调整全球布局的…

JS爬虫实战之极验四代

极验四代滑块验证码 一、目标网站说明二、流程步骤1. 逆向步骤一般分为&#xff1a;2. 接口确认1- 确认流程2- 获取verify的参数3- 构建requests验证verify的参数4- 锁定secode参数的作用 ok&#xff0c;让我们去获取verify接口中的响应&#xff01;&#xff01;&#xff01; 3…

在若依框架基础上开发新功能

本文介绍如何在若依框架&#xff08;不分离版本&#xff09;的基础上开发新功能。 目录 运行若依框架 下载若依框架代码 IDEA打开若依框架代码 初始化数据库 修改数据库配置 运行项目 设计数据库 数据表命名规则 建表及初始化数据 开发新功能 后端CRUD功能 前端接口…

YOLOv10改进 | 添加注意力机制篇 | 添加LSKAttention大核注意力机制助力极限涨点

一、本文介绍 在这篇文章中&#xff0c;我们将讲解如何将LSKAttention大核注意力机制应用于YOLOv10&#xff0c;以实现显著的性能提升。首先&#xff0c;我们介绍LSKAttention机制的基本原理&#xff0c;它主要通过将深度卷积层的2D卷积核分解为水平和垂直1D卷积核&#xff0…

网络编程!

网络编程 【1】网络开发架构 &#xff08; 1 &#xff09; C / S 架构 C : client &#xff08;客户端&#xff09; S: server (服务端) APP - 就是服务端 C/S 架构通过客户端软件和服务器之间的交互&#xff0c;实现了前端界面和后端业务逻辑的分离&#xff0c;提供了一种…

昇思学习打卡-8-计算机视觉/FCN图像语义分割

目录 FCN介绍FCN所用的技术训练数据的可视化模型训练模型推理FCN的优点和不足优点不足 FCN介绍 FCN主要用于图像分割领域&#xff0c;是一种端到端的分割方法&#xff0c;是深度学习应用在图像语义分割的开山之作。通过进行像素级的预测直接得出与原图大小相等的label map。因…

【JavaScript 算法】快速排序:高效的排序算法

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、算法原理二、算法实现三、应用场景四、优化与扩展五、总结 快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;通过分治法将数组分为较小的子数组&#xff0c;递归地排序子数组。快速排序通常…

近期几首小诗汇总-生活~卷

生活 为生活飘零&#xff0c;风雨都不阻 路见盲人艰&#xff0c;为她心点灯 贺中科大家长论坛成立十五周年 科学家园有喜贺 园外丑汉翘望中 曾一学子入我科 正育科二盼长大 憧憬也能入此家 与科学家论短长 园外翘首听高论 发现有隙入此坛 竟然也能注册成 入园浏览惶然立 此贴…

使用ffmpeg将一个目录下的mkv格式的视频文件转换成mp4格式

最近学剪辑&#xff0c;从BT种子下载的素材资源都是mkv格式的&#xff0c;不能直接导入到视频剪辑软件中。这种情况下需要用一些格式转换工具进行转换&#xff0c;也可以使用ffmpeg进行编辑。 ffmpeg是一个命令行工具&#xff0c;用来对本地的音频视频软件进行编辑。ffmpeg我也…