随着internet的飞速发展,利用internet进行协作开发的项目越来越多。对某些应用而言,如分布式数据库开发,一个开发工作组有很多人需在不同的地点协作并经常交换情况。在组的规模比较小的情况下,只需点对点交换信息即可;如果组的规模比较大,点对点交换信息不管对网络还是对信息发送者,都是一种负担,代价昂贵。有时虽可用广播的方式进行处理,但如果在一个上百万节点的网络上向数千台主机进行广播是很低效的甚至是不大可能的。一则绝大部分机器对此不感兴趣,造成信息垃圾;更糟糕的是,部分主机虽需要此信息但可能被误认为对此信息不感兴趣而收不到此项信息。因此,我们需要一种办法让本身规模较大而相对互连网又较小的工作组能相互方便、快捷地传递信息。为此,我们引进了IP组播的概念。
1.硬件组播的含义
1.1 含义
硬件组播(multicasting)是一种多点投递的形式,它使用硬件技术,通过使用大量组播地址来通信。当某一组机器需要通信时,选择一个组播地址,并配置好相应的网络接口硬件,识别组播地址,从而收到该组播地址上分组的拷贝。
1.2 组播与广播、单播
广播(broadcasting)是多点投递的最普遍的形式,它向每一个目的站投递一个分组的拷贝。它可以通过多个单次分组的投递完成,也可以通过单独的连接传递分组的拷贝,直到每个接收方均收到一个拷贝为止。
在多数网络中,用户是通过把分组分送给一个特殊保留的地址即广播地址(broadcast address)来进行广播投递,它的主要缺点是会耗费大量的主机资源和网络资源。
单播(unicasting)是指只有一个目的地的数据报传递。从投递目的地的数量而言,单播和广播均可看作是组播的一个子集。单播可以看作仅包括一台机器群组的组播;广播可以看作包含了所有机器群组的组播。但从数据报的投递方式而言,单播、广播和组播还是有较大的区别。
2.IP组播的基本概念
2.1 含义
IP组播(IP multicasting)是对硬件组播的抽象,是对标准IP网络层协议的扩展。它通过使用特定的IP组播地址,按照最大投递的原则,将IP数据报传输到一个组播群组(multicast group)的主机集合。它的基本方法是:当某一个人向一组人发送数据时,它不必将数据向每一个人都发送数据,只需将数据发送到一个特定的预约的组地址,所有加入该组的人均可以收到这份数据。这样对发送者而言,数据只需发送一次就可以发送到所有接收者,大大减轻了网络的负载和发送者的负担。
2.2 IP组播成员
IP组播中各个成员可以不受地域的限制,分布于各个独立的物理网络上,其关系也是动态的,一台主机可以在任何时候加入或者退出某个群组,也可以是任意群组的成员,其成员关系决定了该主机是否接收发送给该群组的组播数据报;同时,不是某个群组的成员也可以向某个群组发送组播数据报,使之具有更大的灵活性。
参与组播的主机可以分为三个级别: