4.7 IP多播

news2024/11/15 23:49:15

思维导图:

**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的应用场景。

 

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

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

相关文章

Python算法:八大排序算法以及速度比较

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

大数据测试用例分析

基于大数据分析,对业务系统产生的日志进行智能分析,能够识别日志中的接口、参数、业务流,并依据分析的结果生成测试用例。 问题与背景 业务复杂 业务系统的复杂性,对测试人员的业务能力提出严格要求,加重测试成本。 …

【深度学习-第4篇】使用MATLAB快速实现CNN多变量回归预测

上一篇我们讲了使用CNN进行分类的MATLAB代码。 这一篇我们讲CNN的多变量回归预测。 是的,同样是傻瓜式的快速实现。 一、什么是多变量回归预测 多变量回归预测则是指同时考虑多个输入特征进行回归预测。举几个例子: 房价预测:给定一组房…

苹果开发者 Xcode发布TestFlight全流程

打包前注意事项 使用Xcode导出安装包之前,必须先确认账户的所有合约是否全部同意,如果有不同意的,在出包的时候会弹出报错 点击前往苹果开发者官网https://appstoreconnect.apple.com/agreements/ 登录自己的开发者账户后,可以看…

【LeetCode】61. 旋转链表

1 问题 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3] 示例 2: 输入:head [0,1,2], k 4 输出&…

用Nginx搭建一个具备缓存功能的反向代理服务

在同一台服务器上,使用nginx提供服务,然后使用openresty提供反向代理服务。 参考《Ubuntu 20.04使用源码安装nginx 1.14.0》安装nginx。 参考《用Nginx搭建一个可用的静态资源Web服务器》搭建静态资源Web服务器,但是/nginx/conf/nginx.conf里…

点云cloudpoint生成octomap的OcTree的两种方法以及rviz可视化

第一种:在自己的项目中将点云通过ros的topic发布,用octomap_server订阅点云消息,在octomap_server中生成ocTree 再用rviz进行可视化。 创建工作空间,记得source mkdir temp_ocotmap_test/src cd temp_ocotmap_test catkin_make…

系列一、文件

一、概述 文件对我们并不陌生,简单的讲文件就是保存数据的地方,比如大家经常使用的word文档,txt文件,excel文件,mp3音乐文件,mp4视频文件...等等,它既可以是一张图片,也可以是一段视…

C++之继承<2>【详解】

C之继承<2>【详解】 1. 派生类的默认成员函数1.1 1. 构造成员函数1.2 拷贝复制1.3 构造函数和析构函数的执行顺序 2. 继承和友元3. 继承与静态成员 1. 派生类的默认成员函数 1.1 1. 构造成员函数 派生类的构造函数必须调用基类的构造函数初始化基类的那…

力扣刷题 day50:10-20

1.存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 方法一:集合去重 #方法一:集合去重 def containsDuplicate(nums):return len(n…

八股总结(招聘)

线程创建方法: 继承 Thread 类实现 Runnable 接口通过 ExecutorService 和 Callable\ 实现有返回值的线程基于线程池的execute(),创建临时线程

嵌入式面试常见问题(二)

1.malloc如何分配内存? 进行虚拟地址空间的分布:程序地址空间-》程序虚拟地址空间-》进程虚拟地址空间 内存布局: ​ 进程虚拟地址空间和PCB(Process Control Block,进程控制块)进行串联 : ​…

微信小程序进阶——后台交互

目录 一、后台准备 1.1 pom.xml 1.2 配置数据源 1.3 整合mybatis 二、前后端交互 2.1 method1 2.2 method2 2.2.1 封装request 2.2.2 头部引用util 2.2.3 编写方法 2.2.4 展示效果 三、WXS的使用 3.1 会议状态 3.1.2 引入wxs 3.1.3 修改代码 3.1.4 展示效果 3…

计算机毕业设计 基于SpringBoot笔记记录分享网站的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

Mysql 中的性能调优方法

Mysql 性能调优方法可以从四个方面来说,分别是: 表结构与索引 SQL 语句优化 Mysql 参数优化 硬件及系统配置 这四个方面的优化成本和优化效果是成反比的。 表结构和索引的优化 表结构和索引的优化,主要可以下面这些方面去优化: 分…

NewStarCTF 2023 公开赛道 WEEK2|WEB 游戏高手

app_v2.js就是游戏文件 右键“用调试器打开”: var gameScore 0; 就是当前分数, 打开控制台,输入 gameScore 1000000,回车 就可以得到flag

字节码进阶之ASM字节码操作类库详解

文章目录 0.前言1. 引言2. ASM简介3. 字节码基础知识回顾 4. ASM的核心概念5. ASM的基本用法5.1. 读取和分析字节码5.2. 修改和生成字节码 6. ASM的高级用法6.1. 字节码增强技术6.2. 自定义类加载器和类定义 7. 实例演示:使用ASM实现简单的字节码增强 字节码进阶之A…

代码随想录算法训练营第二十八天丨 回溯算法part04

491.递增子序列 思路 这个递增子序列比较像是取有序的子集。而且本题也要求不能有相同的递增子序列。 在90.子集II (opens new window)中是通过排序,再加一个标记数组来达到去重的目的。 而本题求自增子序列,是不能对原数组进行排序的,排…

前端工作方式要换了?HTMX简介:无需JavaScript的动态HTML

HTMX允许你使用扩展的HTML语法代替 JavaScript 来实现交互性。HTMX 在标记中直接为你提供HTTP 交互,并支持许多其他交互需求,无需求助于 JavaScript。这是一个有趣的想法,可能最终会影响到web前端的工作方式。让我们看看如何使用HTMX以及它的…

pytorch 入门 (三)案例一:mnist手写数字识别

本文为🔗小白入门Pytorch内部限免文章 🍨 本文为🔗小白入门Pytorch中的学习记录博客🍦 参考文章:【小白入门Pytorch】mnist手写数字识别🍖 原作者:K同学啊 目录 一、 前期准备1. 设置GPU2. 导入…