生活的道路一旦选定,就要勇敢地走到底,决不回头。

发掘积累过程的快感

首页 » BIBLE模型 » 编程基础 » 什么是组播?

什么是组播?


组播和单播的区别是什么?

组播和单播都是报文传输的一种方式。

单播是主机间一对一的通讯模式,网络中的设备根据网络报文中包含的目的地址选择传输路径,将单播报文传送到指定的目的地,只对接收到的数据进行转发,不会进行复制。它能够针对每台主机及时的响应,现在的网页浏览全部都是采用单播模式。

组播是主机间一对多的通讯模式, 组播是一种允许一个或多个组播源发送同一报文到多个接收者的技术。组播源将一份报文发送到特定的组播地址,组播地址不同于单播地址,它并不属于特定某个主机,而是属于一组主机。一个组播地址表示一个群组,需要接收组播报文的接收者都加入这个群组。

一份数据报文如图所示,通过单播传输需要使用一个单播地址作为目的地址。数据源向每个接收者发送一份独立的报文。如果网络中存在 N 个接收者,则数据源需要发送 N 份报文;通过组播传输时使用一个组播地址作为目的地址,数据源向组播组发送且仅发送一份报文。如果网络中存在 N 个接收者,数据源也仅需要发送一份数据报文。
组播传输和单播传输方式对比
组播传输和单播传输方式对比

单播传输适用于用户稀少的网络,如果用户量较大时,网络将会出现多份相同的流量,会大量占用处理器资源而且非常浪费网络的带宽,而通过组播方式传输,网络中每条链路中仅有一条数据流。组播相比于单播的优势在于相同的报文在每条链路上最多有一份。

组播和广播的区别是什么?

组播和广播都是报文传输的一种方式。

广播是主机间一对所有的通讯模式,设备会将报文发送到网络中的所有可能接收者。设备简单地将它收到的任何广播报文都复制并转发到除该报文到达的接口外的每个接口。广播处理流程简单,不用选择路径。

组播是主机间一对多的通讯模式, 组播是一种允许一个或多个组播源发送同一报文到多个接收者的技术。

一份数据报文如图所示,通过广播传输需要使用一个广播地址作为目的地址。数据源向本网段对应的广播地址发送且仅发送一份报文。广播传输会把数据报文发送给本网段中的所有用户,而不管用户是否有需求;通过组播传输时仅把数据报文发送给有数据需求的用户,不会发送给所有用户。

组播传输和广播传输方式对比
组播传输和广播传输方式对比

广播传输数据源必须与用户在同一个网段,组播可以跨网段传输。广播传输该网段内所有主机都能收到数据报文,会导致无信息需求的主机也收到该信息,网络中存在流量冗余,组播传输只将数据流传输到有接收者的地方,网络中不存在流量冗余。组播相比于广播的优势在于组播的报文是按需发送。

IP 组播地址的范围

为了使组播源和组播组成员进行通信,需要提供网络层组播使用的 IP 组播地址。

IPv4 组播地址
IANA 将 D 类地址空间分配给 IPv4 组播使用。IPv4 地址一共 32 位,D 类地址最高 4 位为 1110,地址范围从 224.0.0.0 到 239.255.255.255,具体分类及含义见下图。
IPv4 组播地址的范围及含义
IPv4 组播地址的范围及含义

IPv6 组播地址
IPv6 地址长度是 128 位,IPv6 组播地址格式如图所示。
IPv6 组播地址格式
IPv6 组播地址格式

  • IPv6 组播地址总是以 FF 开头,高 8 位取值为 11111111。
  • Flags 字段(4 位)用来标识组播地址的状态。例如取值为 0 表示保留组地址,取值为 1 或 2 表示 ASM 范围内的组播地址,取值为 3 表示 SSM 范围内的组播地址。
  • Scope 字段(4 位)用来标识组播组的应用范围,指示组播组应用范围是只包含同一本地网络、同一站点、同一机构中的节点,还是包含全球地址空间内的任何节点。
  • Group ID(112 位)组播组标识符,用在由 Scope 字段所指定的范围内标识组播组。
    固定的 IPv6 组播地址的范围及含义如图所示。
    IPv6 组播地址的范围及含义
    IPv6 组播地址的范围及含义

组播 MAC 地址的范围

为了在本地物理网络上实现组播信息的正确传输,需要在链路层使用组播 MAC 地址。组播数据传输时,其目的地不是一个具体的接收者,而是一个成员不确定的组,所以需要一种技术将 IP 组播地址映射为组播 MAC 地址。

IPv4 组播 MAC 地址

以太网传输 IPv4 单播报文的时候,目的 MAC 地址使用的是接收者的 MAC 地址。但是在传输组播数据时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用 IPv4 组播 MAC 地址,即 IPv4 组播地址映射到链路层中的地址。

IANA 规定,IPv4 组播 MAC 地址的高 24 位为 0x01005e,第 25 位为 0,低 23 位为 IPv4 组播地址的低 23 位,映射关系如图所示。例如组播组地址 224.0.1.1 对应的组播 MAC 地址为 01-00-5e-00-01-01。
IPv4 组播地址与 IPv4 组播 MAC 地址的映射关系
IPv4 组播地址与 IPv4 组播 MAC 地址的映射关系

IPv4 组播地址的前 4 位是固定的 1110,对应组播 MAC 地址的高 25 位,后 28 位中只有 23 位被映射到 MAC 地址,因此丢失了 5 位的地址信息,直接结果是有 32 个 IPv4 组播地址映射到同一 MAC 地址上。例如 IP 地址为 224.0.1.1、224.128.1.1、225.0.1.1、239.128.1.1 等组播组的组播 MAC 地址都为 01-00-5e-00-01-01。

IPv6 组播 MAC 地址

IPv6 组播 MAC 地址的高 16 位为 0x3333,低 32 位为 IPv6 组播地址的低 32 位。如图所示,是 IPv6 组播地址的 MAC 地址映射关系。
IPv6 组播地址与 IPv6 组播 MAC 地址的映射关系
IPv6 组播地址与 IPv6 组播 MAC 地址的映射关系
可见 IPv6 中会有更多的组地址使用同一个 MAC 地址。

有哪些组播协议?

在 IP 组播传输模型中,发送者不关心接收者所处的位置,只要将数据发送到约定的目的地址,剩下的工作就交给网络去完成。网络中的组播设备必须收集接收者的信息,并按照正确的路径实现组播报文的转发和复制。在组播的发展过程中,形成了一套完整的协议来完成此任务。

IPv4 网络中使用的组播协议

  • 组播组管理协议 IGMP(Internet Group Management Protocol)
    IGMP 是负责 IPv4 组播成员管理的协议,运行在组播网络中的最后一段,即三层网络设备与用户主机相连的网段内。IGMP 协议在主机端实现组播组成员加入与离开,在上游的三层设备中实现组成员关系的维护与管理,同时支持与上层组播路由协议的信息交互。
  • 协议无关组播 PIM(Protocol Independent Multicast)
    PIM 作为一种 IPv4 网络中的组播路由协议,主要用于将网络中的组播数据流发送到有组播数据请求的组成员所连接的组播设备上,从而实现组播数据的路由查找与转发。
    PIM 协议包括 PIM-SM(Protocol Independent Multicast Sparse Mode)协议无关组播-稀疏模式和 PIM-DM(Protocol Independent Multicast Dense Mode)协议无关组播-密集模式。PIM-SM 适合规模较大、组成员相对比较分散的网络;PIM-DM 适合规模较小、组播组成员相对比较集中的网络。
  • 组播源发现协议 MSDP(Multicast Source Discovery Protocol)
    MSDP 是为了解决多个 PIM-SM 域之间的互连的一种域间组播协议,用来发现其他 PIM-SM 域内的组播源信息,将远端域内的活动信源信息传递给本地域内的接收者,从而实现组播报文的跨域转发。
  • 组播边界网关协议 MBGP(MultiProtocol Border Gateway Protocol)
    MBGP 实现了跨 AS 域的组播转发。适用于组播源与组播接收者在不同 AS 域的场景。
  • IGMP Snooping
    IGMP Snooping 功能可以使设备工作在二层时,通过侦听上游的三层设备和用户主机之间发送的 IGMP 报文来建立组播数据报文的二层转发表,管理和控制组播数据报文的转发,进而有效抑制组播数据在二层网络中扩散。
  • BIER
    BIER 是基于比特索引的显式复制技术,通过将组播报文目的节点的集合以比特串的方式封装在报文头部进行发送,从而使网络中间节点无需为每一个组播流(Per-flow)建立组播树及保存组播流状态,仅需根据报文头部的目的节点的集合进行复制转发。

IPv6 网络中使用的组播协议

  • 组播侦听者发现协议 MLD(Multicast Listener Discovery)
    MLD 是负责 IPv6 组播成员管理的协议,运行在组播网络中的最后一段,即三层组播设备与用户主机相连的网段内。MLD 协议在主机端实现组播组成员加入与离开,在三层设备上实现组成员关系的维护与管理,同时支持与组播路由协议的信息交互。
  • PIM(IPv6)
    PIM(IPv6)作为一种 IPv6 网络中的组播路由协议,主要用于将网络中的组播数据流引入到有组播数据请求的组成员所连接的路由器上,从而实现组播数据流的路由查找与转发。
    PIM(IPv6)协议包括 PIM-SM(IPv6)和 PIM-DM(IPv6)两种模式。PIM-SM(IPv6)适合规模较大、组成员相对比较分散的网络;PIM-DM(IPv6)适合规模较小、组播组成员相对比较集中的网络。
  • MLD Snooping
    MLD Snooping 功能可以使设备工作在二层时,通过侦听上游的三层设备和用户主机之间发送的 MLD 报文来建立组播数据报文的 IPv6 二层转发表,管理和控制组播数据报文的转发,进而有效抑制组播数据在二层网络中扩散
  • BIERv6
    BIERv6 技术保留了 BIER 技术的优势,利用 IPv6 可扩展的能力,实现了组播路由技术在 IPv6 网络场景下的新应用。具有易部署、智能化、高可靠性三大特点。
互联网信息太多太杂,各互联网公司不断推送娱乐花边新闻,SNS,微博不断转移我们的注意力。但是,我们的时间和精力却是有限的。这里是互联网浩瀚的海洋中的一座宁静与美丽的小岛,供开发者歇息与静心潜心修炼。 “Bible”是圣经,有权威的书,我们的本意就是为开发者提供真正有用的的资料。 我的电子邮件 1217179982@qq.com,您在开发过程中遇到任何问题,欢迎与我联系。
Copyright © 2024. All rights reserved. 本站由 Helay 纯手工打造. 蜀ICP备15017444号