随着internet的飞速发展,利用internet进行协作开发的项目越来越多。对某些应用而言,如分布式数据库开发,一个开发工作组有很多人需在不同的地点协作并经常交换情况。在组的规模比较小的情况下,只需点对点交换信息即可;假如组的规模比较大,点对点交换信息不管对网络还是对信息发送者,都是一种负担,代价昂贵。有时虽可用广播的方式进行处理,但假如在一个上百万节点的网络上向数千台主机进行广播是很低效的甚至是不大可能的。一则绝大部分机器对此不感爱好,造成信息垃圾;更糟糕的是,部分主机虽需要此信息但可能被误认为对此信息不感爱好而收不到此项信息。因此,我们需要一种办法让本身规模较大而相对互连网又较小的工作组能相互方便、快捷地传递信息。为此,我们引进了IP组播的概念。
1.硬件组播的含义
1.1含义
硬件组播(multicasting)是一种多点投递的形式,它使用硬件技术,通过使用大量组播地址来通信。当某一组机器需要通信时,选择一个组播地址,并配置好相应的网络接口硬件,识别组播地址,从而收到该组播地址上分组的拷贝。
1.2组播与广播、单播
广播(broadcasting)是多点投递的最普遍的形式,它向每一个目的站投递一个分组的拷贝。它可以通过多个单次分组的投递完成,也可以通过单独的连接传递分组的拷贝,直到每个接收方均收到一个拷贝为止。
在多数网络中,用户是通过把分组分送给一个非凡保留的地址即广播地址(broadcastaddress)来进行广播投递,它的主要缺点是会耗费大量的主机资源和网络资源。
单播(unicasting)是指只有一个目的地的数据报传递。从投递目的地的数量而言,单播和广播均可看作是组播的一个子集。单播可以看作仅包括一台机器群组的组播;广播可以看作包含了所有机器群组的组播。但从数据报的投递方式而言,单播、广播和组播还是有较大的区别。
2.IP组播的基本概念
2.1含义
IP组播(IPmulticasting)是对硬件组播的抽象,是对标准IP网络层协议的扩展。它通过使用特定的IP组播地址,按照最大投递的原则,将IP数据报传输到一个组播群组(multicastgroup)的主机集合。它的基本方法是:当某一个人向一组人发送数据时,它不必将数据向每一个人都发送数据,只需将数据发送到一个特定的预约的组地址,所有加入该组的人均可以收到这份数据。这样对发送者而言,数据只需发送一次就可以发送到所有接收者,大大减轻了网络的负载和发送者的负担。
2.2IP组播成员
IP组播中各个成员可以不受地域的限制,分布于各个独立的物理网络上,其关系也是动态的,一台主机可以在任何时候加入或者退出某个群组,也可以是任意群组的成员,其成员关系决定了该主机是否接收发送给该群组的组播数据报;同时,不是某个群组的成员也可以向某个群组发送组播数据报,使之具有更大的灵活性。
参与组播的主机可以分为三个级别:
级别0:主机不能收、不能发IP组播数据报
级别1:主机只能发、不能收IP组播数据报
级别2:主机既能收、也能发IP组播数据报
级别0的主机不受组播收发数据报的影响,唯一的例外是在某些类型的局域网,级别1或级别2的主机可能将组播数据报误送给级别0的主机(这种情况将在3.2.1中讨论),级别0的主机需要仔细检查所有到达的数据报的目的IP地址(主机对任何数据报均需这样),丢弃误投的数据报。
级别1的主机可以分享部分基于组播的服务,比如资源定位、状态报告、发送IP组播数据报,但不能加入到任何主机组。一个主机仅需极少数代码就可以从级别0升级到级别1,即IP软件答应某个应用程序指定一个组播地址作为其目的IP地址,并将组播地址映射为相应网络的硬件组播地址(具体映射方法在3.2中讨论)
级别2的主机可以可以使用IP组播所有功能,除可以使用级别1主机所能使用的功能外,可以自由加入和离开主机组、可以发送IP组播数据报等。要实现此功能,它要求实现internet群组治理协议(internetgroupmanagementprotocol,简称IGMP)、IP扩展和主机的本地网络服务接口。
.IP组播地址
3.1基本概念
3.1.1定义
根据internetNIC关于IP地址的规定,IP地址共分为A-E共5类,其中A-C类目前应用的普通IP地址,E类地址保留为将来使用,D类地址即为组播地址,其网络号为固定的1110(第0~3位),第4~31位定义了某一非凡的组播地址,范围为224.0.0.0~239.255.255.255,共有228个约27亿个地址。
IP组播地址仅能作为目的地址。它们不能作为数据报的源字段或者出现在源路由和路由记录选项中。
3.1.2分类
IP组播地址由internetNIC负责治理,和协议端口一样,有一部分是保留的,仅供非凡群组成员使用,不管有无成员,该地址均要保留,这部分地址称为知名(well-known)地址;其余地址则不一样,仅供临时使用,被称为临时组播群组(transientmulticastgroup),可以按需创建,成员可以动态调整,但在成员数目为0时撤销。
3.1.3部分知名IP组播地址
如上所述,IP组播地址范围是224.0.0.0~239.255.255.255,下面列出部分知名或已用的IP组播地址。实际上,224.0.0.0---224.2.255.255的绝大部分地址已被使用,建议使用时避开上述地址(具体使用情况请参阅RFC1700)。
224.0.0.0基础地址,保留,不能被任何群组使用
224.0.0.1全主机群组(allhostsgroup),指参加本IP组播的所有主机、路由器、网关(不是指整个互连网)
224.0.0.2本子网上的路由器(allroutersonaLAN)
224.0.0.4DVMRP*路由器(DVMRPRouters)
224.0.0.5本子网上的OSPF*路由器(allOSPFroutersonaLAN)
224.0.0.6本子网上被指定的OSPF路由器(alldesignatedOSPFroutersonaLAN)
224.0.1.1网络时间协议(NetworkTimeProtocol,NTP)
224.0.5.000-224.0.5.127蜂窝式数字信息包数据发送主机组(CDPDGroups)
224.1.0.0-224.1.255.255基于流的协议组播主机组(StreamProtocolMulticastGroups)
224.2.0.0-224.2.255.255多媒体会议呼叫(MultimediaConferenceCalls)
*注:DVMRP是Distancevectormulticastroutingprotocol的缩写,意为距离矢量组播选路协议,是用来生成组播路由;OSPF是openshortestpathfirst,意为开放最短路径最先,是IETF设计的一种路由协议。
3.2IP组播地址与网络硬件组播地址的映射
3.2.1IP组播地址与以太网硬件组播地址的映射
3.2.1.1映射方法
以太网硬件地址是48位,而IP地址是32位,有效IP组播地址是28位,以太网支持IP组播地址到以太网组播地址的映射,他们之间的映射很巧妙而简单,主要规则如下:
将IP组播地址的低23位简单地代替特定的以太网地址01.00.5e.00.00.00(16进制)中的低23位。
例如:IP组播地址224.66.60.89(16进制,其2进制为:11100000.01000010.00111100.01011001)映射到以太网的地址为:01.00.5e.66.60.89(16进制)。
按此规则,IP组播地址范围为224.0.0.0~239.255.255.255,映射到以太网组播地址为01.00.5E.00.00.00~01.00.5E.7F.FF.FF
这样做一是因为映射方法简单,便于计算和实现;二是可以包括绝大部分组播地址了;三是IP组播地址映射后仅使用以太网地址的固定部分,有利于排错和查找,不易与其它使用以太网的协议发生冲突和干扰。
3.2.1.2不同IP组播地址映射到相同以太网地址的讨论
在IP组播地址映射到以太网地址的过程中,有人可能发现一个有趣的现象,多个不同的IP组播地址映射到了相同的以太网地址。例如:IP组播地址225.118.100.100和226.246.100.100映射到以太网的地址均为01.00.94.118.100.100。这是为什么呢,下面从机理上作一分析:
由于IP组播地址的有效位为28位,而映射到以太网时仅取低23位(第9~31位),高5位(实际是IP组播地址的第4~8位,下同)的地址信息在映射过程实际上是没有用而被丢掉了,这样假如低23位地址信息一样,则不管高5位地址的值是多少,其映射的以太网地址都是一样的。如下图:
IP组播地址:1110gggggddddddddddddddddddddddd
----------------------------------
组播地址的网络ID高5位低23位
高9位映射时信息均被丢掉映射时直接代替特定以太网地址的低23位
那么,任意两个IP组播地址映射到以太网地址时,其地址相同的概率为多少呢?
任意两个IP组播地址假如低23位相同,则不管高5位的值是否相同,二者映射的以太网地址都是一样的,低23位相同的可能性为,高5位的2进制组合有25种,这样可知:
任意两个IP组播地址映射到以太网地址时,其地址相同的概率P=,很小,约为百万分之3.8,所以这种映射方法还是相当可靠的。
3.2.2IP组播地址与其它网络组播地址的映射
环形网和总线网根据IEEE802.2标准,直接支持组播,和以太网一样直接处理组播。对于支持网络广播而不支持组播的网络,如实验以太网,则将IP组播地址简单映射为本地广播地址,不过这样增加了本地网络主机的开销。点对点连接的两台主机(或者一台主机和支持组播的路由器),组播数据报直接投递。对存储转发网络(store-andforwardnetwork),如ARPANET或者公用X.25网络,IP组播地址映射为本地的知名IP组播路由器。
4实现IP组播的基本模型
要实现IP组播要对IP服务接口、IP模块、本地网络服务接口以及本地网络模块分别进行扩展。
5IP组播的应用
由于IP组播能有效减少网络和主机开销,较单播和广播有其独特优越性,因此,IP组播已经得到了广泛的应用,主要有几个方面:1、基于因特网的视频组播。这方面的应用很广泛,如实时视频会议系统、远程教学系统、远程演示系统和视频点播系统(VOD)等等。2、非凡互联网工作组(Specialinternetgroup,简称SIG)。它是由世界各地的具有共同爱好的人组成,可以包括体育、音乐、计算机软件、硬件等一切可以引起共同爱好的东西。比较有名的有E-MAIL讨论组和ACM的技术讨论组。
6部分IP组播相关的网址
如对IP组播的有关问题想进一步钻研,读者可以到以下站点查阅有关资料。
www.rfc-editor.org一个集全部RFC文档之精华的站点,不过是全英文的,读者需要一定英文基础
www.rfcsite.yeah.net一个RFC文档的中文界面站点,具体内容仍是英文
www.rfc.at.china.com一个RFC文档的全中文站点,不过中文的RFC文档不是很多
www.ieee.orgIEEE的官方站点,有很多有关组播的学术论文,也是全英文的
本文主要阐述了IP组播的产生背景、概念、地址及应用等基本情况,其应用前景极为广阔。由于篇幅所限,对IP组播的许多问题如IGMP、IP组播数据报的发送和接收、路由协议、服务质量(QOS)的保证、在非组播路由器中的投递等均没有讨论,有爱好的读者可进一步参阅有关书籍或者RFC文档。