每次碰到组播都觉得头疼,该好好整理整理。

当IP网络中的某些主机(即Receiver)需要信息时,若采用组播的方式,组播源(即Source)仅需发送一份信息,借助组播路由协议建立组播分发树,被传递的信息在距离组播源尽可能远的网络节点才开始复制和分发。

组播(Multicast)技术能够有效地解决单点发送、多点接收的问题,广播只能在同一网段中进行,而组播可以实现跨网段的传输。


组播传输的特点归纳如下:
z  “组播组”是一个用IP组播地址进行标识的接收者集合,主机通过加入某组播组成为该组播
组的成员,从而可以接收发往该组播组的组播数据。组播源通常不需要加入组播组。
z  信息的发送者称为“组播源”,如图中的Source。一个组播源可以同时向多个组播组发
送信息,多个组播源也可以同时向一个组播组发送信息。
z  所有加入某组播组的主机便成为该组播组的成员,如图中的Receiver。组播组中的成员是
动态的,主机可以在任何时刻加入或离开组播组。组播组成员可以广泛地分布在网络中的任
何地方。
z  支持三层组播功能的路由器或三层交换机统称为“组播路由器”或“三层组播设备”。组播
路由器不仅能够提供组播路由功能,也能够在与用户连接的末梢网段上提供组播组成员的管
理功能。组播路由器本身也可能是组播组的成员。

开启android组播权限 组播 设置_开启android组播权限

对于IP组播,需要关注下列问题:
z  组播源将组播信息传输到哪里?即组播寻址机制;
z  网络中有哪些接收者?即主机注册;
z  这些接收者需要从哪个组播源接收信息?即组播源发现;
z  组播信息如何传输?即组播路由。
IP组播属于端到端的服务,组播机制包括以下四个部分:
(1)  寻址机制:借助组播地址,实现信息从组播源发送到一组接收者;
(2)  主机注册:允许接收者主机动态加入和离开某组播组,实现对组播成员的管理;
(3)  组播路由:构建组播报文分发树(即组播数据在网络中的树型转发路径),并通过该分发树
将报文从组播源传输到接收者;
(4)  组播应用:组播源与接收者必须安装支持视频会议等组播应用的软件,TCP/IP协议栈必须支
持组播信息的发送和接收。


 组播地址
为了让组播源和组播组成员进行通信,需要提供网络层组播地址,即IP组播地址。同时必须存在一
种技术将IP组播地址映射为链路层的组播MAC地址。
1. IP组播地址
(1) IPv4组播地址
IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)将D类地址空间分配给IPv4
组播使用,范围从224.0.0.0到239.255.255.255

开启android组播权限 组播 设置_IP_02


 IPv4组播MAC地址
IANA规定,IPv4组播MAC地址的高24位为0x01005E,第25位为0,低23位为IPv4组播地址的
低23位。

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


开启android组播权限 组播 设置_组播_03

1. 三层组播协议
三层组播协议包括组播组管理协议和组播路由协议两种类型

(1)  组播组管理协议
在主机和与其直接相连的三层组播设备之间通常采用组播组的管理协议IGMP(Internet Group 
Management Protocol,互联网组管理协议)或MLD(Multicast Listener Discovery Protocol,组
播侦听者发现协议),该协议规定了主机与三层组播设备之间建立和维护组播组成员关系的机制。
(2)  组播路由协议
组播路由协议运行在三层组播设备之间,用于建立和维护组播路由,并正确、高效地转发组播数据
包。组播路由建立了从一个数据源端到多个接收端的无环(loop-free)数据传输路径,即组播分发
树。

2. 二层组播协议
二层组播协议包括IGMP Snooping/MLD Snooping和组播VLAN/IPv6组播VLAN等

(1)  IGMP Snooping/MLD Snooping 
IGMP Snooping(Internet Group Management Protocol Snooping,互联网组管理协议窥探)和
MLD Snooping(Multicast Listener Discovery Snooping,组播侦听者发现协议窥探)是运行在二
层设备上的组播约束机制,通过窥探和分析主机与三层组播设备之间交互的IGMP 或MLD报文来
管理和控制组播组,从而可以有效抑制组播数据在二层网络中的扩散。
(2)  组播VLAN/IPv6组播VLAN 
在传统的组播点播方式下,当连接在二层设备上、属于不同VLAN的用户分别进行组播点播时,三
层组播设备需要向该二层设备的每个VLAN分别发送一份组播数据;而当二层设备运行了组播
VLAN或IPv6组播VLAN之后,三层组播设备只需向该二层设备的组播VLAN或IPv6组播VLAN
发送一份组播数据即可,从而既避免了带宽的浪费,也减轻了三层组播设备的负担。