组播IP 映射 组播MAC

news2024/12/23 8:54:44

组播IP地址与组播MAC地址之间的换算方法与例子

1、在IP分类中,D类IP地址用于组播MAC。
2、在TCP/IP中,最常用的v4组播MAC地址的前24位固定为01005e,第25位固定为0,后23位由IP地址的后23位复制得出。
3、在D类组播IP中有5位未用,也就是说组播IP和组播MAC的映射并不唯一,
4、每一个组播MAC最多可映射对应32个组播IP。
5、备注:映射涉及到2进制和16进制之间的转换:4位2进制对应一位16进制:000000001(二进制)——>01(16进制)

组播ip(十进制):224.0.0.0–239.255.255.255
组播ip(二进制):11100000.00000000.00000000.00000000----111011111.111111111.111111111.11111111

组播mac(二进制):00000001.00000000.01011110+0+组播ip后23位
组播mac(十六进制):01-00-5e+组播ip映射16进制

组播IP和组播MAC的映射示意图如下:
在这里插入图片描述

在D类组播IP中有5位未用,也就是说组播IP和组播MAC的映射并不唯一,
每一个组播MAC最多可映射对应32个组播IP
其中:
I/G位决定该地址是个人地址(0)还是组地址(1),当为组地址情况下,如果所有的地址位都为1,那么I/G位就表示这是一个广播地址。

U/L位决定该地址是本地分配的(1)还是统一分配的(0)

22位法定地址通常是由IEEE分配给网络设备生产厂商的,全世界每一家有生产网络接口设备的厂家都必须获得IEEE指定的一个22位地址,而且不许该地址和另外的厂家相同。

24位用户地址则是由用户自己可以配置和修改的,但是要确保你修改的地址不能和别人有相同的地方。

可见,以上48位MAC地址中,真正可以由用户修改的是后24位。用户通常不必去修改该地址。

在以太网中,如果需要必须修改mac地址时,请注意:
1、两个工作站不要共用相同的地址
2、保留所有位为“1”的地址为广播使用。

在Apple Talk 中,MAC的分配由DDA协议管理(动态地址协议

组播IP地址与组播MAC地址之间的换算方法与例子

1个oui 有2 的24方个MAC地址

组播地址 :2的28次方,224.0.0.0-239.255.255.255

可用组播范围:0100.5E00.0000----0100.5E07.FFFF

MAC由48bit组成:前24位是OUI ,后24位由厂商定义

共需要:
16个OUI才可以与一个IP来一一对应。
32个IP才可以与一个oui来一一对应

典故:Dr.Steve Deering此人研究出来的,当时因为分他的OUI是(0100.5E 0)所以这7个不变。

方法一

最笨的方法,也是最安全的方法,就是把组播IP地址,换成二进制数。再把二进制换成16进制,第1个8位(从左往右看)不用,因为有组播MAC的限制已经规定是0100.5E开头,

第2个8位中的第1位规定为0(从左往右看).所以当不为0时,要改成0来换算。

Example:

源IP 224.1.1.1

换算成二进制 11100000.00000001.00000001.00000001

再换成16进制 01 .01 .01

加上组播MAC头 —— 0100.5E

最后形成组播MAC—— 0100.5E01.01.01

可用的其它31个组播IP地址:

224.129.1.1

225.1.1.1- 225.129.1.1

226.1.1.1 -226.129.1.1

227.1.1.1 -227.129.1.1

228.1.1.1 -228.129.1.1

229.1.1.1- 229.129.1.1

230.1.1.1- 230.129.1.1

231.1.1.1 -231.129.1.1

232.1.1.1 -232.129.1.1

233.1.1.1 -233.129.1.1

234.1.1.1 -234.129.1.1

235.1.1.1 -235.129.1.1

236.1.1.1 -236.129.1.1

237.1.1.1- 237.129.1.1

238.1.1.1 -238.129.1.1

239.1.1.1 -239.129.1.1

加上:224.1.1.1 刚好32个。

源IP 224.132.1.1

换算成二进制 11100000.10000100.00000001.00000001

第24位为0 11100000.00000100.00000001.00000001

再换成16进制 04 .01 .01

加上组播MAC头 0100.5E

最后形成: 0100.5e04.01.01

可用的其它31个组播IP地址:

224.4.1.1

225.4.1.1 -225.132.1.1

226.4.1.1 -226.132.1.1

227.4.1.1- 227.132.1.1

228.4.1.1 -228.132.1.1

229.4.1.1- 229.132.1.1

230.4.1.1 -230.132.1.1

231.4.1.1 -231.132.1.1

232.4.1.1 -232.132.1.1

233.4.1.1 -233.132.1.1

234.4.1.1 -234.132.1.1

235.4.1.1 -235.132.1.1

236.4.1.1 -236.132.1.1

237.4.1.1 -237.132.1.1

238.4.1.1 -238.132.1.1

239.4.1.1- 239.132.1.1

加上224.132.1.1,刚好32个。

另一种方法是:如果给的IP地址第1、2、3位都大于128,可以用128除以16(因为可用IP是28位,可用MAC是23位,剩5位可变,2的4次方是16),得出来的商换成16进制是MAC的左位,得出来的余数换成16进制是MAC的右位。第4组8位不看,因为是规定是0100.5E开头。

第3组第8位必需为0.当为1时,要去掉换成0.

Example:

源IP : 224.215.145.230

转成二进制:11100000.11010111.10010001.11101000

除16: 215/16商:13,余:7 . 145/16商:9,余:1 . 230/16商:14,余:6

换成(16进制): D7 . 91. E6

第24位为0 57.91.E6

加上组播MAC头 0100.5E

形成: 0100.5E57.91.E6

可用的其它31们组播IP地址:

224.87.145.230

225.87.145.230 225.215.145.230

225.87.145.230 225.215.145.230

226.87.145.230 226.215.145.230

227.87.145.230 227.215.145.230

228.87.145.230 228.215.145.230

229.87.145.230 229.215.145.230

230.87.145.230 230.215.145.230

231.87.145.230 231.215.145.230

232.87.145.230 232.215.145.230

233.87.145.230 233.215.145.230

234.87.145.230 234.215.145.230

235.87.145.230 235.215.145.230

236.87.145.230 236.215.145.230

237.87.145.230 237.215.145.230

238.87.145.230 238.215.145.230

239.87.145.230 239.215.145.230

加上224.215.145.230.刚好32个。

计算剩于其它的可用组播IP方法:

刚第三位大于128时,要减去128

当第三位小于128时,要加上128

这样从224-239每一组里有两个地址,刚好32个。

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

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

相关文章

Spark-行动算子

1、reduce(聚合) 2、collect(采集) 3、count (统计) 4、first 5、take 6、takeOrdered 7、aggregate 8、fold 9、countByKey 10、countByValue 11、save 算子 12、foreach 算子总结 所谓行…

java编程----继承

文章目录内存管理继承super向上造型内存管理 编写的xxx.java源码,编译为xxx.class字节码,由JVM(java解释器)来执行,JVM来对接不同的操作系统,实现一次编写,到处执行;JVM向操作系统申…

王朝游戏源码服务端与客户端搭建(基于nodejs与cocoscreator)

成功效果:搭建步骤:安装centos7 64 2009版本操作系统下载并解压mongodb,redis,nodejs3.复制游戏服务与网站服务程序到服务器4.编译nodejsnodejs编译并安装成功后验证5.配置并启动mongodb数据库mongodb.conf配置文件内容:dbpath/home/dev/mongodb/db logpath/home/dev/mongodb/l…

八、发布确认高级

在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复 如何才能进行 RabbitMQ 的消息可靠投递呢?特别是在这样比较极端的情况,Rabb…

20230311给Ubuntu18.04下的GTX1080M安装驱动

20230311给Ubuntu18.04下的GTX1080M安装驱动 2023/3/11 12:50 2. 安装GTX1080驱动 安装 Nvidia 驱动 367.27 sudo add-apt-repository ppa:graphics-drivers/ppa 第一次运行出现如下的警告: Fresh drivers from upstream, currently shipping Nvidia. ## Curren…

C++语法规则4(C++面向对象)

接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现。C 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。 如果类中至少有一个函数被声明为纯虚…

在Win 11下使用Visual Studio 2019和cygwin编译JBR(Java SDK 17)源码

很多文章介绍了JDK 8和JDK11源码在Linux编译,很少有人介绍了JDK 17在windows的编译过程,所以写了这篇文章,为什么选用JBR 17版本,因为JBR17 版本集成了HotSwapAgent功能,具体HotSwapAgent有什么用,请看我前…

[N1CTF 2018]eating_cms1

一个cms,先打开环境试了一下弱口令,无效,再试一下万能密码,告诉我有waf,先不想怎么绕过,直接开扫(信息收集)访问register.php注册一个账号进行登录上面的链接尝试用php读文件http://…

学习笔记:基于SpringBoot的牛客网社区项目实现(三)之MyBatis入门

一、数据库建表 二、entity目录下创建user实体类 三、dao目录下创建userMapper映射接口 Mapper public interface UserMapper {User selectById(int id);User selectByName(String username);User selectByEmail(String email);int insertUser(User user);int updateStatus(i…

tun驱动之read

从tun驱动读取的数据,最终来源于用户空间通过write写入的数据,如下所示: inti fd socket(); int f open("/dev/net/tun", O_RDWR) write(fd, buf, len); --> 协议栈 --> t…

3-MATLAB APP Design-切换按钮组和单选按钮组

一、APP 界面设计展示 1.新建一个空白的APP,在此次的学习中,我们会用到编辑字段(文本框)、切换按钮、单选按钮,首先在界面中拖入一个编辑字段(文本框),在文本框中输入内容:切换按钮和单选按钮的使用,调整背景颜色,字体的颜色为黑色,字体的大小调为26. 2.在左侧组件…

Linux各种发行版介绍

Linux已经被广泛应用在人们的日常生活工作用品中,比如手机,智能家居,汽车电子,可穿戴设备等等,只不过很多人并不知道自己使用的电子设备里面运行的是linux系统。看一组数据:1.90%的公有云应用在使用Linux系…

利用Dockerfile开发定制镜像实战.

Dockerfile的原理 dockerfile是一种文本格式的文件,用于描述如何构建Docker镜像。在Dockerfile中,我们可以定义基础镜像、安装依赖、添加文件等操作,最终生成一个可以直接运行的容器镜像。 Dockerfile的原理可以分为以下几个步骤&#xff1a…

如何快速为子公司创建SAP财务账套的操作步骤

相对来说在SAP上配置一家子公司比从0开始创建创建一家公司可以节省很多步骤,因为子公司的很多配置(如科目表,科目,折旧表,折旧代码等)可以沿用母公司的。本文就简单介绍一下创建子公司财务账套的配置步骤.只…

中国省市选择插件

快速使用 1.引用 ChineseCities.min.js 2.拷贝以下布局结构 <select id"province"><option value"请选择城市">请选择省份</option> </select> <select id"city"><option value"请选择城市">请…

无监督对比学习(CL)最新必读经典论文整理分享

对比自监督学习技术是一种很有前途的方法&#xff0c;它通过学习对使两种事物相似或不同的东西进行编码来构建表示。Contrastive learning有很多文章介绍&#xff0c;区别于生成式的自监督方法&#xff0c;如AutoEncoder通过重建输入信号获取中间表示&#xff0c;Contrastive M…

设备树下的LED灯

一、什么是设备树设备树&#xff0c;将这个词分开就是设备和树&#xff0c;描述设备树的文件叫DTS(Device Tree Source)&#xff0c;这个DTS文件采用树形结构描述板级设备&#xff0c;也就是开发板上的设备信息&#xff0c;比如CPU数量、内存基地址、IIC接口上接了哪些设备、SP…

进度计划:什么是关键路径管理 1/2

目录 引言 什么是关键路径法&#xff1f; 为什么 CPM 调度对项目管理很重要&#xff1f; CPM 计划元素 关键路径方如何工作&#xff1f; 引言 关键路径&#xff0c;也称为最长路径&#xff0c;是直接影响项目完成日期的一系列任务。关键路径上的每项任务都称为关键活动。…

蓝桥杯C/C++VIP试题每日一练之芯片测试

💛作者主页:静Yu 🧡简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者 💛社区地址:前端知识交流社区 🧡博主的个人博客:静Yu的个人博客 🧡博主的个人笔记本:前端面试题 个人笔记本只记录前端领域的面试题目,项目总结,面试技…

【C++学习】【STL】deque容器

dequeDouble Ended Queues(双向队列)deque和vector很相似&#xff0c;但是它允许在容器头部快速插入和删除&#xff08;就像在尾部一样&#xff09;。所耗费的时间复杂度也为常数阶O(1)。并且更重要的一点是&#xff0c;deque 容器中存储元素并不能保证所有元素都存储到连续的内…