一.组播概述

1. 组播定义

单播、组播、广播是计算机网络上三种基本的通信方式。
单播是相互感兴趣的主机双方进行通信的方式,主机不能接收对其不感兴趣的其它主机发送的信息,属于点对点通信。
广播是主机向子网内所有主机发送信息,子网内所有主机都能收到来自某台主机的广播信息,属于点对所有点的通信。
组播则介于两者之间,是主机向一组主机发送信息,存在于某个组的所有主机都可以接收到信息,属于点对多点通信。
从这个意义上讲,广播可以认为是组范围最大化的组播。当然,二者还是存在显著区别的:首先,广播被限制在子网内,不会被路由器转发。其次,主机被默认为是接收者,而组播方式则需要主机主动加入。

解决点到多点的通信,可以通过单播和组播方式实现。
单播可以通过建立多个点对点的连接来达到点对多点的传输。 这种方式将在源点(服务器)与各个接收点建立连接,从服务器开始,就将有多份数据流分别流向分散的接收点。这种方式将加重服务器的负荷,增大对服务器性能的要求;同时还在网络中造成大流量,从而增加网络的负载,导致网络拥塞。
组播则不然,发送方仅发一份数据包,此后数据包只是在需要复制分发的地方才会被复制分发,每一网段中都将保持只有一份数据流。这样就可以减轻服务器的负担,节省网络带宽。
接下来,看看在哪些环境适合使用组播技术。本课程只介绍IP实现的组播

2. 组播应用

IP组播最早的应用是音频/视频会议。但音频/视频会议只是众多IP组播应用之一。除此之外,还包括数据分发,实时数据组播,以及游戏和仿真应用等。
一些出色的IP组播,用于多媒体会议的工具最先在UNIX环境下被开发出来。这些工具允许通过IP组播实现多对多的音频/视频会议。除音频与视频工具之外,还有基于UNIX的白板工具被开发出来,它允许用户共享公共的电子白板。但是由于带宽和工作站、路由器处理能力的限制,最后只有音频会议得到了广泛应用。但音频会议和基于IP组播的数据共享应用相结合(如先前提到的白板工具),提供了一个功能非常强大的多媒体会议系统,而它并不消耗很多的带宽,同时这也适用于网络教学。

数据分发是IP组播应用的另一个领域,并且非常实用。通过使用IP组播,在可靠组播区域内,允许将文件和数据传送到各个网络节点。这就允许大型跨国公司每天都可以向它们的远程子公司发布新的信息,比如向连锁零售店发布产品相关信息。

对大主机组的实时数据传送是使IP组播受欢迎的有益应用领域。一个好的例子是实时音频/视频点播。网络用户可以通过网络收看现场足球比赛、现场演唱会等。还有,就是将股票信息发送到交易大厅的工作站。通过指定不同的财务分类(债券、运输、药品等)给不同的组播组,交易员可以使用他们的工作站来接收他们感兴趣的实时金融数据。

IP组播非常适合于网络游戏和仿真应用。现在,很多网络游戏使用单播 ,是点到点的连接。这对于PC机或工作站的处理能力而言是N2数量级的负担,这样的游戏通常只有5到10个玩家。即便是参与者都连接到服务器上,由于受限于服务器的处理能力,通常也只能容纳100个玩家。
IP组播可用于有大量参与者的游戏与仿真。PC机或工作站只需进入IP组播组就可以接收游戏或仿真数据。通过把数据分成多个信息流,分属不同的组播组,PC机或工作站还可以对他们当前参加的游戏或仿真所需要的收发做出限制。
在不久的将来,成千上万的玩家通过互联网在仿真游戏里同时战斗将不再是不可思议的事。

3. 组播技术的特点

IP组播技术有效地解决了单点发送多点接收、多点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送,能够有效地节约网络带宽、减轻服务器及网络的负载。因此具有增强效率,优化性能,分布式应用等优点。
由于IP组播是基于UDP的,所以IP组播也可能有信息包传送不可靠、信息包重复、信息包不按序到达、无流量控制等缺点。

二.组播实现技术介绍

1.组播体系结构

组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。
域内组播路由协议包括MOSPF,CBT,PIM-SM、PIM-DM、DVMRP等协议,域内的组播协议又分为密集,与稀疏模式的协议。DVMRP,PIM-DM,MOSPF属于密集模式,CBT,PIM-SM属于稀疏模式。由于MOSPF的扩展性很差,并且过于复杂,很少被实现,并且不支持隧道,已经被抛弃。CBT简单,但端到端的性能无法满足,不适于用在全网性的组播应用中。故在域内,主要使用PIM-SM,PIM-DM,DVMRP协议。
针对域间组播路由有两类解决方案:短期方案和长期方案。短期方案包括三个协议MBGP/MSDP/PIM-SM:MBGP(组播边缘网关协议),用于在自治域间交换组播路由信息;MSDP(组播信源发现协议),用于在ISP之间交换组播信源信息;以及域内组播路由协议PIM-SM。长期方案目前讨论最多的是MASC/MBGP/BGMP,它建立在现有的组播业务模型上,其中MASC实现域间组播地址的分配、MBGP在域间传递组播路由信息、BGMP完成域间路由树的构造。此外还有一些组播路由策略,如PIM-SSM(特定信源协议无关组播)等,建立在其它的组播业务模型上。目前仅短期方案MBGP/MSDP/PIM-SM是成熟的,并在许多的运营商中广泛使用。其他方案的标准还在研究中。
同时为了有效抑制组播数据在链路层的扩散,引入了IGMP Snooping、HGMP,HMVR,RGMP,GMRP等二层组播协议。
IGMP建立并且维护路由器直联网段的组成员关系信息。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树进行组播数据包转发。域间组播路由协议在各自治域间发布具有组播能力的路由信息以及组播源信息,以使组播数据在域间进行转发。

2.组播地址

组播数据IP报文的目的地址是特殊的IP地址,称之为组地址。每一个加入到该组的主机都敏感该组地址并接收以该组地址为目的地址的IP报文。组播地址都以0x1110开始。
众所周知,IP地址可分为A、B、C、D、E五类。IANA(互联网编号授权委员会)把D类地址空间分配给IP组播。即:从224.0.0.0到239.255.255.255为IP组播地址的范围。 IANA控制着IP组播地址的分配。并不是所有的D类地址都可以分配给用户,IANA预留了两个地址范围:224.0.0.0~224.0.0.255和239.0.0.0~239.255.255.255。前一个地址范围的所有地址都有特殊用途,如:224.0.0.1表示所有组播成员(包括路由器),224.0.0.2表示所有组播路由器。可以向IANA就某个特殊用途申请专用IP组播地址,如:224.0.0.13表示所有PIM路由器。后一个地址范围作为用于私人组播领域的管理权限地址,犹如单播的10.x.x.x/8等私有地址网段。
组播IP地址在网络层解决了如何寻址的问题,但通信最终还要依赖于数据链路层和物理层。因此组播在数据链路层如何寻址?
在物理层,也有专门的MAC地址被用于组播。就以太网而言,以0x01005Exx.xxxx的24位前缀开始的MAC层地址都是组播地址。
组播有了网络地址、物理地址,还需要建立IP地址到MAC地址的映射。