以太网的 MAC 层

news2024/9/28 11:16:02

目录

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个字节,会在数据字段的后面加入一个整数字节的填,充字段,上一层有总长度,根据上一层的,总长度来去掉填充字段。

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

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

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

相关文章

多维数组的使用

1. 数组的概念 数组(Array):是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 数组中的概念: – 数组名 – 下标(或索引) – 元素 – 数组的长度 …

flink-java使用介绍,flink,java,DataStream API,DataSet API,ETL,设置 jobname

1、环境准备 文档:https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/ 仓库:https://github.com/apache/flink 下载:https://flink.apache.org/zh/downloads/ 下载指定版本:https://archive.apache.org/dist/flink…

【Leetcode】2861. 最大合金数

文章目录 题目思路代码结果 题目 题目链接 假设你是一家合金制造公司的老板,你的公司使用多种金属来制造合金。现在共有 n 种不同类型的金属可以使用,并且你可以使用 k 台机器来制造合金。每台机器都需要特定数量的每种金属来创建合金。 对于第 i 台…

Redis(八)哨兵机制(sentinel)

文章目录 哨兵机制案例认识异常 哨兵运行流程及选举原理主观下线(Subjectively Down)ODown客观下线(Objectively Down)选举出领导者哨兵选出新master过程 哨兵使用建议 哨兵机制 吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新…

深入理解STM32中断处理机制

深入理解STM32中断及其使用方法(基于HAL库) STM32微控制器作为一款强大的嵌入式系统芯片,在各种应用中都需要使用中断来实现实时响应和处理各种事件。本文将深入讨论STM32中断的概念、HAL库的中断处理机制以及如何在STM32CubeMX中配置和使用…

AI编译器的后端优化策略

背景 工作领域是AI芯片工具链相关,很多相关知识的概念都是跟着项目成长建立起来,但是比较整个技术体系在脑海中都不太系统,比如项目参与中涉及到了很多AI编译器开发相关内容,东西比较零碎,工作中也没有太多时间去做复盘…

特征点匹配 harris

算法的核心是利用局部窗口在图像上进行移动,判断灰度是否发生较大的变化。如果窗口内的灰度值(在梯度图上)都有较大的变化,那么这个窗口所在区域就存在角点。 这样就可以将 Harris 角点检测算法分为以下三步: 当窗口…

java/node代码 破解“滑动验证码”的移动距离

1.直接上代码结论 import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL;p…

【C++中的STL】函数对象

函数对象 函数对象概念谓词概念 内建函数对象算术仿函数关系仿函数逻辑仿函数(基本用不到) 函数对象概念 重载函数调用操作符的类,其对象常称为函数对象,函数对象使用重载的()时。行为类似函数调用,也叫仿函数。 函数…

2024年2月最新python批量下载快手个人主页短视频代码(带翻页)

python批量下载快手个人主页短视频代码,2024年1月27日测试过了,如果日后更新了,私聊我 快手个人主页分视频和直播回放,直播回放的地址是m3u8,视频的地址是mp4 m3u8我采用的是hm3u8dl_cli这个库就行下载,带…

HarmonyOS Web组件

1. 前言 众所周知,在Android系统App开发中,我们往往会直接跳转到网页。比如微信给你发了一个链接,默认也是在App之内打开的。很多App就只使用一个WebView作为整体框架,这样开发的好处是,只要使用少量的代码即可完成交互…

文本分类识别系统Python+卷积神经网络算法+TensorFlow+Django网页界面

一、介绍 文本分类系统,使用Python作为主要开发语言,通过选取的中文文本数据集(“体育类”, “财经类”, “房产类”, “家居类”, “教育类”, “科技类”, “时尚类”, “时政类”, “游戏类”, “娱乐类”),基于Te…

企业培训APP:在线教育系统源码开发指南

本篇文章,小编将为读者讲解如何开发一款功能强大的企业培训APP,以及其中的关键源码开发指南。 一、确定需求与功能模块 在着手开发之前,首先需要明确企业培训APP的需求和功能模块。这包括用户注册与登录、课程管理、学员管理、在线考试、成绩…

Android发展历程及安装

目录 发展历程 下载网址 安装过程 发展历程 安卓基于Linux内核,Linux内核相当于房屋的地基 开源不等于免费,不能商用 安卓一般每半年小更新,一年大更新 对应API相当于别名 现在安卓安全性越来越高,性能越来越快&#xff0c…

提升养殖场效益,从饲料粉碎机开始

为了提高养殖效益,养殖户可以从很多方面着手,其中饲料成本是一个重要的因素。为了降低饲料成本,养殖户可以考虑从饲料粉碎环节入手。通过购买和采用高效、低成本的饲料粉碎机,养殖户可以更好地控制饲料成本,提高饲料的…

惊天秘闻-绕过安全设置悄悄导入VBA代码

免责声明: 本文所提供的VBA代码仅供学习和参考之用。作者对用户使用此代码可能产生的任何后果概不负责,包括但不限于数据损失、程序错误或其他不良影响。 使用VBA开发工具时,为了实现动态代码更新,将会用到导入代码模块&#xff0…

为什么网页打开慢?是服务器的问题吗?

当我们遇到网页加载缓慢时,首先想到的可能是服务器的问题。的确,服务器是影响网页加载速度的一个重要因素。然而,这并非是唯一的原因。实际上,网页加载速度受多种因素影响,包括但不限于服务器、网络带宽、DNS解析时间、…

深入浅出理解目标检测的非极大值抑制(NMS)

一、参考资料 物体检测中常用的几个概念迁移学习、IOU、NMS理解 目标定位和检测系列(3):交并比(IOU)和非极大值抑制(NMS)的python实现 Pytorch:目标检测网络-非极大值抑制(NMS) …

课时5:编程语言解读

1.2.1 编程语言解读 学习目标 这一节,我们从 基础知识、编程语言、小结 三个方面来学习。 基础知识 程序 外在关系:业务数据:用户访问业务时候,产生的信息内容数据结构:静态的描述了数据元素之间的关系算法&#x…

“steam教学理念”scratch+数学 ——时钟案例

一、时钟概念 它通常由一个圆形表盘组成,表盘上有12个数字,分别是1到12。这些数字代表了小时。在表盘上,还有三根指针,一根较短的指针叫做时针,另一根较长的指针叫做分针,而秒针通常为红色,且指…