组播原理详解

上传人:cn****1 文档编号:458155062 上传时间:2022-10-27 格式:DOC 页数:19 大小:512.50KB
返回 下载 相关 举报
组播原理详解_第1页
第1页 / 共19页
组播原理详解_第2页
第2页 / 共19页
组播原理详解_第3页
第3页 / 共19页
组播原理详解_第4页
第4页 / 共19页
组播原理详解_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《组播原理详解》由会员分享,可在线阅读,更多相关《组播原理详解(19页珍藏版)》请在金锄头文库上搜索。

1、.组播原理第一章概述随着数据通信技术的不断发展,各项基于数据通信技术的业务层出不穷,FTP,HTTP ,SMTP 等传统的数据通信业务已经不能满足人们对信息的需求,视频点播,远程教学,新闻发布,网络电视等新型业务也逐渐发展起来,并被引入数据通信网络。这些新型业务的特点是,有一个服务器(我们把这个服务器称为媒体流服务器)在发布信息,而接收端数量很大,可能有成千上万个,而且具体数目不固定。在这种方式下,我们可以使用传统的客户服务器( C/S)模型解决,按照下面的思路:1。在媒体流服务器上启动媒体流播放进程,作为服务器;2。客户端每当想接受某个媒体流服务器的数据的时候,通过给出该媒体流服务器的IP

2、地址,来跟该媒体流服务器建立连接(比如,TCP连接等);3。媒体流服务器维护一个客户列表,采用轮循的方式向每个客户发送媒体流。可以看出,这样的解决方案有两个缺陷:1。客户数目很大的时候,媒体流服务器就有可能承受不了,因为这种媒体流跟传统的窄带业务(比如HTTP 等)不同,它需要很高的带宽来传输,而且服务器还必须维护每个客户的信息;2。严重浪费网络资源,相同的数据可能在网上传播了很多次,在一些带宽较低的链路上,可能引起严重的通信瓶径。在这个时候,我们自然而然的想起了组播。这种技术最适合上面的这些新型业务。因为组播通信有下列优点:1。媒体流服务器不必知道某个客户端的存在,它只管把媒体流以组播地址播

3、放出去即可,而且仅仅播放一份;2。媒体流数据在网上仅仅传送一份即可,即使有成千上万个客户端;1/17.3。客户端不必向媒体流服务器注册,如果想接收某个媒体流服务器的数据,仅仅加入该媒体流服务器所播放的数据所在的多播组即可。组播技术从提出到现在,它的一些标准和技术已经相当完善了,但推广还不是十分广泛,尤其是在我国, 人们对组播的认识还处于一个朦胧的阶段,更谈不上规模应用。为了让大家尽快的了解组播技术,我们在本文中给出一些学习指引,主要有下列内容:1。组播基础概念,这些概念是深入学习组播的最基础的东西,如果对这些基础概念不了解,学习组播将是一句空话;2。流行组播协议, 在文中我们不具体分析哪种组播

4、协议, 而给出组播协议的一些共性,并列举了目前比较流行的组播协议和它的应用场合;3。列举了一些参考资料,这些资料按照不同的读者层次列举,既有面向组播专家的高级论题,也有面向初学者的入门文章。总之,本文是面向组播初学者的,如果你从没有接触过组播技术,那么仔细的阅读本文并掌握介绍的一些基本概念, 然后参考文中列举的其他文章, 将会是一种良好的学习路径。如果您是一位组播技术方面的专家, 阅读本文也不无裨益, 您可以从不同的角度来了解组播的基础概念,也可以参考文中提到的其他组播文章,相信对您也是有好处的。2/17.第二章二层组播基础概念在前面的介绍中,我们讨论了用多播的方式解决新型流媒体业务的好处,在

5、该部分中,我们结合一个实际的网络给出一些多播的基础概念, 掌握这些基础概念是深入掌握多播技术的前提。2.1 网络实例有下面一个网络需求:在图中,媒体流服务器通过以太网交换机LSWA ,跟核心路由器GSRA 连接起来,并启动流媒体进程,不断的以多播IP 地址发送媒体流。 GSRA 和 GSRB 之间采用以太网连接起来, GSRB 通过以太网交换机 LSWB 连接了许多终端,其中两台终端需要媒体流服务器播放的媒体流。下面我们仔细分析每一个步骤,在分析的过程中引入并介绍一些基础的组播概念。2.2 组播 MAC地址和组播 IP 地址在前面的介绍中,我们提到了媒体流服务器不断的以多播IP 地址发送媒体流

6、,这个IP地址就是一个多播IP地址。按照IP协议规定,位于范围内的IP 地址都是多播地址。所谓多播地址,实际上是一个逻辑的概念,在网络上,没有一个计算机的IP 地址是一个多播IP 地址,多播IP 地址仅仅代表了一个逻辑的组,加入该组的终端设备可以以该组所在的多播地址为目的IP 地址来发3/17.送数据,这时候,发送的数据不是针对某个具体主机的,而是针对一组机器,想接收这个多播数据流的计算机,只要倾听接收到的每个数据报,判断该数据报的目的IP 地址是不是组播组的 IP 地址即可。若是,则接收,否则丢弃。为了更好的理解组播IP 地址的概念,我们举一个例子,如下面的网络图所示:主机 A (最左边的一

7、台计算机)不断的以组播IP 地址发送数据,这时候主机 B(中间计算机)想接收组播组的数据,于是它就会监听每个收到的数据报,判断该数据报目的IP 地址是不是,如果不是则丢弃,如果是则接收下来送到上层处理。这里牵涉到了一个问题:主机 B 的哪个模块判断接收到的数据报是不是组播数据报,并且是不是针对组的数据报?答案是主机 B 的 IP 模块。我们看一下一台计算机接收数据的过程:1。数据链路层把接收到的数据帧剥掉链路层头后送给IP 层(至于数据链路层怎样接收数据帧,在后面会详细探讨);2。IP 模块维护一张接收列表(该列表是 IP 地址组成的结合) ,每当接收到一个数据报(链路层送上来的) 后,便把数

8、据报的目的 IP 地址提取出来, 然后跟接收列表中的 每个 IP 地址比较,如果有一项匹配,则接收该数据,并向上层传送,否则丢弃;3。如果一台主机想加入一个多播组(加入与否由上层应用决定),比如你想看网络电视频道, 这时候你需要启动一个应用程序,并告诉该应用程序网络电视频道的组播IP 地址,该应用程序就会向IP 模块注册,请求加入组播组。IP 模块于是在自己维护的接收列表里添加一项( 同时也告诉数据链路层自己加入了一个组播组,并附带上组播组地址),添加的这项就是组播组的组播IP 地址。这样每当接收到目的地址是该组播IP 地址的数据报的时候,IP 模块就接收下来,并向上层传送。4。如果一台主机想

9、退出组播组,比如你终止了电视频道接收程序,于是该程序在退出的时候会告诉IP 模块,自己不再接收组播组的数据,并告诉IP 模块组播组的组拨IP 地址,于是 IP 模块就把该组播地址从接收列表中删除,这样以后如果再接收到该组播组的数据报的话,因为接收列表里没有匹配的项目,所以IP 模块就丢弃该数据报。经过上面的分析可以看出,问题的关键在于IP 模块维护的接收列表。通常情况下(主机没有加入任何组播组),该列表里只有两项,即主机自己的IP 地址和广播IP 地址4/17.(),这样主机只能接收针对自己的数据报和广播数据报。细心的读者可以看出一个问题,就是数据链路层如何接收组播数据帧呢?原来,数据链路层的

10、接收过程跟IP 层原理一致,即数据链路层也有自己的接收列表(不过该列表的内容不是 IP 地址, 而是 MAC 地址),每当 IP 模块收到上层应用的加入组播组的请求之后,IP模块就会向数据链路层通告(上面提到过),通告的时候携带了组播组的IP 地址,于是数据链路层就会把IP 地址进行适当的变换,变换的结果就是一个组播MAC地址,于是数据链路层把这个组播MAC 地址插入自己的接收列表里面,以后每当有数据帧到来的时候,数据链路层就会把数据正的目的MAC 地址跟接收列表里的每项内容进行比较,遇到任何匹配的一项就接收下来,并向IP 层传送。这样又引出了两个问题: 数据链路层如何区分单播 MAC 地址跟

11、组播 MAC 地址?数据链路层做一个 IP 地址跟组播 MAC 地址的影射,这个影射是怎样的?首先解释第一个,一般情况下,单播MAC地址的最高字节的最低比特为0,而组播MAC 地址的最高字节的最低比特为1,如下所示:这样数据链路层就可以根据该比特判断收到的数据帧是不是一个组播数据帧。下图是第二个问题的答案:从可以看出, MAC 地址跟 IP 地址的低23 比特是对应的, 比如 IP 模块告诉数据链路层软件,自己加入了一个组播组,则数据链路层形成一个MAC地址01-00-5E-0A-0A-0A(取组播IP 地址低 23 位,高位为上面介绍的规则),并加入接收地址列表中。5/17.到此为止,我们分

12、析了网络层和数据链路层对组播的处理过程,为了更加深理解,我们举一个实际中的例子,还是同样的网络拓扑:假设图中从左到右计算机依次叫做PCA ,PCB, PCC,并假设PCA 上运行媒体流服务器发送程序,以组播地址来不停的发送电视频道数据流。开始的时候, PCB 和 PCC 都没有接收该数据流,于是在 PCB,PCC 的数据链路层和网络层的接收列表中都没有针对组播地址的接收项,从而当数据链路层接收到一个数据帧,该该数据帧的目的MAC 地址是 01-00-5E-0A-0A-0A的时候,因为接收列表中没有该地址, 所以在数据链路层就被丢弃(到这里,读者应该能体会到,组播数据在数据链路层就可以被隔离,而广播数据则必须到达网络层才能判断出是否需要丢弃,这也是使用组播而不使用广播的最大好处)。这时候,假设PCB 计算机的一个用户想收看网络电视频道了,于是该用户启动一个程序(比如, WINDOWS平台下的WMPLAYER ),并告诉该程序接收组播组的数据流。于是发生下列事情:1。该应用程序通过操作系统调用接口(API 函数)告诉该PC 机的 IP 模块,自己想接收组播组的数据(也就是说要加入组播组);2。IP 模块接收到该加入请求后,便把组播组地址加入自己的接收列表中,同时向

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号