IPv6 地址创建 EUI-64 格式接口 ID 的过程

IPv6 接口标识符

IPv6 地址中的接口标识符(ID)用于识别链路上的唯一接口,有时被称为 IPv6 地址的 “主机部分”。接口 ID 在链路上必须是唯一的,始终为 64 位长,并且可以根据数据链路层地址动态创建。

MAC 地址 中的 L/G 位(有时也称为 U/L 位)和 I/G 位都位于每个 MAC 地址的最高有效字节中,其中 I/G 位是该字节中最低有效位,L/G 位是该字节中第二低有效位。

IG 位区分 MAC 地址是单播地址还是组播地址。I/G 位为 0 表示是单播地址,I/G 位为 1 表示是组播地址。

U/L 位指示接口 ID 是本地唯一(仅在该链路上)还是全局(全球)唯一;从全球唯一 MAC 地址派生的 ID 被认为是全局唯一的。
接口 ID 的第一个字节中的第八位是用于管理多播组的 I/G 位;它不会改变。

在绝大多数情况下(广播消息除外),会看到两个位都设置为 0(单播和供应商分配)。
在这里插入图片描述

EUI-64 格式接口 ID 生成过程

接口的数据链路层类型决定了 IPv6 接口 ID 的动态创建方式以及地址解析的工作方式。

以太网中的 EUI-64 格式接口 ID 是通过在 MAC 地址的组织唯一标识符 OUI 字段(前三个字节) 和在供应商代码 EUI 字段(后三个字节)之间插入十六进制数 FFFE ,并在 OUI 字段最高有效字节中翻转 U/L 位与网络前缀结合派生的。
翻转 U/L 位

原 U/L 位如果是 0(表示全局唯一),则转换为 1;如果是 1(表示本地管理),则转换为 0。

插入 FFFE

在翻转后的 MAC 地址 OUI 字段和 EUI 字段之间插入十六进制数 FFFE,使原来的 48 位 MAC 地址扩展到 64 位。

生成接口 ID

将从 48 位 MAC 地址扩展得到的 64 位字段与网络前缀结合形成完整的 EUI-64 格式的接口 ID 地址。

3 张图 3 个角度 一目了然的图解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

EUI-64 在 IPv6 无状态自动配置(SLAAC)中的作用

在无状态自动配置过程中,每个 IPv6 设备利用 EUI-64 方法自动生成其接口 ID,同时通过监听RA(Router Advertisement,路由器通告)消息来获取网络前缀。RA 消息包含了网络的前缀信息以及其他配置参数。设备将获取到的前缀与自己生成的接口 ID 结合,就可以得到一个全局唯一的 IPv6 地址,无需任何人工干预或 DHCP 服务器的支持。

  • 下文《MAC 地址格式详解》引自 51cto 刘长卿 2016-04-02

MAC 地址格式详解

MAC(Medium Access Control,介质访问控制),它通常被固化在每个 NIC(Network Interface Card,以太网网卡)。MAC 地址长 48 位(6 字节),采用十六进制格式。

24 位 OUI(组织唯一标识符)由 IEEE(电气和电子工程师协会)分配给厂商,厂商再用其他的 24 位 EUI(扩展唯一标识符)为其生产的每个网卡分配一个全球唯一的全局管理地址 。
在这里插入图片描述

I / G( Individual / Group )

如果 I/G = 0,则是某台设备的 MAC 地址,即单播地址;如果 I/G = 1,则是多播地址(组播 + 广播 = 多播)。

G / L( Global / Local,也称为 U/L 位,其中 U 表示 Universal )
如果 G/L = 0,则是全局管理地址,由 IEEE 分配;如果 G/L = 1,则是本地管理地址,是网络管理员为了加强自己对网络管理而指定的地址。

在数据链路层,数据帧通常依赖于 MAC 地址来进行数据交换。数据传输是按字节逐位传输的,一个字节传输完了才到下一个字节。对于 I/G 和 G/L 位的位置,目前有两种说法,或者说两种格式。
在这里插入图片描述

第一种,每个字节的高位在前,低位在后,I/G 位和 G/L 分别在字节中的最低位和次低位,最高位先发送,到了对端还是最高位

第二种,每个字节的低位在前,高位在后,I/G 位和 G/L 分别在字节中的最低位和次低位,最低位先发送,到了对端还是最低位

两种看似不一样,但是结果还是一样的。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作系统入门系列-MIT6.828(操作系统工程)学习笔记(一)---- 操作系统介绍与接口示例

MIT6.S081(操作系统)学习笔记 操作系统入门系列-MIT6.S081(操作系统)学习笔记(一)---- 操作系统介绍与接口示例 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(二&a…

Jenkins在windows上进行安装

今天为了实现jmeter接口测试脚本的持续性集成安装了jenkins,主要记录jenkins的安装和端口的修改。 前提条件:安装了jdk,我本机安装的jdk1.8。 1.下载jenkins安装包 安装jenkins我们需要先下载安装包,可以通过下面的链接进行下载&a…

Qt快速入门到熟练(电子相册项目(一))

经过一段时间的学习,相信大家对QT的基本用法都有所了解,从这篇文章开始,我准备记录一下电子相册的项目的一个学习过程。 实现项目创建功能 对于这个电子相册的项目,我并没有在一开始就把所有可能用到的功能模块去事无巨细的考虑周…

C# 结合 JS 暴改腾讯 IM SDK Demo

目录 关于腾讯 IM SDK Demo 范例运行环境 设计思路 服务端生成地址 IM 服务端接收 IM 客户端程序 小结 关于腾讯 IM SDK Demo 腾讯云即时通信 IM SDK 提供了单聊、群聊、关系链、消息漫游、群组管理、资料管理、直播弹幕等功能,并提供完备的 App 接入及管…

小猪APP分发:一站式托管服务,轻松玩转应用市场

在当今移动应用爆炸式增长的时代,开发者们面临的挑战不再仅限于创意的火花和代码的实现,更在于如何让精心打造的应用快速触达广大用户。这正是小猪APP分发www.appzhu.net应运而生的背景——作为一个全面、高效的APP托管服务分发平台,它为开发…

用于时间序列概率预测的蒙特卡洛模拟

大家好,蒙特卡洛模拟是一种广泛应用于各个领域的计算技术,它通过从概率分布中随机抽取大量样本,并对结果进行统计分析,从而模拟复杂系统的行为。这种技术具有很强的适用性,在金融建模、工程设计、物理模拟、运筹优化以…

F.费用报销【蓝桥杯】/01背包

费用报销 01背包 思路&#xff1a;f[i][j]表示前i个票据在容量为j的背包中能占的最大值。 #include<iostream> #include<algorithm> using namespace std; int day[13]{0,31,28,31,30,31,30,31,31,30,31,30,31}; int dp[1005][5005]; int s[13]; int last[1005];…

Obsidian Git 多端同步

2023年6月&#xff0c;某云笔记限制了免费用户最多同时登录 2 台设备&#xff0c;想要增加设备数量需要付费开通会员。之后我一直想找一款合适的笔记本软件&#xff0c;年底尝试了Obsidian&#xff0c;断断续续摸索了好几天终于成功了。将那时的笔记拿来分享一下。 相关地址&am…

Golang单元测试

文章目录 传统测试方法基本介绍主要缺点 单元测试基本介绍测试函数基准测试示例函数 传统测试方法 基本介绍 基本介绍 代码测试是软件开发中的一项重要实践&#xff0c;用于验证代码的正确性、可靠性和预期行为。通过代码测试&#xff0c;开发者可以发现和修复潜在的错误、确保…

Elasticsearch集群搭建学习

Elasticsearch集群聚合、集群搭建 RestClient查询所有高亮算分控制 数据聚合DSL实现Bucket聚合DSL实现Metrics聚合RestAPI实现聚合 拼音分词器如何使用拼音分词器&#xff1f;如何自定义分词器&#xff1f;拼音分词器注意事项&#xff1f; 自动补全数据同步集群搭建ES集群结构创…

HarmonyOS鸿蒙应用开发——ArkTS的“内置组件 + 样式 + 循环和条件渲染”

一、内置组件是咩&#xff1f; 学过前端的都知道&#xff0c;一个组件就是由多个组件组成的&#xff0c;一个组件也可以是多个小组件组成的&#xff0c;组件就是一些什么导航栏、底部、按钮......啥的&#xff0c;但是组件分为【自定义组件】跟【内置组件】 【自定义组件】就…

java继承使用细节二

构造器 主类是无参构造器时会默认调用 public graduate() {// TODO Auto-generated constructor stub也就是说我这里要用构造器会直接调用父类。它是默认看不到的 &#xff0c;System.out.println("graduate");} 但当主类是有参构造器如 public father_(int s,doubl…

K8S集群中Yaml文件详解

目录 一、Yaml概述 二、Yaml基本语法 三、Yaml数据结构 四、K8S资源清单描述方法 五、api资源版本标签 六、Yaml文件示例详解 1.deployment.yaml文件详解 2.Pod yaml文件详解 3.Service yaml文件详解 七、Yaml文件相关操作 1.试运行 2.生成yaml格式 3.生成json格式…

超大Sql文件切分工具SQLDumpSplitter —— 筑梦之路

官网&#xff1a;PLB PLB - SQLSplitter 用于将大型MySQL转储拆分为可独立执行的小型SQL文件。 显示100%时并不是已经处理完了&#xff0c;而是才开始 优点 软件程序小巧&#xff0c;不需要安装&#xff0c;直接点击运行就可以最厉害的是SQLDumpSplitter可以自动将结构语句&…

JVM学习-执行引擎

执行引擎 执行引擎是Java虚拟机核心组成部分之一虚拟机是一个相对于物理机的概念&#xff0c;这两种机器都有代码执行能力&#xff0c;其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的&#xff0c;而虚拟机的执行引擎是由软件自行实现的&#xf…

近临算法(个人总结版)

背景 近邻算法&#xff08;Nearest Neighbor Algorithm&#xff09;是一种基本但非常有效的分类和回归方法。最早由Fix和Hodges在1951年提出&#xff0c;经过几十年的发展和改进&#xff0c;已成为数据挖掘、模式识别和机器学习领域的重要工具。近邻算法基于相似性原则&#x…

vue源码2

vue之mustache库的机理其实是将模板字符串转化为tokens 然后再将 tokens 转化为 dom字符串&#xff0c;如下图 对于一般的将模板字符串转化为dom字符串&#xff0c;这样不能实现复杂的功能 let data {name:小王,age:18 } let templateStr <h1>我叫{{name}},我今年{{ag…

git分支常用命令

最近在用git提交代码的时候&#xff0c;发现有些命令不是很会&#xff0c;先记录几个常用分支命令&#xff0c;后续再补充&#xff0c;在执行git push命令提交代码的时候遇到报错&#xff0c;一并记录下。 1.git常用命令 新建分支&#xff1a; git branch <分支名称> 比…

2025第十届美陈展

展位又遭疯抢&#xff01;2025第十届美陈展释放“无界之美” 美是全球通用的语言&#xff0c;人类对美的追求始终如一&#xff0c;大众审美在经历了时代的变迁后开始趋同&#xff0c;东方文明深处的美学经济开始崛起。 在如今商业迈入存量阶段&#xff0c;以品牌为突破口打造…

Ai自动贴图直播项目的趋势,智享自动直播GMV增加工具

在当今社会&#xff0c;直播行业正在悄然地改变着人们的生活方式。无论是在闲暇时光中放松身心&#xff0c;还是在临睡前享受休闲娱乐&#xff0c;观众们越来越习惯于通过刷短视频或者观看直播来消遣自己。根据统计数据显示&#xff0c;到2023年全球将有超过10.74亿网民&#x…