组播技术指的是单个发送者对应多个接收者的一种
网络通信。组播技术中,通过向多个接收方传送单
信息流方式,可以减少具有多个接收方同时收听或查看相同资源情况下的网络
通信流量。对于 n 方视频会议,可以减少使用 a(n-1)倍的带宽长度。“
组播”中较为典型的是采用
组播地址的
IP组播。IPv6 支持
单播(
Unicast)、组播(Multicast)以及
任意播(
Anycast)三种类型,IPv6中没有关于广播(Broadcast)的具体划分,而是作为组播的一个典型类型。此外组播定义还包括一些其它协议,如使用“点对多点”或“多点对多点”连接的异步传输协议(ATM)。组播技术基于“组”这样一个概念,属于接收方专有组,主要接收相同
数据流。该接收方组可以分配在
英特网的任意地方。
组播技术涵盖的内容相当丰富,从地址分配、组成员管理,到
组播报文转发、路由建立、可靠性等诸多方面。下面首先介绍
组播协议体系的
整体结构,之后从
组播地址、组播成员管理、组播报文转发、域内组播路由和域间组播路由等几个方面介绍有
代表性的协议和机制。
传统的
IP通信有两种方式:第一种是在一台源 IP主机和一台目的 IP主机之间进行,即
单播(
unicast);第二种是在一台源 IP 主机和网络中所有其它的 IP 主机之间进行,即广播(broadcast)。如果要将信息发送给网络中的多个主机而非所有主机,则要么采用广播方式,要么由源主机分别向网络中的多台目标主机以
单播方式发送 IP 包。采用广播方式实现时,不仅会将信息发送给不需要的主机而浪费带宽,也可能由于路由回环引起严重的
广播风暴;采用单播方式实现时,由于 IP 包的重复发送会白白浪费掉大量带宽,也增加了服务器的负载。所以,传统的单播和广播通信方式不能有效地解决单点发送多点接收的问题。
IP
组播是指在 IP 网络中将
数据包以尽力传送(best-effort)的形式发送到网络中的某个确定节点子集,这个子集称为
组播组(multicast group)。IP 组播的基本思想是,源主机只发送一份数据,这份数据中的目的地址为组播组地址;组播组中的所有接收者都可接收到同样的数据拷贝,并且只有组播组内的主机(目标主机)可以接收该数据,网络中其它主机不能收到。组播组用 D 类 IP 地址(224.0.0.0 ~ 239.255.255.255)来标识。
根据协议的
作用范围,
组播协议分为主机-路由器之间的协议,即组播成员管理协议,以及路由器-路由器之间协议,主要是各种
路由协议。组成员关系协议包括
IGMP(互连网组管理协议);组播路由协议又分为域内组播路由协议及域间组播路由协议两类。域内组播路由协议包括
PIM-SM、
PIM-DM、
DVMRP 等协议,域间组播路由协议包括
MBGP、
MSDP 等协议。同时为了有效抑制组播数据在二层网络中的扩散,引入了 IGMP Snooping 等二层组播协议。
通过 IGMP 和二层组播协议,在路由器和交换机中建立起直联网段内的组成员关系信息,具体地说,就是哪个接口下有哪个
组播组的成员。域内
组播路由协议根据 IGMP 维护的这些组播组成员关系信息,运用一定的组播
路由算法构造组播分发树,在路由器中建立组播路由状态,路由器根据这些状态进行组播
数据包转发。域间组播路由协议根据网络中配置的域间组播
路由策略,在各
自治系统(AS,Autonomous System)间发布具有组播能力的路由信息以及组播源信息,使组播数据能在域间进行转发。
IP 组播技术有效地解决了单点发送多点接收的问题,实现了 IP 网络中点到多点的高效
数据传送,能够大量节约
网络带宽、降低网络负载。作为一种与
单播和广播并列的
通信方式,
组播的意义不仅在于此。更重要的是,可以利用网络的组播特性方便地提供一些新的
增值业务,包括在线直播、
网络电视、
远程教育、
远程医疗、
网络电台、实时视频会议等互联网的
信息服务领域。
组播从 1988 年提出到现在已经经历了十几年的发展,许多国际组织对组播的
技术研究和业务开展进行了大量的工作。随着互联网建设的迅猛发展和新业务的不断推出,组播也必将走向成熟。尽管端到端的全球组播业务还未大规模开展起来,但是具备
组播能力的网络数目在增加。一些主要的 ISP 已运行域间组播
路由协议进行组播路由的交换,形成组播对等体。在 IP 网络中
多媒体业务日渐增多的情况下,组播有着巨大的
市场潜力,组播业务也将逐渐得到推广和普及。