以太网的MAC层

news2024/11/19 14:26:39

以太网的MAC层

一、硬件地址

​ 局域网中,硬件地址又称物理地址或MAC地址(因为用在MAC帧),它是局域网上每一台计算机中固化在适配器的ROM中的地址。

​ 关于地址问题,有这样的定义:“名字指出我们所要寻找的资源,地址指出那个资源在何处,路由告诉我们如何到达该处。”

​ 这个地址并不是用来指明这台主机在什么地方,而是指每一个站的“名字”或标识符。

​ MAC地址用6个字节来表示。IEEE的RA负责分配前三个字节,生产局域网适配器的厂家都要向RA购买前三个地址块。

​ IEEE规定地址字段的第一个字节的最低有效位为I/G(Individual/Group)位,当I/G位为0时,表示一个单个站地址。为1时表示组地址,用来进行多播。规定第一字节的最低第二位为G/L(Global/Local)位,为0时是全球管理,为1时是本地管理

​ 所以每个站的地址还有46位表示,一共有 246 个地址,超过了70万亿。

适配器有过滤功能,可以对收到的帧选择接收或丢弃,其中包括:

  • 单播(unicast)帧(一对一):收到的帧的MAC地址与本站的地址相同
  • 广播帧(broadcast)(一对全体):发送给本局域网上的所有站点的帧(全1地址)
  • 多播帧(multicast)(一对多):发送给本局域网的一部分站点的帧

以太网适配器还可设置混杂方式(promiscuous mode):只要发现有帧在以太网上传输就都悄悄接收下来,而不管这些帧发往哪个站。这种方式有利有弊,弊端就是对于我们普通用户不安全,好处就是帮助学习网络的人更好的理解各种网络协议的工作原理。

二、MAC帧格式

以太网帧有两种标准:DIX Ethernet V2标准和IEEE的802.3标准。严格来所以太网应当是指前者标准的局域网,前者也是使用的最多的。所以这里就介绍V2标准的帧格式。

在这里插入图片描述

  • 位同步字段: 一个站在刚开始接收MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步,因此MAC帧的最前面的若干位就无法接收,导致变为无用帧。为了实现位同步,MAC子层向下传到物理层时还要在帧的前面插入8个字节(由硬件生成)。前同步码由1和0交替组成,作用是使接受端的适配器在接收MAC帧时能够迅速调整其时钟频率,使它和发送端的时钟同步。帧开始定界符定义为10101011,前六位和前同步码作用一样,最后连续的11告诉接收端适配器:”MAC帧来了,注意接收“。

  • 类型字段: 标志上一层使用的是什么协议,以便把收到的帧上交给上一层的这个协议。例如0x0800,表示上层使用的是IP数据报。

  • 数据字段: 首先以太网规定的最小长度为64字节,减去首部尾部的18字节就得到了46字节。

  • FCS字段: 使用CRC检验,检验的是从目的地址开始的这五个字段。

出现以下条件之一则为无效的MAC帧:

(1)帧的长度不是整数字节;

(2)用收到的帧校验序列FCS查出有错误;

(3)收到的帧的数据部分不在46~1500字节之间。因为还有首部和尾部,所以MAC帧的有效长度为64~1518字节之间。

当数据字段的长度小于46字节时,MAC子层就会在数据字段后面加入整数字节的填充字段,以保证以太网的MAC帧的长度不小于64字节。那么当上层为IP层时,IP层如何知道这个帧有没有填充字段?IP协议的首部有一个总长度字段,当其大于等于46那么就没有填充,否则得出来的差值就是填充字段字节数。例如IP数据报总长度42字节,向下传输时,那么MAC层就要填充4个字节以达到最短数据字段长度。向上交给IP层后,IP层会把其中的填充字段丢弃。

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

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

相关文章

【Spring】Bean作用域和生命周期

Bean作用域和生命周期 一. Bean 的作用域1. Bean 的 6 种作⽤域:①. singleton②. prototype③. request④. session⑤. application⑥. websocket单例作用域(singleton) VS 全局作⽤域(application) 2. 设置作用域 二. Spring 执行流程和 Bean 的生命周期1. Spring…

MySQL优化、锁、总结常见问题

慢 SQL 如何定位呢? 慢 SQL 的监控主要通过两个途径: 慢查询日志:开启 MySQL 的慢查询日志,再通过一些工具比如 mysqldumpslow 去分析对应的慢查询日志,当然现在一般的云厂商都提供了可视化的平台。服务监控&#xf…

如何实现torch.arange的tensor版本

文章目录 背景实现方案不可行的情况 背景 import torch我们都知道,torch.arange只支持数字,不支持tensor,如下: torch.arange(0,5,1)tensor([0, 1, 2, 3, 4]) 但是如果使用tensor,就会报错: torch.arang…

SpringBoot结合Redisson实现分布式锁

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Sp…

力扣 -- 474. 一和零(二维费用的背包问题)

解题步骤&#xff1a; 参考代码&#xff1a; 未优化代码&#xff1a; class Solution { public:int findMaxForm(vector<string>& strs, int m, int n) {//开一个三维的dp表vector<vector<vector<int>>> dp(strs.size()1,vector<vector<in…

DevEco Studio如何安装中文插件

首先 官网下载中文插件 由于DevEco是基于IntelliJ IDEA Community的&#xff0c;所有Compatibility选择“IntelliJ IDEA Community”&#xff0c;然后下载一个对应最新的就ok了。 最后打开Plugins页面&#xff0c;点击右上角齿轮 -> Install Plugin from Disk…。选择下载的…

AcWing算法提高课-5.6.1同余方程

宣传一下 算法提高课整理 CSDN个人主页&#xff1a;更好的阅读体验 原题链接 题目描述 求关于 x x x 的同余方程 a x ≡ 1 ( m o d b ) ax ≡ 1 \pmod b ax≡1(modb) 的最小正整数解。 输入格式 输入只有一行&#xff0c;包含两个正整数 a , b a,b a,b&#xff0c;用一…

python模拟表格任意输入位置

在表格里输入数值&#xff0c;要任意位置&#xff0c;我找到了好方法&#xff1a; input输入 1. 行 2. 列输入&#xff1a;1 excel每行输入文字input输入位置 3.2 表示输入位置在&#xff1a;3行个列是要实现一个类似于 Excel 表格的输入功能&#xff0c;并且希望能够指定输入…

怎么通过docker/portainer部署vue项目

这篇文章分享一下今天通过docker打包vue项目&#xff0c;并使用打包的镜像在portainer上部署运行&#xff0c;参考了vue-cli和docker的官方文档。 首先&#xff0c;阅读vue-cli关于docker部署的说明 vue-cli关于docker部署的说明https://cli.vuejs.org/guide/deployment.html#…

智慧工地源代码 SaaS模式云平台

伴随着技术的不断发展&#xff0c;信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升&#xff0c;智慧工地概念应运而生&#xff0c;庞大的建设规模催生着智慧工地的探索和研发。 什么是智慧工地&#xff1f; 伴随着技术的不断发展&#xff0c;信息化手段、移…

八、动态规划(Dynamic Programming)

文章目录 一、理论基础二、题目分类&#xff08;一&#xff09;基础题目2.[70.爬楼梯](https://leetcode.cn/problems/climbing-stairs/)&#xff08;1&#xff09;思路&#xff08;2&#xff09;代码&#xff08;3&#xff09;复杂度分析 3.[746. 使用最小花费爬楼梯](https:/…

正点原子嵌入式linux驱动开发——U-boot顶层Makefile详解

在学习uboot源码之前&#xff0c;要先看一下顶层Makefile&#xff0c;分析gcc版本代码的时候一定是先从顶层Makefile开始的&#xff0c;然后再是子Makefile&#xff0c;这样通过层层分析Makefile即可了解整个工程的组织结构。顶层Makefile也就是uboot根目录下的Makefile文件&am…

怪兽智能推出3D数字人虚拟主播,实时动作捕捉赋能直播营销,打造全新营销场景

怪兽智能科技推出了数字人直播新功能——3D数字人虚拟主播&#xff0c;通过实时动作捕捉技术&#xff0c;为直播营销场景注入了全新的活力和创意。这一功能将为企业带来更加生动、鲜活的营销体验&#xff0c;助力品牌在竞争激烈的市场中占据优势。 传统的直播营销方式往往依赖于…

论文笔记:Contrastive Trajectory Similarity Learning withDual-Feature Attention

ICDE 2023 1 intro 1.1 背景 轨迹相似性&#xff0c;可以分为两类 启发式度量 根据手工制定的规则&#xff0c;找到两条轨迹之间基于点的匹配学习式度量 通过计算轨迹嵌入之间的距离来预测相似性值上述两种度量的挑战&#xff1a; 无效性&#xff1a; 具有不同采样率或含有噪…

spring的面向切面编程

如果您觉得本博客的内容对您有所帮助或启发&#xff0c;请关注我的博客&#xff0c;以便第一时间获取最新技术文章和教程。同时&#xff0c;也欢迎您在评论区留言&#xff0c;分享想法和建议。谢谢支持&#xff01; 一、介绍什么是面向切面编程&#xff08;AOP&#xff09; 1.…

lv7 嵌入式开发-网络编程开发 05 字节序及IP地址转换

目录 1 主机字节序和网络字节序 1.1 什么是字节序&#xff1f; 1.2 查看主机字节序 2 字节序转换函数 3 IP地址字节序转换函数 4 练习 1 主机字节序和网络字节序 1.1 什么是字节序&#xff1f; 字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序&a…

Qt creator+cmake编译并安装

1、qt creator打开项目中的CMakeLists.txt 2、修改“构建设置“-“Cmake”-”Current Configuration“&#xff0c;其中&#xff0c;安装路径为CMAKE_INSTALL_PREFIX 3、修改“构建设置“-“构建的步骤”-”目标“&#xff0c;勾选"all"和"install" 4、构…

acwing198反素数(题解)

对于任何正整数 x&#xff0c;其约数的个数记作 g(x)&#xff0c;例如 g(1)1、g(6)4&#xfffd;(1)1、&#xfffd;(6)4。 如果某个正整数 x满足&#xff1a;对于任意的小于 x 的正整数 i&#xff0c;都有 g(x)>g(i)&#xff0c;则称 x为反素数。 例如&#xff0c;整数 1…

孔雀东南飞:经济高质量发展与人才流动(数据复现)

数据简介&#xff1a;人才是经济高质量发展的动力源泉。中国ZF一直高度重视人才培养&#xff0c;积极发挥人才作用。“人才是第一资源”,“深入实施……人才强国战略”,“坚持……人才引领驱动”。与此同时&#xff0c;地方ZF大力引进人才&#xff0c;不断推出各类人才优待政策…

提升您的工作效率:TechSmith Snagit for Mac:强大的屏幕截图软件

在当今数字化的时代&#xff0c;屏幕截图已成为我们日常生活和工作中必不可少的一部分。无论是为了保存重要的信息、分享有趣的内容&#xff0c;还是为了制作教程和演示文稿&#xff0c;一款优秀的屏幕截图软件都能极大地提升我们的效率。而在所有的屏幕截图软件中&#xff0c;…