H3C组播系列之IP组播概述

一、组播的基本介绍

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

和单播相比,组播减轻了发送源的负担,并且提高了链路的有效利用率。此外,发送源可以同时发送报文给多个接收者,可以满足低延时应用的需求。

和广播相比,组播方式下路由器仅在有接收者的接口复制报文,报文最终仅传递给接受者而非网络中的所有主机,可以节省大量网络带宽。另外,广播只能在同一网段中进行,而组播可以实现跨网段的传输。


组播的优点

(1)组播可以增强报文发送效率,控制网络流量,减少服务器和CPU的负载

(2)组播可以优化网络性能,消除流量冗余。

(3)组播可以适应分布式应用,当接收者数量变化时,网络流量的波动很平稳。

同时,由于组播应用基于 UDP 而非 TCP,这就决定了组播应用存在 UDP 相应的缺点,如下所列。

(1)组播数据基于 Best Effort(尽力而为)发送,无法保证语音、视频等应用的优先传输。当报文丢失时,采用应用层的重传机制无法保证实时应用的低延时需求。

(2)不提供拥塞控制机制。当网络出现拥塞时,无法为高优先级的应用保留宽带。

(3)无法实现组播数据包重复检测。当网络拓扑发生变化时,接收者可能会收到重复的报文,需要应用层去剔除。

(4)无法纠正组播数据包乱序到达的问题。

组播技术主要应用在多媒体会议、IP视频监控、实时数据组播、游戏和仿真等方面。

二、组播技术体系架构

实现组播需要解决如下问题

(1)组播的接收者是数目不定的一组接收者,无法像单播一样使用主机IP地址来进行标识,所有首先要解决如何在网络中标识一组接收者。

(2)如果实现了对组的标识,还需要解决接收者如何加入和离开这个组,路由设备又如何维护组成员信息。

(3)组播接收者可能分散在网络中的任何角落,那么组播源和组播接收者之间的转发路径基于什么模型,组播数据如何在路径上转发。

(4)组播数据转发路径如何建立和维护

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

三、组播地址

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

IANA(Internet Assigned Numbers Authority,因特网编号分配委员会)将 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 报文在网络层寻址的问题,但通信最终还要依赖于数据链路层和物理层,因此和单播一样,组播也需要考虑数据在链路层如何寻址。

以太网传输单播 IP 报文的时候,目的 MAC 地址使用的是接收者的 MAC 地址。由于组播目的地不再是一个具体的接收者,而是一个成员不确定的组,所以在链路层需要使用特定的组播 MAC 地址来标识一组接收者。

IANA定义 IPv4 组播 MAC 地址格式为 01-00-5E-XX-XX-XX

如下图所示,组播 MAC 地址中高24位固定为 0x01005E,第25位为0,低23位来自于组播IP地址的低23位。

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

例如,组播 IP 地址为 228.128.128.128,其对应的组播 MAC 地址为 01-00-5E-00-80-80;组播 IP 地址为 229.128.128.128,其对应的组播 MAC 地址仍然为 01-00-5E-00-80-80。

四、组播组管理协议

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

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

常用的组播组管理协议为 IGMP(Internet Group Management Protocol,因特网组管理协议)

五、组播转发机制

单播通信中,发送源和接收者之间的路径是点到点的一条线,起点为发送源,目的地为一个接收者,该路径由单播路由协议建立。

组播通信中,由于目的地是数目不定的一组接收者,故采用组播分发树,接收者位于树形结构的叶子处,组播分发树由组播路由协议建立。

根据组播分发树树根位置的不同,组播分发树模型分为 最短路径树(Shortest Path Tree,SPT)模型和共享树(Rendezvous Point Tree,PRT)模型。

SPT树根为发送源,因此SPT也称为“源树”,其从发送源到每一个接收者的路径都是最优的。

RPT模型树根为网络中的某一台设备,称为汇聚点,从发送源到接收者的组播数据必须首先经过汇聚点,然后再由汇聚点发送到每一个接收者。因此RPT模型中,从发送源到接收者之间的路径不一定是最优路径。

单播通信中,IP报文转发的依据是报文的目的IP地址,网络中的路由器收到单播IP报文后只需要通过目的IP地址查找单播路由表,确定报文对应的下一跳地址,得出报文的出接口即可。

组播通信中,不能简单地通过查看报文的目的IP地址就得到报文传送的最优路径以及对应的出接口,因为组播报文的目的地址不是一台明确的主机,有可能路由器每一个接口都存在接收者。

于是,组播采用逆向路径转发的方式,判断组播报文是否从指向组播分发树树根的最短路径到达,只有来自于最优路径的组播报文才会被转发,来自于非最优路径的组播报文会被丢弃。并且可以消除组播路径环路。

单播转发的时候主要关心报文往哪里去,而组播转发的时候主要关心报文从哪里来。

六、组播路由协议

组播路由协议运行在三层组播设备之间,用于建立和维护组播路由,并正确、高效地转发组播数据包。组播路由协议建立了从一个数据源端到多个接收端的无环(loop-free)数据传输路径,即组播分发树。

组播路由协议根据作用范围组可以分为

域内组播路由协议:DVMRP(Distance Vector Multicast Routing Protocol,距离矢量组播路由协议),MOSPF(Multicast Extensions to OSPF,组播扩展 OSPF 协议)和 PIM(Protocol Independent Multicast,协议无关组播)

域间组播路由协议:MSDP(Multicast Source Discovery Protocol,组播源发现协议)、MBGP(Multicast BGP,组播BGP)

域内组播路由协议根据建立的组播分发树可以分为:

基于 SPT 的组播路由协议:PIM-DM(Protocol Independent Multicast - Dense Mode,协议无关组播 - 密集模式)、DVMRP、MOSPF

基于 RPT 的组播路由协议:PIM-SM(Protocol Independent Multicast - Sparse Mode,协议无关组播 - 稀疏模式)

七、组播协议体系

组播协议主要包含主机和路由器之间的协议,路由器和路由之间的协议,以及组播域之间的协议。

主机和路由器之间的协议即组播组管理协议,IPv4 中通常使用IGMP。通过 IGMP,路由器可以了解在本地网段中,哪些组播组存在接收者,并维护组成员信息。

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

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

八、组播模型

根据接收者对组播源处理方式的不同,组播模型分为以下两类。

(1)ASM(Any-Source Multicast,任意信源组播)模型。在ASM模型中,组播接收者无法指定组播源,任意组播源发送到同一个组播组的数据,都会被网络设备传送到组播接收者。

(2)SSM(Source-Specific Multicast,指定信源组播)模型。在现实生活中,用户可能只对某些组播源发送的组播信息感兴趣,而不愿接收其他源发送的信息。SSM模型为用户提供了一种能够在客户端指定组播源的传输服务。

SSM模型与ASM模型的根本区别,在于SSM模型中的接收者已经通过其他手段预先知道了组播源的具体位置。

ASM,当接收者通过组播组管理协议加入某组播组时,并不区分组播数据的发送源。

ASM模型无法满足主机接收指定发送源发送的组播数据,如果主机收到多份来自不同发送源的相同组播组的数据,需要上层应用进行区分。

时间: 2024-08-06 07:54:57

H3C组播系列之IP组播概述的相关文章

IP组播技术介绍及实现例子

引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议.网络音频/视频广播.AOD/VOD.股市行情发布.多媒体远程教育.CSCW协同计算.远程会诊.这就带来了带宽的急剧消耗和网络拥挤问 题.为了缓解网络瓶颈,人们提出各种方案,归纳起来,主要包括以下四种: ●增加互连带宽: ●服务器的分散与集群,以改变网络流量结构,减轻主干网的瓶颈: ●应用QoS机制,把带宽分配给一部分应用: ●采用IP Multic

音视频SDK开发 IP组播技术

在Internet上,多媒体业务诸如:流媒体,视频会议和视频点播等,正在成为信息传送的重要组成部分.点对点传输的单播方式不能适应这一类业务传输特性--单点发送多点接收,因为服务器必须为每一个接收者提供一个相同内容的IP报文拷贝,同时网络上也重复地传输相同内容的报文,占用了大量资源.如图 1.1所示.虽然IP广播允许一个主机把一个IP报文发送给同一个网络的所有主机,但是由于不是所有的主机都需要这些报文,因而浪费了网络资源.在这种情况下组播(multicast)应运而生,它的出现解决了一个主机向特定

C#实现任意源组播与特定源组播

IP组播通信需要一个特殊的组播地址,IP组播地址是一组D类IP地址,范围从224.0.0.0 到 239.255.255.255.其中还有很多地址是为特殊的目的保留的.224.0.0.0到224.0.0.255的地址最好不要用,因为他们大多是为了特殊的目的保持的(比如IGMP协议). IGMP是IP组播的基础.在IP协议出现以后为了加入对组播的支持,IGMP产生了.IGMP所做的实际上就是告诉路由器,在这个路由器所在的子网内有 人对发送到某一个组播组的数据感兴趣,这样当这个组播组的数据到达后面,

如何在AnyChat中使用IP组播接口

AnyChat Platform Core SDK V4.0新增了对IP组播技术的支持,下面介绍如何使用相关的API接口,典型的加入多播组,并向多播组发送数据的代码如下: 1.// 设置本地组播策略 2.DWORD dwMultiCastPolitic = 1; 3.BRAC_SetSDKOption(BRAC_SO_NETWORK_MULTICASTPOLITIC,(const char*)&dwMultiCastPolitic,sizeof(DWORD)); 4.  5.// 加入多播组 6

音视频二次开发 IP组播技术

在Internet上,多媒体业务诸如:流媒体,视频会议和视频点播等,正在成为信息传送的重要组成部分.点对点传输的单播方式不能适应这一类业务传输特性--单点发送多点接收,因为服务器必须为每一个接收者提供一个相同内容的IP报文拷贝,同时网络上也重复地传输相同内容的报文,占用了大量资源.在这种情况下组播(multicast)应运而生,它的出现解决了一个主机向特定的多个接收者发送消息的方法.1989年,IETF通过RFC1112,定义了Internet上的组播方式. 主机组的成员可以动态变化,主机有权选

【知识强化】第四章 网络层 4.7 IP组播

这节课我们来学习一下IP组播. 首先我们来看这样一个问题,IP数据报在网络当中传输的时候,有几种传输方式呢?三种,分别是单播.广播和组播(多播).这个组播呢也叫做多播,它们俩是一个意思.那这个组播是由于在很多年前,我们之前是译成了这个组播.现在通常用的都是多播这个词,那么我们现在分别来看一下三种传输方式. 首先对于单播来说呢,单播它指的是发送这个数据报,或者说IP数据报,到单个目的地.而且每发送一份单播报文呢都要使用一个单播的IP地址作为目的地址.那这个单播IP地址呢,其实就是我们之前所讲的A.

Open-E DSS V7 应用系列之七 卷组和卷的管理

续Open-E DSS V7 应用系列之六 构建软件iSCSI 一.基本介绍 单元(Units):物理硬盘或者RAID阵列. DSS用S0,S1, ..., S[x] 代表 SATA / JBOD / RAID单元,用H0,H1, ..., H[x] 代表IDE单元,用MD0,MD1, ..., MD[x]代表软件RAIDs. 可以在一个UNIT建立卷组,也可以将一个新单元添加到一个已存在的卷组. DSS只能允许管理至少大于5G的UNITS. 卷组(Volume Group):由一个或者多个单元

Linux实际用户(组)ID,有效用户(组)ID,设置用户(组)ID

实际用户(组)ID: 标识用户是谁,这两个字段在登录时取自口令文件中的登录项. 有效用户(组)ID: 决定了对文件的访问权限,通常有效用户(组)ID等于实际用户(组)ID,谁运行有效ID就等于谁的实际ID,与文件的所有者无关. 如果设置了设置用户(组)ID位,那么有效用户(组)ID则等于文件的所有者(组)ID,这时有效ID与文件所有者ID有关了. 例如: /usr/bin/password,该程序需要写口令文件,但是口令文件只有超级用户才具有写权限,所以需要设置设置用户ID位, 那么当普通用户执

迁移ASM故障磁盘组数据库到新磁盘组

由于原有磁盘组使用的是NORMAL冗余方式.剩余的空间只有3G.数据库空间为200G.ASM磁盘组空间不足以存放数据库.而且新增的磁盘只有一块300G的盘.为避免磁盘REBALANCE出现异常.因此将300G的磁盘做成EXTERNAL冗余方式,并采用RMAN COPY的方式,将数据库迁移到新的磁盘组.迁移成功后,在将原有的3块150G的磁盘删除.并创建一个新的EXTERNAL磁盘组备用. 1  ASM识别磁盘 1.1停集群环境 原有环境中使用了多路径,裸设备映射,ASMLIB配置.ASM添加磁盘