【计算机网络篇】数据链路层(6)共享式以太网_网络适配器_MAC地址
文章目录
- 🍔网络适配器
- 🍔MAC地址
- 🗒️IEEE 802局域网的MAC地址格式
- 📒IEEE 802局域网的MAC地址发送顺序
- 🥚单播MAC地址
- 🥚广播MAC地址
- 🥚多播MAC地址
- 🔎小结

🍔网络适配器
要将计算机连接到以太网,需要使用相应的网络适配器,简称为网卡
要将计算机接入以太网,都需要使用网卡
网卡
在计算机内部,网卡与CPU之间
的通信,一般是通过计算机主板上的I/O总线以并行传输
方式进行
网卡与外部以太网
(局域网)之间的通信,一般是通过传输媒体(同轴电缆,双绞线电缆,光纤)以串行方式
进行
网卡除要实现物理层和数据链路层功能
,其另外一个重要功能就是要进行并行传输和串行传输
的转换。由于网络的传输速率和计算机内部总线上的传输速率并不相同,因此在网卡的核心芯片中都会包含用于缓存数据的存储器。
在确保网卡硬件正确的情况下,为了使网卡正常工作,还必须要在计算机的操作系统中为网卡安装相应的设备驱动程序。驱动程序
负责驱动网卡发送和接收帧。
🍔MAC地址
对于点对点信道
,由于只要两个站点分别连接在信道的两端,因此其数据链路层不需要使用地址
然而对于连接有多个站点的广播信道
,情况就不一样了,下面来举例说明
总线上的某台主机,要给另一台主机发送帧,由于广播信道天然的广播特性,表示帧的信号会通过总线传播到总线上的其他所有主机
那么这些主机中的网卡如何判断收到的帧是否是发送给自己的呢
很显然,使用广播信道的数据链路层必须使用地址来区分各主机
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识
,即一个数据链路层地址
。
假设总线上各主机的数据链路层地址分别用一个不同的大写字母来表示
在每个主机发送的帧的首部
中,都携带
有发送主机(源主机)和接收主机(目的主机)的数据链路层地址
。由于这类地址是用于媒体接入控制
(Medium Access Control,MAC)的,因此被称为MAC地址。
假设主机B给主机C发送帧,则在帧首部中的目的地址字段应填入主机C的MAC地址C,而在源地址字段应填入主机B的MAC地址B
这样,总线中的各主机的MAC地址收到该帧后,就可以根据帧首部中的目的地址字段的值是否与自己的MAC地址匹配,决定丢弃或者接收该帧
🗒️IEEE 802局域网的MAC地址格式
IEEE 802标准为局域网规定了一种由48比特构成的MAC地址,每8个比特为1个字节,从左至右依次为第一字节到第六字节
前三个字节是组织唯一标识符OUI
后三个字节是网络接口标识符
将每4个比特写成一个16进制的字符,共12个字符,将每2个字符分为一组,共6组,各组之间使用短线(-)进行连接,就可以得到MAC地址的标准表示方法
(除标准表示方法外,还可以将短线改为冒号)
另外,还可以将每4个字符分为一组,共3组,各组之间用点连接
如果我们知道了设备的MAC地址,但是不知道该设备的厂商信息,可以通过设备的MAC地址来查询
IEEE规定,mac地址的第一个字节的b0位为I/G位,I是单独的意思,G是组的意思
IEEE还考虑到不愿向IEEE的 注册管理机构购买组织唯一标识符OUI的情况,对此,IEEE规定,mac地址的第一个字节的b1位是G/L位,G是全球的意思,L的本地的意思
📒IEEE 802局域网的MAC地址发送顺序
🥚单播MAC地址
如下图所示,是一个包含3台主机的总线型以太网,各主机网卡上固化的全球单播MAC地址如图所示
假设主机B要给主机C发送一个单播帧,主机B首先要构建该单播帧
在帧首部的目的地址字段填入主机C的MAC地址,源地址字段填入自己的MAC地址
主机B将该单播帧发送出去后,主机A和C都会收到该单播帧
主机A的网卡发现该单播帧的目的MAC地址与自己的MAC地址不匹配,于是丢弃该帧
主机C的网卡发现该单播帧的目的MAC地址与自己的MAC地址匹配,于是接受该帧,并将该帧的数据载荷交给上层处理
(注意:接收和接受的区别)
🥚广播MAC地址
假设主机B要发送一个广播帧,主机B首先要构建该广播帧,
在帧首部的目的地址字段填入广播的MAC地址,也就是48比特为全1,16进制形式为全F的MAC地址
源地址字段填入自己的MAC地址
主机B将该广播帧发送出去,主机A和C都会收到该广播帧
主机A和C发现该帧的目的MAC地址是广播MAC地址,于是接受该广播帧,并将该帧的数据载荷交付给上层进行处理
🥚多播MAC地址
如下图,4个交换机连接形成了一个环路,目的是为了提高网络的可靠性
然而,环路会造成广播帧在环路中永久兜圈的严重问题,为了解决该问题,交换机之间会交互一种特殊的帧,即BPDU,也就是网桥协议数据单元。
各交换机根据BPDU中的一些参数安装生成树协议所使用的生成树算法,最终某些交换机会阻塞自己的某些接口,这样就破除了环路
而BPDU首部中的目的地址就是生成式协议专用的多播MAC地址01-80-C2-00-00-00
🔎小结
相关文章:

【计算机网络篇】数据链路层(6)共享式以太网_网络适配器_MAC地址
文章目录 🍔网络适配器🍔MAC地址🗒️IEEE 802局域网的MAC地址格式📒IEEE 802局域网的MAC地址发送顺序🥚单播MAC地址🥚广播MAC地址🥚多播MAC地址🔎小结 🍔网络适配器 要将…...

导入别人的net文件报红问题sdk
1. 使用cmd命令 dotnet --info 查看自己使用的SDK版本 2.直接找到项目中的 global.json 文件,右键打开,直接修改版本为本机的SDK版本,就可以用了...

LangChain 介绍
In recent times, you would probably have heard of many AI applications, one of them being chatpdf.com. 在最近,你可能听说过很多的AI应用,chatpdf.com就是其中的一个。 On this website, you can upload your own PDF. After uploading, you ca…...

【区分vue2和vue3下的element UI Avatar 头像组件,分别详细介绍属性,事件,方法如何使用,并举例】
在 Vue 2 的 Element UI 和 Vue 3 的 Element Plus 中,Avatar 头像组件可能并没有直接作为官方组件库的一部分。然而,为了回答你的问题,我将假设 Element UI 和 Element Plus 在未来的版本中可能添加了 Avatar 组件,或者我们将使用…...

数据分析必备:一步步教你如何用matplotlib做数据可视化(10)
1、Matplotlib 二维箭头图 箭头图将速度矢量显示为箭头,其中分量(u,v)位于点(x,y)。 quiver(x,y,u,v)上述命令将矢量绘制为在x和y中每个对应元素对中指定的坐标处的箭头。 参数 下表列出了quiver()函数的参数 - x - 1D或2D阵列,…...

Stable Diffusion部署教程,开启你的AI绘图之路
本文环境 系统:Ubuntu 20.04 64位 内存:32G 环境安装 2.1 安装GPU驱动 在英伟达官网根据显卡型号、操作系统、CUDA等查询驱动版本。官网查询链接https://www.nvidia.com/Download/index.aspx?langen-us 注意这里的CUDA版本,如未安装CUD…...

三生随记——诡异的牙线
在小镇的角落,坐落着一间古老的牙医诊所。这所诊所早已荒废多年,窗户上爬满了藤蔓,门板上的油漆斑驳脱落,仿佛诉说着无尽的沉寂与孤独。然而,在午夜时分,偶尔会有低沉的呻吟声从紧闭的诊所里传出࿰…...

批量重命名神器揭秘:一键实现文件夹随机命名,自定义长度轻松搞定!
在数字化时代,我们经常需要管理大量的文件夹,尤其是对于那些需要频繁更改或整理的文件来说,给它们进行批量重命名可以大大提高工作效率。然而,传统的重命名方法既繁琐又耗时,无法满足高效工作的需求。今天,…...

学习笔记——路由网络基础——路由转发
六、路由转发 1、最长匹配原则 最长匹配原则 是支持IP路由的设备默认的路由查找方式(事实上几乎所有支持IP路由的设备都是这种查找方式)。当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的表项进行逐位(Bit-By-Bit)的逐位查找,…...

Python网络安全项目开发实战,如何防命令注入
注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: Python网络安全项目开发实战_防命令注入_编程案例解析实例详解课程教程.pdf 在Python网络安全项目开发中,防止命令注入(Command Injection)是一项…...

程序员如何高效读代码?
程序员高效读代码的技巧包括以下几点: 明确阅读目的:在开始阅读代码之前,先明确你的阅读目的。是为了理解整个系统的架构?还是为了修复一个具体的bug?或者是为了了解某个功能是如何实现的?明确目的可以帮助…...

全面分析一下前端框架Angular的来龙去脉,分析angular的技术要点和难点,以及详细的语法和使用规则,底层原理-小白进阶之路
Angular 前端框架全面分析 Angular 是一个由 Google 维护的开源前端框架。它最早在 2010 年发布,最初版本称为 AngularJS。2016 年,团队发布了一个完全重写的版本,称为 Angular 2,之后的版本(如 Angular 4、Angular 5…...

VACUUM 剖析
VACUUM 剖析 为什么需要 Vacuum MVCC MVCC:Multi-Version Concurrency Control,即多版本并发控制。 PostgreSQL 使用多版本并发控制(MVCC)来支持高并发的事务处理,同时保持数据的一致性和隔离性。MVCC 是一种用于管…...

基于LangChain框架搭建知识库
基于LangChain框架搭建知识库 说明流程1.数据加载2.数据清洗3.数据切分4.获取向量5.向量库保存到本地6.向量搜索7.汇总调用 说明 本文使用openai提供的embedding模型作为框架基础模型,知识库的搭建目的就是为了让大模型减少幻觉出现,实现起来也很简单&a…...

LeetCode 1789, 6, 138
目录 1789. 员工的直属部门题目链接表要求知识点思路代码 6. Z 字形变换题目链接标签思路代码 138. 随机链表的复制题目链接标签思路代码 1789. 员工的直属部门 题目链接 1789. 员工的直属部门 表 表Employee的字段为employee_id,department_id和primary_flag。…...

Redis部署模式全解析:单点、主从、哨兵与集群
Redis是一个高性能的键值存储系统,以其丰富的数据结构和优异的读写性能而闻名。在实际应用中,根据业务需求的不同,Redis可以部署在多种模式下。本文将详细介绍Redis的四种主要部署模式:单点模式、主从复制模式、哨兵模式以及集群模…...

python-docx顺序读取word内容
来源How to use Python iteration to read paragraphs, tables and pictures in word? Issue #650 python-openxml/python-docx (github.com) from docx import Document from docx.oxml.ns import qndef iter_block_items(parent):"""生成 paren…...

kafka 集群原理设计和实现概述(一)
kafka 集群原理设计和实现概述(一) Kafka 集群的设计原理是为了实现高可用性、高吞吐量、容错性和可扩展性。以下是 Kafka 集群的设计原 理及其实现方法: 1. 分布式架构设计 Kafka 采用分布式架构,集群中的多个 Broker 共同工作,负责接收、存储和传递消息。通过将数据分布…...

three.js 第十一节 - uv坐标
// ts-nocheck // 引入three.js import * as THREE from three // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入lil.gui import { GUI } from three/examples/jsm/libs/lil-gui.module.min.js // 导入tween import * as T…...

git从master分支创建分支
1. 切换到主分支或你想从哪里创建新分支 git checkout master 2. 创建并切换到新的本地分支 develop git checkout -b develop 3. 将新分支推送到远程存储库 git push origin develop 4. 设置本地 develop 分支跟踪远程 develop 分支 git branch --set-upstream-toorigi…...

Chromium 调试指南2024 Mac篇 - 准备工作 (一)
1.引言 Chromium是一个由Google主导开发的开源浏览器项目,它为Google Chrome浏览器提供了基础框架。Chromium不仅是研究和开发现代浏览器技术的重要平台,还为众多其他基于Chromium的浏览器(如Microsoft Edge、Brave等)提供了基础…...

vue登陆密码加密,java后端解密
前端 安装crypto-js npm install crypto-js加密 //引入crypto-js import CryptoJS from crypto-js;/** ---密码加密 start--- */ const SECRET_KEY CryptoJS.enc.Utf8.parse("a15q8f6s5s1a2v3s"); const SECRET_IV CryptoJS.enc.Utf8.parse("a3c6g5h4v9sss…...

npm 安装踩坑
1 网络正常,但是以前的老项目安装依赖一直卡住无法安装?哪怕切换成淘宝镜像 解决办法:切换成yarn (1) npm i yarn -g(2) yarn init(3) yarn install在安装的过程中发现: [2/4] Fetching packages... error marked11.1.0:…...

内容安全复习 6 - 白帽子安全漏洞挖掘披露的法律风险
文章目录 安全漏洞的法律概念界定安全漏洞特征白帽子安全漏洞挖掘面临的法律风险“白帽子”安全漏洞挖掘的风险根源“白帽子”的主体边界授权行为边界关键结论 安全漏洞的法律概念界定 可以被利用来破坏所在系统的网络或信息安全的缺陷或错误;被利用的网络缺陷、错…...

dp经典问题:爬楼梯
dp经典问题:爬楼梯 爬楼梯 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 Step1: 识别问题 这…...

示例:推荐一个基于第三方QRCoder.Xaml封装的二维码显示控件
一、目的:基于第三方QRCoder.Xaml封装的二维码控件,为了方便WPF调用 二、效果如下 功能包括:背景色,前景色,中心图片设置和修改大小,二维码设置等 三、环境 VS2022 四、使用方式 1、安装nuget包…...

阿里云服务器618没想到这么便宜,买早了!
2年前,我买了个服务器,租用服务器(ECS5)和网络宽带(1M),可以说是非常非常低的配置了。 当时5年的折扣力度最大,但是打完折后,价格依然要近3000多元。 最近看到阿里云618活…...

提升Python技能的七个函数式编程技巧
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 递归📝 结构化模式匹配📝 不变性📝 纯函数📝 高阶函数📝 函数组合📝 惰性求值⚓️ 相关链接 ⚓️📖 介绍 📖 在现代编程中,虽然Python并不是一门纯粹的函数式编程语言,但函数式编程(Funct…...

微型操作系统内核源码详解系列五(五):cm3下Pendsv切换任务上篇
系列一:微型操作系统内核源码详解系列一:rtos内核源码概论篇(以freertos为例)-CSDN博客 系列二:微型操作系统内核源码详解系列二:数据结构和对象篇(以freertos为例)-CSDN博客 系列…...

Django测试平台搭建学习笔记1
一安装 pip离线安装requests2.32.0所需要的依赖: : charset-normalizer<4,>2 (3.0.0b1) : idna<4,>2.5 (3.7) : urllib3<3,>1.21.1 (2.2.0) : certifi>2017.4.17 (2024.6.2) pip离线安装pytest8.2.0所需要的依赖: : iniconfig (2…...