当前位置:文档之家› 组播路由协议原理

组播路由协议原理

课程

组播路由协议原理

组播路由协议原理目录

目录

课程说明 (1)

课程介绍 (1)

课程目标 (1)

第1章组播概述 (2)

1.1 组播定义 (2)

1.2 组播应用 (4)

1.3 组播技术的特点 (8)

第2章组播实现技术介绍 (9)

2.1 组播体系结构 (9)

2.2 组播地址 (11)

2.3 IP地址到MAC地址的映射 (12)

2.4 IP组播数据包的转发 (13)

2.5 组播数据包的二层交换 (17)

组播路由协议原理课程说明

课程说明

课程介绍

本课程主要介绍组播的相关技术。IP组播是一种保存带宽的技术,它采用的

方式是把一个单独的信息流同时传送到许多接收者那里,从而减少了网络的

流量。

当信息(包括数据、语音和视频)传送的目的地址是网络中的少数用户时,传统上经常采用单播和广播两种传送方式。采用单播(Unicast)的方式,

需要为每个用户单独建立一条数据传送通路;采用广播(Broadcast)的方式,

则需要把信息传送给网络中的所有用户,不管他们是否需要,都会接收到广

播来的信息。以上两种方式都浪费了大量宝贵的带宽资源,而且广播方式也

不利于信息的安全和保密。而组播很好的解决了这个问题。

课程目标

完成本课程的学习后,您应该能够:

●掌握组播的基本概念

●掌握IGMP协议原理

●掌握组播路由协议原理

第1章组播概述

1.1 组播定义

单播、组播、广播是计算机网络上三种基本的通信方式。

单播是相互感兴趣的主机双方进行通信的方式,主机不能接收对其不感兴趣

的其它主机发送的信息,属于点对点通信。

广播是主机向子网内所有主机发送信息,子网内所有主机都能收到来自某台

主机的广播信息,属于点对所有点的通信。

组播则介于两者之间,是主机向一组主机发送信息,存在于某个组的所有主

机都可以接收到信息,属于点对多点通信。

从这个意义上讲,广播可以认为是组范围最大化的组播。当然,二者还是存

在显著区别的:首先,广播被限制在子网内,不会被路由器转发。其次,主

机被默认为是接收者,而组播方式则需要主机主动加入。

解决点到多点的通信,可以通过单播和组播方式实现。

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

接下来,看看在哪些环境适合使用组播技术。本课程只介绍IP实现的组播。

1.2 组播应用

IP组播最早的应用是音频/视频会议。但音频/视频会议只是众多IP组播应用

之一。除此之外,还包括数据分发,实时数据组播,以及游戏和仿真应用等。

一些出色的IP组播,用于多媒体会议的工具最先在UNIX环境下被开发出来。

这些工具允许通过IP组播实现多对多的音频/视频会议。除音频与视频工具之

外,还有基于UNIX的白板工具被开发出来,它允许用户共享公共的电子白板。

但是由于带宽和工作站、路由器处理能力的限制,最后只有音频会议得到了

广泛应用。但音频会议和基于IP组播的数据共享应用相结合(如先前提到的

白板工具),提供了一个功能非常强大的多媒体会议系统,而它并不消耗很多

的带宽,同时这也适用于网络教学。

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

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

íèé?íè????

μ¤?§?÷???ì

???ì

???ì???ì

???ì

IP组播非常适合于网络游戏和仿真应用。现在,很多网络游戏使用单播,是点到点的连接。这对于PC机或工作站的处理能力而言是N2数量级的负担,这样的游戏通常只有5到10个玩家。即便是参与者都连接到服务器上,由于受限于服务器的处理能力,通常也只能容纳100个玩家。

IP组播可用于有大量参与者的游戏与仿真。PC机或工作站只需进入IP组播组就可以接收游戏或仿真数据。通过把数据分成多个信息流,分属不同的组播组,PC机或工作站还可以对他们当前参加的游戏或仿真所需要的收发做出限制。

在不久的将来,成千上万的玩家通过互联网在仿真游戏里同时战斗将不再是不可思议的事。

1.3 组播技术的特点

?°-¤???°???°?

●í?°?

è??á1ê§??£?1?Dà?÷???e?1£????ò?úè?àe′?CPU2′??

èí?μ?ê???£?é??ù?e?1??í-

è?D-??·í¥í?£??3±-°?ˉ¨????è§1???

●?a°?

è?°-¤í¥í?μ?íóUDP

è???éˉ????¥·μ2±

èè×í°??1?Dà

è?ù???óD?2ˉ

è?ù???ó°?è×ê?·μ2±

IP组播技术有效地解决了单点发送多点接收、多点发送多点接收的问题,实

现了IP网络中点到多点的高效数据传送,能够有效地节约网络带宽、减轻服务

器及网络的负载。因此具有增强效率,优化性能,分布式应用等优点。

由于IP组播是基于UDP的,所以IP组播也可能有信息包传送不可靠、信息

包重复、信息包不按序到达、无流量控制等缺点。

第2章组播实现技术介绍

2.1 组播体系结构

?°-¤??é°·?3

●?°-¤êaì°?Dè§Deμò-??í?àeD???°??°???a3?é°êaì°′???í?àe-??í?àeD???

°??°-¤??í?êaì°?£

●?°???a3?é°êaì°?óo¨IGMP(μ¤???÷?°3?oíêaì°)?£?°-¤??í?êaì°?Dè§í?

?ó?°-¤??í?êaì°??í????°-¤??í?êaì°?£

●í??ó°??°-¤êaì°íD?Dè§?????£?·íèé??ˉ?£?·?£í??ó?°-¤??í?êaì°Deì§

?3í?PIM-SM£?PIM-DM£?DVMRPêaì°?£

组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组

播路由协议。组成员关系协议包括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.2 组播地址

°-¤°?D?

?

°-¤IP°?D?£′

?

●?°-¤°?D??±è§

è224.0.0.0£a239.255.255.255

●a£???°-¤°?D?

è224.0.0.0£a224.0.0.255

●a?°?3?oí?°°?D?

è239.0.0.0£a239.255.255.255

●í?μ§?°-¤°?D?

è224.0.1.0£a238.255.255.255

°-¤MAC°?D?£′

?

èì??¨?÷£′01-00-5e-xx-xx-xx

组播数据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地址的映射。

2.3 IP 地址到MAC 地址的映射 IP °?D?°·MAC °?D?°?í???

1110

0000000100000000010111100

IP ?°-¤°?D?′?23èμ

í???°·MAC °?D?Dê

32èμIP ?°-¤°?D?48èμMAC °?D?£¨ì??¨?÷/FDDI £|

ˉ?5èμ°?D?-μ?eí???£?ì?ˉ?322?IP

?°-¤°?D?í?????ìμ2?MAC °?D?

在以太网中,第3层的IP 组播地址信息的全部28位不能映射进入只有23位的第2层MAC 地址空间,所以在映射过程中丢失5位地址信息,导致32:1的地址不明确。这意味着一个IEEE MAC 地址能表示32个IP 组播地址。主机C 必须考察每一个收到帧的IP 部分才能确定是不是需要的组播信息。

为什么只有23位MAC 地址参与了映射而不是24位?这里有一个有趣的故事:回到20世纪90年代初,Steve Deering 是最早从事组播研究的工程师之一,并且取得了一些研究成果。他希望IEEE 能分配16个连续的组织机构唯一性标识符(OUI )作为IP 组播的MAC 地址使用。一个OUI 包含24位地址空间,16个连续的OUI 正好有28位地址空间。这样就可以将IP 组播地址一一映射到MAC 地址中。但是,当时一个OUI 的价格是1000美元,Steve 的经理,Jonh Postel 不愿意花16000美元购买全部28位MAC 地址。相反,Jonh 愿意在预算外花1000美元购买一个OUI ,并且拿出一半地址(23位)给Steve 供IP 组播研究之用。

2.4 IP组播数据包的转发

§?

?

°-¤?

●??é????±?§?¢(RPF--Reverse Path Forwarding)

è?°-¤?ó°??§?¢-μ?áμ?íóIP?ó°??1°?°?D?°?£?±÷?áí?RPF?ì-°??±¨?á

ó

¢′?±§àò???èê?é¢?

?

??

§?

èRPF?ì-°°?3ù????é?£′

???í?àe?ì-°°·ˉê?°-¤?ó°??ˉ°?D?£???3?ê?é¢?ó?á?ó1??°μ??ˉ

§?

μ?

óa

??°?°?·í1ó?é°·ˉê£???RPF?ì-°??3¥£?ê?é¢?

???3?RPF?ì-°?§??£?±§àòê?é¢?ó

●±??°-¤?ó?ˉ°?D?°??ì-°?á?¨3ù-°??°¤-¤??í?aíoˉ?°éD°?

在单播中,数据转发的依据是数据包的目的地址.该目的地址明确表示了一

个主机位置。路由器(声明:三层交换机具有与路由器同样的路由功能,只

不过转发速度更快。所以,三层交换机的组播实现与路由器的组播实现在IP

层完全一致。本课程中,路由器亦即三层以太网交换机。以下将以路由器为

例介绍组播)组播必须工作在查找单播路由表获得到目的地址的路径和本地

出接口。

但在组播中,这种方式显然不行。因为组播数据包中的目的地址是组地址而

不是一个明确的主机地址;并且在与路由器相连的每条路径上或者说每个接

口都可能有组成员。

因此,组播数据转发将采用逆向数据转发.即:对到达的组播数据包作逆向

检查(Reverse Path Forward检查),判断数据包是否是从指向源站点的接口(指

向源的接口是根据单播路由获得的,亦即单播路由的目的网络)上到达;如

果是,逆向检查成功,数据包被转发;否则,数据包就被丢弃。

où?í£′RPF?ì-°

?ˉ·í????192.18.0.32

RPF?ì-°?§??£??ù???ó

ˉíˉíè?·í1ó°·ˉê

·í????

·í????

?°-¤?ù???ó

ˉíè?·í1ó°·ˉê°?

?°-¤?ù???ó

根据单播路由表,来自源192.18.0.32的组播包应从左边接口到达.现在有数据包从中间接口到达.这样的数据包RPF检查失败,数据包被丢弃而不予转发.下面再仔细看看RPF检查过程:

·÷ìμ-·3?-ì£′RPF?ì-°?§??

S1

S0

S2

oˉ??192.18.0.32°??°-¤?ù???÷±è·í1ó

192.18.0.0/16 168.0.253.0/24S1 S0

15.15.0.0/16S2

?ù??ˉíS0°·ˉê£?RPF?ì-°?§??£???í?àe±§àò?ó

根据单播路由表,本地到192.18.0.32/24网段出口是S1。因此从S0到达的组播数据包RPF检查失败,被丢弃。

·÷ìμ-·3?-ì£′RPF?ì-°??3¥

S1

S0

S2

oˉ??192.18.0.32°??°-¤?ù??

?÷±è·í1ó

192.18.0.0/16 168.0.253.0/24S1 S0

15.15.0.0/16S2

?ù??ˉíS1°·ˉê£?RPF?ì-°??3¥£???í?àe?§?¢?ù???ó

从S1接口收到来自源192.18.0.32的组播数据包是从正确的接口收到的数据包,因此数据包会被转发出适当的出接口。

由此可以看出,组播转发项至少包括入接口、出接口。至于入接口是谁、出接口有哪些,则是组播路由协议要完成的任务。这将在后面章节介绍。

2.5 组播数据包的二层交换

°-¤?ù??a

¨

¢?

§?

è×?

°-¤3¥??·μμμò?

°-¤£1£1

?

网桥或二层交换机(以下统称二层交换机)是工作在二层的网络设备。当它

们收到组播数据包后如何处理?最简单的处理方式就是当网桥从一个接口收

到组播数据报后向所有其它接口都转发出去。一般的没有组播功能的二层交

换机都是这么处理的,所以这样的网桥也最便宜。但是这样处理就偏离的组

播的初衷。

然而,具有组播功能的二层交换机可以做到只在需要的接口上才转发组播数

据。那么如何实现?

±ú-?·μμμò?°-¤3¥???°éD

MAC°?D?±?1ó01£a02£a031,2,51

23

4

5

?§?¢aí

二层交换机将在转发表中添加一项:MAC地址是组播地址,端口包含与希望接收到组播数据的主机相连所有的端口。以后当二层交换机接收到组播数据报后,将向除接收端口外的所有转发表项的其它希望接收组播数据的端口转发组播数据。

相关主题
文本预览
相关文档 最新文档