【毕业论文】基于 IP 组播的智慧教室系统设计

目录


说明
• 本文是我的本科毕业论文,但不是终稿(终稿省略了很多理论的东西)。现在毕业了,给大家分享一下,希望能帮到初学 IP 组播技术的朋友。如有错误,可以的话麻烦及时提出,谢谢!


摘要

组播是 IPv4 三种主机间通信方法(单播、组播、广播)之一。它能将同一份数据包分发到有接收需求的主机上,而又不影响到无接收需求的主机。随着互联网技术的发展,诸如直播等互联网多媒体应用日渐流行。但这些服务却会给底层的网络传输设备带来巨大的压力,而组播技术恰好可以很好地缓解这些问题。

本论文首先介绍了组播的基本原理,包括为什么需要组播、组播流量的特点、组播地址的划分、组播模型、组播分发树的类型以及 IGMP 等组播的基础知识;并详细分析了目前最常用的组播路由协议 —— PIM 的工作原理及其及 RPF 检查机制;还介绍了交换机如何处理组播数据包;最后就目前所学的知识为学校设计一个基于 IP 组播的智慧教室系统,包括组播架构的设计、组播 IP 段的划分、设备配置方法以及安全性问题的研究,并通过仿真软件进行验证。

本文中的组播如无特别说明,均指 IPv4 组播。

关键词:组播;组播路由;PIM;RPF;IGMP;智慧教室


ABSTRACT

(略)


一、前言

为什么需要组播?组播有什么作用?

假设现在有一个网络电视直播服务器正在转播节目。当有多个用户需要观看节目时,如果采用单播的方式把视频流发送到每个想要观看节目的用户的终端上,由于数据包每次只能传送给一台终端,因此直播服务器就需要针对每一个终端单独发一份数据包。假设直播服务器直播视频流的带宽为 1 Mbps,而现在又有 1000 个用户想要观看同一个直播节目,那么就需要直播服务器所在网络的出口拥有 1000 Mbps 的带宽!如此高的带宽需求显然是廉价网络设备以及普通运营商难以满足的,并且这也会极大消耗直播服务器的系统资源。除此之外,由于大量的数据包需要在各台网络设备中排队发送,因此各个终端接收到的直播视频流时延很可能会不一致,这对于直播这种实时性应用也是致命的。

那么能否使用广播呢?广播虽然可以节约直播服务器的系统资源,但那些不想观看节目的用户的终端也会收到视频流,而且对整网带宽资源也是一种浪费。并且由于广播报文是所有主机都必须接收处理的,因此这也会浪费不想观看节目的用户的终端的系统资源。另外,广播有一个非常致命的问题,那就是在大多数情况下不能跨网段传输。这就导致了视频流只能在同一个网段内传播,造成了很大的局限性。总之,广播也是不能使用的。

而组播却可以很好地解决以上存在的问题。直播服务器向某个组播组地址发送组播数据包,如果有用户需要观看节目的话,用户的终端只要加入这个组播组就可以收看到节目了,而没有加入到组播组的终端则把会直接把发往该直播节目所在组的数据包直接丢弃,而无需做进一步处理。使用组播看起来虽然是一个理想的解决方案,但也需要了解清楚组播的转发机制并正确配置网络设备才可满足需求。

单播

广播

组播

组播虽好,但学习起来还是有难度的。需要解决以下四个问题才算真正了解组播:

(1)如何在网络中标识一组接收者?
(2)路由器和交换机如何知道谁是接收者?
(3)组播数据流要如何转发?
(4)如何避免重复的组播数据包或环路?


二、组播基础知识

2.1 组播流量的特点

2.1.1 灵活性

组播接收者可根据自身需要随时加入或退出组播组。接收者自身加入与退出组播组对其他该组的接收者和非该组接收者都没有任何影响,各台主机只接收自己加入组播组的流量,互不干扰。组播也能非常好地适应分布式的应用。

2.1.2 单向性

组播数据包是由组播源产生的、目的地址为组播组地址的数据包,组播源完全不知道也不必知道有谁需要接收这个组地址的数据包。并且 IPv4 协议规定了组播组地址不能作为源地址出现在 IPv4 数据包中。因此,仅依靠单个组播连接无法实现主机间的双向通信。

2.1.3 不可靠性

组播的单向性注定了它不能使用 TCP 之类的可靠传输层协议,并且 TCP 之类的可靠传输层协议一般都不支持点到多点的连接。所以组播只能够使用 UDP 之类的不可靠传输层协议。还有,UDP 之类的不可靠传输层协议也无法对乱序的数据包进行排序,以及剔除重复的数据包。因此,组播流量还需要借助 RTP 之类的应用层协议来进行排序与纠错。

2.2 组播组地址

2.2.1 组播组 IP 地址

组播组 IP 地址可以用来标识所有特定组播组的所有成员(接收者)。

组播组使用的是 D 类 IP 地址。以下是一些 D 类 IP 地址的分配表:

IP 组地址范围 用途
224.0.0.0239.255.255.255 所有的组播 IP 地址
224.0.0.0224.0.0.255 不可路由组播地址(有特殊用途)
224.0.0.1 同一网段所有主机
224.0.0.2 同一网段所有组播路由器
224.0.1.0238.255.255.255 公网组播地址(需购买或租赁)
232.0.0.0232.255.255.255 SSM 专用组播地址
233.0.0.0233.255.255.255 购买 AS 号赠送的地址
239.0.0.0239.255.255.255 私网组播地址(无需购买或租赁)

另外,组播组 IP 地址没有网段(主机位、网络位)这个概念,组播组 IP 地址是扁平化的。组播组 IP 地址的子网掩码以及前缀长度仅用来表示地址的范围。

2.2.2 组播组 IP 地址与 MAC 地址的映射关系

组播 IP 与 MAC 的映射

  • 组播 IP 地址的高 4 位是固定的 1110,低 28 位可以为任意值。
  • 组播 MAC 地址的高 25 位是固定的 000000001 00000000 10011110 001:00:5E),低 23 位可以为任意值。
  • 可以看出,组播 IP 地址的任意值位比组播 MAC 地址的任意值位多出了 5 个。
  • 因此,每个组播 MAC 地址可对应 32(2 的 5 次方)个组播 IP 地址。

2.3 组播模型

2.3.1 源指定组播(SSM)

在同一时刻,有多个组播源同时向同一个组播组 IP 地址发送组播数据,接收者也可以在同一时刻选择接收任意一个或多个组播源发出的数据。任意源组播一般用于视频会议或共享白板之类的实时性互动应用,实现起来也较为复杂。

SSM

2.3.2 任意源组播(ASM)

在同一时刻,只有一个组播源可以向同一个组播组 IP 地址发送组播数据,接收者只要直接加入组播组就可收到该组唯一的组播数据。这是目前用途最广的组播模型。下文中的组播如无特别说明,均指 ASM。

ASM

2.4 组播转发树

组播转发的路径是呈树形结构的。组播接收者通常位于树形结构的叶子侧,而组播发送者在树形结构中的位置需要根据组播转发树的类型来确定。

2.4.1 最短路径树(SPT)

最短路径树又称源树。它是以每个组播源为根,在全网构建的多棵独立的转发树。不同组播源使用不同的转发树。这种树形结构能够确保组播报文的传播路径总是最短的,但路由器需要维护较多的转发树,处理资源开销较大。每一棵 SPT 均可使用 (S,G) 表示。

SPT

2.4.2 汇聚点树(RPT)

汇聚点树又称共享树。它在全网中选出一个路由器作为汇聚点(RP),然后构建一棵以 RP 为树根的转发树。所有组播源发出的组播报文必须先经过树根,然后沿着同一棵转发树传播才能到达接收者。这样的话,路由器就只需维护少量的转发树,处理资源开销较小,但组播报文的传播路径可能不是最优的。可使用 (*,G) 表示一棵 RPT。而从组播源到汇聚点的这一段路径仍旧使用 SPT,也就是说,RPT 需要配合 SPT 才能构建起从组播源到接收者的完整路径。

RPT

2.5 IGMP

2.5.1 IGMP 简介

由于组播数据包的目的地址均为组播组地址,因此在组播数据包传输的过程中,路由器根本不可能只从组播数据包中获取到是否有接收者的存在。而路由器都是需要按需转发组播报文的,这就产生了矛盾。而 IGMP 就是来解决这个矛盾的。

IGMP 的全称是「Internet 组管理协议」。它使用 C/S 架构,可用来检测路由器接口所在的网段是否存在组播接收者,路由器通过与主机交互 IGMP 报文来决定是否要向特定的接口转发组播数据。路由器连接了组播接收者的接口必须启用 IGMP。

IGMP 目前有三个版本。v1 只使用查询和响应报文来实现路由器对组播组成员的管理,效率较为低下,目前已经很少使用。v2 主要增加了组成员离开组通告机制,使得管理效率大大提高,v2 也是目前用得最多的 IGMP 版本。v3 在兼容 v1 和 v2 的基础上,还允许组播接收者指定要接收的组播源。v3 主要用于 SSM 模型的组播。

2.5.2 IGMPv2 工作流程

(1)路由器周期性地发送通用组查询(Membership Query General)报文给开启了组播路由功能的接口所在网段的所有主机(目的 IP 地址为 224.0.0.1),询问该网段内有哪些主机加了哪些组播组。
(2)网段内只要加入了组播组的主机都会发送报告(Membership Report)报文(目的 IP 地址为主机加入的组播组地址)向路由器报告自己加了哪些组播组(一般情况下,同一个组播组只会有一台主机发送报告报文)。
(3)如果网段内的主机新加入了一个组播组,也会发送一个报告报文告知路由器。
(4)路由器获取到该网段内有哪些组播组的成员之后,维护一个 IGMP 数据库,并用来决定是否向某个网段转发特定组播组的数据。

IGMP1

而当某个组播组成员离开某个组播组时:

(1)离开组的成员向路由器发送离组(Leave Group)报文(目的 IP 地址为 224.0.0.2)。
(2)路由器向该组发送特定组查询(Membership Query)报文(目的 IP 地址为刚才那台主机离开的组播组地址),观察是否还有该组的成员。
(3)如果该组依然存在成员,相应的成员在收到路由器发出的特定组查询(Membership Query)报文之后,会发送报告(Membership Report)报文向路由器报告该组依然有成员存在。
(4)如果该组不存在成员,路由器就收不到属于该组的报告(Membership Report)报文。一段时间后,路由器将停止向对应接口转发该组的数据。

IGMP2

最后需要注意的是:路由器实际上只关心某个组播组是否有成员,而并不关心某个组播组有多少个成员。还有,只有组播接收者才会发送报告(Membership Report)报文,组播信源并不会发送。


三、组播路由交换技术

3.1 组播路由基础

3.1.1 组播路由的特点

组播路由不像单播路由,既可以手动配置也可以依靠某些路由协议运行。组播路由需要依靠组播路由协议才能运行。组播路由协议运行在需要转发组播数据包的路由器上,用于建立和维护组播路由表,并为组播报文创造一个无环、无重复的转发路径。同时,组播路由协议必须依靠单播路由表才能运行。

3.1.2 组播路由表

路由器的组播路由表可表示组播流量在路由器的流向。组播路由表由路由器自动生成,我们无法直接干预它。

组播路由表的结构如下:

源地址(S) 组播组地址(G) 入接口 出接口
192.168.1.1 224.1.1.1 Ethernet0/1 Ethernet0/2
*(任意) 224.1.1.2 Ethernet0/4, Ethernet0/5

3.1.3 常见的组播路由协议

常见的域内组播路由协议有 PIM、DVMRP、MOSPF、CBT 等,它们都只能在同一个 AS 内运行。其中用途最广泛的是 PIM,其他路由协议都因为存在或多或少的兼容性或性能问题而很少被使用。

常见的域间组播路由协议有 MBGP、MSDP 等,它们可以跨 AS 运行。此处不做进一步介绍。

3.1.4 PIM 简介

PIM 的全称是「协议无关组播」。它是一种域内组播路由协议。之所以用途广泛,是因为它并不关心底层的单播路由表项是如何生成的(是通过 RIP、OSPF,还是静态配置的路由),适应性能力强。PIM 使用现有的单播路由表项和 RPF 检查机制来生成组播路由表,且各个路由器之间并不需要交换组播路由表。

PIM 又分为 PIM-DM 和 PIM-SM 两种模式,前者主要用在小型网络上,后者既可以用在小型网络上也可以用在大型网络上。下文将详细介绍。

3.2 RPF 检查

3.2.1 RPF 检查简介

RPF 的全称是「逆向路径转发」。RPF 检查可用在单播路由和使用了 PIM 的组播路由上。

RPF 检查简单来说就是提取接收到的 IP 包的源地址,然后检查去往该源地址的路由表项,判断其出接口是否为接收到该 IP 包的入接口。如果是的话,检查通过,继续转发;否则不通过,丢弃该数据包。

在单播路由上,使用 RPF(uRPF)检查可用来防止 IP 源地址欺骗攻击;在使用了 PIM 的组播路由上,RPF 检查可用来防止组播环路以及重复包的出现,并且使用了 PIM 的组播路由的 RPF 检查默认开启且无法关闭。

RPF

在使用了 PIM 的组播路由上,针对某个信源组播流量的合法入接口称为 RPF 接口,并且一个信源只能有一个 RPF 接口。如果有多条去往该信源的等价路由条目,则路由器会选择下一跳 IP 地址最大的出接口作为 RPF 接口。

还有一点需要注意,在 RPT 组播转发树中,RPF 检查的并不是去往组播源地址的路由表项的出接口,而是去往 RP 地址的路由表项的出接口。

3.2.2 组播 RPF 检查流程

  • 如果存在对应的组播路由表项,且组播包的实际入接口与组播路由表中的入接口相同,则不执行 RPF 检查,直接向所有的出接口转发。
  • 如果存在对应的组播路由表项,但组播包的实际入接口与组播路由表中的入接口不同,则对组播包执行 RPF 检查。
    • 若检查结果表明,去往组播源地址或 RP 地址的出接口与现存组播路由表项的入接口相同(说明去往组播源或 RP 的单播路由表项没有发生改变),则认为组播包是由于环路或攻击产生的,丢弃掉;
    • 若检查结果表明,去往组播源地址或 RP 地址的出接口与现存组播路由表项的入接口不同(说明去往组播源或 RP 的单播路由表项已经发生改变),则将组播路由表对应条目中的入接口修改为组播数据包的实际的入接口,并向所有的出接口转发。
  • 如果不存在对应的组播路由表项,则对组播包执行 RPF 检查。
    • 若检查结果表明,去往组播源地址或 RP 地址的出接口与组播数据包的实际入接口相同,则添加对应的组播路由表项,并向所有的出接口转发;
    • 若检查结果表明,去往组播源地址或 RP 地址的出接口与组播数据包的实际入接口不同,则认为组播包是由于环路或攻击产生的,丢弃掉。

在某些情况下,也可通过强制指定进行 RPF 检查时组播源地址的出接口来间接干预组播转发的路径。

3.3 PIM-DM

3.3.1 PIM-DM 简介

PIM-DM 的全称是「协议无关组播-密集模式」。在一开始 PIM-DM 假设全网有 90% 以上的组播接收者。当组播源开始向特定组发送数据时,路由器会对接收到的组播流量进行组播源 RPF 检查,检查通过之后默认泛洪到除入接口之外所有开启 PIM-DM 功能的接口上,直到最后一跳(连接着组播接收者)路由器发现没有特定组的成员,才会一级一级向第一跳(连接着组播源)路由器方向报告,要求上游路由器停止转发无关流量(此过程称为 Prune,也叫剪枝)。如果被停止转发特定组流量的最后一跳路由器又有了新的组播接收者,那么它也会一级一级向第一跳路由器方向报告,要求上游路由器恢复转发特定组的流量(此过程称为 Graft,也叫嫁接)。由于 PIM-DM 只会建立 SPT,所以它可以保证所有组播流量转发的路径都是最优的。

PIM-DM 也称为 PIM 的推(Push)模式,因为组播路由器刚开始都会把组播流量推送给所有邻居路由器,不管需不需要。

PIM-DM 一般只用于组播源较少且组播接收者位置较为集中的小型网络上。

3.3.2 PIM-DM 工作流程

以下面的拓扑图为例。在初始状态下,假定 Server 1 是组播源,PC 3 是组播接收者。

(1)所有路由器在开启 PIM 功能的接口上发送 Hello 报文,建立 PIM 邻居关系。

PIMDM1

(2)当组播源开始发送数据时,网络中的所有路由器把组播流量发给除入接口外的其他所有 PIM 邻居,完成组播流量的初始泛洪。

PIMDM2

(3)此时,网络中会存在重复包。由于重复包会导致路由器的 RPF 检查不通过,所以收到重复包的路由器会向收到重复包的接口发送 Join/Prune 报文,要求邻居停止向该接口转发组播报文。

PIMDM3

(4)最后一跳路由器(R5)通过 IGMP 发现它的接口所在网段内有组播的接收者,于是将组播报文发往接收者所在网段的接口。

PIMDM4

(5)由于路由器 R3、R4 既没有可转发数据的 PIM 邻居,又没有组播接收者,所以目前组播流量对它们来说没有任何意义。于是向组播流量的入接口方向发送 Join/Prune 报文,要求邻居(R1、R2)停止向该接口转发组播报文。

PIMDM5

(6)全网 SPT 建立完成。每台路由器针对组播源都有一条 (S,G) 组播路由表项。

PIMDM6

(7)假设现在 PC 1 想要接收组播数据。此时最后一跳路由器(R3)通过 IGMP 发现它的接口所在网段内有组播的接收者,此时组播流量对于它来说就不会没有意义了。于是向之前记录的组播流量入接口方向发送 Graft 报文,要求邻居(R1)继续向该接口转发组播报文。

PIMDM7

3.3.3 PIM-DM 的缺陷

PIM-DM 最大的缺陷就是不管组播源有没有接收者,所有组播源的流量都必须在全网周期性(一般为 3 分钟左右)泛洪一次。这会造成极大的带宽浪费。

还有一点就是,无论在什么情况下,全网中的每一台路由器都会有关于所有组播源的组播路由表项。而每一条组播路由表项会占用路由器大约几百 KB 大小的内存。组播源一旦多起来,路由器的内存资源也将很快被耗尽。

PIM-DM 的这些缺陷注定了它只能在小型网络中使用。

3.4 PIM-SM

3.4.1 PIM-SM 简介

PIM-SM 的全称是「协议无关组播-稀疏模式」。在一开始 PIM-SM 假设全网没有任何组播接收者,路由器默认也不会转发组播数据。并且全网需要一个叫做 RP 的中心节点来控制组播数据的分发以及组播分发树的建立。当组播源开始向特定组发送数据时,第一跳路由器会向 RP 发送注册报文,此时 RP 就知道了组播源的具体位置。当最后一跳路由器检测到有该组的接收者时,会一级一级向 RP 方向报告,请求 RP 下发对应组播组的流量。在向 RP 报告的这个过程中,RPT 也会建立起来。RP 收到下发请求之后,会在组播源到 RP 之间先建立一棵 SPT,再沿着刚才自动建立的 RPT 来向最后一跳路由器下发组播数据。此时组播数据的传播路径是:组播源 -> SPT -> RP -> RPT -> 接收者,但该路径可能不是最优的,因此最后一跳路由器会触发 RPT -> SPT 转换,将路径变为:组播源 -> SPT -> 接收者。当然,最后一跳路由器如果发现相应的组播组已经没有了接收者,也会触发 Prune 操作。

PIM-SM 也称为 PIM 的拉(Pull)模式,因为需要接收组播的路由器必须主动向 RP 拉取组播流量。

PIM-SM 主要用于大型的组播网络中(例如运营商的 IPTV 专用网),也可用于小型的组播网络,适用性广。

3.4.2 PIM-SM 工作流程

以下面的拓扑图为例。在初始状态下,假定 Server 1 是组播源,路由器 R4 作为 RP,没有组播接收者。

(1)所有路由器在开启 PIM 功能的接口上发送 Hello 报文,建立 PIM 邻居关系。

PIMSM1

(2)当组播源开始发送数据时,第一跳路由器(R1)把第一个组播报文封装在 Register 报文中,并以单播的方式发送给 RP。RP 收到 Register 报文之后,发送一个 Register Stop 报文给第一跳路由器(R1),要求其停止发送单播报文。与此同时,RP 也获取到了组播源的位置,创建了一条从组播源到 RP 的 (S,G) 组播路由表项(可用来表示 SPT),但由于暂时没有接收者,其出接口是空的。

PIMSM2

(3)假设现在 PC 1 想要接收组播数据。则最后一跳路由器(R3)通过 IGMP 发现它的接口所在网段内有组播的接收者,于是向 RP 方向的邻居(R4)发送 Join/Prune 报文,让 RP 知道组播接收者的存在。同时创建了一条从最后一跳路由器(R3)到 RP 的 (*,G) 组播路由表项(可用来表示 RPT)。

PIMSM3

(4)RP 知道有接收者之后,向组播源方向的邻居(R1)发送 Join/Prune 报文,要求邻居(R1)下发组播流量。

PIMSM4

(5)RP 收到组播源的组播流量之后,沿着刚才建立的 RPT 下发给 R3。此时,组播流量的传输路径是:Server 1 -> R1 -> R2 -> R4(RP)-> R3 -> PC1,即 Source -> SPT -> RPT -> PC1。这条路径显然不是最优路径。这里还有一点需要注意的,那就是 RPT 上的路由器在对组播数据包做 RPF 校验时,将使用 RP 的 IP 地址作为目的地址,而不使用组播源的 IP 地址作为目的地址。

PIMSM5

(6)最后一跳路由器(R3)触发 RPT -> SPT 切换,向组播源方向的邻居(R1)发送 Join/Prune 报文,要求邻居(R1)直接下发组播流量。并添加一条 (S,G) 组播路由表项,构建一棵 SPT。

PIMSM6

(7)最后一跳路由器(R3)在收到由 SPT 下发的组播流量之后,向 RP 方向的邻居(R4)发送 Join/Prune 报文,要求停止使用 RPT 转发组播报文。至此 RPT -> SPT 切换完成,组播报文使用最优路径转发。

PIMSM7

(8)如果现在 PC 1 不想接收组播数据了,那么最后一跳路由器(R3)只需要向组播源方向的邻居(R1)发送 Join/Prune 报文,要求其停止向该接口转发组播报文即可。

3.4.3 多 RP 协同

在 PIM-SM 架构的组播网络中,如果 RP 出现故障,那么整个组播网络将会停止运转。这种单点故障在大型网络中是绝对不允许出现的,因此在大型组播网络中,必须部署多个 RP。多个 RP 之间可以是主备模式,也可以是负载均衡模式。

目前主流的多 RP 控制协议有 Auto-RP 和 BSR。Auto-RP 是思科的私有协议,而 BSR 是公有协议。

Auto-RP 定义了候选 RP(C-RP)和映射代理(MA)这两个角色。C-RP 通过 Announce 报文向 MA 通告自己的身份(目的 IP 地址为 224.0.1.39),由 MA 决定由哪一台 C-RP 做哪个组播组的 RP 并通过 Discovery 报文向所有路由器通告(目的 IP 地址为 224.0.1.40)。该协议允许一台路由器既做 C-RP 也做 MA,多个 MA 之间也是平行的,无任何差别。

Auto-RP

而 BSR 的工作方式和 Auto-RP 有所不同。BSR 定义了候选 BSR(C-BSR)和候选 RP(C-RP)这两个角色。当网络中有多个 C-BSR 存在时,必须选举一个 BSR。选举完成之后,BSR 会通过未包含 RP 信息的 Bootstrap 报文向所有路由器通告(目的 IP 地址为 224.0.0.13)。所有 C-RP 在收到 BSR 的通告之后,将自己的身份通过 Candidate-RP-Advertisement 报文以单播的方式通告给 BSR(目的 IP 地址为 BSR 的 IP 地址),然后 BSR 将这些 C-RP 的信息收集起来,通过包含 RP 信息的 Bootstrap 报文向所有路由器通告(目的 IP 地址为 224.0.0.13)。所有路由器通过特定的算法(可以保证同一个组播组的 RP 是相同的)自行选择一台 C-RP 当作某些组播组的 RP。

BSR

3.5 组播与交换机

3.5.1 交换机如何处理组播

没有开启或不支持 IGMP-Snooping 功能的交换机(例如非网管二层交换机)在收到组播数据包之后,只能在广播域内泛洪。这是因为没有源 MAC 地址为组播 MAC 地址的数据帧存在,导致交换机无法学习到相应的 MAC 地址表条目导致的。而支持且开启 IGMP-Snooping 功能的交换机默认会维护一个组播转发表。当交换机收到组播数据包时,如果数据包的组地址以及 VLAN 在表中有匹配项,交换机会将组播包转发到对应表项的出接口上;如果数据包的组地址以及 VLAN 在表中没有匹配项,则丢弃数据包。

以下是交换机的组播转发表:

VLAN 组播 IP 出接口
1 224.0.0.251 Ethernet0/1
1 224.0.0.252 Ethernet0/1, Ethernet0/2, Ethernet0/3

3.5.2 IGMP-Snooping

开启了 IGMP-Snooping 功能的交换机通过监听路由器与主机之间交互的 IGMP 报文来生成组播转发表。其主要工作流程如下:

(1)当组播路由器发出 IGMP 通用查询(Membership Query General)报文然后收到主机回应的 IGMP 报告(Membership Report)报文时,交换机会把收到回应的接口和对应的组播地址学习到组播转发表中。
(2)当主机发出 IGMP 离组(Leave Group)报文时,组播路由器会发送 IGMP 特定组查询(Membership Query)报文。如果该接口在一定时间内得不到回应,则删除条目对应的接口;如果得到回应则不删除。当开启接口快速离开功能时,一旦该接口收到离开报文,交换机将立即删除条目对应的接口。
(3)和 MAC 地址表一样,自动学习到的条目都有老化时间。若在一定时间内没有收到对应组播地址在某个接口上的 IGMP 报告(Membership Report)报文,条目上相应的接口会自动删除。当所有接口都被删除时,条目将自动删除。

IGMP-SNOOPING

IGMP-Snooping 一般在组播接收者侧交换机(连接最后一跳路由器)部署。


四、基于 IP 组播的智慧教室系统设计

4.1 需求分析

为了拓宽在校师生的知识面,支持师生的兴趣爱好,本校领导决定在现有校园网络的基础上建设一个智慧教室系统。该系统允许师生使用已经接入到校园网内网的电脑或手机,在教学时间内随时随地观看任意教室老师讲课的直播视频;并且能对师生观看的行为做统计分析,便于学校适时调整课程安排,提升办学质量。

由于当前校园网核心层的流量转发压力非常大,所以该智慧教室系统不得占用核心层设备过多的控制层面资源。另外,该智慧教室系统也应该具有一定的攻击防范能力。

4.2 现有校园网架构分析

学校现有网络的简化拓扑图如下:

华软拓扑

  • 校园网内网使用两台三层核心交换机,一台负责教学楼(S、T、U、E 型教学楼)、办公楼(综合楼、教学保障处等)及少部分宿舍楼(J 楼等,图中未画出)区域的网络互联,另一台负责大部分宿舍楼(M1 楼、Y1 楼等)及行政楼区域的网络互联。两台三层核心交换机之间使用一条千兆多模光纤和一条千兆单模光纤互联。
  • 核心层交换机下游使用千兆多模光纤连接了若干台三层汇聚交换机,平均一栋楼一台。
  • 汇聚层交换机下游使用千兆铜缆连接了若干台二层接入交换机,平均一层楼 1~2 台,具体视楼层设备数目而定。
  • 接入层交换机下游使用百兆铜缆连接了若干台非网管二层交换机或主机,用于终端设备接入网络。
  • 学校内网使用 B 类私有 IP 地址(172.16.0.0/16)。在宿舍楼及 S 楼(接入密度大)平均一层楼划分一个 /24 地址段;而在其他教学楼或办公楼(接入密度小)平均一栋楼划分一个 /24 地址段。

4.3 方案设计

4.3.1 整体规划

(1)在每间教室或实验室中安装音视频采集系统,采集老师讲课的音视频信息,并通过视频编码器把音视频信息压缩(压缩到 1Mbps 或以下)后以组播的方式发送到网络中。
(2)在现有的在线影院服务器上部署相关的网页应用及数据库,并让师生通过网页选择观看某个教室的直播,以便对师生观看的行为进行统计分析。师生通过网页选择需要观看直播的教室之后,接收对应教室的组播流量;网页关闭之后,停止接收对应教室的组播流量。
(3)校园网内组播源全部集中在 S、T、U 及 E 型教学楼中,组播源的数量多且组播接收者位置不固定,因此选择 PIM-SM 作为全网的组播路由协议。
(4)由于三层核心交换机需要转发大量数据,所以应尽量避免给三层核心交换机的控制层面增加过多压力。与此同时,也应尽量减少不必要的组播流量在网络中传播。由此可见,不应该让三层核心交换机做 RP。这里将选择多 RP 负载均衡的方案,让 S、T、U 及 E 型教学楼所在的三层汇聚交换机分别做该楼对应组播组范围的 RP。
(5)为了确保兼容性,这里使用业界标准的多 RP 控制协议 —— BSR。让连接了教学楼的核心交换机做 C-BSR,S、T、U 及 E 型教学楼所在的三层汇聚交换机做特定组的 C-RP。
(6)为了防止组播报文在广播域内泛洪,内网的所有二层接入交换机均开启 IGMP-Snooping 功能。同时为了确保组播源发出的组播报文能够顺利到达三层汇聚交换机,S、T、U 及 E 型教学楼所在的三层汇聚交换机的下游接口需要加入该接口下所有组播源对应的组播组。

整体规划

4.3.2 IP 组播网段的划分

教学楼 组播地址范围
E 型教学楼 239.172.10.0/24
S 239.172.11.0/24
T 239.172.12.0/24
U 239.172.13.0/24

4.3.3 安全性问题及解决方案

第一:内网中的任意主机都可以向任意组播组地址发送数据包,造成组播接收者收到的是假冒组播源发出的数据或使 PIM 协议无法正常工作。

解决方法:在所有组播源侧二层接入交换机的下游接口的入口方向部署 ACL,禁止除 IGMP 离组报文、内网中存在的组播组的 IGMP 报告报文以及合法组播源发出的对应组播地址以外的其他组播流量通过;在所有非组播源侧二层接入交换机的下游接口的入口方向部署 ACL,禁止除 IGMP 离组报文以及内网中存在的组播组的 IGMP 报告报文以外的其他组播流量通过。

第二:内网中的主机可能会不断请求加入一些根本不存在的组播组,造成三层汇聚交换机和三层核心交换机不停地创建无意义的组播路由表项,耗尽三层汇聚交换机和三层核心交换机的内存资源。

解决方法:在所有二层接入交换机的下游接口的入口方向部署 ACL,限制每个下游接口只能发送组播组地址的范围为 239.172.10.0 - 239.172.13.255 的 IGMP 报告报文。

第三:内网中的主机可能会故意请求加入很多课室的组播组,造成带宽耗尽。

解决方法:在所有二层接入交换机上限制每个下游接口加入组播组的数目。具体允许的组数目视下游接口接入设备的数目而定,理论上一台设备只允许加入 2-3 个组播组即可。

4.4 仿真实验说明

4.4.1 网络仿真软件及分析工具简介

4.4.1.1 EVE-NG

EVE-NG 是一款基于 Ubuntu 操作系统深度定制的 B/S 架构的网络仿真软件,它的前身是 UnetLab。它不仅可以模拟各种网络设备,还可以运行各种虚拟机,功能十分强大。本次实验将使用 EVE-NG 来完成拓扑的搭建和网络设备的仿真。

EVE-NG 界面

4.4.1.2 iperf

iperf 是一款跨平台且开源的网络性能测试工具,它基于 C/S 模型,可产生任意的 TCP/UDP 数据流。本次实验将使用 iperf 来完成组播流量的收发测试。

本次实验将会使用该工具的以下两条命令:

持续发送 1 Mbps 的组播流量:iperf -c <组播组地址> -u -b 1m -T 64 -t 99999 -i 3
接收组播流量:iperf -s -u -i 3 -B <组播组地址>

iperf 帮助文档

4.4.1.3 Wireshark

Wireshark 是一款跨平台且开源的网络流量分析工具,可分析各种协议的数据包。本次实验将使用 Wireshark 来完成组播流量的分析。

macOS 版 Wireshark 的主界面

4.4.2 拓扑规划

由于电脑配置和个人精力都是有限的,所以必然无法做到仿真校园网中的全部设备。这里选择每栋教学楼的任意两层,每一层随机选择一个教室作为组播源或接收者;然后随机选择部分宿舍楼的任意两层,每一层随机选择一间宿舍内的一台设备作为组播接收者。详细的仿真拓扑图如下:

仿真拓扑图

由于学校保密需要,无法获取学校内网详细的网段划分以及设备信息,所以本仿真将自行划分网段,并假设学校均使用思科的交换机;所有三层交换机均配置一个环回口地址作为设备的标识;所有三层交换机均启用三层接口进行跨网段通信,并使用 OSPF 动态路由选择协议交换路由信息;所有二层交换机均不配置 IP 地址,也不额外划分 VLAN;组播客户端和服务器均使用 Linux 操作系统的虚拟机配合 iperf 软件来收发组播流量。

4.4.3 仿真环境

在仿真软件中,所有思科交换机使用的操作系统为 L2-ADVENTERPRISEK9-M-15.2-IRON-20151103;组播源以及组播接收者使用的 Linux 操作系统为 CentOS 7.5.1804;iperf 的版本为 2.0.12;Wireshark 的版本为 2.6.3

仿真软件为每台思科交换机分配了 1 个虚拟 CPU 以及 512 MB 的内存;为每台运行 Linux 操作系统的虚拟机(组播源以及组播接收者)分配了 1 个虚拟 CPU 以及 128 MB 的内存。

运行仿真软件的物理机的 CPU 为 Intel Core i7-8559U,内存为 8192 MB。

4.4.4 IP 地址规划

下表是本次仿真中各设备各个接口 IP 地址的配置:

接口 IP 地址
核心交换机 1 环回口 172.16.255.1/32
核心交换机 2 环回口 172.16.255.2/32
S 楼汇聚交换机 环回口 172.16.255.11/32
T 楼汇聚交换机 环回口 172.16.255.12/32
U 楼汇聚交换机 环回口 172.16.255.13/32
E 型教学楼汇聚交换机 环回口 172.16.255.14/32
M1 楼汇聚交换机 环回口 172.16.255.21/32
M2 楼汇聚交换机 环回口 172.16.255.22/32
M3 楼汇聚交换机 环回口 172.16.255.23/32
Y1 楼汇聚交换机 环回口 172.16.255.24/32
核心交换机 1 e1/0 <--> 核心交换机 2 e1/0 172.16.0.1/30 <--> 172.16.0.2/30
核心交换机 1 e1/1 <--> 在线影院服务器 172.16.1.1/30 <--> 172.16.1.2/30
核心交换机 1 e0/0 <--> S 楼汇聚交换机 e0/3 172.16.10.1/30 <--> 172.16.10.2/30
核心交换机 1 e0/1 <--> T 楼汇聚交换机 e0/3 172.16.10.5/30 <--> 172.16.10.6/30
核心交换机 1 e0/2 <--> U 楼汇聚交换机 e0/3 172.16.10.9/30 <--> 172.16.10.10/30
核心交换机 1 e0/3 <--> E 型教学楼汇聚交换机 e0/3 172.16.10.13/30 <--> 172.16.10.14/30
核心交换机 2 e0/0 <--> M1 楼汇聚交换机 e0/3 172.16.100.1/30 <--> 172.16.100.2/30
核心交换机 2 e0/1 <--> M2 楼汇聚交换机 e0/3 172.16.100.5/30 <--> 172.16.100.6/30
核心交换机 2 e0/2 <--> M3 楼汇聚交换机 e0/3 172.16.100.9/30 <--> 172.16.100.10/30
核心交换机 2 e0/3 <--> Y1 楼汇聚交换机 e0/3 172.16.100.13/30 <--> 172.16.100.14/30
S 楼汇聚交换机 e0/0(连接了 S 楼 3 层接入交换机的 e0/3) 172.16.13.1/24
S 楼汇聚交换机 e0/1(连接了 S 楼 4 层接入交换机的 e0/3) 172.16.14.1/24
T 楼汇聚交换机 e0/0(连接了 T 楼 1 层接入交换机的 e0/3) 172.16.21.1/24
T 楼汇聚交换机 e0/1(连接了 T 楼 3 层接入交换机的 e0/3) 172.16.23.1/24
U 楼汇聚交换机 e0/0(连接了 U 楼 2 层接入交换机的 e0/3) 172.16.32.1/24
U 楼汇聚交换机 e0/1(连接了 U 楼 5 层接入交换机的 e0/3) 172.16.35.1/24
E 型教学楼汇聚交换机 e0/1(连接了 E 型教学楼 A 楼的接入交换机的 e0/3) 172.16.40.1/24
E 型教学楼汇聚交换机 e0/2(连接了 E 型教学楼 C 楼的接入交换机的 e0/3) 172.16.42.1/24
M1 楼汇聚交换机 e0/0(连接了 M1 楼 2 层的接入交换机的 e0/3) 172.16.102.1/24
M2 楼汇聚交换机 e0/0(连接了 M2 楼 5 层的接入交换机的 e0/3) 172.16.115.1/24
M3 楼汇聚交换机 e0/0(连接了 M3 楼 1 层的接入交换机的 e0/3) 172.16.121.1/24
Y1 楼汇聚交换机 e0/0(连接了 Y1 楼 4 层的接入交换机的 e0/3) 172.16.151.1/24
S303 组播源(连接 S 楼 3 层接入交换机的 e0/0) 172.16.13.23/24(组地址:239.172.11.15
S402 组播源(连接 S 楼 4 层接入交换机的 e0/0) 172.16.14.105/24(组地址:239.172.11.20
T101 组播源(连接 T 楼 1 层接入交换机的 e0/0) 172.16.21.3/24(组地址:239.172.12.1
T303 组播源(连接 T 楼 3 层接入交换机的 e0/0) 172.16.23.10/24(组地址:239.172.12.23
U205 组播源(连接 U 楼 2 层接入交换机的 e0/0) 172.16.32.149/24(组地址:239.172.13.15
U506 组播源(连接 U 楼 5 层接入交换机的 e0/0) 172.16.35.38/24(组地址:239.172.13.71
A303 组播源(连接 E 型教学楼 A 楼接入交换机的 e0/0) 172.16.40.152/24(组地址:239.172.10.23
C103 组播源(连接 E 型教学楼 C 楼接入交换机的 e0/0) 172.16.42.8/24(组地址:239.172.10.145
M1202 组播接收者(连接 M1 楼 2 层的接入交换机的 e0/0) 172.16.102.35/24
M2504 组播接收者(连接 M2 楼 5 层的接入交换机的 e0/0) 172.16.115.4/24
M3101 组播接收者(连接 M3 楼 1 层的接入交换机的 e0/0) 172.16.121.200/24
Y1430 组播接收者(连接 Y1 楼 4 层的接入交换机的 e0/0) 172.16.151.86/24

4.4.5 预期效果

本仿真的效果预计应该有以下几点:

(1)所有组播接收者可以和在线影院服务器通信。
(2)所有组播接收者可以在任意位置收到内网任意合法组播源发出的组播流量。
(3)组播流量不会随意泛洪,仅能在通往接收者的链路中以及组播源到三层汇聚交换机的链路中出现。
(4)对应教学楼所在的三层汇聚交换机只做该楼对应组播组范围的 RP。
(5)组播源不能被假冒。
(6)三层交换机运行的 PIM 协议不能被干扰。
(7)组播接收者只能加入 239.172.10.0 - 239.172.13.255 范围内的组播组。
(8)每个组播接收者最多只能同时加入 2 个组播组。

4.5 设备的主要配置

由于设备的配置大多数都是重复的,所以下面我把设备分为三层核心交换机、组播源侧三层汇聚交换机、非组播源侧三层汇聚交换机、组播源侧二层接入交换机、非组播源侧二层接入交换机这五类。每一类设备详细说明与组播有关的配置。

4.5.1 三层核心交换机

核心交换机 1

Core1(config)#ip multicast-routing                  % 开启组播路由功能

Core1(config)#interface range loopback 0, ethernet 0/0-3, ethernet 1/0
Core1(config-if-range)#ip pim sparse-mode           % 在需要转发组播数据的接口(包括环回接口)上启用 PIM-SM

Core1(config)#ip pim bsr-candidate Loopback0        % 向其他三层交换机发送 BSR 通告(以环回接口地址作为源地址)

核心交换机 2

Core2(config)#ip multicast-routing                  % 开启组播路由功能

Core2(config)#interface range ethernet 0/0-3, ethernet 1/0
Core2(config-if-range)#ip pim sparse-mode           % 在需要转发组播数据的接口上启用 PIM-SM

4.5.2 组播源侧三层汇聚交换机

以 S 楼汇聚交换机为例,其他三台的配置方法基本相同。

S(config)#ip access-list standard RP-S                      % 创建一个包含该楼对应组播组范围的标准 ACL
S(config-std-nacl)#permit 239.172.11.0 0.0.0.255

S(config)#ip multicast-routing                              % 开启组播路由功能

S(config)#interface range loopback 0, ethernet 0/0-1, ethernet 0/3
S(config-if-range)#ip pim sparse-mode                       % 在需要转发组播数据的接口(包括环回接口)上启用 PIM-SM

S(config)#ip pim rp-candidate Loopback0 group-list RP-S     % 向 BSR 发送该楼对应组播组范围的 RP 通告(以环回接口地址作为源地址)

S(config)#interface ethernet 0/0
S(config-if)#ip igmp join-group 239.172.11.15               % 加入 S303 组播源所对应的组播组

S(config)#interface ethernet 0/1
S(config-if)#ip igmp join-group 239.172.11.20               % 加入 S402 组播源所对应的组播组

4.5.3 非组播源侧三层汇聚交换机

以 M2 楼汇聚交换机为例,其他三台的配置方法基本相同。

M2(config)#ip multicast-routing                              % 开启组播路由功能

M2(config)#interface range ethernet 0/0, ethernet 0/3
M2(config-if-range)#ip pim sparse-mode                       % 在需要转发组播数据的接口上启用 PIM-SM

4.5.4 组播源侧二层接入交换机

以 T 楼 1 层接入交换机为例,其他七台的配置方法基本相同。

T-1F(config)#ip access-list extended T101                                    % 创建一个扩展 ACL,用于连接 T101 组播源的接口
T-1F(config-ext-nacl)#permit ip host 172.16.21.3 host 239.172.12.1           % 允许合法组播源发送的的组播包通过
T-1F(config-ext-nacl)#permit igmp any host 224.0.0.2                         % 允许 IGMP 离组报文通过
T-1F(config-ext-nacl)#permit igmp any 239.172.10.0 0.0.1.255                 % 仅允许内网中存在的组播组的 IGMP 报告报文通过
T-1F(config-ext-nacl)#permit igmp any 239.172.12.0 0.0.1.255                 % 仅允许内网中存在的组播组的 IGMP 报告报文通过
T-1F(config-ext-nacl)#deny ip any 224.0.0.0 15.255.255.255                   % 禁止其他组播数据包通过
T-1F(config-ext-nacl)#permit ip any any                                      % 允许其他 IP 数据包通过

T-1F(config)#interface ethernet 0/0
T-1F(config-if)#ip access-group T101 in     % 在连接 T101 组播源接口的入方向应用 ACL
T-1F(config-if)#ip igmp max-groups 2        % 该接口最多只能同时加入 2 个组播组

4.5.5 非组播源侧二层接入交换机

以 Y1 楼 4 层接入交换机为例,其他三台的配置方法基本相同。

Y1-4F(config)#ip access-list extended ALL_HOSTEL                 % 创建一个扩展 ACL,用于所有下游接口
Y1-4F(config-ext-nacl)#permit igmp any host 224.0.0.2            % 允许 IGMP 离组报文通过
Y1-4F(config-ext-nacl)#permit igmp any 239.172.10.0 0.0.1.255    % 仅允许内网中存在的组播组的 IGMP 报告报文通过
Y1-4F(config-ext-nacl)#permit igmp any 239.172.12.0 0.0.1.255    % 仅允许内网中存在的组播组的 IGMP 报告报文通过
Y1-4F(config-ext-nacl)#deny ip any 224.0.0.0 15.255.255.255      % 禁止其他组播数据包通过
Y1-4F(config-ext-nacl)#permit ip any any                         % 允许其他 IP 数据包通过

Y1-4F(config)#interface ethernet 0/0
Y1-4F(config-if)#ip access-group ALL_HOSTEL in     % 在连接 Y1430 组播接收者接口的入方向应用 ACL
Y1-4F(config-if)#ip igmp max-groups 8              % 该接口最多只能同时加入 8 个组播组(假设每个宿舍最多有四台设备接收组播)

4.6 结果验证

#### 4.6.1 组播接收者与在线影院服务器通信

下面分别让 M1202、M2504、M3101、T101 ping 在线影院服务器,模拟师生观看直播前访问在线影院服务器登记信息:

PING 测试

可看出,M1202、M2504、M3101、T101 均可以和在线影院服务器通信,达到预期效果。

4.6.2 组播流量的收发

下面分别让 S402、T303、U205、C103 四个组播源以 1 Mbps 的速率发送组播流量,模拟上课时的视频直播:

TX

然后,让 A303 接收 S402 发送的组播流量;让 M1202 接收 T303 发送的组播流量;让 Y1430 接收 U205 发送的组播流量;让 M3101 接收 C103 发送的组播流量,模拟师生观看课室的视频直播:

可看出,组播接收者均可收到指定组播源的组播流量,达到预期效果。

4.6.3 组播流量的扩散范围

在 4.6.2 的基础上,我们来对比下 M2 楼三层汇聚交换机(没有组播接收者)以及 M3 楼三层汇聚交换机(有组播接收者)的组播路由表:

可看出 M3 楼三层汇聚交换机比 M2 楼三层汇聚交换机多出了对应组播源的一颗 SPT 转发树和一颗 RPT 转发树,并且两棵转发树是重合的;除此之外,两台交换机均没有任何其他组播源的组播转发树。这说明该网络中的组播流量不会扩散到没有接收者的网段中。达到预期效果。

这里我们还能看到两台三层汇聚交换机有关于 224.0.1.40 的组播转发树,这是由于思科路由器 Auto-RP 功能强制开启导致的。由于该仿真实验并未使用 Auto-RP 功能,所以这里以及下文中关于所有 224.0.1.40 这个组播组地址的信息均可忽略。

我们再来看看 M3 楼 1 层接入交换机的 IGMP-Snooping 组信息,以及 e0/0(M3101 所在接口)、e0/1 接口的封包信息。

可以看出,C103 组播源发出的组播流量只会发往 M3101 所在接口,并不会泛洪到没有接收者的接口。达到预期效果。

4.6.4 组播源的防假冒

下面让 M2504 假冒 A303 发出组播流量,看看 Y1430 能否接收到:

可看出 Y1430 并未能收到 M2504 假冒 A303 发出的组播流量。我们再来看一下 M2 楼 5 层的接入交换机的 ACL 匹配情况:

可看出 M2504 假冒 A303 发出的组播流量已经被 M2 楼 5 层的接入交换机成功拦截。达到预期效果。

4.6.5 组播组加入的限制

下面让 U506 加入一个内网中根本不存在的组播组(225.0.0.1)以及 4 个内网中存在的组播组,然后查看 U 楼 5 层接入交换机的 IGMP-Snooping 组信息:

可以看出,U506 最多只能同时加入 2 个组播组,并且不能加入内网中根本不存在的组播组。达到预期效果。


五、后记

组播占了计算机网络的一大部分,特别是组播路由这一块,知识点、名词非常多,要完全掌握并不是一件容易的事情。由于我对计算机网络有着浓厚的兴趣,并且有着扎实的理论基础,再加上我平时有写作的习惯,所以我在撰写这篇论文的时候还是感觉比较轻松的。

最后我觉得有必要说明一下目前组播技术在 Internet 中的应用情况。可能很多计算机网络初学者都认为目前流行的各类互联网多媒体平台都是利用组播来分发数据的(很多教材上确实也是这么写的),但实际上并不是。它们依然使用单播来分发数据(可以使用 Wireshark 之类的数据包嗅探软件来验证)。究其原因,主要有以下两方面。一方面,黑客可能会发送大量不同组的 IGMP 报告(Membership Report)报文给 Internet 中的路由器,导致 Internet 中的路由器集体转发大量不同组的组播报文,从而给整网带来巨大的带宽压力;另一方面,组播流量的传输层通常使用 UDP,而 UDP 没有任何自适应机制,如果 Internet 中的路由器对组播流量进行强行限速,则可能会使组播数据包大量丢失,这将无法满足高带宽需求的组播应用的需要。所以,组播技术目前最适合用于像 IPTV 这种流媒体专用网以及园区网中。在 Internet 上则更多使用 CDN 来分发重复的数据。


致谢

(略)


参考文献

[1] 王隆杰,梁广民编著;思科网络实验室 CCNP(交换技术)实验指南;电子工业出版社;2012.5
[2] 杭州华三通信技术有限公司编著;路由交换技术.第 3 卷;清华大学出版社;2012.2
[3] [美]多伊尔(Doyle, J.)著;毕立波,魏亮,刘述译;TCP/IP 路由技术.第 2 卷;人民邮电出版社;2002.8
[4] https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst4500/12-2/37sg/configuration/guides/config/multi.pdf
[5] https://www.cisco.com/c/zh_cn/support/docs/ip/ip-multicast/9356-48.html
[6] http://service.tp-link.com.cn/download/20155/TL-SG6428Q%20V1.0用户手册1.0.0.pdf
[7] http://www.ruijie.com.cn/fw/wt/18845
[8] https://www.zhihu.com/question/65869123/answer/235679423


附录 术语表

英文缩写 英文全称 中文全称
ACL Access Control List 访问控制列表
AS Autonomous System 自治系统
ASM Any Source Multicast 任意源组播
B/S Browser/Server 浏览器/服务器
BSR BootStrap Router 自举路由器
C-BSR Candidate – BootStrap Router 候选自举路由器
CBT Core Based Trees 基于核心的树
CDN Content Delivery Network 内容分发网络
CPU Central Processing Unit 中央处理单元
C-RP Candidate – Rendezvous Point 候选汇聚点
C/S Client/Server 客户端/服务器
DVMRP Distance Vector Multicast Routing Protocol 距离矢量组播路由协议
IGMP Internet Group Management Protocol 互联网组管理协议
IP Internet Protocol 互联网协议
IPTV Internet Protocol Television 互联网协议电视
MA Mapping Agent 映射代理
MAC Media Access Control 媒体访问控制
MBGP Multicast Border Gateway Protocol 组播边界网关协议
MOSPF Multicast Open Shortest Path First 组播开放路径最短优先
MSDP Multicast Source Discovery Protocol 组播源发现协议
OSPF Open Shortest Path First 开放路径最短优先
PIM Protocol Independent Multicast 协议无关组播
PIM-DM Protocol Independent Multicast – Dense Mode 协议无关组播 – 密集模式
PIM-SM Protocol Independent Multicast – Sparse Mode 协议无关组播 – 稀疏模式
RIP Routing Information Protocol 路由信息协议
RP Rendezvous Point 汇聚点
RPF Reverse Path Forwarding 逆向路径转发
RPT Rendezvous Point Tree 汇聚点树
RTP Real-time Transport Protocol 实时传输协议
SPT Shortest Path Tree 最短路径树
SSM Source Specific Multicast 源指定组播
TCP Transmission Control Protocol 传输控制协议
UDP User Datagram Protocol 用户数据报协议
uRPF Unicast Reverse Path Forwarding 单播逆向路径转发
VLAN Virtual Local Area Network 虚拟局域网

发表评论

电子邮件地址不会被公开。