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

     

  • 相关阅读:
    MySQL-无锁读
    下游批量推送的mysql库锁表
    (arch)linux 转换文件编码格式
    JAVA商城和PHP商城的区别
    API设计中性能提升的10个建议
    【Java代码规范】阿里编码规约 VS CheckStyle
    future其他成员函数、shared_future、atomic
    centOS安装MySQL详解
    Vue、React—— 跨平台框架taro
    顶级“Redis学习笔记”,缓存雪崩+击穿+穿透+集群+分布式锁,NB了
  • 原文地址:https://blog.csdn.net/tang7mj/article/details/133939224