一种用于避免pim路由协议rpt-spt路径震荡的方法及路由系统

文档序号:1802167 发布日期:2021-11-05 浏览:26次 >En<

阅读说明:本技术 一种用于避免pim路由协议rpt-spt路径震荡的方法及路由系统 (Method and routing system for avoiding PIM routing protocol RPT-SPT path oscillation ) 是由 赵吉莹 于 2021-07-22 设计创作,主要内容包括:本发明公开了一种避免PIM路由协议RPT-SPT路径震荡的方法,在接收者DR向RP发送的(*,G)加入和(S,G,rpt)剪枝报文中组播组地址中扩展一个用于表示是否有更多的分片报文标记;若当前报文能够放下所有信息,则接收者DR正常封装报文并发送;否则,在不能完整放入的组播组地址上设置“MF”标记,先封装该组的部分源并发送,剩下的源放入下一个报文,且除了最后一个报文外,中间所有报文都设置“MF”标记;RP收到报文后,若组播组没有“MF”标记,则进入RPT-SPT切换状态机处理;否则,RP先缓存该组播组的加入和剪枝信息,先不进入RPT-SPT切换状态机处理;后续收到该组播组不带“MF”标记的报文时,将前面缓存的信息合并到一起处理,进入RPT-SPT切换状态机处理,清除该组播组的缓存信息。(The invention discloses a method for avoiding PIM routing protocol RPT-SPT path oscillation, which is characterized in that one multicast group address is expanded in a (star, G) join and (S, G, RPT) prune message sent to RP by a receiver DR to indicate whether more fragment message marks exist or not; if the current message can put down all the information, the receiver DR normally packages and sends the message; otherwise, setting &#39;MF&#39; mark on the address of the multicast group which can not be put in completely, firstly packaging part of the source of the group and sending, putting the rest source into the next message, and setting &#39;MF&#39; mark on all the messages in the middle except the last message; after receiving the message, the RP enters into an RPT-SPT switching state machine for processing if the multicast group has no &#39;MF&#39; mark; otherwise, the RP caches the joining and pruning information of the multicast group firstly and does not enter the RPT-SPT switching state machine for processing; when the message without MF mark is received, the cached information is merged together for processing, and the RPT-SPT switching state machine is used for processing, and the cached information of the multicast group is eliminated.)

一种用于避免PIM路由协议RPT-SPT路径震荡的方法及路由 系统

技术领域

本发明涉及计算机通信领域,尤其涉及一种用于避免PIM路由协议RPT-SPT路径震荡的方法及路由系统。

背景技术

在计算机通信中,组播(Multicast)是一种与单播(Unicast)和广播(Broadcast)并列的网络通信方式,组播通信能够有效地解决单点发送、多点接收的问题,能够节约大量网络带宽、降低网络负载。

工作在网络层的IP组播通常被称为“三层组播”,相应的组播协议称为“三层组播协议”。三层组播一般的系统架构包括:发现组播接收者:对应组播组管理协议(如IGMP/MLD协议);发现组播数据源:对应组播路由协议(如域内的PIM协议、域间的MSDP协议);建立组播转发树:对应组播路由协议(如PIM协议、MBGP协议、IGMP/MLD代理)。

目前应用最广泛的组播路由协议就是PIM(Protocol Independent Multicast,协议无关组播)协议,该协议利用任意单播路由协议(包括静态路由)所生成的单播路由表为IP组播提供路由,而与所采用的具体单播路由协议类型无关。

PIM协议有好几种工作模式,目前应用最广泛的是PIM-SM(Sparse Mode,稀疏模式)模式。PIM-SM模式属于ASM(Any-Source Multicast,任意源组播)组播模型,即接收者无法预先知道组播源的信息,只能先订阅某个组播组,然后使用组播路由协议将该组播组的任意源数据转发下来。

PIM-SM网络的核心是RP(Rendezvous Point,汇集点),重要角色是DR(DesignatedRouter,指定路由器),其中组播源DR是指与组播源直连的PIM路由器,接收者DR是指与接收者直连的PIM路由器。RP和DR都有选举机制,且RP信息会泛洪到所有PIM路由器,具体机制这里不再详解。各角色作用如下:RP:负责汇集所有组播源和接收者的信息(类似于“中介”);组播源DR:负责向RP注册组播源信息;接收者DR:负责向RP通告组播订阅信息。

PIM-SM实现组播转发的关键就是建立以组播源DR为“根”、RP为“叶子”的SPT转发树,以及以RP为“根”、接收者DR为“叶子”的RPT(Rendezvous Point Tree,共享树)。具体如下,同时参见图1:

组播源DR在感知到组播源信息后,会向RP单播发送PIM注册报文,其中包含了组播源和组播组等信息。RP收到后,会向组播源方向逐跳发送(S,G)加入报文,加入报文抵达组播源DR后,就能在沿途建立起从组播源DR到RP的SPT(Shortest-Path Tree,最短路径树)转发树。

接收者DR在感知(借助组播组管理协议)到组播订阅信息后,会根据其中的组播组信息,向RP方向逐跳发送(*,G)加入报文,加入报文抵达RP后,就能在沿途建立起从RP到接收者DR的RPT转发树。

从图1可以看出,经由RP转发的路径并不是最短路径,因此PIM-SM还提供了一种SPT切换机制,以尽可能地缩短转发路径、提高转发效率。具体过程如下,参见图2:

接收者DR在收到组播数据、获得组播源信息后,会向组播源方向逐跳发起(S,G)加入报文,沿途各设备据此建立(S,G)转发表项,从而创建了一条更短的SPT转发树。

为了删除原来的转发路径,接收者DR在周期性向组播源发送(S,G)加入之外,还会周期性地向RP发送(*,G)加入和(S,G,rpt)剪枝,其中(*,G)加入用于继续订阅其他组播源的流量,(S,G,rpt)剪枝用于剪掉该组播源的RPT转发路径。

RP收到(*,G)加入和(S,G,rpt)剪枝后,会停止该(S,G)的转发,并继续向源DR发送(S,G)剪枝报文,从而把原来的转发路径删除。

然而实际应用中存在着PIM-SM协议SPT-RPT转发路径的周期性震荡,且这种周期性震荡带来的不良后果有:

1.如果设备不支持RPF检查,则在震荡期间,接收者会同时从SPT和RPT收到两份数据流,可能会导致客户端处理不正确。

2.如果设备支持RPF检查,则会将检查失败的报文上送CPU(以协助组播路由协议进行决策),从而会对CPU造成冲击,可能会影响其他协议报文的正常收发。

3.RPT转发树沿线所有设备都会周期性震荡和切换,从而导致性能下降,稳定性下降。

因此,本领域的技术人员致力于提供一种方法,可以在兼容现有PIM-SM协议的前提下,解决上述情况下的协议和流量震荡问题。

发明内容

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是在兼容现有PIM-SM协议的前提下,解决PIM路由协议RPT-SPT路径震荡的问题。

为实现上述目的,本发明在第一方面提供了一种用于避免PIM路由协议RPT-SPT路径震荡的方法,包括步骤:

在接收者DR向RP发送的(*,G)加入和(S,G,rpt)剪枝报文中组播组地址中扩展一个命名为“MF”标记,用于表示是否还有更多的分片报文;

如果当前报文能够放下所有信息,则接收者DR正常封装报文并发送;否则,在不能完整放入的组播组地址上设置“MF”标记,先封装该组的部分源并发送,剩下的源放入下一个报文,且除了最后一个报文外,中间所有报文都设置“MF”标记;

RP收到报文后,如果组播组没有“MF”标记,则进入RPT-SPT切换状态机处理;否则,RP先缓存该组播组的加入和剪枝信息,先不进入RPT-SPT切换状态机处理;后续收到该组播组不带“MF”标记的报文时,再将前面缓存的信息合并到一起处理,进入RPT-SPT切换状态机处理,同时清除该组播组的缓存信息。

进一步地,在(*,G)表项老化或者RP由SPT状态切换至RPT状态时,RP清除该组播组的缓存信息。

进一步地,RP提供配置命令来设置缓存的上限,超过上限的组播源信息将被丢弃。

进一步地,RP缓存的上限缺省值为256个源。

本发明在第二方面提供了一种用于避免PIM路由协议RPT-SPT路径震荡的路由系统,其中

接收者DR路由器被配置为:

在接收者DR向RP发送的(*,G)加入和(S,G,rpt)剪枝报文中组播组地址中扩展一个命名为“MF”标记,用于表示是否还有更多的分片报文;

如果当前报文能够放下所有信息,则接收者DR正常封装报文并发送;否则,在不能完整放入的组播组地址上设置“MF”标记,先封装该组的部分源并发送,剩下的源放入下一个报文,且除了最后一个报文外,中间所有报文都设置“MF”标记;

RP路由器被配置为:

RP收到报文后,如果组播组没有“MF”标记,则进入RPT-SPT切换状态机处理;否则,RP先缓存该组播组的加入和剪枝信息,先不进入RPT-SPT切换状态机处理;后续收到该组播组不带“MF”标记的报文时,再将前面缓存的信息合并到一起处理,进入RPT-SPT切换状态机处理,同时清除该组播组的缓存信息。

进一步地,在(*,G)表项老化或者RP由SPT状态切换至RPT状态时,RP清除该组播组的缓存信息。

进一步地,RP提供配置命令来设置缓存的上限,超过上限的组播源信息将被丢弃。

进一步地,RP缓存的上限缺省值为256个源。

通过采用以上的技术方案,本发明兼容现有PIM-SM协议的同时,避免了因组播源较多导致的PIM-SM协议和转发的周期性震荡,能有效降低设备负载,同时提高业务稳定性。以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是现有技术中的PIM-SM协议框架图。

图2是现有技术中的PIM-SM SPT切换过程图。

图3是现有技术中的PIM-SM(S,G,rpt)下游状态机图。

图4是现有技术中的PIM-SM加入剪枝报文格式图。

图5是现有技术中的PIM-SM组播组地址格式图。

图6是本发明的一个较佳实施例中的PIM-SM组播组地址格式图。

图7是本发明的一个较佳实施例中的流程图。

具体实施方式

以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。

本发明的发明人对SPT-RPT转发路径的周期性震荡进行研究后发现,SPT切换机制是PIM-SM的一个重要功能,但协议存在缺陷:

为了实现SPT切换,RP上为每个下游接口维护了一套(S,G,rpt)状态机,参考图3:缺省处于NI状态,允许进行RPT树转发。如果收到(S,G,rpt)剪枝,则会进入P状态(中间有短暂的PP状态),这时不允许RPT树转发。后续如果再收到(*,G)加入,则会临时进入P’状态,并等待该报文中是否还有(S,G,rpt)剪枝。如果有,则继续回到P状态,维持SPT转发;如果没有,则会切换到NI状态,回退到RPT转发树(同时会触发上游状态机向上行设备发送(S,G)加入来引流)。由于在SPT切换完成后,接收者DR会周期性地发送(*,G)加入和(S,G,rpt)剪枝,因此该状态机会稳定在P状态(中间有临时的P’状态,但不影响转发行为)。相关协议描述见RFC7761的4.5.3章节。从协议描述可以看出,协议要求同一个组播组的(*,G)加入和(S,G,rpt)剪枝必须放在同一个报文中,否则会在该报文处理结束后立即回到NI状态,放开RPT转发路径。而后续收到下一个包含该S剪枝的报文后,又会重新断开该S的RPT转发路径,从而导致协议和转发震荡。

对于该问题,协议并没有解决办法,参见RFC7761的4.9.5.2章节。

而在实际应用中,由于PIM协议报文是RawIP报文,为了降低报文丢失带来的影响,一般都会限制协议报文的大小不超过接口MTU,同时设计为周期性发送,如果放不下就主动分片到下一个报文中。这样在组播源比较多的应用场景下(如视频监控),以一般MTU为1500为例,对于IPv4来说,最多只能放下180个组播源,对于IPv6来说,最多只能放下69个组播源,这样就可能会出现无法放到同一个报文中的情况,从而导致PIM-SM协议和转发路径的周期性震荡。

因此造成PIM-SM协议和SPT-RPT转发路径的周期性震荡题的根本原因是:接收者DR发送的报文没有标记信息是否完整,而RP也只考虑单个报文中的内容,导致在需要分片的情况下出现问题。

本发明提供的技术方案包括两个方面,参见图7:

一、在发送端(接收者DR)携带“未完待续”信息:

协议规定的PIM加入剪枝报文格式如图4所示,图中圈出部分为需要向RP剪枝的(S,G)信息。可见在SPT切换完成后的稳定状态,接收者DR向RP周期性发送的报文中包括:

组播组地址,对应“Multicast Group Address”;

(*,G)加入,对应“Joined Source Address”(带有W标记,表示*);

(S,G,rpt)剪枝:对应“Pruned Source Address”(带有R标记,表示rpt树)。

从上述信息可以看到,无法通过简单地扩展字段来表示“未完待续”,但其中的组播组地址(Encoded-Group format)可以扩展,报文格式如图5所示。在上述组地址格式的8个bit中,目前只使用了1位(B:表示使用双向PIM),再扩展一个标志位,参考IP分片格式,命名为“MF”标记,表示是否还有更多的分片报文。新格式如图6所示。具体实现过程如下:

如果当前报文能够放下所有信息,则按原有流程封装并发送;

否则,在不能完整放入的组播组地址上设置“MF”标记,先封装该组的部分源并发送,剩下的源放入下一个报文。

除了最后一个报文外,中间所有报文都设置“MF”标记。所有不能在同一个报文中完整放入的组播组,都按此方式执行。

二、在接收端(RP)识别“未完待续”信息,避免提前切换。

将RP的下游接口的(S,G,rpt)状态机进行改进,将“End of Message”事件从“单个报文结束”修改为“相同组播组的系列报文结束”。具体过程如下:

如果组播组没有“MF”标记,则按现有流程处理,报文处理结束即进行状态机切换;

否则,先缓存该组播组的加入剪枝信息,当前报文处理完后先不切换状态机;后续收到该组播组不带“MF”标记的报文时,再将前面缓存的信息合并到一起处理,处理结束后完成状态机切换,同时再清除该组播组的缓存信息

在(*,G)表项老化、或者(S,G,rpt)下游状态机从P状态切换到NI状态时,需要清除该组播组的缓存信息;

进一步地,为防止攻击,可提供配置命令来设置缓存的上限(缺省256个源),超过上限的组播源信息将被丢弃。

通过采用以上的技术方案,本发明可以避免因组播源较多导致的PIM-SM协议和转发的周期性震荡,能有效降低设备负载,同时提高业务稳定性。

本发明兼容现有PIM-SM协议的同时,避免了因组播源较多导致的PIM-SM协议和转发的周期性震荡,能有效降低设备负载,同时提高业务稳定性。以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种多功能云控器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!