当前位置: 首页 > news >正文

4.7 IP多播

思维导图:

**4.7.1 IP多播的基本概念**

---

**1. 定义和背景**
- IP多播:从一个源点发送信息至多个终点的技术。
- 1988年:Steve Deering首次提及IP多播。
- 1992年:IETF进行了首次IP多播试验,当时有20个网点参与。
- IP多播需互联网增加智能以提供该服务,现为互联网热点。

---

**2. 应用场景**
- 实时信息传送(新闻、股市信息)
- 软件分发
- 交互式会议
- 随互联网用户增加和多媒体的发展,多播应用也在增加。

---

**3. 多播与单播对比** *(图4-53)*
- 单播:视频服务器发送90次相同的视频给90台主机。
- 多播:视频服务器向90个多播组成员发送视频,仅发送一次。
  - 路由器R收到后复制3个副本,分别转发给R₂、R₃和R₄。
  - 局域网使用硬件多播,多播组成员均可接收。

---

**4.7.2 多播的优势与实现**

---

**1. 多播优势**
- 对于大规模接收者(如成千上万),多播能大幅减少网络资源消耗。
  
---

**2. 多播路由器**
- 实现互联网范围的多播需多播路由器,它具有识别多播数据报的软件。

---

**3. MBONE**
- 自1992年起,互联网上开始试验MBONE,可实现大规模多播。

---

**4. IP多播与多播地址**
- 多播传送的分组使用特定的多播IP地址。
- D类地址用于多播组标识。
  - 范围:224.0.0.0至239.255.255.255,标识超过2.6亿多播组。
- 多播数据报区别:使用D类IP地址作为目标地址,首部协议字段值为2,使用IGMP。

---

**5. 多播的局限性**
- 只能用于目的地址,不能作为源地址。
- 不产生ICMP差错报文。

---

**6. IP多播的两种**
- 局域网的硬件多播。
- 互联网范围内的多播。

---

总结:IP多播提供一对多通信机制,相比单播更为高效,特别在需要广泛传送的应用中。D类地址为多播提供了唯一标识,使其能在互联网上广泛应用。

 4.7.2 在局域网上进行硬件多播

---

#### 1. **以太网地址块**:
- 由互联网号码指派管理局 (IANA) 拥有,其范围是从 `00-00-5E-00-00-00` 到 `00-00-5E-FF-FF-FF`.

#### 2. **以太网多播地址**:
- 当以太网硬件地址字段中的第1字节的最低位为1时, 表示为多播地址。
- IANA 拥有的以太网多播地址范围是从 `01-00-5E-00-00-00` 到 `01-00-5E-7F-FF-FF`.
- 在每一个地址中, 只有23位是用于多播的,这与D类IP地址中的23位有一一对应的关系。

#### 3. **D类IP地址与以太网硬件地址**:
- D类IP地址中的前5位不能用来构成以太网硬件地址(参考图4-54)。
- 例如, IP多播地址 `224.128.64.32` (即E0-80-40-20) 和 `224.0.64.32` (即E0-00-40-20) 转换成以太网的硬件多播地址都是 `01-00-5E-00-40-20`.

#### 4. **映射关系的非唯一性**:
- 由于多播IP地址与以太网硬件地址的映射关系不是唯一的, 所以收到多播数据报的主机还需在IP层利用软件进行进一步的筛选,保留主机需要接收的数据报并丢弃不必要的数据。

#### 5. **D类IP地址与以太网多播地址映射**:
- 参考图4-54, 表示了D类IP地址与以太网多播地址的映射关系。D类IP地址的最低23位与以太网地址的23位有对应关系。

#### 6. **IP多播所需协议**:
- 待讨论。

---

**注**: 笔记已进行简化和整理,希望能够帮助你更好地理解和回顾这一节的内容。

4.7.3 网际组管理协议(IGMP)和多播路由选择协议

---

#### 1. **IP多播与协议**:
- IP多播需要两种协议。

#### 2. **多播数据报传输例子** (图4-55):
- 有四台主机参与的多播组地址是 `226.15.37.123`。
- 数据报应发送到路由器R, R₂和R₃,但不应发送到路由器R₄,因为没有与R₄相连的网络上有该多播组的成员。
- 知晓多播组成员信息需要利用 **网际组管理协议(IGMP)**。

#### 3. **IGMP的作用**:
- 不是用于在互联网范围内管理所有多播组成员。
- 它不知道IP多播组包含的成员数或他们所在的网络。
- 它的作用是让连接到本地局域网的多播路由器知道该网络上是否有主机参与或退出了某个多播组。

#### 4. **多播任务的完整性**:
- 仅有IGMP是不足以完成多播任务的。
- 连接在局域网上的多播路由器还必须与互联网上的其他多播路由器合作。
- 为了将多播数据报以最小的代价传送给所有组成员,需要使用多播路由选择协议。

#### 5. **多播路由选择的复杂性**:
- 多播路由选择比单播路由选择复杂得多。
- 路由器需要动态地适应多播组成员的变化,而网络拓扑可能没有变化。
- 单播路由选择通常在网络拓扑发生变化时更新路由。

#### 6. **多播数据报的转发**:
- 多播路由器在转发数据报时不能仅仅根据目标地址。
- 它还需要考虑数据报的来源和目标。
- 数据报可以由没有加入多播组的主机发送,也可以通过没有组成员接入的网络。

#### 7. **IP多播的复杂性**:
- 多播数据报可以由未参与任何多播组的主机发送,也可以通过没有组成员的网络发送。
- 由此可见,IP多播是一个相对复杂的议题。

---

2.网际组管理协议IGMP

笔记: 网际组管理协议IGMP

- **IGMP版本**
  - IGMPv1: 1989年, RFC1112, 已是互联网标准。
  - IGMPv3: 2002年10月, RFC3376, 最新版本。

- **IGMP与ICMP**
  - 与ICMP相似,IGMP使用IP数据报传递报文。
  - IGMP向IP提供服务,是网际协议IP的一部分。

- **IGMP工作阶段**
  1. 主机加入多播组,向多播地址发送IGMP报文声明。多播路由器收到后,利用多播路由选择协议转发给其他多播路由器。
  2. 组成员关系是动态的。多播路由器周期性探询本地网络上的主机。如果主机持续未响应, 路由器会认为主机已离开该组。

- **IGMP设计特点**
  1. 主机和多播路由器间通信使用IP多播。
  2. 路由器探询组成员时, 一般对所有组发送一个询问报文。
  3. 多个多播路由器能选择一个来探询主机,避免重复通信。
  4. IGMP询问报文中有一个最长响应时间,默认为10秒。
  5. 主机都要监听响应,有其他主机响应时, 可不再发送响应。

- **其他信息**
  - 多播路由器不保留组成员准确记录。
  - 一个主机上多个进程加入同一多播组时,主机只接收一个数据报副本。
  - 多播数据报的发送者和接收者不知道组的具体成员情况。
  - 任何应用进程可在任何时候向任何多播组发送数据,不需加入该组。

- **报文格式**: 详见RFC 3376。

3.多播路由选择协议笔记:

1. **概述:**
    - 虽然TCP/IP中的IP多播协议已标准化,但多播路由选择协议仍未标准化。
    - 多播的成员动态变化,多播路由选择要确定多播转发树。
    - 同一多播组针对不同的源可能有不同的多播转发树。

2. **转发多播数据报的方法:**
    - **洪泛与剪除:** 主要用于小的多播组。
        - **洪泛**:初步广播,使用反向路径广播(RPB)策略以避免循环。
            - RPB要点:检查数据报是否从源点经最短路径送达。若是,则转发,若非,则丢弃。
        - **剪除**:若无多播组成员,则去除转发树枝。
        - 例如:图4-57展示了RPB和剪除方法,只有一条有效的多播转发路径,其他路由器会丢弃重复或非最短路径的数据报。

3. **示例解读:**
    - 图4-57中,R₁为源点,转发多播数据报至R₂和R₃。
    - R₂收到数据后再转发至R₃和R₄。
    - R₃发现R₂非最短路径,故丢弃数据报。
    - R₇有两条最短路径到源点,选择IP地址较小的路由器R₄的路径。
    - 最终形成的多播转发树由粗线表示,避免数据循环和重复。
    - 若某路由器发现其下游无多播组成员,则与其下游树枝一起被剪除。

4. **总结:**
    - 多播路由选择协议在确保数据的高效传递时,避免了不必要的数据报循环和重复。

隧道技术笔记:

1. **定义:**
    - 隧道技术是一种在不支持多播的网络中转发多播数据报的方法。

2. **应用场景:**
    - 当多播组成员地理位置分散。
    - 当需要通过不支持多播的网络传送数据。

3. **工作原理(以图4-58为例):**
    - 网1和网2支持多播,但R₁和R₂之间的网络不支持。
    - 当网1的主机要向网2的主机进行多播时,由于中间网络不支持多播,R₁将多播数据报再次封装为单播数据报,并通过隧道发送至R₂。
    - R₂接收后解封装,将其恢复为多播数据报,并继续转发。

4. **比喻:**
    - 英吉利海峡隧道不允许汽车直接行驶,汽车需放置在电气火车上通过隧道,出隧道后汽车再继续行驶。隧道技术传送数据类似此情境。

5. **其他称呼:**
    - 使用隧道技术传送数据的方法也被称为IP-in-IP。

6. **图4-58解读:**
    - 显示了多播数据报如何被封装为单播数据报,通过隧道在不支持多播的网络中传输,并在另一端被解封装并继续多播。

 

**多播路由技术笔记:**

1. **基于核心的发现技术:**
    - 适用于多播组大小大范围变化。
    - 指定核心路由器,给出其IP单播地址。
    - 核心路由器创建对应多播组的转发树。
    - 数据报传递中,途径的每个路由器检查其内容。
    - 路由器根据数据报内容进行处理或转发。
    - 当新路由器加入多播组,多播转发树覆盖范围扩大。

2. **多播路由选择协议:**
    - 无全球互联网使用的协议,但有以下建议:

    a. **DVMRP (Distance Vector Multicast Routing Protocol)** [RFC 1075]
        - 互联网上首个多播路由选择协议。
        - 实现于UNIX系统的RIP程序,命名为mrouted。

    b. **CBT (Core Based Tree)** [RFC 2189,2201]
        - 使用核心路由器作为转发树根节点。
        - 大自治系统分为几区域,每区域选择核心路由器(又称中心路由器或汇聚点路由器)。

    c. **MOSPF (Multicast extensions to OSPF)** [RFC 1585]
        - OSPF单播路由选择协议扩展。
        - 使用于单一机构内,基于源点的多播转发树。

    d. **PIM-SM (Protocol Independent Multicast-Sparse Mode)** [RFC4601]
        - 构建方式与CBT相似。
        - "协议无关"表示与远程路由器联系时使用的单播数据报不需要特定的单播路由选择协议。
        - 适用于组成员分布分散。

    e. **PIM-DM (Protocol Independent Multicast-Dense Mode)** [RFC3973]
        - 适用于组成员集中,如同一机构内。
        - 不用核心路由器,使用洪泛方式转发。

**4.7 IP多播重点、难点和易错点总结:**

**重点:**
1. **定义**:IP多播允许单一源发送信息到多个接收者,但不是所有接收者。
2. **地址**:多播使用特定的IP地址范围(例如,224.0.0.0到239.255.255.255)。
3. **技术应用**:例如隧道技术、核心基技术和多种多播路由选择协议。

**难点:**
1. **隧道技术**:当某些网络部分不支持多播时,隧道技术用于封装和转发多播数据。
2. **核心基技术**:对于大范围变化的多播组大小,每个多播组都会指定一个核心路由器。
3. **多播路由选择协议**:理解各种协议(如DVMRP, CBT, MOSPF, PIM-SM和PIM-DM)的运作原理和应用场景。

**易错点:**
1. **地址混淆**:可能会与其他IP地址范围(如单播或广播地址)混淆。
2. **技术应用**:在不支持多播的网络中使用隧道技术时,可能会错误地封装或解封装数据。
3. **多播路由选择协议**:可能会混淆不同协议的特点或适用场景,例如混淆PIM-SM和PIM-DM的应用场景。

 

相关文章:

4.7 IP多播

思维导图: **4.7.1 IP多播的基本概念** --- **1. 定义和背景** - IP多播:从一个源点发送信息至多个终点的技术。 - 1988年:Steve Deering首次提及IP多播。 - 1992年:IETF进行了首次IP多播试验,当时有20个网点参与。 …...

XML与html解析,区别,如何使用

目录 简介: HTML(超文本标记语言): 如何使用HTML: XML(可扩展标记语言): 如何使用XML: 区别: 简介: XML(可扩展标记语言)和 HTML&#xff…...

【广州华锐互动】利用VR开展建筑塔吊安全操作学习的好处?

随着科技的不断发展,虚拟现实(VR)技术已经逐渐渗透到各个领域,为人们的生活带来了前所未有的便利。在工程教育领域,VR建筑塔吊安全操作学习作为一种新型的教学手段,正逐渐成为提高教学质量和培养高素质工程…...

分享一下怎么开发一个陪诊小程序

开发一个陪诊小程序需要综合考虑许多方面,包括但不限于市场需求、用户体验、技术实现和运营策略。以下是一篇以开发陪诊小程序为主题的文章。 一、背景介绍 随着社会的发展和人口老龄化的加剧,越来越多的老年人、病患和孕妇需要就医,而由于各…...

从一道面试题开始学习C++标准库提供的并发编程工具

一个空列表,用两个函数(只可调用一次)轮流写入值(一个写奇数,一个写偶数), 最终实现列表的值为1-100,有序排列。 简单分析:假设这两个函数分别为A和B,A函数往…...

第三章 内存管理 十三、页面置换算法(最佳置换算法、先进先出置换算法、最近最久未使用置换算法、时钟置换算法、改进型的时钟置换算法)

目录 一、定义 二、分类 1、最佳置换算法 / 最远置换算法(OPT,Optimal): 1.1、定义: 1.2、例子: 2、先进先出置换算法(FIFO): 2.1、定义: 2.2、实现方法: 2.3、例子: 3、最…...

连接到EC2,开启root登录

1.启动完新实例,下载密钥对密钥对登录 ssh -i "ec2-user.pem" ec2-userec2-xx-xx-xx-xx.compute-1.amazonaws.com2.为root设置密码 sudo passwd root3.切换到root权限 su root4.修改ssh配置文件,允许密码登陆 vi /etc/ssh/sshd_config Pas…...

线性代数-Python-02:矩阵的基本运算 - 手写Matrix及numpy中的用法

文章目录 一、代码仓库二、矩阵的基本运算2.1 矩阵的加法2.2 矩阵的数量乘法2.3 矩阵和向量的乘法2.4 矩阵和矩阵的乘法2.5 矩阵的转置 三、手写Matrix代码Matrix.pymain_matrix.pymain_numpy_matrix.py 一、代码仓库 https://github.com/Chufeng-Jiang/Python-Linear-Algebra-…...

6.MySQL内置函数

个人主页:Lei宝啊 愿所有美好如期而遇 日期函数 current_date() 当前日期 select 可以做表达式和函数的计算。 current_time() 当前时间 current_timestamp() 当前日期加时间 注意:值得说明的是这三个函数底层调用的都是同一个函数,只不…...

3dmax中导出模型到unity注意事项

从3dmax中导出 1. 注意单位,根据需要,选英寸还是选厘米 2. 不能导出有错误的骨骼,否则导入后模型网格里出现 Skinned Mesh Renderer ,对网格变换移动有影响,正常情况下都应该是 Mesh Renderer 3. 导出一般不带光源和…...

QTday05(TCP的服务端客户端通信)

实现聊天室功能 服务端代码&#xff1a; pro文件需要导入 network 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer>//服务端 #include <QTcpSocket>//客户端 #include <QList> #include <QMes…...

【MATLAB源码-第52期】基于matlab的4用户DS-CDMA误码率仿真,对比不同信道以及不同扩频码。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. DS-CDMA系统 DS-CDMA (Direct Sequence Code Division Multiple Access) 是一种多址接入技术&#xff0c;其基本思想是使用伪随机码序列来调制发送信号。DS-CDMA的特点是所有用户在同一频率上同时发送和接收信息&#xf…...

Spring 路径与占位符

SpringMVC支持ant风格的路径 &#xff1f;&#xff1a;表示任意的单个字符 *&#xff1a;表示任意的0个或多个字符 \**&#xff1a;表示任意的一层或多层目录 注意&#xff1a;在使用**时&#xff0c;只能使用/**/xxx的方式 1.测试 &#xff1f; <a th:href"{/succe…...

MIT 6.824 -- Cache Consistency -- 11

MIT 6.824 -- Cache Consistency -- 11 引言严峻挑战锁服务缓存一致性问题案例演示优化 原子性问题故障恢复问题log内容故障恢复 小结 课程b站视频地址: MIT 6.824 Distributed Systems Spring 2020 分布式系统 推荐伴读读物: 极客时间 – 大数据经典论文解读DDIA – 数据密集…...

Python在列表中如何对多个参数进行修改

1 问题 在python中经常会使用到列表&#xff0c;列表是常见的一种数据类型。对于一个庞大的列表&#xff0c;要调取列表中的对象&#xff0c;应如何快速准确的调取或快速的调取多个对象&#xff1f; 2 方法 解决问题的步骤采用如下方式&#xff1a; 基本的&#xff0c;已知元素…...

手机启用adb无线调试

具体步骤 手机和电脑处于同一个路由器下。 比如手机IP是192.168.31.181&#xff0c;电脑能ping通。 手机端启用无线adb调试先把手机用USB线连接电脑&#xff0c;打开adb&#xff0c;输入以下命令&#xff1a; G:\> adb tcpip 5555 restarting in TCP mode port: 5555 无…...

openGauss学习笔记-105 openGauss 数据库管理-管理用户及权限-默认权限机制

文章目录 openGauss学习笔记-105 openGauss 数据库管理-管理用户及权限-默认权限机制 openGauss学习笔记-105 openGauss 数据库管理-管理用户及权限-默认权限机制 数据库对象创建后&#xff0c;进行对象创建的用户就是该对象的所有者。openGauss安装后的默认情况下&#xff0c…...

[翻译]理解Postgres的IOPS:为什么数据即使都在内存,IOPS也非常重要

理解Postgres的IOPS&#xff1a;为什么数据即使都在内存&#xff0c;IOPS也非常重要 磁盘IOPS&#xff08;每秒输入/输出操作数&#xff09;是衡量磁盘系统性能的关键指标。代表每秒可以执行的读写操作数量。对于严重依赖于磁盘访问的PG来说&#xff0c;了解和优化磁盘IOPS对实…...

Day6力扣打卡

打卡记录 统计无向图中无法互相到达点对数&#xff08;并查集 / DFS&#xff09; 链接 并查集 思路&#xff1a;用并查集将连通区域的连在一起&#xff0c;再遍历所有点&#xff0c;用hash表存储不同连通块的元素个数&#xff0c;然后 乘积和 便是答案。 注意&#xff1a; /…...

10月面试js基础

作用域 变量的可用范围 作用域链 保存的变量的使用顺序的一个链&#xff08;也就是路线图&#xff09;&#xff0c; 被称为作用域链。 当在Javascript中使用一个变量的时候&#xff0c;首先Javascript引擎会尝试在当前作用域下去寻找该变量&#xff0c;如果没找到&#xff0c;再…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...