组播原理

article/2025/8/22 12:57:47

组播原理

1.概述

想对于单播,广播方式减少了发送源的处理,降低发送源的负荷.但是采用广播方式,网络中所有主机都会收到广播数据,而不管是否需要接收.这样不仅数据的安全性得不到保证,而且造成网络中信息泛滥,浪费带宽资源.单播和组播均不能以最小的网络开销实现数据的单点发送,多点接收,IP组播技术的出现解决了这个问题.

组播指发送源将产生的单一IP数据包通过网络发送给一组特定接收者的网络传输方式.在进行点到多点传输时,发送源不需要关心接收者的数目,仅需要发送一份报文;路由器仅关心接口下是否有接收者,同样不需要关心接收者的数量,所以路由器之间的链路上也仅发送一份报文.

跟广播相比,组播方式下路由仅在有接收者的接口复制报文,报文最终仅传递给接收者而非网络中的所有主机,可以节省大量网络带宽.

在这里插入图片描述

2.组播技术体系

组播的实现机制比较比较复杂,要实现组播首先要解决下面几个问题:

在这里插入图片描述

  1. 组播接收者是数目不定的,无法像单播一样使用主机IP进行标识,所以首先要解决如何在网络中标识一组接收者
  2. 实现了对组的标识,还需要解决接收者如何加入和离开这个组,路由设备如何维护组成员信息
  3. 组播接收者可能分散在网络中的任何角落,那么组播源和组播接收者之间的转发路径基于什么模型,组播数据如何在路径转发
  4. 组播数据转发路径如何建立维护

上述技术需求通过组播架构中的一些重要机制来实现,包括组播地址,组播组管理协议,组播分发树模型,组播转发机制和组播路由协议实现.

3.组播地址

组播通信中使用组播地址来标识一组接受者,使用组播地址标识的接收者集合称为组播组.

IANA(因特网编号分配委员会)将D类地址空间分配给IPv4组播使用,地址范围为224.0.0.0—239.255.255.255,组播地址的分类和具体含义如下:

  1. 224.0.0.0—224.0.1.255:协议预留直播地址.除了224.0.0.0保留不做分配外,其他地址供路由协议,拓扑查找和协议维护等使用.
  2. 224.0.2.0—238.255.255.255:用户组地址,全网范围内有效
  3. 239.0.0.0—239.255.255.255:本地管理组地址,仅在本地管理域内有效

组播地址解决了IP报文在网络层寻址的问题,还需要考虑数据在链路层如何寻址.以太网传输单播报文的时候,目的MAC地址使用的是接收者的MAC地址.由于组播目的地不再是一个具体的接收者,而是一个成员不确定的组,所以在链路层需要使用特定的组播MAC地址来标识一组接收者.

IPv4组播中MAC地址格式为01-00-5E-XX-XX-XX.高24位固定为0x01005E,第25位为0,低23位来自于组播IP地址的低23位,如下图
在这里插入图片描述

由于组播IP地址的高4位是1110,代表组播标识,而低28位中只有23位被映射到组播MAC地址中,这样组播地址中就有5位信息丢失.于是,就有32个组播IP地址映射到同一个组播MAC中上,从而在二层处理的过程中,设备可能就要接收一些本组播组以外的组播数据,而这些多余的组播数据就需要设备的上层进行过滤了.

4.组播协议体系

组播协议主要包含主机和路由器之间的协议,路由器与路由器之间的协议,以及组播域之间的协议.
在这里插入图片描述

主机和路由器之间的协议及组播组管理协议,IPv4中常用的是IGMP.通过IGMP,路由器可以了本地网段中,那些组播组存在接收者,并维护组成员.

路由器和路由器之间的协议称为组播路由协议,通过组播路由协议可以将成员信息扩展到整个网络,从而建立从发送源到接收者之间的组播分发树.

组播域的边界通常为单播的边界,由于域之间组播路由信息有可能无法直接交互,导致接收者无法跨域接收组播数据,此时需要在域之间运行域间组播路由协议,解决域间组播通信问题.

5.组播组管理协议

解决了如何表示组播组的问题,还需要考虑接收者怎样加入组播组中,如何维护组播组以及由谁来维护等问题.在组播架构中使用组播组管理协议来实现上述需求.

组播组管理协议是运行在主机和路由器之间的协议.主机通过组播组管理协议通知路由器加入或离开某个组播组;路由器通过组播组管理协议响应主机加入请求,建立相应的组播表项,并通过查询消息维护组播组信息.

常用的组播组管理协议为IGMP(Internet Group Management Protocol),因特网组管理协议
在这里插入图片描述

5.1 IGMP V2
5.1.1 普遍查询和成员组报告

在这里插入图片描述

如上图,查询器RTA周期的向本网段所有主机发送IGMP General Query报文,目的地址为224.0.0.1,收到Query报文以后,由于主机A和B接收组播组228.1.1.1的数据,所以对General Query报文进行响应,回复Membership Report报文,A和B进行回复前,会随机等待一段时间,具体时间在[0,Max Reps Time].

IGMP v2还支持成员报告印制功能,假设B等待的时间大于A,则主机A会先发送Membership Report报文,目的地址为228.1.1.1,B在收到该报文后,发现它也正要发送228.1.1.1的Membership Report报文,从而取消自己Report报文的发送,这就是成员报告抑制功能.

因此C是属于组播组228.2.2.2,所以它回复目的地址为228.2.2.2的Membership Report报文.

同时,主机可以不同等待周期查询,直接发送加入报文.

经过查询以后,RTA知道该网段中有组播组228.1.1.1和228.2.2.2的成员,所以创建组播转发表项(*,228.1.1.1)和( *,228.2.2.2),*代表任何组播源.当然组播转发表项还包含组播报文入接口和组播报文的出接口等信息,用于指导组播报文在本地路由器的转发.当组播源有发往228.1.1.1或228.2.2.2的组播报文到达RTA时,由于RTA上存在( *,228,1,1,1)和( *,228.2.2.2)组播转发项,于是将组播报文根据出口信息转发到本地网段,接收者就能够收到该组播数据了.

5.1.2离开组和特定组查询

在IGMPv2中,当一个主机离开某组时会向本地网段内所有组播路由器发送Leave Group报文,目的地址为224.0.0.2,报文中包含要离开的组播组地址信息.

在这里插入图片描述

主机A和主机C要分别离开组播组228.1.1.1和228.2.2.2,则会向RTA发送Leave Group报文.

当IGMP查询器RTA收到Leave Group报文后,会发送另外一种查询报文--Group Specific Query 报文,用于确认该组播在网段内是否还有成员存在.Group Specific Query报文的目的地址为所要查询的指定组播组地址.

由于B还要接收228.1.1.1的组播,所以收到Group-specific Query报文后,会回复Membership Report.

由于主机C离开后,网段内不再有组播组228.2.2.2的成员,所以在最大响应时间内不会收到该组播组的Report报文,RTA将删除组播组228.2.2.2表项,此后不会再将目的地址为228.2.2.2的报文送达该网段

6.Snooping

6.1 Snooping概述

实际网络中,主机通常是通过交换机连接到路由器上的,因此其无法识别路由器发过来的组播报文,因此会作为未知报文在网段内广播,导致不属于该组播组成员的主机也收到组播报文,这种情况浪费网络带宽,并增加了非接收者网络处理的负担,通过二层交换机上实现IGMP Snooping功能可以解决组播报文在二层被广播发送的问题

6.2 组播Snooping原理

IGMP Snooping是运行在二层设备上的组播约束机制,用于管理和控制组播组.运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为端口和MAC地址建立起映射关系,并根据这个的映射关系转发组播数据.如下图:
在这里插入图片描述

如上图,主机A和主机C是组播228.1.1.1的接收者,则二层交换机会通过IGMP Snooping为组播组228.1.1.1记录一个表项,表项中包含连接路由器的端口,组播组地址以及连接接收者的端口.当有目的地址为228.1.1.1的组播报文到达时,二层交换机只会将组播报文从连接接收者的端口发送出去,从而避免二层广播.

7.组播 vlan

在传统的组播点播的方式下,当属于不同的VLAN的主机点播同一组播时,路由器需要把组播数据在每个用户VLAN内部复制一份发送给二层交换机,这样就浪费了带宽,当存在大量不同VLAN的接收者时,路由器和二层交换机之间的链路上将会传送大量内容相同的报文.

使用组播VLAN功能可以解决这个问题,在二层交换机上配置了,组播VLAN以后,路由器只需把组播数据在组播VLAN内复制一份发送给二层交换机.如下图所示:
在这里插入图片描述

如上图,接收者主机A,B,C分别不同的用户VLAN,在二层交换上配置VLAN10为组播VLAN,将所有的用户VLAN都配置为该组播VLAN的子VLAN,并在组播VLAN内使能IGMP Snooping.

8.问题

8.1 IGMP Snooping与IGMP Proxy区别

简单来说,Snooping是完全工作在二层的,不会对上行的加入报文进行修改,只是利用Snooping的机制形成组播转发规则,并且配置给硬件,这样下行的组播流就能够通过硬件规则快速转发.

其实Snooping与Proxy就主要的区别在于,上行的加入报文到达Proxy模块以后,会被修改后,然后发送给上行的路由器,其实它是工作在三层的,Proxy会怎么修改下行设备过来的加入报文呢?

主要是将下挂设备过来的加入报文的源mac和源IP修改为三层设备的mac和ip,然后继续向上游设备发送.同时,对于上游过来的查询报文,Proxy模块也会代为回复


http://chatgpt.dhexx.cn/article/uOxr5xT7.shtml

相关文章

华为 组播之IGMPv1

我是艺博东 ,一个正在努力学IT的码农;好了,话不多说,我们直接进入正文。 文章目录 一、拓扑二、基本配置与分析三、小结四、通用组查询报文 一、拓扑 二、基本配置与分析 AR-1 [Huawei]sysname AR-1 [AR-1] [AR-1]int g0/0/0 […

组播是什么

组播是什么 IPV4:单播 组播 广播 IPV6:单播 组播 任播 单播:一对一,随着接收用户的增多,增加服务器和链路带宽的压力。 单播的优点:保证流量只发送给有需要的接收者 广播:一对ALL&#xff…

IP组播的基本概念

IP组播的基本概念 原理概述: IANA(Internet Assigned Numbers Authority)将IP地址分成了A、B、C、D、E5类,其中的D类为组播IP地址,范围是224.0.0.0-239.255.255.255。 一个IP报文,其目的地址如果是单播IP地址,则被称为…

组播技术

1 概述 1.1 产生背景 传统的IP通信有两种方式:一种是在源主机与目的主机之间点对点的通信,即单播;另一种是在源主机与同一网段中所有其它主机之间点对多点的通信,即广播。如果要将信息发送给多个主机而非所有主机,…

组播协议详解

组播详解 1.组播基础(1)组播简介(2)组播的地址(3)组播的MAC地址(4)组播的MAC地址(5)反向转发路径—RPF 2.IGMP(1)简介(2&a…

组播基本概念讲解

目录 单播、广播、组播的区别 组播网络 组播网络设备 组播网络架构 组播IP地址 组播模型——2种模型 组播IP报文 组播IP与MAC映射规则 组播MAC与单播MAC区分 单播、广播、组播的区别 单播:一对一。 源发送一份单播报文,只能被单个主机接收 广…

交换机组播协议-二层组播/三层组播总结

一、组播介绍: 组播技术解决的是以最小的网络开销实现单点发送,多点接收的问题。就实现点对多点数据传输问题,比广播/单播传输更高效,更能节省网络带宽,降低网络负载。 当ip网络中某Rx主机需要接收信息时,若…

广播、组播、点播的区别

今天学习的时候发现了广播、组播、点播这三个用来描述网络节点之间通讯方式的术语,那么这几种“播”到底有什么区别?于是乎百度总结了一下。 ----------------------------------点播 ---------------------------------- “点播”是一种形式的单播&…

IP组播介绍

IP组播通信指的是IP报文从一个源发出,被转发到一组特定的接收者。相对于单播和广播,IP组播可以有效地节约网络带宽、降低网络负载,避免广播堵塞带来的诸如摄像头花屏,视频马赛克等问题,所以被广泛应用于IPTV、实时数据…

广播和组播

概述 网络信息传输主要有4种方式:单播(unicast)、任播(anycast)、组播(multicast)和广播(broadcast)。广播和组播为应用程序提供了两种服务:数据分组交付至多…

华为 组播理论知识

如果一个人走在正确的道路上,有目标并努力着,且思想没有问题、态度端正,相信总有一天能达到成功的彼岸;因为人生就像一场马拉松长跑,,它并不在乎你比别人先跑一步,或者晚跑一步。 我是艺博东 ,一…

浅议组播(一文看懂组播)

今天简单的写一下组播的实现过程,主要是给0基础同学阅读。本文力图用最简单的语言描绘组播的大致实现过程。 一、背景 计算机网络中存在三种形式的报文——单播、广播和组播。顾名思义,单播就是发往指定的目的地址,广播就是发放广播域内所有…

什么是组播地址

组播地址 前言 “组播并不像单播,有一个明确的目的主机和IP地址,也不像广播,局域网内的所有主机都是目的主机,广播IP地址也明确(主机标识全部置为1)。组播不同,它并不知道要把信息发给谁&…

一文了解什么是组播

组播简介 前言 “数据源向特定的多个接收端发送相同的数据时,如果采用单播,数据源需要分多次发送。如果采用广播,广播域内所有主机都能收到。而如果采用组播,只需要发送一份数据给组播路由器,由组播路由器根据组播组…

组播详解及示例代码

写在前面 由于公司业务需要用到组播实现,这里就记录下学习过程。在学习组播之前,我们先来看看另外两种数据包传输方式:单播和广播。 单播:简单来说就是数据一对一发送,如果需要给多个主机发送数据时,就需…

组播的简单介绍

一、组播部署背景 1、广播方式部署点到多点应用 广播方式所存在的问题: ①地域范围限制 ②安全性无法保障 ③有偿性无法保障 2、单播方式部署点到多点应用 单播方式所存在的问题: ①重复流量过多 ②消耗设备和链路带宽资源 ③难以保证传输质量 3、组播方…

什么是组播-网工必会的组播基础概念详解

什么是组播-网工必会的组播基础概念详解 什么是组播?组播方式解决了单播情况下数据的重复拷贝及带宽的重复占用,也解决了广播方式下带宽资源的浪费,下面腾科教育小编给大家科普一些网工必会的组播基础概念详解。 单播一对多通信场景 1.在单播(Unicast)通信中每一个…

组播基础概念

概述: 组播传输作为IP数据传输的三种方式之一 ,是指接收者的数量和位置在源端主机不知道的情况下,仅由源发出一份组播报文,向目标组播IP地址发送数据的过程。其特点有: 组播实现点到多点的高效数据传输。&#xff08…

最新蓝奏云软件库系统源码分享下载+非WebView

正文: 蓝奏云软件库,添加分类填入蓝奏云文件夹分享链接,链接密码即可。 非webview为接口式获取文件列表,不存储本地,只用在蓝奏云上传文件即可。 后端 thinkphp,前端 uniapp(我测试了下发现没有前端源…

ThinkPHP高仿蓝奏云网盘系统程序

搭建教程&#xff1a; 1.修改数据库config/database.php 2.导入打包的数据库文件 3.设置为pcblic运行目录 4.上面全部设置好了就可以后台登入地址&#xff1a;域名/admin.php 账号adminz密码548717398 5.伪静态设置 <IfModule mod_rewrite.c>RewriteEngine onRewriteBa…