可扩展路由器系统控制平面中高性能的节点间通信方法

文档序号:7966999阅读:231来源:国知局
专利名称:可扩展路由器系统控制平面中高性能的节点间通信方法
技术领域
可扩展路由器系统控制平面中高性能的节点间通信方法属于可扩展的路由器软件体系结构技术领域。
背景技术
路由器是网络的核心设备,具有可扩展特性的路由器体系结构已经成为下一代路由器的重要研究方向和难点问题之一。从总体功能结构的概念出发,路由器可以划分为两个主要的功能平面一个是集中于流量转发处理的数据平面,另一个是完成控制与路由交互的控制平面,数据平面到控制平面的信息流是控制平面的主要信息来源,直接影响软件体系结构的运行状况。
由于数据平面的简单性原则,在传统的路由器软件体系结构中,来自底层数据平面的控制信息,例如路由交互报文等,都是原始信息,信息在到达控制平面进行处理之前不做处理。如果有多个控制平面的节点时,数据不做区分地提交到控制平面的每个节点,见图1。每个控制平面的节点在收到原始控制信息后,仅选出对本节点有用的信息提交到各个相应的协议进行处理。这种通信模式在控制平面节点单一或者数目很少的情况下可以正常工作,但是随着可扩展路由器在原则上对控制平面节点数目的无约束,这种模式会造成由控制节点数目增多而带来的控制流通信瓶颈和内部的通信带宽浪费,大大影响了软件体系结构的扩展能力。
本发明对传统的通信结构进行了改进,见图2,通过在数据平面和控制平面之间插入了一个“传输适配子层”来统一和协调与层间控制流相关的所有操作。其主要思想是尽量减少重复流量在平面间的传递,并通过控制平面的指令对数据平面上的上行信息进行分流,从而有效的消除面间冗余流量,最终达到消除面间通信可扩展瓶颈的目的。

发明内容
本发明的目的在于提供一种能够解决可扩展路由器系统控制平面中高性能的节点间通信的方法。
本发明的特征在于,依次含有以下步骤步骤1.控制平面的任务向数据平面提出上行信息流的申请,即任务注册,其中注册接口在形式上是一个四元组<TgtNodeID,TgtTaskID,RuleList,TimeOut>,
TgtNodeID发出注册请求的控制平面目标节点的标识TgtTaskID发出注册请求的任务的标识RuleList 模式匹配规则列表TimeOut 心跳过程超时时间注册过程包括以下步骤步骤1.1.传输适配子层在控制平面端维护一个负责接收注册申请的进程;步骤1.2.将接收到的注册请求转发到数据平面的节点;步骤1.3.将此请求按照任务标识保存在一个本地的数据库当中;步骤1.4.传输适配子层与操作系统配合,启动对任务运行状态的实时监测;步骤1.5.若数据平面有新的节点加入,则传输适配子层自动将各个任务在其他节点上的注册信息发送给新加入的节点;步骤2.翻译器将传输适配子层提供给控制平面接口的命令转换成一个特定的模式匹配规则;匹配规则由若干预定义的特征域与特征域上相关的带参数的二值函数共同构成;例如“show interface g 1/0/0”命令中“g 1/0/0”将被提取作为该模式匹配规则特征域;特征域的集合记作F=(f1,f2,…,fn),其中fi是编号为i的预定义特征域,对每一个预定义特征域,都有若干带参数的二值函数与之绑定;特征域fi绑定的函数列表为Gi=(gi1,gi2,…,giq),函数的输入是若干个参数,输出是一个二值逻辑,0表示不选中流,1表示选中流,函数gij的参数列表记作Pij=(Pij1,Pij2,...,Pijrij)]]>所有规则的特征域、函数及其参数通过一个树形的目录结构组织在一起ROOTf1{......fi...fn{...gi1{......gij...giq{...Pij1...Pijrij]]>步骤3.传输适配层对控制平面提出申请的不同目标节点的标识进行注册,并将节点与相应的函数gij绑定在一起;假设控制平面有m个节点,则用一个长度是m的向量位图来表示数据流的目标节点分布状况,记作B=(b1,...,bm);步骤4.底层数据平面的节点在收到控制流数据时,首先由节点本地的网络层进行处理,判断是否为转发数据步骤4.1.若为转发数据,则直接进行底层的数据转发;步骤4.2.若不是转发数据,则将此数据提交为本地的上行控制流数据,转入下一步;步骤5.上行数据特征的抽取步骤5.1.特征抽取器根据匹配规则中的特征域抽取数据的特征,产生特征数据;步骤5.2.将数据的内容放入数据池进行缓冲;步骤5.3.将产生的特征数据送入模式匹配模块,作为待分类的目标数据段,此目标数据段和放入数据池的数据具有相同的索引标识;步骤6.模式的匹配过程匹配的模式有固定字段模式和非固定字段模式,分别对应于通信报文的基础格式中固定位置的匹配和基于内容进行的匹配,固定字段模式是指通过在数据的固定位置检查(如源端口,目的端口等)的数据固定特征来进行模式匹配的方法,非固定字段模式是指在忽略出现位置的情况下,通过在整个数据段中进行基于某一特征进行查找(如对SNMP数据包进行查找来确定管理对象)来进行模式匹配的方法;我们将只需要进行一次模式匹配,且匹配范围为单一值的函数称为简单匹配,简单匹配函数可以表示为一个二元组g=<f,P>,其中f是匹配的目标域,P是匹配的模式值;同一个特征域的k个简单匹配,可以通过一次哈希在一个匹配周期内完成;输出结果是一个长度为m的向量位图(b1,...,bm)=Hash(field,(p1,...,pk)),n个特征域匹配的结果分别记作(B1,...,Bn),最终的模式匹配结果B=∧i=1,...,n(Bi),其中∧是按位与操作;步骤6.1.根据步骤5.3中产生的目标数据段,对相应特征域下的匹配函数进行计算,最终决定是否对绑定此函数的目标节点选中当前的数据流;步骤6.2.对数据流所要满足的所有待匹配的特征域分别进行步骤6.1的计算,决定数据流最终的流向;步骤6.3.将上行的控制信息流发往控制平面的相应目标节点;步骤7.任务在节点上的退出步骤7.1.若任务正常结束,则任务主动地注销注册过的上行信息流;步骤7.2.若任务发生故障或者没有实现注销机制,则步骤1.4中启动的状态监测模块会监测到,并对相应信息流自动注销。
本发明提出了可扩展路由器系统控制平面节点间通信瓶颈问题的解决方法,在可扩展路由器软件体系结构的支撑模型系统中引入了“传输适配子层”,传输适配子层介于数据平面和控制平面之间,通过在控制平面上的指令控制、在数据平面的上行信息分流,大大减少了重复流量在平面间的传递,使其适应可扩展路由器体系结构的需求。对模型的理论分析和实验都表明了与传统的通信模式相比,传输适配子层的引入很大地提高了数据平面到控制平面的有效通信率,可以消除平面间的冗余流量和可扩展瓶颈。


图1.数据平面与控制平面间的通信结构;图2.改进后的逻辑通信结构;图3.传输适配子层的控制结构;图4.上行信息流的处理流程图。
具体实施例方式
如图3所示是传输适配子层的控制结构。传输适配子层是跨接在数据平面和控制平面之间的一个功能组成。在具体实现中它在每个数据平面节点和控制平面节点上都有相应的模块。这些模块共同完成信息流的分类操作。传输适配子层的主体功能在数据平面上进行,控制平面只提供控制接口的部分。图3中的结构为数据平面上的结构。传输适配子层的功能实现主要包含以下的功能部件●数据池用于上行信息流的临时存储●特征抽取器对数据流的特征进行提取●模式匹配模块对数据流特征进行模式匹配和分类●控制器完成与控制平面节点的交互●翻译器将控制平面节点的命令翻译成特征匹配的模式(1)数据池是一个共享内存的缓冲池,提交给上层控制节点的信息首先存入数据池中。在实际的系统实现中,数据池不是底层数据的二次拷贝,而直接利用底层的原始存储,例如在以嵌入式Linux为基础操作系统的数据节点上,数据池中不对sk-buffer的内容进行复制,而是在数据池中维护进行缓冲的sk-buffer的索引标识。从这个意义上讲,数据池是一个可随机访问的数据缓冲区。
(2)特征抽取器特征抽取器根据来自控制器的指令确定进行抽取的目标数据段,将目标数据段送入模式匹配模块进行分类,目标数据段拥有和放入数据池数据相同的索引标识,这个索引标识在数据池中进行维护。这个功能模块的引入主要是为了对模式匹配进行预处理,减少进行模式匹配的数据量,减小开销。例如对于路由交互信息则提取交互报文中的目的IP地址和端口字段作为目标数据段,送入硬件分类模块进行分类;而对于网络管理信息则需提取管理协议报文的内容作为目标数据段,送入软件分类模块进行分类。
(3)模式匹配模块传输适配子层需要分类的数据是多特征多模式的信息,匹配模式有固定字段的匹配和非固定字段的匹配,因此分别在模式匹配模块包含两个模块,对信息进行不同层次的分类。其中TCAM是以硬件为主的分类模块,另一个是基于软件的分类模块,通过软件的哈希表来实现。对拥有简单结构、固定结构、静态结构的特征,采用TCAM来完成快速的模式匹配,匹配的内容是网络层源/目的地址和传输层目的端口号。这个匹配可以满足大部分的信息流匹配。具体实施时我们采用IDT公司型号为75K62100 128K×72Entries的芯片。对于复杂的、动态的结构特征,采用哈希表来完成深度模式匹配。这里我们采用SHA-1散列算法,任意长度的内容经哈希函数计算得到固定长度(128比特)的散列值,再与待匹配的目标域进行比较。此外为了加快模式匹配的处理的过程,对多个特征域可以采用NP(网络处理器)的多个微引擎并行处理,同时,可以将简单规则合并以简化匹配开销。
(4)控制器传输适配子层的数据平面部分通过控制器向控制平面部分提供交互操作。控制器维护与控制平面节点任务之间的关系,处理来自控制平面任务的信息流分配申请,并自动监测任务的离开与迁移。这些功能都在注册接口中实现四元组<TgtNodeID,TgtTaskID,RuleList,TimeOut>中维护着节点的标识,任务的标识,规则列表和超时时钟,任务完成时主动将此条目在节点上注销掉;若任务出现故障或者无法实现主动注销时,超时时钟会触发上行信息流的自动注销机制。
(5)翻译器因为传输适配子层提供给控制平面的接口是面向命令的抽象接口,这些命令需要转换成相应的模式匹配规则。此外,由于传输适配子层的分类是一个多模式多字段的复杂匹配,不同任务会有不同的信息流分配,同一协议的不同功能数据流也可能选择不同的目的节点,翻译器须将到达控制平面接口的命令解析成模式匹配规则,如显示某个接口上的OSPF的相关信息show ip ospf interface.XXX这样一条路由器命令,翻译成模式匹配规则列表应为<protocol type,ospf>;<router interface,XXX>两条。
在传输适配子层中,存在三条主要的信息通路,数据流通路参见图3,细线表示了传输适配子层内部的控制操作(1)参数化命令通路用于传输适配子层在控制平面与数据平面之间的接口交互。如任务的注册,注销命令将通过这一通路从控制平面向数据平面下达。
(2)上行信息流通路是上行数据的主要通路,由底层提交的上行数据,经过特征提取器取出用于模式匹配的特征,同时进入数据池进行缓冲。
此通路流经的信息流包括底层来的路由协议交互信息、网络管理协议的交互信息、其他控制协议(例如流量工程协议)的控制信息等信息流。
(3)特征信息流通路特征信息由特征提取器生成,然后刷新到TCAM或者对应的哈希表。
例如对于网络管理协议,需要提取协议报文的内容,并将此内容特征刷新到哈希表中,再进行基于软件的分类。
我们的实验采用基于树型结构的BGP路由迭代模型,取k=2的4个节点迭代树,模拟BGP任务和管理任务。实验表明,在面间流量较少的情况下,改进的模型能容纳相当于洪泛模式下约4.5倍的负载,从而证实了传输适配子层能有效消除面间冗余流量,有效地提高控制平面节点间通信的效率。
由此可见,本发明达到了预期目的。
权利要求
1.可扩展路由器系统控制平面中高性能的节点间通信方法,其特征在于,所述方法依次含有以下步骤步骤1.在所述可扩展路由器系统的控制平面和数据平面之间设置一个传输适配子层,该子层由以下各部分组成控制器,负责维护数据平面节点与控制平面节点任务之间的关系,处理来自控制平面任务的信息流分配申请,自动监测任务的离开与迁移,为此,设有一个四元组<TgtNodeID,TgtTaskID,RuleList,TimeOut>作为任务注册的接口,其中TgtNodeID,发出注册请求的控制平面目标节点的标识;TgtTaskID,发出注册请求的任务的标识;RuieList,模式匹配的规则表,所示的匹配规则由若干预定义的特征域以及特征域上相关的带参数的二值函数共同构成,该特征域的集合记作F,F=(f1,f2,...,fn),其中fi是编号为i的预定义特征域,i=1,2,...,n,对每一个预定义特征域fi,都有若干带参数的二值函数与之绑定,所述与特征域fi绑定的二值函数用列表Gi表示,Gi=(gi1,gi2,...,giq),每一个二值函数的输入是若干个参数,所述参数用列表Pij表示,Pij=(pij1,pij2,...,pijrij)]]>,该二值函数的输出是一个二值逻辑,0表示不选中流,1表示选中流;所有规则的特征域、二值函数及其参数用一个树型目录结构组织在一起,解析成模式匹配规则列表;TimeOut,心跳过程超时时间;特征抽取器,数据输入端与一块数据板的输出端相连,根据所述模式匹配规则列表所反映的控制平面接口命令确定所要抽取的目标数据段;例如对于路由交互信息,提取交互报文中的目标地址和传输层的端口字段作为目标数据段;对于网络管理信息,提取管理协议报文中的内容作为目标数据段;模式匹配模块,由用硬件TCAM实现的固定字段匹配模块和用软件的哈希表来实现的非固定字段匹配模块构成,该硬件TCAM匹配的是网络层源/目的IP地址和传输层的目的端口号,该哈希表用SHA-1散列算法,从协议报文中任意长度的内容中计算得到固定比特长度的散列值,再与待匹配的目标域进行比较;数据池,是一个共享内存的缓冲池;用于缓存待提交给上层控制平面节点的信息步骤2.所述的可扩展路由器系统控制平面中各节点按以下步骤进行通信步骤2.1.控制平面的任务通过控制器提供的注册接口进行任务注册,从而向数据平面提出底层上行信息流申请,其步骤如下步骤2.1.1.所述传输适配子层在控制平面端维护一个负责接收注册申请的进程;步骤2.1.2.控制器将接收到的注册请求下达到数据平面的节点;步骤2.1.3.数据平面节点收到注册请求后,按照任务标识将其保存在一个本地的数据库当中;步骤2.1.4.传输适配子层与操作系统配合,启动对任务运行状态的实时监测;步骤2.2.翻译器将传输适配子层提供给控制平面接口的命令转换成一个个特定的模式匹配规则,并刷新到模式匹配模块和特征抽取器;步骤2.3.模式匹配模块对控制平面提出申请的不同目标节点的标识进行注册,并将节点与相应的二值函数gij绑定在一起;步骤2.4.底层数据平面的节点在收到控制流数据时,首先由节点本地的网络层进行处理,判断是否为转发数据若为转发数据,则直接进行底层的数据转发;若不是转发数据,则将此数据提交为本地的上行控制流数据,转入下一步骤;步骤2.5.特征抽取器按以下步骤进行上行数据特征的抽取步骤2.5.1.特征抽取器根据匹配规则中的特征域抽取数据的特征,产生特征数据;步骤2.5.2.将数据内容放入数据池进行缓冲;步骤2.5.3.将产生的特征数据送入模式匹配模块,作为待分类的目标数据段,此目标数据段和放入数据池的数据具有相同的索引标识;步骤2.6.按以下步骤进行模式的匹配步骤2.6.1.根据步骤2.5.3中产生的目标数据段,对相应特征域下的匹配函数进行计算,最终决定是否对绑定此函数的目标节点选中当前的数据流;步骤2.6.2.对数据流所要满足的所有待匹配的特征域分别进行步骤2.6.1的计算,决定数据流最终流向的目标节点;假设控制平面有m个节点,则用一个长度是m的向量位图来表示数据流的目标节点分布状况,记作B=(b1,...,bm);步骤2.7.任务在节点上的退出若任务正常结束,则任务主动地注销注册过的上行信息流;若任务发生故障或者没有实现注销机制,则状态监测检测到任务已超时后,对相应信息流自动注销。
2.根据权利要求1所述的可扩展路由器系统控制平面中节点间通信方法,其特征在于,所述步骤2.6.1中,对于只需要进行一次模式匹配,且匹配范围为单一值的简单匹配函数,用一个二元组g=<f,p>表示,其中f是匹配的目标域,p是匹配的模式值。
3.根据权利要求2所述的可扩展路由器系统控制平面中节点间通信方法,其特征在于,对于同一个特征域的k个简单匹配,通过一次哈希计算在一个匹配周期内完成,输出结果是一个长度为m的向量位图(b1,...,bm)=Hash(field,(p1,...,pk)),其中m是控制平面节点的个数,则n个特征域匹配的结果分别记作(B1,...,Bn),最终的模式匹配结果B=∧i=1,...,n(Bi),其中∧是按位与操作。
4.根据权利要求1所述的可扩展路由器系统控制平面中节点间通信方法,其特征在于当数据平面有新节点加入时,传输适配子层自动将各个任务在其他节点上的注册信息发送给新加入的节点。
全文摘要
可扩展路由器系统控制平面中高性能的节点间通信方法属于可扩展的路由器软件体系结构技术领域,其特征在于在可扩展路由器软件体系结构的支撑模型系统中引入了一个介于数据平面和控制平面之间的“传输适配子层”,通过在控制平面上的指令控制数据平面的上行信息分流,大大减少了重复流量在平面间的传递,使其适应可扩展路由器体系结构的需求;对模型的理论分析和实验都表明了与传统的通信模式相比,传输适配子层的引入很大地提高了数据平面到控制平面的有效通信率,可以消除平面间的冗余流量和通信和可扩展瓶颈。
文档编号H04L29/06GK1953419SQ20061011387
公开日2007年4月25日 申请日期2006年10月20日 优先权日2006年10月20日
发明者徐恪, 吴鲲, 王青青 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1