基于名字映射和解析系统的多RP 组播

2022-10-28 13:42李博王劲林朱小勇胡琳琳
电子设计工程 2022年20期
关键词:接收者链路时延

李博,王劲林,朱小勇,胡琳琳

(1.中国科学院声学研究所国家网络新媒体工程技术研究中心,北京 100190;2.中国科学院大学,北京 100049)

大量以信息为中心的新型应用受到欢迎,如视频会议和在线直播等。由于需要从一个信息生产者到许多信息消费者的高效通信,这些应用更适合使用组播[1]。虽然基于共享树的组播方法(如PIM-SM[2])相较于基于源树的组播方法(如SSM[3])能够有效地减少组播转发状态[4],但是仍存在一些问题[5-6],如Rendezvous Point(RP)的管理和选择复杂、RP 负载较大、传输时延较高和流量汇聚等。Multi-Core Tree(MCT)[7]使用多个独立的RP 来构建多个共享树,以提高容错性并避免流量汇聚。但是MCT 中RP 的负载依然较大,而且需要源向所有RP 发送数据或者接受者加入所有RP对应的组播树,这会造成资源浪费。

信息中心网络(Information-Centric Networking,ICN)[8]通过解耦标识和位置以解决现有IP 网络存在的问题。相较于NDN[9]等,以MobilityFirst[10]为代表的ICN 方案通过将名字映射到定位符,从而可以兼容现有IP 网络以实现增量部署。

基于此,文中提出了一种基于名字映射和解析系统(Name Mapping and Resolution System,NMRS)[12-14]的多RP 组播方法。NMRS 的使用不仅简化了RP 的管理并实现负载均衡,而且维护了局部组播源信息。该方法为位于不同位置的局部组播源分别选择较近的RP,并建立以该RP 为根的组播树。相较于PIM-SM,文中所提的多RP 组播方法虽然增加了转发状态,但减少了RP 负载、传输时延和流量汇聚。

1 系统架构

图1 展示了一个基于NMRS 的简单组播系统。

图1 一个基于NMRS的简单组播系统

网络中的所有元素都被视为实体,包括设备、内容、服务等。为了解决IP 语义过载问题,每个实体被分配一个固定长度的、全局唯一的Entity ID(EID),以分离标识符与定位符。该方法使用EID 作为标识符,使用网络地址(Network Address,NA)作为定位符。相较于分层名字,扁平化的名字在灵活性、分配和隐私性等方面具有一定的优势[11]。可以使用IP 地址作为NA 以兼容现有的IP 网络。

该方法使用NMRS[12-14]维护EID 和NA 之间的映射并提供名字解析服务。NMRS 包括全局名字映射和解析系统(Global NMRS,GNMRS)与现场名字映射和解析系统(Local NMRS,LNMRS)。GNMRS 维护全球名字-位置对,保障内容的可达性。LNMRS 维护本地名字-位置对,并为用户提供现场服务。LNMRS可以根据时延等约束条件将网络划分为层次化的管理域(Administration Domain,AD),并在每个管理域中部署一个名字映射和解析节点(Name Mapping and Resolution Node,NMRN)。LNMRS 为由NMRN构成的单层或多层结构,文中所提的多RP 组播系统使用单层LNMRS。用户可通过交互接口访问这两个子系统,从而获得不同性能需求的名字注册和解析服务。

该方法为每个组播组分配一个组EID,即GEID(Group EID)。GEID 能够在整个网络中唯一标识该组播组。与组播IP 地址相比,全局唯一的GEID 具有更大的命名空间,可以支持更多的组播组,同时也省去了复杂的组播IP 地址管理和分配机制。由于网络被划分为不同的管理域,每个组播组中的源可能分布在不同的管理域中。该方法使用LNMRS 维护每个管理域中的局部组播源列表。对于每个组播组,该方法为不同管理域中的组播源分别分配一个RP并建立一个以该RP 为根的共享树。GNMRS 维护每个组播组的GEID 和RP 列表之间的映射,接收者可以通过GNMRS 解析得到对应的RP 列表,并分别加入每个共享树。

2 系统关键功能

2.1 候选RP管理

RP 需要汇聚组播流、封装-解封装报文、响应接收者的加入和离开请求等。但现有基于共享树的组播方法通常仅选择一台或者有限的几台路由器作为RP。当存在大量组播源和组播组时,RP 会面临巨大的负载压力而限制组播的扩展性。

在所提组播方法中,网络中的每个路由器都可以承担汇聚功能并向用户提供信息。因此该方法将网络中的所有路由器都视为候选RP,并使用NMRS来管理候选RP 以实现候选RP 之间的动态负载均衡。该方法使用GNMRS 管理全局候选RP,使用LNMRS 管理局部候选RP。所有候选RP 的集合被分配一个EID,叫做组播服务EID,即MSEID(Multicast Service EID)。当路由器启动时,分别向GNMRS 和其所在管理域中的NMRN 注册MSEID 和其NA 的映射。GNMRS 维护MSEID 和全局网络中所有可用候选RP 之间的映射,每个NMRN 维护MSEID 和其所在管理域中的本地候选RP 之间的映射。

每个候选RP 被设置一个负载阈值,负载可以是路由器的CPU 负载、内存负载、端口带宽负载等。当其负载小于负载阈值时,RP 可以正常工作,而不会影响其他业务和流量。当某个RP 的负载达到阈值时,它向NMRN 和GNMRS注销MSEID和其NA之间的映射,从而无需为新的组播组提供服务。当路由器负载低于阈值时,可以向NMRS 和GNMRS注册MSEID 和其NA 之间的映射关系,以重新成为候选RP。

2.2 RP选择

该方法使用LNMRS 维护局部组播源信息。每个组播组被分配一个源EID,即SEID(Sources EID),组播源需要向其所在管理域的NMRN 注册SEID 和其NA 之间的映射。每个NMRN 都维护SEID 和其所在管理域中的局部组播源列表之间的映射。当组播源想要获取RP 时,执行以下步骤:

1)向NMRN 查询GEID 对应的RP;

2)若NMRN 没有GEID 的相关信息,则向NMRN查询其所在管理域的局部组播源列表和局部候选RP 列表;

3)若NMRN 返回的局部候选RP 列表为空,则向GNMRS 查询全局候选RP 列表;

4)计算每个候选RP 到其所在管理域中的所有组播源的距离之和;

5)选择距离之和最小的候选RP 作为目的RP;

6)向NMRN 和GNMRS注册GEID 和目的RP 之间的映射。

图2 为RP 选择机制示意图。在GEID 标识的组播组中,MS1、MS2、MS3 和MS4 是组播源。MS1 向名字映射和解析节点NMRN11 查询GEID 对应的RP。由于NMRN11 中没有GEID 相关的信息,则MS1 向NMRN11 查询得到局部组播源列表<MS1,MS2>和局部候选RP 列表<R1,…>,并选择距离MS1 和MS2最近的节点R1 作为RP。然后MS1 向NMRN11 和GNMRS 注册GEID 和R1(RP)之间的映射。随后,MS2 可以直接通过NMRN11 查询得到GEID 对应的RP 为R1。

图2 RP选择机制示意图

MS3向名字映射和解析节点NMRN12查询GEID对应的RP。由于NMRN12中没有GEID 相关的信息,MS3 向NMRN12 查询得到局部组播源列表<MS3,MS4>和局部候选RP 列表<>。由于管理域AD12 中的候选RP 列表为空,MS3 向GNMRS 查询得到全局候选RP 列表<R1,R2,R3,…>。然后MS3 选择距离本地组播源MS3 和MS4 最近的节点R2 作为RP,并向NMRN12 和GNMRS注册GEID 和R2之间的映射。MS4 随后可以直接通过NMRN12 查询得到GEID 对应的RP 为R2。

2.3 组播树维护

当想要加入组播组时,接收者向GNMRS 解析查询GEID 对应的RP 列表,然后分别向每个RP 发送一条加入消息,加入消息被路由器转发到RP 或者已经存在对应组播转发表项的路由器为止。加入消息经过的路由器添加或更新相应的组播转发表项。组播转发表的结构为<入接口,RP-EID,GEID,出接口列表>。

以图3 所示的场景为例,接收者MR1 向GNMRS解析查询得到GEID 对应的RP 为R1 和R2。然后MR1 向R1 和R2 分别发送一条加入消息。加入消息路径上的路由器R4、R3 添加组播转发表项,R1 和R2将收到加入消息的入接口添加到GEID 对应的组播转发表项的出接口列表中。其中,R3 上的组播转发表项为<1,R1,GEID,3>和<2,R2,GEID,3>。

图3 组播树维护示意图

接收者MR2 也通过GNMRS 解析查询得到GEID对应的RP 为R1 和R2。然后MR2 同样向R1 和R2分别发送一条加入消息。加入路径上的路由器R5添加组播转发表项,R3 将收到加入消息的入接口添加到GEID 对应的组播转发表项的出接口列表中,R3上的组播转发表项更新为<1,R1,GEID,3,4>和<2,R2,GEID,3,4>。

组播源以单播方式将数据发送给RP,然后RP以组播方式根据组播转发表将数据发送给接收者。当离开组播组时,接收者向每个RP 发送一个离开消息。路由器将收到离开消息的接口从GEID 对应的组播转发表项的出接口列表中删除。若出接口列表为空,则从入接口转发该离开消息并删除对应组播转发表项。

3 仿真实验与结果分析

为了评估所提多RP 组播方法的性能,进行了一系列仿真实验,并与PIM-SM、PIM-SSM 和MCT 进行了比较。实验使用BRITE[15]拓扑生成器随机生成一个200 节点的拓扑。然后,随机部署组播组,每个组包含20 个源和20 个接收者,其中源被随机地部署在几个不同的管理域中。实验使用IIT-DOWN 算法[16]根据时延限制将网络划分成不同的管理域,并在每个管理域中设置一个NMRN 来提供名字解析服务。在PIM-SM 和MCT 实验中,随机选择10 个路由器作为RP。且MCT 使用Member-To-ALL 机制。评估的性能指标包括RP 负载、传输时延、转发状态和链路负载。各性能指标实验重复100 次,取平均值作为实验结果。

首先通过测试所有RP 中服务的最大源数量来评估不同组播方法中的RP 负载。从图4 所示的实验结果可以发现所提方法中的RP 负载远少于其他方法。这是因为所提方法将网络中所有负载未达到阈值的路由器都作为候选RP,然后为每个组播组中位于不同管理域的源各自分配一个RP。而PIM-SM和MCT 都只是简单地选择有限个路由器作为RP。因此,所提方法能够更有效地在所有候选RP 之间实现负载均衡,从而减少RP 负载。

图4 RP负载对比

然后测试了平均每个源到每个接收者的端到端传输时延。从图5 所示的实验结果可以发现所提方法中的时延略高于PIM-SSM 但小于其他方法。这是因为PIM-SSM 为每个源建立一个到所有接收者的最短路径树,组播数据沿最短路径从源传输到接收者,因此时延最小。而在PIM-SM、MCT和所提的多RP组播方法中,组播数据都是先从源发送到RP,然后再由RP 发送到接收者,这导致了时延的增大。但是由于所提方法根据时延约束条件将网络划分成不同的管理域,然后为每个管理域中的局部源选择一个距离最近的RP,因此减少了RP 带来的时延开销。

图5 传输时延对比

接着又测试了所有路由器中的最大组播转发状态数量。图6所示的实验结果表明所提方法中的组播转发状态数量大于PIM-SM 但小于PIM-SSM 和MCT。PIM-SSM 由于需要为每个源建立一个组播树,路由器需要为每个源维护一个转发状态,因此PIM-SSM 中的组播转发状态数量最大。在PIM-SM中,每个组播组中的所有源共用一个共享树,路由器只需要为每个组播组维护一个转发状态,因此PIMSM 中的组播转发状态数量最小。在MCT 中,每个组播组都需要为每个RP 分别建立一个到所有接收者的共享树,路由器为每个组播组维护的转发状态数量等于RP 的数量。在所提方法中,每个组播组建立的组播树的个数等于存在源的管理域的个数,因此,当源的分布较为密集时,所提方法能够更为有效地减少组播转发状态。

图6 组播转发状态对比

最后测试了所有链路中的最大链路负载,文中链路负载使用链路中流经的流数量来表示,每个源发送的数据流作为一个单独的流。从图7 所示的实验结果可以发现所提方法中的链路负载小于PIMSM 和MCT,且接近于PIM-SSM。由于PIM-SM 和MCT 需要先将数据发送到RP,这会导致RP 附近的链路流量汇聚,链路负载较大。而PIM-SSM 直接从每个源发送到接收者,流量分布更为均衡,因此链路负载较小。所提方法将网络中所有负载未达到阈值的路由器都作为候选RP,并为每个组播组中位于不同管理域的源都分配一个RP。虽然在所提方法中源也需要将数据先发送到RP,但是所使用的RP数量更多且更为分散,因此流量汇聚情况较轻,链路负载较小。

图7 链路负载对比

4 结论

文中所提的基于NMRS 的多RP 组播方法将组播源划分到不同的集合中,并为不同的组播源集合分别建立一棵组播树,从而能够有效地平衡RP 负载、传输时延、转发状态和流量汇聚。但是该方法需要组播源预先向其所在管理域中的NMRN 注册SEID 和其NA 之间的映射,更适用于组播源数量和位置相对固定的场景,如IPTV 和在线课堂等。在后续的研究中,可以设计动态的RP 选择机制以扩展该组播方法的适用范围。

猜你喜欢
接收者链路时延
一种移动感知的混合FSO/RF 下行链路方案*
基于Android设备的异构无线链路聚合软件①
网络表情符号的作用
计算机网络总时延公式的探讨
计算机网络总时延公式的探讨
基于物联网的IT运维可视化管理系统设计与实现
功能翻译理论视角下英语翻译技巧探讨
可撤销用户动态更新广播加密方法的研究
《舍不得星星》特辑:摘颗星星给你呀
口碑传播中影响因素作用机制研究及应用