一种自动切分网络的方法、装置、设备及存储介质与流程

文档序号:19427761发布日期:2019-12-17 15:51阅读:172来源:国知局
一种自动切分网络的方法、装置、设备及存储介质与流程

本发明涉及网络通信技术领域,特别涉及一种自动切分网络的方法、装置、设备及存储介质。



背景技术:

bier-te(bitindexexplicitreplicationtrafficengineering,bier-te,基于流量工程的位索引显式复制)转发架构,在bier的基础上引入bier-te控制器层,并通过控制器下发转发表,同时使用路径算法计算最优路径,通过显式的逐跳方式转发报文。克服了bier报文转发路径不是最优、难以适应拓扑变化引起的路径更新的缺点,同时使得网络流量控制更加灵活。

在组播场景下,组播流量在bier-te网络中传输,需要在mpls(multi-protocollabelswitching,多协议标签交换)报文基础上再封装一个特定的bier头,这个特定的报文头中携带bitstring(位串),且这个bitstring中的每个bp(bitposition,bit位)标识一个或多个邻接点。中间网络转发节点根据bitstring进行报文转发和复制。当转发节点收到组播报文时,查找报文中bitstring的bit位并将报文转发到对应的一个或多个邻接点。不同的bitstring需要在不同的报文中转发,一个bitstring对应于一个<sd,bsl,si>,其中所有的bp都属于一组<sd,bsl,si>,sd是bier的sub-domain(子域),bsl是封装头的bitstringlength(位串长度),si是子集标识(setidentifier),子域sd可以划分多个子集,并用si标识。组播流从入口节点(即入节点)到每个出口节点(即出节点)需要经过多个邻接点,因此在bier-te中,从bfir(bit-forwardingingressrouter,按位转发入口路由器)到某一个bfer(bit-forwardingegressrouter,按位转发出口路由器)途中经过的所有的邻接点所分配的bp必须同时存在于一个<sd,bsl,si>,这样才能保证报文在一个bitstring中转发到该bfer。

网络规模小,计算出的网络规模小于bsl的最大值,可以保证从bfir到某一个bfer途中经过的所有的邻接点所分配的bp都存在于一个<sd,bsl,si>中。如果网络规模较大,并且大于网络支持的最大maxbsl值,则没有给出解决方案。



技术实现要素:

根据本发明实施例提供的一种自动切分网络的方法、装置、设备及存储介质,在基于bier-te的组播网络中能够自动切分规模较大的网络,使得切分好的子网规模小于maxbsl值,解决bier-te中存在的问题。

本发明实施例提供的一种自动切分网络的方法,包括:

获取bier-te网络支持的最大网络规模;

根据所述bier-te网络的拓扑信息,确定所述bier网络的总网络规模;

根据所述总网络规模和所述最大网络规模,确定所述bier-te网络是否满足网络切分条件;

若所述bier-te网络满足网络切分条件,则对所述bier-te网络进行切分。

根据本发明实施例提供的一种自动切分网络的装置,包括:

获取模块,用于获取bier-te网络支持的最大网络规模;

确定模块,用于根据所述bier-te网络的拓扑信息,确定所述bier网络的总网络规模;

判断模块,用于根据所述总网络规模和所述最大网络规模,确定所述bier-te网络是否满足网络切分条件;

切分模块,用于若所述bier-te网络满足网络切分条件,则对所述bier-te网络进行切分。

本发明实施例提供的一种自动切分网络的设备包括:处理器,以及与所述处理器耦接的存储器;所述存储器上存储有可在所述处理器上运行的自动切分网络的程序,所述自动切分网络的程序被所述处理器执行时实现上述的自动切分网络的方法的步骤。

本发明实施例提供的一种计算机存储介质,存储有自动切分网络的程序,所述自动切分网络的程序被处理器执行时实现上述的自动切分网络的方法的步骤。

本发明实施例通过对bier-te网络进行切分,使每个切分得到的子网的总网络规模不大于最大网络规模,保证报文能够转发到网络的出节点。

附图说明

图1是本发明实施例提供的一种自动切分网络的方法的流程示意图;

图2是本发明实施例提供的一种自动切分网络的装置的示意性框图;

图3是本发明实施例提供的一种自动切分网络的设备的示意性框图;

图4是本发明实施例提供的bier-te系统架构示意图;

图5是本发明实施例提供的bier-te组播子网切分流程示意图;

图6是本发明实施例提供的bier-te组播出节点变化时的处理流程示意图;

图7是本发明实施例提供的bier-te总网络规模数为455时自动切分网络的流程示意图;

图8是本发明实施例提供的bier-te总网络规模数为143时自动切分网络的流程示意图;

图9是本发明实施例提供的bier-te的业务网的总网络规模数为624时自动切分网络的流程示意图;

图10是本发明实施例提供的bier-te网络增加4个出节点时的处理流程示意图。

具体实施方式

以下结合附图对本发明的主要实施例进行详细说明。

图1是本发明实施例提供的一种自动切分网络的方法的流程示意图,如图1所示,所述方法步骤包括:

步骤s101:获取bier-te网络支持的最大网络规模。

在一种实施方式中,bier-te控制器通过北向接口获取上层指定的最大网络规模,即maxbsl值(最大的bsl)。

在另一种实施方式中,bier-te控制器通过南向接口获取bier-te网络节点间协商的最大网络规模,即maxbsl值(最大的bsl)。

步骤s102:根据所述bier-te网络的拓扑信息,确定所述bier网络的总网络规模。

所述bier-te网络的拓扑信息包括节点信息(即节点数量)和链路信息(即链接数量)。

在一种实施方式中,bier-te控制器根据所述节点信息和所述链路信息,确定所述bier-te网络的待分配的bp数量,并根据所述bp数量和预设的扩容因子,确定所述bier网络的总网络规模。例如,bier-te控制器将节点数量和链路数量相加,得到bp数量,然后将bp数量与扩容因子相乘,得到总网络规模。

步骤s103:根据所述总网络规模和所述最大网络规模,确定所述bier-te网络是否满足网络切分条件。

若所述总网络规模大于所述最大网络规模,则bier-te控制器确定所述bier-te网络满足网络切分条件。例如,所述bier-te网络的总网络规模为134,最大网络规模为128,此时134大于128,满足网络切分条件。

步骤s104:若所述bier-te网络满足网络切分条件,则对所述bier-te网络进行切分。

bier-te控制器首先将所述bier-te网络的出节点分为n组(例如均分为n组),n为大于1的整数,例如2、3、4等。然后根据所述bier-te网络的入节点分别到n组出节点的最优路径,将所述bier-te网络切分为n个子网,也就是说bier-te控制器根据最优路径涉及的节点和链路整合出子网。其中,bier-te网络的入节点和出节点分别指组播流量在bier-te网络传输时的bfir和bfer。在一种实施方式中,上述n的取值为2,即将出节点均分为两组后进行切分判断及切分处理。

在一种实施方式中,bier-te控制器在得到子网后,如果子网不满足网络切分条件,则为子网分配资源。实施时,计算每个子网的总网络规模,计算方式与步骤s102相同,若每个所述子网的总网络规模小于或等于所述最大网络规模,则为每个所述子网选择不小于且最接近每个所述子网的总网络规模的位串长度bsl,并为每个所述子网的节点和链路分配bp及所属的<sd,bsl,si>。

在一种实施方式中,bier-te控制器在得到子网后,如果子网满足网络切分条件,则需要对子网进行切分。实施时,计算每个子网的总网络规模,计算方式与步骤s102相同,然后对总网络规模大于所述最大网络规模的子网进行切分,直至切分得到的任意一个子网的总网络规模小于或等于所述最大网络规模。

本实施例的bier-te控制器通过网络切分,保证每个子网的总网络规模都不大于最大网络规模,这样,子网中的每个节点和每条链路都可以分配一个bp,其被分配的bp归属于同一<sd,bsl,si>。

bier-te控制器在网络切分结束并分配好bp之后,还可以根据bfer的变化情况,进行相应调整。

在一种实施方式中,当所述bier-te网络的bfer减少时,bier-te控制器将已删除所述bfer的子网整合为不包含所述bfer的新子网,对比bfer减少前后的两个子网(即bfer减少前的子网和bfer减少后的新子网),确定减少的节点和链路,并回收为所述减少的节点和链路分配的bp。

在一种实施方式中,当所述bier-te网络的出节点增加时,bier-te控制器根据已增加出节点的子网的拓扑信息,确定所述已增加出节点的子网的实际网络规模,例如将所述已增加出节点的子网的节点数量与链路数量相加,得到实际网络规模。若所述已增加出节点的子网的实际网络规模大于或等于所述最大网络规模,则对所述已增加出节点的子网进行切分。若所述已增加出节点的子网的实际网络规模小于所述最大网络规模且小于或等于在前选择的bsl,说明剩余bp数量足够,此时bsl不变,仅为所述已增加出节点的子网中新增的节点和链路分配bp即可。若所述已增加出节点的子网的实际网络规模小于所述最大网络规模且大于在前选择的bsl,则bier-te控制器根据所述已增加出节点的子网的总网络规模和所述最大网络规模,确定对所述已增加出节点的子网进行切分或为所述已增加出节点的子网选择新的bsl。其中,在前选择的bsl是指为总网络规模小于或等于最大网络规模的每个子网选择的bsl,例如为切分所述bier-te网络而得到的总网络规模小于或等于最大网络规模的每个子网选择的bsl。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中。

本发明还可以提供一种存储介质,其上存储有自动切分网络的程序,所述自动切分网络的程序被处理器执行时实现上述的自动切分网络的方法的步骤。其中,所述的存储介质可以包括rom/ram、磁碟、光盘、u盘。

图2是本发明实施例提供的一种自动切分网络的装置的示意性框图,如图2所示,所述装置包括:

获取模块,用于获取bier-te网络支持的最大网络规模,实现图1步骤s101。

确定模块,用于根据所述bier-te网络的拓扑信息,确定所述bier网络的总网络规模,实现图1步骤s102。

判断模块,用于根据所述总网络规模和所述最大网络规模,确定所述bier-te网络是否满足网络切分条件,实现图1步骤s103。

切分模块,用于若所述bier-te网络满足网络切分条件,则对所述bier-te网络进行切分,实现图1步骤s104。

在一种实施例中,当bier-te网络的bfer增加或减少时,还可以通过上述各模块的协作,进行相应的调整,例如重新进行网络切分,为新增节点分配bp,回收在前分配的bp和bsl等。

图3是本发明实施例提供的一种自动切分网络的设备的示意性框图,如图3所示,所述一种自动切分网络的设备包括:处理器,以及与所述处理器耦接的存储器;所述存储器上存储有可在所述处理器上运行的自动切分网络的程序,所述自动切分网络的程序被所述处理器执行时实现上述的自动切分网络的方法的步骤。

本发明实施例在网络规模(即总网络规模)大于最大maxbsl值(即最大网络规模)时进行网络切分,计算出合适的bsl值,使得同一路径的bp都属于一组<sd,bsl,si>。

图4是本发明实施例提供的bier-te系统架构示意图,如图4所示,上层的组播流通过北向接口(如:restfulapi)与控制器相连,进行组播流配置和查询等。下层的转发设备bfr(bit-forwardingrouter,按位转发路由器)通过南向接口(如:netconf/restconf/yang)等协议与控制器相连,收集设备的拓扑信息并下发转发表和bitstring。图1中src是信源source,rcv是信宿receiver。

本发明实施例通过控制器的南向接口收集网络拓扑,待网络稳定以后,对网络规模进行计算,如果网络规模大于预先设置的maxbsl值,则要将网络切分成多个子网,并为多个子网分别选择一个合适的bsl值,每个切分子网的si不同,sd的是上层配置给控制器的确定值,然后对子网节点和链路分配bp,同一子网的所有的bp都属于一组<sd,bsl,si>。所述网络拓扑可以是全网拓扑、用户指定的拓扑或与业务相关的拓扑。所述预先设置的maxbsl值可以是上层用户指定的,也可以是设备间协商出来的支持的最大maxbsl值。

自动切分子网的方法如下:

控制器通过南向接口收集到的实际网络中的节点和链路数分别为m和n,则全网需要分配的bp数是两者之和,即m+n。考虑到网络扩容需求,假设扩容因子为k(一般采用推荐经验值0.3),则总的网络规模s(即bp数)可用以下公式计算:

s=(m+n)*(k+1)公式(1)

预置的支持最大bsl值为maxbsl,若s>maxbsl,则需要进行子网切分。控制器将接收到的一个或多个组播的出节点bfers均分成两组,并对两组入节点到出节点分别进行最优路径计算,并整合得到两个子网络,这两个子网络分别由入节点到两组出节点所经过的所有节点和链路组成。这两个子网络就是一次切分后得到的,然后对两个子网络的规模分别用公式(1)进行计算为s1和s2,并与预置的maxbsl值进行比较,若子网规模小于预置maxbsl值,则将子网的bsl定为大于等于且最接近s1或s2的值(bsl只能从以下数值中选取:64、128、256、512、1024、2048、4096);若某个子网规模(假设子网s1)还大于预置maxbsl值,继续用上述方法将子网进行网络切分,迭代切分直到网络规模小于预置maxbsl值,并为每个切分好的子网选定bsl值为大于等于且最接近此子网网络规模的bsl值。

图5是本发明实施例提供的bier-te组播子网切分流程示意图,如图5所示,步骤如下:

步骤201:控制器通过南向接口收集bier网络的节点信息和拓扑结构。

步骤202:控制器通过北向接口接受bier配置相关信息,如domain(支持bier控制协议交互的转发设备的集合),sub-domain,mpls标签范围,并接受组播业务关注的组播流的入口路由器(bfir)和出口路由器(bfer),组播业务可以是一个或多个,从南向或者北向获取预置的bsl值。

步骤203:控制器根据收集的拓扑信息计算节点和链路数总和m+n,加上扩容因子,总的网络规模用公式(1)计算为s;如果网络是与业务相关的则计算业务相关的网络节点和链路规模。

步骤204:控制器根据计算出的s值与预置的maxbsl值进行比较,若s>maxbsl,则继续处理,否则转步骤207。

步骤205:控制器将组播在此网络中的bfers均分成两组,分别计算bfir到两组bfers的最优路径,两组路径经过的所有节点和链路合并组成两个子网络。

步骤206:控制器根据公式(1)分别计算两个子网的网络规模s,并与预置的maxbsl值进行比较,若某个子网的s>maxbsl,则转步骤205,否则继续处理。

步骤207:控制器为子网选择大于等于且最接近s的bsl值,每个子网的si值选择不同。

步骤208:控制器根据每个子网算出的bsl值为子网的节点和链路分配bp及所属的<sd,bsl,si>。

本实施例的子网切分方法简单,只需要对bfers进行2分法切分,不需要对全网节点进行切分。

图6是本发明实施例提供的bier-te组播出节点变化时的处理流程示意图,如图6所示,子网切分完成并分配好bp后,若组播的出节点bfer有变化,需要对减少的bfer回收已分配的bp,为增加的bfer分配新的bp,步骤如下:

步骤301:组播的的出节点bfer有变化。

步骤302:bfer个数是否增加,若是,转步骤304,否则继续处理。

步骤303:减少bfer对应的子网除去减少的bfers,重新计算bfir到剩余bfers的路径并整合出新的子网,与之前整合出的子网进行对比,将减少的节点和链路所分配的bp回收,转步骤314。

步骤304:用户是否指定将新增的bfers加入某个子网,若指定某个子网,继续处理,否则,转步骤313。

步骤305:bfers加入用户指定子网,对bfir到新的bfers重新计算路径并整合出新的子网,利用公式(2)计算新的网络规模s(即实际网络规模)。

步骤306:计算出的网络规模s与maxbsl进行比较,若s<maxbsl,继续处理,否则,转步骤311。

步骤307:网络规模是否大于此子网之前计算出的bsl值,若是,继续处理,否则,转步骤312。

步骤308:使用公式(1)重新计算新子网的网络规模为s1(即总网络规模)。

步骤309:新的网络规模s1是否小于maxbsl,若是,继续处理,否则,转步骤311。

步骤310:为子网重新选择bsl,并为子网中所有节点和链路重新分配bp,回收之前分配的bsl和bp,转步骤314。

步骤311:用图5的子网切分法对此子网进行切分,为新的子网计算bsl并分配bp,转步骤314。

步骤312:此子网有足够剩余的bp给新增的节点和链路分配bp,增加bfers整合出的新子网并与新增之前的子网比较,为增加的节点和链路增量分配bp,bsl不变,转步骤314。

步骤313:选择网络中bsl最小的子网,将新增的bfers加入此子网的bfers组,并对bfir到新的bfers组重新计算路径并整合出新的子网,利用公式(2)计算新的网络规模s,转步骤306。

步骤314:组播bier有变化,处理bp完毕。

其中计算网络规模的公式如下:

s=m+n公式(2)

可见,公式(1)用于计算考虑扩容需求后的网络规模,即总网络规模。公式(2)用于计算bfer变化后的网络规模,即bfer变化后的实际网络规模。

本实施例的新子网的形成是基于bfir到bfers的最短路径拟合的子网,bp占用最少,流量路径最短。

本实施例的bsl是2的n次方,当如此切分后,最优bsl最接近maxbsl。

图7是本发明实施例提供的bier-te总网络规模数为455时自动切分网络的流程示意图,bier网络中预置maxbsl值从上层用户获取,网络是全网拓扑,如图7所示,其流程如下:

步骤401:控制器通过南向接口收集bier网络的节点信息和拓扑结构,其中节点数和链路数总和为350。

步骤402:控制器通过北向接口接受配置domain,sub-domain,mpls标签范围等bier相关信息,节点配置的sub-domain值为1,支持的最大maxbsl值为256;同时接受组播的bfir和bfers配置,bfer个数为60。

步骤403:控制器根据公式(1)算出网络规模s为350*(1+0.3)=455。

步骤404:网络规模s值455大于预置maxbsl值256,需要进行网络切分。

步骤405:组播的bfers均分成两组,每组30个bfer,分别计算每组入节点到出节点的最优路径,两组路径经过的节点和链接合并作为一个子网,共两个子网,分别为子网1和子网2。

步骤406:控制器分别计算两个子网的网络规模s,假设子网1的规模为260大于预置maxbsl值256,子网2的规模为200小于预置maxbsl值256,则需要对子网1再次切分网络。

步骤407:将组播在子网1的30个bfers再次均分成2组,每组15个,分别计算每组入节点到出节点的最优路径,两组路径经过的节点和链接合并作为一个子网,共两个子网,分别为子网3和子网4。

步骤408:控制器分别计算两个子网的网络规模s,假设子网3的规模为190小于预置maxbsl值256,子网4的规模为120小于预置maxbsl值256,则不需要再进行子网切分。

步骤409:切分网络后形成3个子网,分别是子网2,子网3和子网4,控制器为其选择的bsl值分别为256,256和128,si值分别为1,2和3。

步骤410:控制器根据每个子网算出的bsl值为子网的节点和链路分配bp及所属的<sd,bsl,si>,三个子网的三元组分别为<1,256,1>,<1,256,2>和<1,128,3>。

图8是本发明实施例提供的bier-te总网络规模数为143时自动切分网络的流程示意图,bier网络中预置bsl值是设备间通过协商选取的支持的最大maxbsl,网络是全网拓扑,如图8所示,其流程如下:

步骤501:控制器通过南向接口收集bier网络的节点信息和拓扑结构,其中节点数和链路数总和为110。

步骤502:控制器通过北向接口接受配置domain,sub-domain,mpls标签范围等bier相关信息,节点配置的sub-domain值为1,同时接受组播的bfir和bfers配置,bfer个数为16,南向接口接受设备间协商的支持最大maxbsl值为128。

步骤503:控制器根据拓扑和扩容因子算出网络规模s为110*(1+0.3)=143。

步骤504:网络规模s值143大于预置maxbsl值128,需要进行网络切分。

步骤505:组播的bfer均分成两组,每组8个bfer,分别计算每组入节点到出节点的最优路径,两组路径经过的所有节点和链接合并作为一个子网,共两个子网,分别为子网1和子网2。

步骤506:控制器分别计算两个子网的网络规模s,假设子网1的规模为69小于预置maxbsl值128,子网2的规模为89小于预置maxbsl值128,则不需要再进行子网切分。

步骤507:切分网络后形成2个子网,分别是子网1和子网2,控制器为其选择的bsl值都为128,si值分别为1和2。

步骤508:控制器根据每个子网算出的bsl值为子网的节点和链路分配bp及所属的<sd,bsl,si>,两个子网的三元组分别为<1,128,1>和<1,128,2>。

图9是本发明实施例提供的bier-te的业务网的总网络规模数为624时自动切分网络的流程示意图,bier网络与业务相关,如图9所示,其流程如下:

步骤601:控制器通过南向接口收集bier网络的节点信息和拓扑结构,其中节点数和链路数总和为900。

步骤602:控制器通过北向接口接受配置domain,sub-domain,mpls标签范围等bier相关信息,节点配置的sub-domain值为1,同时接受组播的bfir和bfers配置,bfer个数为40,南向接口接受设备间协商的支持最大maxbsl值为512。

步骤603:控制器根据组播bfir和bfers计算最优路径,并整合出业务相关网络的节点和链接数为480,根据公式(1)算出业务网络规模s为480*(1+0.3)=624。

步骤604:网络规模s值624大于预置maxbsl值512,需要进行网络切分。

步骤605:组播的bfer均分成两组,每组20个bfer,分别计算每组入节点到出节点的最优路径,两组路径经过的所有节点和链接合并作为一个子网,共两个子网,分别为子网1和子网2。

步骤606:控制器分别计算两个子网的网络规模s,假设子网1的规模为251小于预置maxbsl值512,子网2的规模为320小于预置maxbsl值512,则不需要再进行子网切分。

步骤607:切分网络后形成2个子网,分别是子网1和子网2,控制器为其选择的bsl值分别为256和512,si值分别为1和2。

步骤608:控制器根据每个子网算出的bsl值为子网的节点和链路分配bp及所属的<sd,bsl,si>,两个子网的三元组分别为<1,256,1>和<1,512,2>。

图10是本发明实施例提供的bier-te网络增加4个出节点时的处理流程示意图,bier网络已按图8实施例的组播切分好子网,bsl计算和bp分配都已完成,组播出节点个数增加4个,并指定加入子网1中,如图10所示,处理流程如下:

步骤601:bier-te组播的bfers个数有变化。

步骤602:组播增加4个bfer。

步骤603:用户指定将新增的bfers加入子网1中。

步骤604:新增的4个bfer加入子网1已切分的8个bfers组中,共12个bfer,重新计算组播入节点到12个出节点的路径,并整合出新的子网1-1,用公式(2)计算新子网1-1的网络规模s,假设s为70;

步骤605:网络规模s值70小于maxbsl值128,且小于子网1之前计算的bsl值128;

步骤606:子网1有足够剩余的bp给新增的节点和链路分配,新子网s1-1与子网1进行比较,多出的节点和链路是需要分配bp的,为这些节点和链路增量分配bp,所属三元组还是<1,128,1>,且bsl不变,为128。

综上所述,本发明实施例具有以下技术效果:

本发明实施例在bier-te网络的总网络规模大于最大网络规模时进行网络切分,计算出合适的bsl值,使得同一路径的bp都属于一组<sd,bsl,si>,保证报文在一个bitstring中转发到该子网的bfer。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1