组播原理详解
组播报文转发原理

组播报文转发原理《组播报文转发原理》1. 引言嘿,你有没有想过,当你在看网络直播或者参与在线视频会议的时候,数据是怎么同时到达很多人的设备上的呢?这就涉及到一个很神奇的技术——组播报文转发。
今天呢,咱们就来把组播报文转发原理给扒个清清楚楚,从基本概念到实际应用,从可能遇到的问题到未来发展方向,都给大家讲个明白。
2. 核心原理2.1基本概念与理论背景组播这个概念呢,简单来说,就是把一个数据报文同时发送给多个接收者。
就好比你在一个教室里讲课,你想把信息同时传递给好几个学生,这就是一种组播的概念。
它的理论来源其实是为了解决网络中一对多通信的高效性问题。
以前呢,在网络发展初期,如果要把同样的信息发送给多个接收者,可能就是采用多次单播(也就是一个一个地发送)的方式,这样就很浪费网络资源。
后来,随着网络技术的发展,组播技术就应运而生啦。
2.2运行机制与过程分析咱们先来说说组播的成员关系。
在一个组播网络里,有组播源,还有组播组成员。
组播源就像是一个广播站,它要发送信息。
组播组成员呢,就像是一群等着听广播的听众。
当组播源要发送报文的时候,它不会像单播那样,针对每个接收者都建立一个单独的连接。
而是把报文发送到网络中的一个特殊的设备,这个设备叫路由器。
这路由器啊,就像是一个交通警察。
它收到组播报文后,会查看自己的路由表。
这个路由表呢,就像是交通警察手里的地图,上面标记着哪些路可以通向哪些地方。
路由器根据这个路由表来决定把报文转发到哪些接口。
这里的接口就好比是不同方向的道路。
比如说,有一部分组播组成员在A方向,另一部分在B方向,路由器就会把报文准确地转发到对应的接口,这样报文就能顺利地到达组播组成员那里啦。
再具体一点,路由器有一个很重要的功能叫组播路由协议。
这个协议就像是交通警察之间的通信规则。
不同的路由器通过这个协议来交换组播组成员的信息。
比如说,路由器A知道有一部分组播组成员在它的某个接口后面,它就会把这个信息告诉其他路由器。
组播原理及配置介绍

组播带宽问题及解决方案
问题:组播流 量过大导致网
络拥堵
解决方案:优 化组播源减少 不必要的组播
流量
问题:组播组 成员过多导致
网络拥堵
解决方案:限 制组播组成员 数量合理规划
使用过滤技术:通过过滤不必要 的组播数据减少对带宽和设备的 占用提高网络性能。
添加标题
添加标题
添加标题
添加标题
优化网络结构:合理规划组播网 络结构避免不必要的层级和转发 提高组播数据传输效率。
负载均衡:合理分配组播流量避 免网络拥塞和设备过载提高网络 稳定性和可靠性。
QoS在组播中的应用
定义:QoS(Qulity of Service)是一种 网络服务质量控制机制用于确保网络传输 的服务质量。
组播的优点
降低网络负载:组播传输只发送一份数据避免数据在网络中的重复传输有效降低网络负载。
提高数据传输效率:组播采用树状结构进行数据分发能够快速、准确地将数据传输到目标接收 者。
增强数据安全性:组播支持加密传输能够保证数据在传输过程中的安全性和保密性。
灵活的接收者管理:组播支持动态成员资格协议能够灵活地管理接收者列表实现动态添加或删 除接收者。
感谢观看
汇报人:
单击此处添加副标题
组播原理及配置介绍
汇报人:
目录
01 02 03 04 05 06
添加目录项标题 组播原理 组播配置
组播应用场景 组播安全与优化 常见组播问题及解决方案
01
添加目录项标题
02
组播原理
什么是组播
组播pim 原理

组播pim 原理
PIM(Protocol Independent Multicast)称为协议无关组播。
作为组播路由解决方案,它直接利用单播路由表的路由信息,对组播报文执行RPF(Reverse Path Forwarding,逆向路径转发)检查,检查通过后创建组播路由表项,从而转发组播报文。
PIM-DM(PIM-Dense Mode,协议无关组播-密集模式)基本工作原理:PIM-DM使用“推(Push)模式”转发组播报文,一般应用于组播组成员规模相对较小、相对密集的网络。
其关键工作机制包括邻居发现、扩散、剪枝、嫁接、断言:
1. 邻居发现:路由器通过周期性地向所有PIM路由器(224.0.0.13)以组播方式发送PIM Hello报文,以发现PIM邻居,维护各路由器之间的PIM邻居关系,从而构建和维护SPT。
2. 扩散:当PIM-DM网络中出现活跃的组播源之后,组播源发送的组播报文将在全网内扩散。
当PIM路由器接收到组播报文,根据单播路由表进行RPF检查通过后,就会在该路由器上创建(S,G)表项,并将该报文向网络中的所有下游节点转发。
3. 剪枝:当PIM路由器接收到组播报文后,RPF检查通过,但是下游网段没有组播报文需求。
此时PIM路由器会向上游发送剪枝报文,通知上游路由器禁止相应下游接口的转发,将其从(S,G)表项的下游接口列表中删除。
4. 嫁接:PIM-DM通过嫁接机制,使有新组成员加入的网段快速得到组播报文。
叶子路由器通过IGMP了解到与其相连的用户网段上,组播组G有新的组成员加入。
随后叶子路由器会向上游发送Graft报文,请求上游路由器恢复相应出接口转发,将其添加在(S,G)表项下游接口列表中。
组播原理详解

精心整理组播原理第一章?概?述随着数据通信技术的不断发展,各项基于数据通信技术的业务层出不穷,FTP ,HTTP ,SMTP 等传统的数据通信业务已经不能满足人们对信息的需求,视频点播,远程教学,新闻发布,网络电视等新型业务也逐渐发展起来,并被引入数据通信网络。
这些新型业务的特点是,有一个服务器(我们把这个服务器称为媒体流服务器)在发布信息,而接收端数量很大,可能有成千上万个,而且具体数目不固定。
在这种方式下,我们可以使用传统12312在这个时候,我们自然而然的想起了组播。
这种技术最适合上面的这些新型业务。
因为组播通信有下列优点:1。
媒体流服务器不必知道某个客户端的存在,它只管把媒体流以组播地址播放出去即可,而且仅仅播放一份;2。
媒体流数据在网上仅仅传送一份即可,即使有成千上万个客户端;3。
客户端不必向媒体流服务器注册,如果想接收某个媒体流服务器的数据,仅仅加入该媒体流服务器所播放的数据所在的多播组即可。
组播技术从提出到现在,它的一些标准和技术已经相当完善了,但推广还不是十分广泛,尤其是在我国,人们对组播的认识还处于一个朦胧的阶段,更谈不上规模应用。
为了让大家尽快的了解组播技术,我们在本文中给出一些学习指引,主要有下列内容:1。
组播基础概念,这些概念是深入学习组播的最基础的东西,如果对这些基础概念不了解,学习组播将是一句空话;2。
流行组播协议,在文中我们不具体分析哪种组播协议,而给出组播协议的一些共性,并列举了目前比较流行的组播协议和它的应用场合;3。
也可以第二章?二层组播基础概念在前面的介绍中,我们讨论了用多播的方式解决新型流媒体业务的好处,在该部分中,我们结合一个实际的网络给出一些多播的基础概念,掌握这些基础概念是深入掌握多播技术的前提。
2.1网络实例有下面一个网络需求:在图中,媒体流服务器通过以太网交换机LSWA,跟核心路由器GSRA连接起来,并启动流媒体进程,不断的以多播IP地址发送媒体流。
EPON组播原理及应用

EPON组播原理及应用一、组播原理1、组播定义大家都知道单播、组播、广播是计算机网络上三种基本的通信方式。
单播是相互感兴趣的主机双方进行通信的方式,主机不能接收对其不感兴趣的其它主机发送的信息,属于点对点通信。
广播是主机向子网内所有主机发送信息,子网内所有主机都能收到来自某台主机的广播信息,属于点对所有点的通信。
组播则介于两者之间,是主机向一组主机发送信息,存在于某个组的所有主机都可以接收到信息,属于点对多点通信。
从这个意义上讲,广播可以认为是组范围最大化的组播。
当然,二者还是存在显著区别的:首先,广播被限制在子网内,不会被路由器转发。
其次,主机被默认为是接收者,而组播方式则需要主机主动加入。
(如下图所示:)2 、组播的特点组播是一种点到多点的技术,解决点到多点的通信,可以通过单播和组播方式实现。
单播可以通过建立多个点对点的连接来达到点对多点的传输。
这种方式将在源点(服务器)与各个接收点建立连接,从服务器开始,就将有多份数据流分别流向分散的接收点。
这种方式将加重服务器的负荷,增大对服务器性能的要求;同时还在网络中造成大流量,从而增加网络的负载,导致网络拥塞。
组播则不然,发送方仅发一份数据包,此后数据包只是在需要复制分发的地方才会被复制分发,每一网段中都将保持只有一份数据流。
这样就可以减轻服务器的负担,节省网络带宽。
总之组播技术有效地解决了单点发送多点接收、多点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送,能够有效地节约网络带宽、减轻服务器及网络的负载。
因此具有增强效率,优化性能,分布式应用等优点。
(单播和组播的区别如下图)3、组播的应用组播最早的应用是音频/视频会议。
但音频/视频会议只是众多IP组播应用之一。
除此之外,还包括数据分发,实时数据组播,以及游戏和仿真应用等。
目前特别是视频业务电信级的视频业务(IPTV)都是基于组播实现的。
4、组播的体系结构组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。
了解网络安装中的网络广播和组播技术

网络广播和组播技术是当今网络安装中广泛应用的关键技术。
在网络安装过程中,了解网络广播和组播技术的原理和应用,对于提高网络安装的效率和可靠性具有重要意义。
一、网络广播技术网络广播技术是将信息从一个发送端同时传输给网络中的所有接收端的一种通信方式。
它可以实现一对多的通信,具有高效、快速的特点。
1. 广播技术的原理广播技术是基于网络中的广播域,通过将数据包复制到广播域中的每个接口来实现。
当发送端发送广播信息时,该信息会被网络设备复制并转发到广播域中的每个接口上。
所有接收端都会接收到这个信息。
广播技术可以广泛应用于局域网中的地址解析协议(ARP)、动态主机配置协议(DHCP)等。
2. 广播技术的优势广播技术具有高效快速的优势,在网络安装中可以加快信息的传输,提高网络的响应速度。
广播技术能够快速传播网络中重要的通知和更新,例如软件更新、系统警报等。
此外,广播技术还能够提供可靠的网络通信,确保信息的完整性和可靠性。
二、网络组播技术网络组播技术是将信息从一个发送端传输给一组特定的接收端的一种通信方式。
相比于广播技术,组播技术可以实现点对点的通信,具有更高的灵活性。
1. 组播技术的原理组播技术是基于组播域的,通过在网络中创建一个组播组,将信息传输给组播组中的每个接收端。
当发送端发送组播信息时,该信息会被网络设备复制并转发到组播域中的每个接口上。
只有在组播组中的接收端才会接收到这个信息。
组播技术可以广泛应用于视频会议、多媒体流传输等场景。
2. 组播技术的优势组播技术具有灵活、可靠的优势,在网络安装中可以降低网络流量和带宽占用。
相比于广播技术,组播技术可以按照需求选择性地传输信息,节约了网络资源的使用。
组播技术还能够提供可靠的网络通信,确保信息按照指定的方式传输。
三、网络安装中的网络广播和组播技术应用网络安装中,广播和组播技术有着广泛的应用。
其中,广播技术可以用于网络设备的发现和初始化,例如通过广播方式发送ARP请求,以获得网络中设备的物理地址。
07-组播原理介绍

18
IP 组播体系结构---- IGMP协议
正如ICMP一样, IGMP也被当作 IP层的一部分。IGMP报文通过IP数据报 进行传输。不像我们已经见到的其他协议, IGMP有固定的报文长度,没 有可选数据。 IGMP报文通过IP首部中协议字段值为2来指明。
IP 组播体系结构---- IGMP协议
目前IGMP有以下三个版本:
IGMPv1(RFC 1112)中定义了基本 组成员查询和报告过程 IGMPv2(RFC 2236)在 IGMPv1 的 基础上添加了组成员快速离开的机制等 IGMPv3(RFC 3376)中增加的主要功能 是成员可以指定接收或拒绝来自某些组播 源的报文,以实现对 SSM模型的支持。
组播级联
组播是有方向性的,在IGMP PROXY模块中ROUTER_MODULE_PORT只能处理 join/leave报文,丢弃query报文;HOST_MODULE_PORT只能处理query报文, 而丢弃join/leave报文。 缺省情况所有上联口均为HOST_MODULE_PORT,所有线卡槽位口为 ROUTER_MODULE_PORT。 AN5116-01系统可以设置一个或多个上联口为ROUTER_MODULE_PORT,成为级 联口,不能设置所有上联口为级联口。
IP 组播体系结构---- IGMP协议
IGMP(互联网组管理协议Internet Group Management Protocol) IGMP 协议运行于主机和与主机直接相连的组播路由器之间,IGMP 实现的功 能是双向的:一方面,通过 IGMP 协议,主机通知本地路由器希望加入并接 收某个特定组播组的信息;另一方面,路由器通过 IGMP 协议周期性地查询 局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个 组播组的成员),实现所连网络组成员关系的收集与维护。通过 IGMP,在 路由器中记录的信息是某个组播组是否在本地有组成员,而不是组播组与主 机之间的对应关系。 到目前为止,IGMP 有三个版本。IGMP v1(RFC1112)中定义了基本的组成 员查询和报告过程;目前通用的是 IGMP v2,由 RFC2236 定义,在 IGMPv1 的基础上添加了组成员快速离开的机制;IGMP v3 中增加的主要功能是成员 可以指定接收或指定不接收某些组播源的报文。目前使用最多最广泛的是 IGMP v2,以下着重介绍 IGMP v2 协议的原理。
局域网内组播的实现

局域网内组播的实现正文:介绍:局域网内组播是一种网络通信模式,通过一次发送将数据包从一个发送者传递给一组接收者。
在局域网内使用组播可以提高数据传输效率,减少网络带宽占用,实现实时的数据传输。
本文档将详细介绍局域网内组播的实现方法和步骤。
章节一、局域网内组播的基本原理1.1 组播概述组播是一种多播方式,将数据包同时发送到多个接收者。
它通过使用特殊的组播地质来区分不同组播组,并由组播路由器在局域网中进行分发。
1.2 组播地质组播地质是IPv4地质空间的一部分,范围为224:0:0:0 - 239.255.255.255:其中,224:0:0:0 - 224:0:0.255是为路由协议保留的组播地质;224:0.1:0 - 238.255.255.255是为公共用途多播组保留的组播地质;239:0:0:0 - 239.255.255.255是为私有用途多播组保留的组播地质。
1.3 组播路由组播路由是指在网络中负责组播数据的分发。
组播路由器需要维护一张组播转发表,根据组播地质和接口信息将组播数据包进行转发。
章节二、局域网内组播的配置步骤2.1 确定组播组在局域网内使用组播前,需要确定组播组的IP地质范围和组播组标识符。
可以根据需要的接收者数量和数据传输需求进行规划。
2.2 配置组播路由器组播路由器是实现局域网内组播的关键设备。
需要配置组播路由器的接口信息和组播转发表,确保数据包能够正确地传输到接收者。
2.3 配置组播发送者组播发送者需要配置发送数据的组播地质和发送端口,确保数据能够被接收者接收到。
2.4 配置组播接收者组播接收者需要加入组播组,并监听相应的组播地质和端口,以接收发送者发送的数据。
章节三、局域网内组播的优化技巧3.1 IGMP SnoopingIGMP Snooping是一种组播优化技术,通过监听主机的IGMP报文,帮助组播路由器动态维护组播转发表,减少网络流量的传输和处理。
3.2 PIM-DMPIM-DM(Protocol Independent Multicast - Dense Mode)是一种组播路由协议,通过使用洪泛和剪枝机制来建立和维护组播转发树,提高组播数据的传输效率和可靠性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组播原理第一章概述随着数据通信技术的不断发展,各项基于数据通信技术的业务层出不穷,FTP,HTTP,SMTP等传统的数据通信业务已经不能满足人们对信息的需求,视频点播,远程教学,新闻发布,网络电视等新型业务也逐渐发展起来,并被引入数据通信网络。
这些新型业务的特点是,有一个服务器(我们把这个服务器称为媒体流服务器)在发布信息,而接收端数量很大,可能有成千上万个,而且具体数目不固定。
在这种方式下,我们可以使用传统的客户服务器(C/S)模型解决,按照下面的思路:1。
在媒体流服务器上启动媒体流播放进程,作为服务器;2。
客户端每当想接受某个媒体流服务器的数据的时候,通过给出该媒体流服务器的IP地址,来跟该媒体流服务器建立连接(比如,TCP连接等);3。
媒体流服务器维护一个客户列表,采用轮循的方式向每个客户发送媒体流。
可以看出,这样的解决方案有两个缺陷:1。
客户数目很大的时候,媒体流服务器就有可能承受不了,因为这种媒体流跟传统的窄带业务(比如HTTP等)不同,它需要很高的带宽来传输,而且服务器还必须维护每个客户的信息;2。
严重浪费网络资源,相同的数据可能在网上传播了很多次,在一些带宽较低的链路上,可能引起严重的通信瓶径。
在这个时候,我们自然而然的想起了组播。
这种技术最适合上面的这些新型业务。
因为组播通信有下列优点:1。
媒体流服务器不必知道某个客户端的存在,它只管把媒体流以组播地址播放出去即可,而且仅仅播放一份;2。
媒体流数据在网上仅仅传送一份即可,即使有成千上万个客户端;3。
客户端不必向媒体流服务器注册,如果想接收某个媒体流服务器的数据,仅仅加入该媒体流服务器所播放的数据所在的多播组即可。
组播技术从提出到现在,它的一些标准和技术已经相当完善了,但推广还不是十分广泛,尤其是在我国,人们对组播的认识还处于一个朦胧的阶段,更谈不上规模应用。
为了让大家尽快的了解组播技术,我们在本文中给出一些学习指引,主要有下列内容:1。
组播基础概念,这些概念是深入学习组播的最基础的东西,如果对这些基础概念不了解,学习组播将是一句空话;2。
流行组播协议,在文中我们不具体分析哪种组播协议,而给出组播协议的一些共性,并列举了目前比较流行的组播协议和它的应用场合;3。
列举了一些参考资料,这些资料按照不同的读者层次列举,既有面向组播专家的高级论题,也有面向初学者的入门文章。
总之,本文是面向组播初学者的,如果你从没有接触过组播技术,那么仔细的阅读本文并掌握介绍的一些基本概念,然后参考文中列举的其他文章,将会是一种良好的学习路径。
如果您是一位组播技术方面的专家,阅读本文也不无裨益,您可以从不同的角度来了解组播的基础概念,也可以参考文中提到的其他组播文章,相信对您也是有好处的。
第二章二层组播基础概念在前面的介绍中,我们讨论了用多播的方式解决新型流媒体业务的好处,在该部分中,我们结合一个实际的网络给出一些多播的基础概念,掌握这些基础概念是深入掌握多播技术的前提。
2.1 网络实例有下面一个网络需求:在图中,媒体流服务器通过以太网交换机LSWA,跟核心路由器GSRA连接起来,并启动流媒体进程,不断的以多播IP地址224.10.10.10发送媒体流。
GSRA和GSRB之间采用以太网连接起来,GSRB通过以太网交换机LSWB连接了许多终端,其中两台终端需要媒体流服务器播放的媒体流。
下面我们仔细分析每一个步骤,在分析的过程中引入并介绍一些基础的组播概念。
2.2 组播MAC地址和组播IP地址在前面的介绍中,我们提到了媒体流服务器不断的以多播IP地址224.10.10.10发送媒体流,224.10.10.10这个IP地址就是一个多播IP地址。
按照IP协议规定,位于224.0.0.1—239.255.255.255范围内的IP地址都是多播地址。
所谓多播地址,实际上是一个逻辑的概念,在网络上,没有一个计算机的IP地址是一个多播IP地址,多播IP地址仅仅代表了一个逻辑的组,加入该组的终端设备可以以该组所在的多播地址为目的IP地址来发送数据,这时候,发送的数据不是针对某个具体主机的,而是针对一组机器,想接收这个多播数据流的计算机,只要倾听接收到的每个数据报,判断该数据报的目的IP地址是不是组播组的IP地址即可。
若是,则接收,否则丢弃。
为了更好的理解组播IP地址的概念,我们举一个例子,如下面的网络图所示:主机A(最左边的一台计算机)不断的以组播IP地址224.10.10.10发送数据,这时候主机B(中间计算机)想接收组播组224.10.10.10的数据,于是它就会监听每个收到的数据报,判断该数据报目的IP地址是不是224.10.10.10,如果不是则丢弃,如果是则接收下来送到上层处理。
这里牵涉到了一个问题:主机B的哪个模块判断接收到的数据报是不是组播数据报,并且是不是针对组224.10.10.10的数据报?答案是主机B的IP模块。
我们看一下一台计算机接收数据的过程:1。
数据链路层把接收到的数据帧剥掉链路层头后送给IP层(至于数据链路层怎样接收数据帧,在后面会详细探讨);2。
IP模块维护一张接收列表(该列表是IP地址组成的结合),每当接收到一个数据报(链路层送上来的)后,便把数据报的目的IP地址提取出来,然后跟接收列表中的每个IP 地址比较,如果有一项匹配,则接收该数据,并向上层传送,否则丢弃;3。
如果一台主机想加入一个多播组(加入与否由上层应用决定),比如你想看网络电视频道,这时候你需要启动一个应用程序,并告诉该应用程序网络电视频道的组播IP地址,该应用程序就会向IP模块注册,请求加入组播组。
IP模块于是在自己维护的接收列表里添加一项(同时也告诉数据链路层自己加入了一个组播组,并附带上组播组地址),添加的这项就是组播组的组播IP地址。
这样每当接收到目的地址是该组播IP地址的数据报的时候,IP模块就接收下来,并向上层传送。
4。
如果一台主机想退出组播组,比如你终止了电视频道接收程序,于是该程序在退出的时候会告诉IP模块,自己不再接收组播组的数据,并告诉IP模块组播组的组拨IP地址,于是IP模块就把该组播地址从接收列表中删除,这样以后如果再接收到该组播组的数据报的话,因为接收列表里没有匹配的项目,所以IP模块就丢弃该数据报。
经过上面的分析可以看出,问题的关键在于IP模块维护的接收列表。
通常情况下(主机没有加入任何组播组),该列表里只有两项,即主机自己的IP地址和广播IP地址(255.255.255.255),这样主机只能接收针对自己的数据报和广播数据报。
细心的读者可以看出一个问题,就是数据链路层如何接收组播数据帧呢?原来,数据链路层的接收过程跟IP层原理一致,即数据链路层也有自己的接收列表(不过该列表的内容不是IP地址,而是MAC地址),每当IP模块收到上层应用的加入组播组的请求之后,IP 模块就会向数据链路层通告(上面提到过),通告的时候携带了组播组的IP地址,于是数据链路层就会把IP地址进行适当的变换,变换的结果就是一个组播MAC地址,于是数据链路层把这个组播MAC地址插入自己的接收列表里面,以后每当有数据帧到来的时候,数据链路层就会把数据正的目的MAC地址跟接收列表里的每项内容进行比较,遇到任何匹配的一项就接收下来,并向IP层传送。
这样又引出了两个问题:数据链路层如何区分单播MAC地址跟组播MAC地址?数据链路层做一个IP地址跟组播MAC地址的影射,这个影射是怎样的?首先解释第一个,一般情况下,单播MAC地址的最高字节的最低比特为0,而组播MAC地址的最高字节的最低比特为1,如下所示:这样数据链路层就可以根据该比特判断收到的数据帧是不是一个组播数据帧。
下图是第二个问题的答案:从可以看出,MAC地址跟IP地址的低23比特是对应的,比如IP模块告诉数据链路层软件,自己加入了一个组播组224.10.10.10,则数据链路层形成一个MAC地址01--00--5E--0A--0A--0A(取组播IP地址低23位,高位为上面介绍的规则),并加入接收地址列表中。
到此为止,我们分析了网络层和数据链路层对组播的处理过程,为了更加深理解,我们举一个实际中的例子,还是同样的网络拓扑:假设图中从左到右计算机依次叫做PCA,PCB,PCC,并假设PCA上运行媒体流服务器发送程序,以组播地址224.10.10.10来不停的发送电视频道数据流。
开始的时候,PCB和PCC都没有接收该数据流,于是在PCB,PCC的数据链路层和网络层的接收列表中都没有针对224.10.10.10组播地址的接收项,从而当数据链路层接收到一个数据帧,该该数据帧的目的MAC地址是01--00--5E--0A--0A--0A的时候,因为接收列表中没有该地址,所以在数据链路层就被丢弃(到这里,读者应该能体会到,组播数据在数据链路层就可以被隔离,而广播数据则必须到达网络层才能判断出是否需要丢弃,这也是使用组播而不使用广播的最大好处)。
这时候,假设PCB计算机的一个用户想收看网络电视频道了,于是该用户启动一个程序(比如,WINDOWS平台下的WMPLAYER),并告诉该程序接收224.10.10.10组播组的数据流。
于是发生下列事情:1。
该应用程序通过操作系统调用接口(API函数)告诉该PC机的IP模块,自己想接收224.10.10.10组播组的数据(也就是说要加入组播组224.10.10.10);2。
IP模块接收到该加入请求后,便把组播组地址224.10.10.10加入自己的接收列表中,同时向数据链路层发送一个请求,告诉数据链路层自己想接收224.10.10.10组对应的数据流;3。
数据链路层接收到IP模块的这个请求后,根据组播MAC地址跟组播IP地址的影射规则,把组播IP地址224.10.10.10影射成组播MAC地址01--00--5E--0A--0A--0A,然后加入自己的接收列表,到此动作完成。
完成上述动作后,PCB就可以接收组播组224.10.10.10的数据流了。
如果这时候用户不想继续看网络电视了(比如用户关闭应用程序),则应用程序在退出的时候会通知网络层,自己退出组播组224.10.10.10了,于是网络层会把自己的接收列表中224.10.10.10项删除,并通知数据链路层删除相应的列表项目。
到此为止,我们对组播IP地址跟组播MAC地址做了个详细的介绍,并详细分析了各个协议模块怎么处理组播数据的。
这部分内容特别重要,如果还是不明白,请再读一遍,或者参考其他的书籍。
2.3 二层组播协议在上面介绍的几个例子中,我们使用了以太网交换机连接许多主机终端,并假设以太网交换机按照广播的形式发送组播数据,即以太网交换机每当接收到一个组播数据报,就向所有的端口上转发(除去接收端口)。