本发明涉及基于流量工程在组播场景下的位索引显示和复制(BIER-TE,Bit Index Explicit Traffic Engineering)中位串长度(BSL,BitStringLengths)确定技术特别涉及一种BSL确定方法,BIER-TE控制器和计算机存储介质。
背景技术:
BIER-TE基于流量工程BIER转发架构,在BIER在介绍的基础上BIER-TE控制器层,通过控制器发布和发布,同时使用路径算法计算最佳路径,通过显式跳跃转发报纸,克服BIER报纸转发路径不是最好的,很难适应拓扑变化引起的路径更新的缺点,同时可以更灵活地控制网络流量。
组播流量在BIER-TE在网络中传输需要切换多协议标签(MPLS,Multi-Protocol Label Switching)在报纸的基础上,包装一个特定的报纸BIER头部,在这个特定的报纸头中携带一串(BitString),且这个BitString中间的每个位置(BP,BitPosition)识别一个或多个邻接点;根据中间网络转发节点BitString转发和复制报文。转发节点收到组播报文时,查找报文BitString的BP并将报纸转发到相应的一个或多个邻接点。转发节点收到组播报文时,查找报文BitString的BP并将报纸转发到相应的一个或多个邻接点。BitString需要在不同的报纸中转发,一个BitString对应一个,其中,所有BP都属于一组。从组播流中的入口节点到每个出口节点需要多个邻接点,所以在BIER-TE在网络中,路由器从按位转发到入口(BFIR,Bit-Forwarding Ingress Router)向某个位置转发路由器(BFER,Bit-Forwarding Router)所有分布在路上的邻接点BP,必须同时存在于一个中,以确保报纸在一个中BitString中转发到该BFER。在BIER-TE网络中,在SD、SI在确定的情况下,通常根据节点数大致估计BSL;由此可见,该方法仅考虑节点数估计。BSL不准确往往会导致报纸占用更多的存储空间,不利于控制器降低流量消耗,提高报纸转发效率的技术问题。
技术实现要素:
有鉴于此,本发明的实施例期望提供一种期望BSL确定的方法,BIER-TE控制器和计算机存储介质可以避免现有的估计BSL不准确往往会导致报文占用更多存储空间的技术问题,旨在降低流量消耗,提高报文转发效率。
本发明的技术方案如下:
第一方面,本发明的实施例提供了一BSL确定方法包括:获取基于流量工程的位索引显示复制BIER-TE网络的节点数和链路数;根据所述节点数和所述链路数,对位位置BP估计数量,得到估计值;其中,所述BP包含于所述BIER-TE网络的BIER报文头携带的位串中;确定预设值中大于等于估计值的最小值BSL的值。
在上述方案中,根据节点数和链路数对位置BP估计数量,得到估计值,包括:获取所述BIER-TE网络扩容因子;根据节点数和链路数,对所述BP初步估计数量,确定初步估计值;根据扩容因子,扩大初步估计值,获得估计值。
在上述方案中,所述根据所述节点数和所述链路数,对所述BP初步估计数量,确定初步估计值,包括:将节点数与链路数之和确定为初步估计值。
在上述方案中,根据扩展因子、节点数和链路数的总和,得到估计值,包括:将扩展因子与1的总和乘以初步估计值,并确定乘积为估计值。
在上述方案中,该方法还包括:当检测到节点数和/或链路数发生变化时,获得新的节点数和/或新的链路数;用新的节点数更新节点数和/或新的链路数;确定节点数和链路数的总和;确定节点数和链路数的总和BSL根据上述大小关系,确定是否重新确定BSL的值。
在上述方案中,根据大小关系确定是否重新确定BSL包括:当确定节点数和链路数的和小于等于BSL的值,所述BSL值保持不变;当确定节点数与链路数之和大于链路数时BSL根据节点数和链路数重新对值BP估计数量,得到估计值,并重新确定预设值中大于等于估计值的最小值BSL的值。
第二,本发明提供了一种BIER-TE控制器,所述BIER-TE控制器包括处理器、存储器和通信总线;通信总线用于实现处理器和存储器之间的连接通信;处理器用于执行存储在存储器中的位串长度BSL为了实现以下步骤:
基于流量工程的位索引显示复制BIER-TE网络的节点数和链路数;根据节点数和链路数对位BP估计数量,得到估计值;其中BP包含于所述BIER-TE网络的BIER报文头携带的位串中;确定预设值中大于等于估计值的最小值BSL的值。
在上述方案中,根据节点数和链路数对位置BP在估计值中,处理器用于存储在存储器中BSL确定程序以实现以下步骤:获取上述步骤BIER-TE网络扩容因子;根据节点数和链路数,对所述BP初步估计数量,确定初步估计值,扩大初步估计值,获得估计值。
在上述方案中,根据扩根据扩展因子、节点数和链路数进行扩展,得到估计值BSL确定程序,以实现以下步骤:将节点数与链路数之和确定为初步估计值。
在上述方案中,根据扩根据扩展因子、节点数和链路数进行扩展,得到估计值BSL确定程序,实现以下步骤:将扩容因子与1之和乘以初步估计值,获得乘积;将乘积确定为估计值。
处理器用于存储在上述方案中BSL确定程序,以实现以下步骤:当检测到节点数和/或链路数发生变化时,获得新的节点数和/或新的链路数;用新的节点数更新节点数和/或新的链路数;确定节点数和链路数的总和;确定节点数和链路数的总和,与所述BSL值之间的大小关系;根据大小关系确定是否重新确定BSL的值。
在上述方案中,根据大小关系确定是否重新确定BSL处理器用于执行存储在存储器中的值BSL确定程序,以实现以下步骤:当确定节点数和链路数的和小于等于BSL的值,所述BSL值保持不变;当确定节点数与链路数之和大于链路数时BSL根据节点数和链路数,对BP估计数量,得到估计值,重新确定预设值中大于等于估计值的最小值BSL的值。
第三,本发明实施例提供计算机存储介质,计算机介质存储BSL确定程序,所述BSL处理器执行确定程序时,实现上述一个或多个实施例BSL确定方法的步骤。
本发明实施例提供的BSL确定方法,BIER-TE首先,获取控制器和计算机存储介质BIER-TE了解网络的节点数和链路数BIER-TE在网络节点数和链路数的前提下,根据节点数和链路数,对BIER-TE网络的BIER报文头携带的位串包括在内BP估计数量,得到估计值,根据获得的节点的节点数和链路数估计出位串中包含的内容BP的数量的估计值,这样,结合网络的节点数和链路数估计出位串中大致包括的BP因为BP的数量与BSL最后,将预设值中大于等于估计值的最小值确定为BSL也就是说,本发明实施例中,通过获得BIER-TE网络节点数和链路数对位串中包含的BP估计数量,得到BP估计值,即确定BIER-TE网络的BIER报文头携带的位串中大致包括的BP从预设值中大于等于估计值的最小值确定为BSL,大于或等于预设值BP最接近估计值的数量BP估计值确定为BSL这样,就可以确定值BSL值不仅大于或等于BP估计值的数量最接近BP数量的估计值使BSL当值足够长时,它不会太长,然后确定BSL提高了值的准确性,可以避免现有估计BSL不够精确,过长往往会导致报纸占用更多存储空间的技术问题,降低流量消耗,提高报纸的转发效率,从而提高组播场景中数据的传输效率。
附图说明
图1为本发明实施例中BIER-TE系统结构示意图;
图2为本发明实施例BSL确定方法的可选流程示意图;
图3为本发明实施例BSL另一种可选的确定方法流程示意图;
图4为本发明实施例BSL另一种可选的确定方法流程示意图;
图5为本发明实施例BSL可选实例的流程示意图确定方法;
图6在本发明实施例中BSL另一个可选实例的确定方法流程示意图;
图7在本发明实施例中BSL另一个可选实例的确定方法流程示意图;
图8在本发明实施例中BIER-TE控制器结构示意图;
图9是本发明实施例中计算机存储介质的结构示意图。
具体实施方法
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清晰、完整的描述。
本发明实施例提供了一种BSL该方法可应用于确定方法BIER-TE系统的BIER图1是本发明实施例中的控制器BIER-TE如图1所示,系统的结构示意图BIER-TE系统包括:基于边界网关协议(BGP,Board Gateway Protocol)/协议与组播无关(PIM,Protocol Idependent Multicast)的组播流覆盖multicast flow overlay、BIER-TE控制器(controller)、BIER-TE转发层(forwarding layer)。
其中,BGP/PIM multicast flow overlay通过Restful编程界面的应用程序(API,Application Programming Interface)与BIER-TE控制器连接,配置和查询组播流;
另外,BIER-TE forwarding layer从信息源(Source)接收数据,转数据至接收者(Receiver),BIER-TE forwarding layer的设备可以包括:BFIR、按位转发路由器(BFR,Bit-Forwarding Router)和BFER;BIER-TE forwarding layer的设备通过Net conf/Restconf/Yang等协议与BIER-TE控制器相连接,收集设备的拓扑信息,并下发转发表和位串。
图2为本发明实施例中BSL的确定方法的一种可选的流程示意图;如图2所示,该BSL的确定方法可以包括:
S201:获取基于BIER-TE网络的节点数和链路数;
在具体实施过程中,如图1所示,BIER-TE控制器获取BIER-TE forwarding layer的设备的拓扑信息,从拓扑信息中可以获取到BIER-TE网络的节点数和链路数;其中,BIER-TE网络的节点数用M表示,BIER-TE网络的链路数用N表示。
S202:根据节点数和链路数,对BP的数量进行估计,得到估计值;
其中,BP包含于BIER-TE网络的BIER报文头携带的位串中。
具体来说,在BIER-TE网络的BIER报文头中携带有位串,由于位串中包含有用于标识一个或多个邻接点的BP,所以,BSL的值与BP的数量相关联,BSL的值至少应该大于等于BP的数量,鉴于此,为了确定出合适的BSL的值,BIER-TE控制器根据获取到的节点数M和链路数N,对BP的数量进行估计,可以得到BP的数量的估计值。
这里,为了实现对BP的数量进行估计的方法,可以通过以下任意一种方式实现:
在一种可选的实施例中,估计值可以是根据经验得出的算法,例如用(M+N+X)确定出估计值,其中,X为经过多次试验得到的经验值。
在另一种可选的实施例中,图3为本发明实施例中BSL的确定方法的另一种可选的流程示意图,如图3所示,S202可以包括:
S301:获取BIER-TE网络的扩容因子;
S302:根据节点数和链路数,对BP的数量进行初步估计,确定初步估计值;
S303:根据扩容因子,扩大初步估计值,得到估计值。
具体来说,首先,获取BIER-TE网络的扩容因子,该扩容因子可以是预先设置好的,或者是根据节点数和链路数的和的大小确定出的,这里,本发明实施例不作具体限定。
在得到BIER-TE网络的扩容因子之后,再根据节点数M和链路数N,对BP的数量进行初步估计,确定出初步估计值,其中,确定初步估计值的方法可以通过以下任意一种方式实现:
在一种可选的实施例中,确定初步估计值的方法可以是根据节点数和链路数从预设的对应关系中确定出初步估计值;
在另一种可选的实施例中,S302确定初步估计值的方法可以包括:
将节点数与链路数的和,确定为初步估计值。
也就是说,由于每个BP标识一个或多个邻接点,所以,将(M+N)的值确定为初步估计值。
在确定出初步估计值之后,为了确定出估计值,考虑到网络扩容的需求,根据获取到的扩容因子对初步估计值进行扩大,从而得到估计值,在具体实施过程中,S303可以包括:
将扩容因子与1的和,乘以初步估计值,得到乘积;将乘积确定为估计值。
具体来说,为了将初步估计值扩大扩容因子的倍数,将扩容因子加1,然后乘以初步估计值得到估计值,使得初步估计值扩大为原来的扩容因子的倍数,使得BIER-TE网络能够适应扩容的需求。
S203:将预设数值中大于等于估计值的值中的最小值,确定为BSL的值。
其中,上述预设数值均为2的正整数的次方,例如,64,128,256,512,1024,2048,4096等等。
这里,将预设数值中大于等于估计值的值中的最小值,确定为BSL的值,使得确定出的BSL的值大于等于BP的数量的估计值,满足了BIER-TE网络的需求,并且避免了BSL的值过大导致的浪费较多的存储空间。
在实际应用中,当将检测到BIER-TE网络的节点数和/或链路数发生变化时,有可能存在现有的BSL的值不能适用变化后的BIER-TE网络,为了适应变化后的BIER-TE网络,在一种可选的实施例中,上述BSL的确定方法还可以包括:
检测到节点数和/或链路数发生变化时,获取新的节点数和/或新的链路数;
用新的节点数更新节点数,和/或用新的链路数更新链路数;
确定节点数与链路数的和;
确定节点数与链路数的和,与BSL的值之间的大小关系;
根据大小关系,确定是否重新确定BSL的值。
当BIER-TE控制器检测到BIER-TE网络的节点数发生变化,或者BIER-TE网络的链路数发生变化,或者BIER-TE网络的节点数和链路数都发生变化,获取新的节点数和/或新的链路数,并用新的节点数更新节点数,和/或用新的链路数更新链路数。
然后,确定节点数与链路数的和,将节点数与链路数的和,与BSL的值进行比较,确定大小关系。
在获取到大小关系之后,为了确定是否重新确定BSL的值,在一种可选的实施例中,根据大小关系,确定是否重新确定BSL的值,可以包括:
当确定节点数与链路数的和小于等于BSL的值,BSL的值维持不变;
当确定节点数与链路数的和大于BSL的值,重新根据节点数和链路数,对BP的数量进行估计,得到估计值,并重新将预设数值中大于等于估计值的值中的最小值,确定为BSL的值。
具体来说,当确定节点数与链路数的和小于等于BSL的值,说明BIER-TE网络中的BP的数量变化较小,那么,当前的BSL的值可以满足变化后的BIER-TE网络,不需要重新确定BSL的值,所以,当确定节点数与链路数的和小于等于估计值,BSL的值维持不变即可。
当确定节点数与链路数的和大于BSL的值,说明BIER-TE网络中的BP的数量变化较大,那么,当前的BSL的值不能满足变化后的BIER-TE网络,需要重新确定BSL的值,所以,当确定节点数与链路数的和大于BSL的值,重新根据节点数和链路数,对BP的数量进行估计,得到估计值,并重新将预设数值中大于等于估计值的值中的最小值,确定为BSL的值。
下面举实例来对上述一个或多个实施例中的BSL的确定方法进行说明。
图4为本发明实施例中BSL的确定方法的又一种可选的流程示意图,如图4所示,BSL的确定方法可以包括:
S401:BIER-TE控制器获取BIER-TE forwarding layer的设备的拓扑信息,从BIER-TE forwarding layer的设备的拓扑信息中获取BIER-TE网络的节点数M和链路数N;
S402:BIER-TE控制器接收来自BGP/PIM multicast flow overlay的BIER-TE网络的配置信息,例如,Domain,Sub-Domain,MPLS标签范围等,其中,Domain指的是支持BIER控制协议交互的转发设备的集合,Sub-Domain指的是支持BIER控制协议交互的转发设备的子集合;
S403:BIER-TE控制器获取扩容因子K,计算BP的数量为:(M+N)×(K+1);
S404:BIER-TE控制器从预设数值中选择大于等于且最接近(M+N)×(K+1)的数值,为BSL的值;
S405:BIER-TE控制器根据BSL的值为BIER-TE网络的节点和链路分配BP及所属的;
S406:BIER-TE控制器检测到节点数和/或链路数是否发生变化,若为是,转入S408;若为否,转入S407;
S407:BIER-TE控制器获取新的节点数M'和新的链路数N',确定(M'+N')是否小于等于BSL的值,若为是,BIER-TE控制器为新增的节点和新增的链路分配BP,对删除的节点或链路回收BP;若为否,返回S403。
图5为本发明实施例中BSL的确定方法的一种可选的实例的流程示意图,如图5所示,BSL的确定方法可以包括:
S501:BIER-TE控制器BIER-TE控制器获取BIER-TE forwarding layer的设备的拓扑信息,从BIER-TE forwarding layer的设备的拓扑信息中获取BIER-TE网络的节点数和链路数,计算节点数与链路数之和为200;
S502:BIER-TE控制器接收来自BGP/PIM multicast flow overlay的BIER-TE网络的配置信息,其中,SD=1,SI=1;
S503:BIER-TE控制器获取扩容因子0.3,计算BP的数量为200×(1+0.3)=260;
S504:BIER-TE控制器选择大于等于且最接近260的数值512为BSL的值;
S505:BIER-TE控制器根据BSL的值512为BIER-TE网络的节点和链路分配BP及所属的<1,512,1>。
图6为本发明实施例中BSL的确定方法的另一种可选的实例的流程示意图,如图6所示,BSL的确定方法可以包括:
S601:BIER-TE控制器BIER-TE控制器获取BIER-TE forwarding layer的设备的拓扑信息,从BIER-TE forwarding layer的设备的拓扑信息中获取BIER-TE网络的节点数和链路数,计算节点数与链路数之和为40;
S602:BIER-TE控制器接收来自BGP/PIM multicast flow overlay的BIER-TE网络的配置信息,其中,SD=1,SI=1;
S603:BIER-TE控制器获取扩容因子0.3,计算BP的数量为40×(1+0.3)=52;
S604:BIER-TE控制器选择不大于且最接近52的数值64;
S605:BIER-TE控制器根据BSL的值64为BIER-TE网络的节点和链路分配BP及所属的<1,64,1>;
S606:BIER-TE控制器检测到BIER-TE网络的节点数和链路数发生变化,节点数增加10,链路数增加20,计算节点数和链路数的和变为70;
S607:BIER-TE控制器确定70大于之前的算出的BSL的值64,同样按照S601-S604需要重新计算BSL的值为128;
S608:BIER-TE控制器根据BSL的值128为BIER-TE网络的新增的节点和新增的链路分配BP及所属的<1,128,1>。
图7为本发明实施例中BSL的确定方法的又一种可选的实例的流程示意图,如图7所示,BSL的确定方法可以包括:
S701:BIER-TE控制器BIER-TE控制器获取BIER-TE forwarding layer的设备的拓扑信息,从BIER-TE forwarding layer的设备的拓扑信息中获取BIER-TE网络的节点数和链路数,计算节点数与链路数之和为100;
S702:BIER-TE控制器接收来自BGP/PIM multicast flow overlay的BIER-TE网络的配置信息,其中,SD=1,SI=1;
S703:BIER-TE控制器获取扩容因子0.3,计算BP的数量为100×(1+0.3)=130;
S704:BIER-TE控制器选择不大于且最接近130的数值256;
S705:BIER-TE控制器根据BSL的值256为BIER-TE网络的节点和链路分配BP及所属的<1,256,1>;
S706:BIER-TE控制器检测到BIER-TE网络的节点数和链路数发生变化,节点数增加1,链路数增加2,计算节点数和链路数的和变为103;
S707:BIER-TE控制器确定103小于之前的算出的BSL的值256,BSL的值维持不变;
S708:BIER-TE控制器为BIER-TE网络的新增的节点和新增的链路分配BP。
本发明实施例所提供的BSL的确定方法,首先,获取BIER-TE网络的节点数和链路数,在知晓BIER-TE网络的节点数和链路数的前提下,根据节点数和链路数,对BIER-TE网络的BIER报文头携带的位串中所包括的BP的数量进行估计,得到估计值,即先根据获取到的节点数和链路数估计出位串中所包括的BP的数量的估计值,这样,结合网络的节点数和链路数估计出位串中大致包括的BP的数量,由于BP的数量与BSL的值相关联,最后,将预设数值中大于等于估计值的值中的最小值,确定为BSL的值;也就是说,本发明实施例中,通过获取到的BIER-TE网络的节点数和链路数对位串中所包括的BP的数量进行估计,得到BP的估计值,即确定出BIER-TE网络的BIER报文头携带的位串中大致包括的BP的数量,然后从预设数值中大于等于估计值的值中的最小值,确定为BSL的值,其中,将预设数值中大于等于BP的数量的估计值中最接近BP的数量的估计值的值,确定为BSL的值,这样,确定出BSL的值不仅大于等于BP的数量的估计值,且最接近BP的数量的估计值,使得BSL的值足够长的情况下又不过长,进而使得确定出的BSL的值的精确度得到了提高,能够避免现有的估出的BSL不够精确,往往过长导致报文占用较多的存储空间的技术问题,降低了流量的消耗,并且提高了报文的转发效率,从而提高了组播场景下数据的传输效率。
基于同一发明构思,本发明实施例还提供一种BIER-TE控制器,图8为本发明实施例中BIER-TE控制器的结构示意图,如图8所示,该BIER-TE控制器包括处理器81、存储器82及通信总线83;通信总线83用于实现处理器81和存储器82之间的连接通信;所述处理器81用于执行存储器中存储的BSL的确定程序,以实现以下步骤:
获取BIER-TE网络的节点数和链路数;根据节点数和链路数,对BP的数量进行估计,得到估计值;将预设数值中大于等于估计值的值中的最小值,确定为BSL的值。
其中,BP包含于BIER-TE网络的BIER报文头携带的位串中。
在一种可选的实施例中,根据节点数和链路数,对位位置BP的数量进行估计,得到估计值中,所述处理器81用于执行存储器中存储的BSL的确定程序,以实现以下步骤:
获取BIER-TE网络的扩容因子;根据节点数和链路数,对BP的数量进行初步估计,确定初步估计值;根据扩容因子,扩大初步估计值,得到估计值。
在一种可选的实施例中,根据扩容因子、对节点数与链路数的和进行扩容,得到估计值中,所述处理器81用于执行存储器中存储的BSL的确定程序,以实现以下步骤:
将节点数与链路数的和,确定为初步估计值。
在一种可选的实施例中,根据扩容因子、对节点数与链路数的和进行扩容,得到估计值中,所述处理器81用于执行存储器中存储的BSL的确定程序,以实现以下步骤:
将扩容因子与1的和,乘以初步估计值,得到乘积;将乘积确定为估计值。
在一种可选的实施例中,所述处理器81用于执行存储器中存储的BSL的确定程序,以实现以下步骤:
检测到节点数和/或链路数发生变化时,获取新的节点数和/或新的链路数;用新的节点数更新节点数,和/或用新的链路数更新链路数;确定节点数与链路数的和;确定节点数与链路数的和,与BSL的值之间的大小关系;根据大小关系,确定是否重新确定BSL的值。
在一种可选的实施例中,根据大小关系,确定是否重新确定BSL的值中,所述处理器81用于执行存储器中存储的BSL的确定程序,以实现以下步骤:
当确定节点数与链路数的和小于等于BSL的值,BSL的值维持不变;当确定节点数与链路数的和大于BSL的值,重新根据节点数和链路数,对BP的数量进行估计,得到估计值,并重新将预设数值中大于等于估计值的值中的最小值,确定为BSL的值。
基于前述实施例,本实施例提供一种计算机存储介质,图9为本发明实施例中的计算机存储介质的结构示意图,如图9所示,该计算机存储介质90存储有BSL的确定程序,上述BSL的确定程序被处理器执行时实现如上述一个或多个实施例中所述的BSL的确定方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。