组播原理详解
- 格式:doc
- 大小:92.50 KB
- 文档页数:17
组播报文转发原理《组播报文转发原理》1. 引言嘿,你有没有想过,当你在看网络直播或者参与在线视频会议的时候,数据是怎么同时到达很多人的设备上的呢?这就涉及到一个很神奇的技术——组播报文转发。
今天呢,咱们就来把组播报文转发原理给扒个清清楚楚,从基本概念到实际应用,从可能遇到的问题到未来发展方向,都给大家讲个明白。
2. 核心原理2.1基本概念与理论背景组播这个概念呢,简单来说,就是把一个数据报文同时发送给多个接收者。
就好比你在一个教室里讲课,你想把信息同时传递给好几个学生,这就是一种组播的概念。
它的理论来源其实是为了解决网络中一对多通信的高效性问题。
以前呢,在网络发展初期,如果要把同样的信息发送给多个接收者,可能就是采用多次单播(也就是一个一个地发送)的方式,这样就很浪费网络资源。
后来,随着网络技术的发展,组播技术就应运而生啦。
2.2运行机制与过程分析咱们先来说说组播的成员关系。
在一个组播网络里,有组播源,还有组播组成员。
组播源就像是一个广播站,它要发送信息。
组播组成员呢,就像是一群等着听广播的听众。
当组播源要发送报文的时候,它不会像单播那样,针对每个接收者都建立一个单独的连接。
而是把报文发送到网络中的一个特殊的设备,这个设备叫路由器。
这路由器啊,就像是一个交通警察。
它收到组播报文后,会查看自己的路由表。
这个路由表呢,就像是交通警察手里的地图,上面标记着哪些路可以通向哪些地方。
路由器根据这个路由表来决定把报文转发到哪些接口。
这里的接口就好比是不同方向的道路。
比如说,有一部分组播组成员在A方向,另一部分在B方向,路由器就会把报文准确地转发到对应的接口,这样报文就能顺利地到达组播组成员那里啦。
再具体一点,路由器有一个很重要的功能叫组播路由协议。
这个协议就像是交通警察之间的通信规则。
不同的路由器通过这个协议来交换组播组成员的信息。
比如说,路由器A知道有一部分组播组成员在它的某个接口后面,它就会把这个信息告诉其他路由器。
组播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组播原理及应用一、组播原理1、组播定义大家都知道单播、组播、广播是计算机网络上三种基本的通信方式。
单播是相互感兴趣的主机双方进行通信的方式,主机不能接收对其不感兴趣的其它主机发送的信息,属于点对点通信。
广播是主机向子网内所有主机发送信息,子网内所有主机都能收到来自某台主机的广播信息,属于点对所有点的通信。
组播则介于两者之间,是主机向一组主机发送信息,存在于某个组的所有主机都可以接收到信息,属于点对多点通信。
从这个意义上讲,广播可以认为是组范围最大化的组播。
当然,二者还是存在显著区别的:首先,广播被限制在子网内,不会被路由器转发。
其次,主机被默认为是接收者,而组播方式则需要主机主动加入。
(如下图所示:)2 、组播的特点组播是一种点到多点的技术,解决点到多点的通信,可以通过单播和组播方式实现。
单播可以通过建立多个点对点的连接来达到点对多点的传输。
这种方式将在源点(服务器)与各个接收点建立连接,从服务器开始,就将有多份数据流分别流向分散的接收点。
这种方式将加重服务器的负荷,增大对服务器性能的要求;同时还在网络中造成大流量,从而增加网络的负载,导致网络拥塞。
组播则不然,发送方仅发一份数据包,此后数据包只是在需要复制分发的地方才会被复制分发,每一网段中都将保持只有一份数据流。
这样就可以减轻服务器的负担,节省网络带宽。
总之组播技术有效地解决了单点发送多点接收、多点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送,能够有效地节约网络带宽、减轻服务器及网络的负载。
因此具有增强效率,优化性能,分布式应用等优点。
(单播和组播的区别如下图)3、组播的应用组播最早的应用是音频/视频会议。
但音频/视频会议只是众多IP组播应用之一。
除此之外,还包括数据分发,实时数据组播,以及游戏和仿真应用等。
目前特别是视频业务电信级的视频业务(IPTV)都是基于组播实现的。
4、组播的体系结构组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。
网络广播和组播技术是当今网络安装中广泛应用的关键技术。
在网络安装过程中,了解网络广播和组播技术的原理和应用,对于提高网络安装的效率和可靠性具有重要意义。
一、网络广播技术网络广播技术是将信息从一个发送端同时传输给网络中的所有接收端的一种通信方式。
它可以实现一对多的通信,具有高效、快速的特点。
1. 广播技术的原理广播技术是基于网络中的广播域,通过将数据包复制到广播域中的每个接口来实现。
当发送端发送广播信息时,该信息会被网络设备复制并转发到广播域中的每个接口上。
所有接收端都会接收到这个信息。
广播技术可以广泛应用于局域网中的地址解析协议(ARP)、动态主机配置协议(DHCP)等。
2. 广播技术的优势广播技术具有高效快速的优势,在网络安装中可以加快信息的传输,提高网络的响应速度。
广播技术能够快速传播网络中重要的通知和更新,例如软件更新、系统警报等。
此外,广播技术还能够提供可靠的网络通信,确保信息的完整性和可靠性。
二、网络组播技术网络组播技术是将信息从一个发送端传输给一组特定的接收端的一种通信方式。
相比于广播技术,组播技术可以实现点对点的通信,具有更高的灵活性。
1. 组播技术的原理组播技术是基于组播域的,通过在网络中创建一个组播组,将信息传输给组播组中的每个接收端。
当发送端发送组播信息时,该信息会被网络设备复制并转发到组播域中的每个接口上。
只有在组播组中的接收端才会接收到这个信息。
组播技术可以广泛应用于视频会议、多媒体流传输等场景。
2. 组播技术的优势组播技术具有灵活、可靠的优势,在网络安装中可以降低网络流量和带宽占用。
相比于广播技术,组播技术可以按照需求选择性地传输信息,节约了网络资源的使用。
组播技术还能够提供可靠的网络通信,确保信息按照指定的方式传输。
三、网络安装中的网络广播和组播技术应用网络安装中,广播和组播技术有着广泛的应用。
其中,广播技术可以用于网络设备的发现和初始化,例如通过广播方式发送ARP请求,以获得网络中设备的物理地址。
局域网内组播的实现正文:介绍:局域网内组播是一种网络通信模式,通过一次发送将数据包从一个发送者传递给一组接收者。
在局域网内使用组播可以提高数据传输效率,减少网络带宽占用,实现实时的数据传输。
本文档将详细介绍局域网内组播的实现方法和步骤。
章节一、局域网内组播的基本原理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)是一种组播路由协议,通过使用洪泛和剪枝机制来建立和维护组播转发树,提高组播数据的传输效率和可靠性。
高清电视信号传输设施中的多媒体数据流组播随着科技的不断发展,高清电视信号的传输变得越来越普遍,而多媒体数据流组播成为了实现高效传输的关键技术。
本文将介绍高清电视信号传输设施中的多媒体数据流组播的相关概念、原理和应用。
一、多媒体数据流组播的概念多媒体数据流组播,简称组播,是一种基于网络的数据传输技术。
它通过在网络中建立一组多媒体数据流的传输路径,使得多个接收者可以同时接收同一份数据。
这种传输方式不同于广播,广播是将数据发送到所有接收者,而组播只发送给那些订阅了该数据流的接收者。
在高清电视信号传输设施中,多媒体数据流组播可以用于实现高质量的多频道高清电视信号的传输,有效提高传输效率和带宽利用率。
二、多媒体数据流组播的原理多媒体数据流组播的实现依赖于两个基本原理:Internet Protocol(IP)组播和Internet Group Management Protocol(IGMP)。
1. IP组播IP组播是一种基于IP协议的传输方式。
它利用一个特殊的IP地址范围(224.0.0.0至239.255.255.255)来识别组播数据。
发送者使用组播IP地址来发送数据,而接收者使用IGMP加入组播组。
路由器通过学习接收者的IGMP报文,自动建立组播树,将组播数据传递给所有订阅了该组播组的接收者。
这样,一份数据只需要发送一次,就可以被多个接收者接收。
2. IGMPIGMP是一种用于主机和路由器之间通信的协议。
它允许主机向路由器发送加入(JOIN)和离开(LEAVE)组播组的消息。
通过这样的机制,路由器可以动态地建立和维护组播树,将组播数据传输给订阅了该组播组的接收者。
三、多媒体数据流组播的应用1. IPTV(Internet Protocol Television)IPTV是利用IP网络传输高清电视信号的系统。
通过使用多媒体数据流组播,IPTV可以实现多频道高清电视信号的同时传输。
同时,由于多媒体数据流组播的特性,只有订阅了某个频道的用户会接收到该频道的信号,有效节约了网络带宽。
组播原理
组播是一种在计算机网络中进行多点通信的方式。
通过组播,发送者可以将数据一次性发送给多个接收者,而不需要为每个接收者单独发送数据。
组播的原理是利用IP协议的多播地址和UDP协议实现。
在IPv4网络中,组播地址是一个特殊的IP地址,其范围为224.0.0.0到239.255.255.255。
接收者可以通过加入特定的组播组来接收组播数据。
当发送者想要发送组播数据时,它首先会将数据封装在UDP 包中。
然后,发送者将目标IP地址设置为一个合法的组播地址,并将该UDP包发送到网络上。
路由器在网络中转发组播数据,以便它可以到达所有的接收者。
接收者在想要接收组播数据时,必须加入一个特定的组播组。
接收者会将自己的IP地址设置为组播地址,并告诉网络中的路由器他们希望接收来自该组播组的数据。
路由器会将组播数据转发到这些接收者。
组播的优点是可以减少网络带宽的使用,因为数据只需要一次发送就可以到达多个接收者。
此外,组播还可以实现实时的多媒体传输,如视频会议和流媒体。
总的来说,组播通过利用IP多播地址和UDP协议,可以在计算机网络中实现多点通信,提高网络效率,同时减少带宽的使用。
h3c交换机组播工作原理
H3C交换机的组播工作原理是基于组播协议和交换机的组播
功能来实现的。
组播是一种将数据包从一个源发送给多个目的地的通信方式。
在H3C交换机中,组播工作原理主要包括以下几个步骤:
1. 组播源地址的学习:当组播数据流从某一个接口进入交换机时,交换机会学习源MAC地址和对应的接口,并将其记录在MAC地址表中。
2. 组播转发表的建立:根据IGMP (Internet Group Management Protocol)或MLD (Multicast Listener Discovery)协议,交换机会
建立组播转发表,记录组播组和对应的接口。
3. 组播数据的转发:当收到一个组播数据包时,交换机会根据组播转发表,将数据包复制并发送给转发表上对应的接口组员。
4. 组播组内成员管理:交换机会根据IGMP或MLD协议中的
成员报告信息,动态地维护组播组的成员列表,并更新组播转发表。
总结起来,H3C交换机的组播工作原理就是通过学习组播源
地址,建立组播转发表,进行数据的复制和转发,以及根据成员报告信息动态地管理组播组的成员列表。
这样就可以实现组播数据的有效传输和管理。
IP地址的多播和组播技术IP地址的多播和组播技术是互联网中用于实现数据传输和通信的重要技术手段。
多播和组播技术能够高效地将数据从发送方传输给多个接收方,提高了网络传输效率,减少了网络资源的浪费。
本文将介绍IP地址的多播和组播技术的原理和应用。
一、多播和组播的定义和区别1. 多播(Multicast)技术是指将一个数据包通过一个发送方发送到属于同一个多播组内的多个接收方的网络传输技术。
多播使用一个类D的IP地址来标识一个多播组,这样一来,只有属于这个多播组的接收方才能接收到这个数据包。
2. 组播(Broadcast)技术是指将一个数据包通过一个发送方同时发送给该网络上的所有接收方的网络传输技术。
组播使用特殊的IP地址255.255.255.255,这个地址表示“本网络上的所有主机”。
多播和组播的区别在于传输范围和目的。
多播将数据传输给属于同一个多播组的一组接收方,而组播将数据传输给网络上的所有接收方。
二、多播和组播的原理多播和组播技术是通过在网络上建立专门的多播组或组播组来实现的。
发送方将数据包发送到多播组或组播组的特定IP地址,而接收方则加入相应的多播组或组播组,以便接收来自发送方的数据包。
在网络层,多播和组播使用特殊的IP地址范围来标识多播组或组播组。
在传输层,使用UDP协议来支持多播和组播传输。
发送方通过设置数据包的目的IP地址为多播组或组播组的IP地址来发送数据包,而接收方通过加入多播组或组播组的方式来接收数据包。
三、多播和组播的应用多播和组播技术在实际应用中有很多用途,特别是在实时媒体传输和多人在线游戏等方面。
1. 视频和音频传输:多播和组播技术在视频会议、网络电视和网络广播等实时媒体传输中得到了广泛应用。
通过使用多播和组播技术,可以将视频和音频数据同时传输给多个接收方,以实现高效的实时媒体传输。
2. 多人在线游戏:多播和组播技术在多人在线游戏中起着重要的作用。
通过使用多播和组播技术,可以实现游戏数据的高效传输,减少网络延迟,提高游戏的流畅性和稳定性。
组播实现原理组播是一种网络通信方式,它的实现原理是通过将数据包同时发送给多个目标地址,从而实现一对多的通信。
在传统的单播通信中,数据包只能被发送给一个目标地址,而组播可以将数据包发送给一组目标地址。
组播的实现原理基于IP协议的多播功能。
在IP协议中,每个主机都有一个唯一的IP地址,用于标识主机在网络中的位置。
而组播则使用特殊的IP地址范围来标识一组主机,这个IP地址范围是224.0.0.0至239.255.255.255。
这些IP地址被保留用于组播通信,不会被分配给单个主机。
当一个主机想要发送组播数据时,它会将数据包发送给一个特殊的组播IP地址。
路由器会根据这个组播IP地址,将数据包转发给所有加入了这个组播组的主机。
加入组播组的主机会通过IGMP协议向路由器发送通知,告知路由器它们希望接收哪个组播组的数据。
在局域网中,路由器会负责转发组播数据。
当一个路由器收到一个组播数据包时,它会检查数据包的目的IP地址,并根据路由表判断应该将数据包转发到哪些接口。
然后,路由器会将数据包复制多份,并通过相应的接口转发给接收方主机。
在广域网中,组播的实现则需要使用多播路由协议来进行路由选择。
常用的多播路由协议有DVMRP、PIM-DM、PIM-SM等。
这些协议通过建立多播树来确定数据包的转发路径,从而实现跨网络的组播通信。
组播的实现原理可以有效地减少网络带宽的消耗,因为数据包只需要在网络中传输一次,就可以被多个主机接收。
而在单播通信中,数据包需要被复制多份,分别发送给每个目标主机。
这不仅消耗了更多的带宽,还增加了网络的负载。
组播通信还具有灵活性和扩展性。
通过使用组播IP地址范围,可以轻松地扩展组播组的规模,只需要加入或离开相应的组播组即可。
而在单播通信中,需要为每个新的目标主机分配一个独立的IP地址,增加了管理和配置的复杂性。
总结起来,组播是一种基于IP协议的多播通信方式,它通过将数据包同时发送给多个目标地址,实现了一对多的通信。
交换机组播视频工作原理
交换机组播视频工作原理如下:
1. 组播地址生成:在IP网络中,组播地址是一种特殊的IP地址,用于标识一组接收者。
组播地址是经过专门的组播寻址算法生成的。
2. IGMP协议:Internet组管理协议(IGMP)是一种网络层协议,用于主机向路由器报告它们对组播地址的兴趣以及路由器通知主机有关组播源的信息。
交换机需要支持IGMP协议来检测和处理对组播视频的兴趣。
3. VLAN配置:交换机可以通过虚拟局域网(VLAN)来划分
网络,将不同组播数据流隔离在不同的VLAN中。
这样可以
提高组播数据的安全性和效率。
4. 组播路由:交换机需要支持组播路由协议,如PIM (Protocol Independent Multicast)来确定组播数据转发的路径。
组播路由协议使用组播树来决定最佳路径,并确保只有对组播数据感兴趣的接收者才会收到数据。
5. 组播数据转发:当交换机接收到组播数据包时,它会根据组播地址和VLAN配置,确定该数据包应该转发到哪个端口。
交换机会根据组播路由表进行转发,确保只有对组播数据感兴趣的接收者才会收到数据。
总结起来,交换机在组播视频中的工作原理主要包括生成组播
地址、支持IGMP协议、设置VLAN配置、支持组播路由协议,并根据组播路由表将组播数据转发到对应接收者。
组播原理及配置介绍组播是一种网络通信方式,能够实现一对多或多对多的通信。
其原理是将一份数据包同时发送给多个主机,而不是复制多份数据分别发送给每个主机。
组播技术在实时应用程序、视频流以及跨网络广播等场景中具有广泛的应用。
组播的原理是基于 Internet Group Management Protocol (IGMP) 和 Protocol Independent Multicast (PIM) 协议。
IGMP用于主机与网络设备之间的通信,PIM则是一种路由协议,用于组播数据包在整个网络中的传播。
组播的传输过程主要包括如下几个步骤:1.主机发送组播请求:当主机加入组播组时,它会向网络设备发送IGMP报文,请求加入特定的组播组。
2.路由器收到请求:网络设备如路由器会接收并处理IGMP报文,通过PIM协议更新组播路由表,确定组播数据应该转发到哪些接口。
3.组播数据转发:一旦路由器确定了数据的转发路径,它会将组播数据包进行复制,并沿着生成的路径发送到相应的接口。
4.主机接收组播数据:网络中的其他主机会根据自己的加入请求和IGMP报文进行过滤,只有与组播组相匹配的数据包才会被接收。
为了实现组播功能,需要进行相关的配置。
在路由器端,需要配置IGMP和PIM协议。
在 IGMP 配置中,需要启用 IGMP 管理,以便路由器能够接收和处理主机的 IGMP 报文。
PIM 配置用于启用和配置 PIM-DM (Dense Mode)或 PIM-SM(Sparse Mode)路由模式,以及指定 RPH(RP Holder)和 Rendezvous Point(RPs)等参数。
另外,在主机端,也需要进行一些配置。
主机需要配置并加入相应的组播组,在 Windows 操作系统中,可以使用 mcast.exe 命令来配置和管理组播组,并使用 netsh 命令来配置 IGMP 相关参数。
配置组播还需考虑网络拓扑、带宽和负载均衡等因素。
组播原理及配置1.组播基本原理Multicast 应⽤在⼀点对多点、多点对多点的⽹络传输中,可以⼤⼤的减少⽹络的负载。
因此,Multicast ⼴泛地应⽤在流媒体的传输、远程教学、视频/⾳频会议等⽹络应⽤⽅⾯。
Multicast 采⽤ D 类 IP 地址,即 224.0.0.0~239.255.255.255。
其中 224.0.0.0~224.0.0.255是保留地址,239.0.0.0~239.255.255.255 是私有地址,类似于 unicast 的私有地址。
Multicast的IP地址与MAC地址的映射:MAC地址有48位,前⾯24位规定为01-00-5E,接着⼀位为 0,后⾯ 23 位是 IP地址的后 23 位。
路由器间要通过组播协议(如 DVMRP、MOSPF、PIM)来建⽴组播树和转发组播数据包。
组播树有两类:源树和共享树。
多播时,路由器采⽤组管理协议 IGMP来管理和维护主机参与组播。
IGMP 协议 v1中,主机发送 report 包来加⼊组;路由器发送 query 包来查询主机(地址是 224.0.0.1),同⼀个组的同⼀个⼦⽹的主机只有⼀台主机成员响应,其它主机成员抑制响应。
⼀般路由器要发送3 次query 包,如果 3 次都没响应,才认为组超时(约 3 分钟)。
IGMPv2 中,主机可以发送leave 信息给路由器(地址 224.0.0.2);路由器收到信息后,发送⼀个特别的 query 包,在 3秒内没收到组成员响应,就认为组超时。
由于组播的 MAC 不是具体某台主机的 MAC,根据交换机的⼯作原理,交换机会对组播数据包进⾏⼴播。
因此,对某些不参加组播的主机⽽⾔,这些都是不必要的流。
为了解决这个问题,cisco 公司开发了 CGMP协议。
该协议⽤于管理参与组播的主机。
每当有主机加⼊或离开某个组时,路由器就会把该主机的多播 IP地址(转换成组播 MAC 地址)、主机的C 地址以及消息类型(加⼊或离开)以 CGMP 消息告知交换机。
组播原理第一章概述随着数据通信技术的不断发展,各项基于数据通信技术的业务层出不穷,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 二层组播协议在上面介绍的几个例子中,我们使用了以太网交换机连接许多主机终端,并假设以太网交换机按照广播的形式发送组播数据,即以太网交换机每当接收到一个组播数据报,就向所有的端口上转发(除去接收端口)。