CN103729427B - 一种基于自定义多级流表增量更新的流表转换方法 - Google Patents
一种基于自定义多级流表增量更新的流表转换方法 Download PDFInfo
- Publication number
- CN103729427B CN103729427B CN201310726837.XA CN201310726837A CN103729427B CN 103729427 B CN103729427 B CN 103729427B CN 201310726837 A CN201310726837 A CN 201310726837A CN 103729427 B CN103729427 B CN 103729427B
- Authority
- CN
- China
- Prior art keywords
- flow table
- equivalence class
- metadata
- multilevel
- item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于自定义多级流表增量更新的流表转换方法,将控制器controller下发的多级流表的同一流表中的所有流表项采用等价类划分,并映射成N叉树;当接收到一个新的流表项,将该新流表项加入到其所对应的等价类中,完成对N叉树的更新。既能保证完成流表的转换工作,同时也尽可能减少了转换工作给网络性能带来的影响。
Description
技术领域
本发明涉及一种基于自定义多级流表增量更新的流表转换方法。
背景技术
无论是firewall还是OpenFlow,在这种多表自定义查找中,多级流表流水线的概念已经被引入。一条完整的规则很可能被拆分多个部分,并以流表项的形式分别下发给不同的流表。同时,这些流表项之间通过可称之为metadata的元素进行相互关联,确保其组成同一条完整的规则。当数据包匹配到一个流表项时会执行流表项中的指令,如果流表中有goto跳转指令,则该数据包就会跳转到下一个或者是goto指令指定的流表中进行查找,查找到的流表项除了必须要与数据包的匹配域进行匹配外还需要与数据包所携带的metadata进行匹配。由于多级流表表结构的复杂性,其很难在硬件中实现,不同厂商所生产的硬件交换机的特性很可能不同。因此,当网络管理员下发规则到各个交换机时,其不得不考虑各个交换机的具体特性,然后再根据特定的需求构造相应的规则。而这个过程往往给网络管理员带来很大的负担。
华为提出了一种OpenFlow中间层软硬件多级流表的转换技术。该技术的主要内容是在交换机的软件数据平面和硬件数据平面之间构造一个中间层,这个中间层负责进行流表的转换。而这个流表转换的过程主要是每当软件数据平面接收到控制器下发的一个流表项时,其就会从第一个流表开始类似多级流表流水线的处理来构造一个N叉树来,然后在这个N叉树中找到新接收到的流表项所在的枝干。最后,在将这些枝干所代表的规则进行转换。华为提出的这种技术属于暴力处理方式,具有很大的局限性。因为,其构造的N叉树不是增量更新的,控制器每下发一个新的流表项,其中间层并不是在以前的N叉树进行增删操作,而是要重新构造N叉树来处理。因此,其整个转换的性能会受到极大地影响。
发明内容
发明目的:本发明的目的是针对现有技术的不足而提供一种基于自定义多级流表增量更新的流表转换方法,既能保证完成流表的转换工作,同时也尽可能减少了转换工作给网络性能带来的影响。
技术方案:为了实现发明的目的,本发明公开了一种基于自定义多级流表增量更新的流表转换方法,将控制器下发的多级流表的同一流表中的所有流表项采用等价类划分,并映射成N叉树;当接收到一个新的流表项,将该新流表项加入到其所对应的等价类中,完成对N叉树的更新。
作为优选,为了简化等价类划分工作并进一步减少整个转换工作的效率,本发明所采用的等价类划分方式为:将metadata匹配域相同的流表项划分成第一等价类;将流表项的goto指令中跳转到下一个流表的ID号和instr_metadata值相等的流表项划分成第二等价类。其中instr_metadata指的是数据包匹配到流表项后可能对数据包的metadata数据进行修改,修改的内容即为instr_metadata,而修改的指令为write_metadata。
作为优选,为了只需要对N叉树的节点进行简单的增删操作即能完成对N叉树的更新,当接收到一个新的流表项,分别查找该新流表项所属的第一等价类和第二等价类;根据第一等价类所共有的父节点及第二等价类所共有的子节点来更新该新流表项的父子节点关系,完成N叉树的更新。
作为优选,为了达到能与硬件适配的目的,所述N叉树用于查找需要转换的多级流表流水线规则,并将其转换成单表多域的单级流表,最终再将该单级流表拆分为硬件所适配的多级流表。
有益效果:本发明与现有技术相比:既能保证完成流表的转换工作,同时也尽可能减少了转换工作给网络性能带来的影响,在接收到控制器下发的流表项时,只需简单的增删操作就能完成对N叉树的更新工作。
附图说明
图1为华为分治法的流程示意图;
图2为自定义多级流表相关的多级流表流水线示意图;
图3为本发明基于自定义多级流表增量更新的流表转换方法的流程图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1所示,华为所提出的分治法思想为:将控制器下发的多级流表映射成一个N叉树;在该N叉树查找到需要转换的多级流表流水线规则并将其转换成单表多域的单级流表;再将这个单级流表拆分成硬件所适配的多级流表。
如图2所示,自定义多级流表中的多级流表流水线是由多个流表组成,每个流表又由多个流表项组成。一个流表中的某个流表项通过goto指令跳转到另一张流表进行查找,可能查找到相匹配的多个流表项并且这些流表项也可能有goto指令跳转并查找到多个流表项。除此之外,一个流表项可能会出现来自多个不同流表的流表项跳转到其所在的流表并与之相匹配上,所以在这种多表自定义查找中的多级流表表项间往往存在着这种多对多的映射关系。这种多对多的关系则可通过N叉树的关系来表示,而每个节点存储其父节点的指针链表,即为其所有父节点的集合。
将同一流表中的流表项按照两大标准划分等价类,两个等价类分别为:将metadata匹配域相同的流表项划分成第一等价类;将流表项的goto指令中跳转到下一个流表的ID号和instr_metadata值相等的流表项划分成第二等价类。其中,对于没有goto指令的流表项则令其下一个流表的ID号为-1;如果流表项没有Write_metadata指令,则可以令instr_metadata值等于该流表项自身的metadata匹配域的值即可。
如图3所示,包括以下步骤:
(1)当控制器下发一个新的流表项时,首先判断其是否有goto指令,有则获取该新流表项的metadata匹配域、下一个流表的ID号以及instr_metadata值,否则令下一个流表的ID号为-1且instr_metadata为-1;
(2)然后查找第一等价类,查找成功则更新该新流表项的N叉树节点的父节点链表,否则根据metadata匹配域创建一个新的第一等价类,再根据新流表项所在流表的ID号以及metadata匹配域向前查找其所对应的父节点,更新等价类的公共父节点链表;
再分别更新父节点所在的第二等价类的公共子节点链表;
(3)最后查找第二等价类,查找成功则更新该新流表项的N叉树节点的子节点链表,否则根据instr_metadata和下一个流表ID号创建一个新的第二等价类,根据下一个流表ID号查找其子节点,更新等价类的公共子节点链表;
再分别更新子节点所在的第一等价类的公共父节点链表。
从以上步骤可以看出我们对N叉树的更新只需要进行简单的增删操作,这样就减少了转换工作给网络性能带来的影响。
Claims (2)
1.一种基于自定义多级流表增量更新的流表转换方法,其特征在于,将控制器下发的多级流表的同一流表中的所有流表项采用等价类划分,并映射成N叉树;
所采用的等价类划分方式为:将metadata匹配域相同的流表项划分成第一等价类;将流表项的goto指令中跳转到下一个流表的ID号和instr_metadata值相等的流表项划分成第二等价类;其中instr_metadata指的是数据包匹配到流表项后可能对数据包的metadata数据进行修改,修改的内容即为instr_metadata,而修改的指令为write_metadata;
当接收到一个新的流表项,分别查找该新流表项所属的第一等价类和第二等价类;根据第一等价类所共有的父节点及第二等价类所共有的子节点来更新该新流表项的父子节点关系,完成N叉树的更新。
2.如权利要求1所述的一种基于自定义多级流表增量更新的流表转换方法,其特征在于,所述N叉树用于查找需要转换的多级流表流水线规则,并将其转换成单表多域的单级流表,最终再将该单级流表拆分为硬件所适配的多级流表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310726837.XA CN103729427B (zh) | 2013-12-25 | 2013-12-25 | 一种基于自定义多级流表增量更新的流表转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310726837.XA CN103729427B (zh) | 2013-12-25 | 2013-12-25 | 一种基于自定义多级流表增量更新的流表转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103729427A CN103729427A (zh) | 2014-04-16 |
CN103729427B true CN103729427B (zh) | 2017-08-29 |
Family
ID=50453501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310726837.XA Active CN103729427B (zh) | 2013-12-25 | 2013-12-25 | 一种基于自定义多级流表增量更新的流表转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103729427B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105409169B (zh) * | 2014-05-30 | 2019-01-18 | 华为技术有限公司 | 一种多路径转发规则的构造方法、装置及系统 |
CN104320340A (zh) * | 2014-10-21 | 2015-01-28 | 杭州华三通信技术有限公司 | 软件定义网络中学习源mac地址的方法和装置 |
CN105812164B (zh) * | 2014-12-31 | 2019-07-23 | 北京东土科技股份有限公司 | 基于tcam多级流表的规则索引管理实现方法和装置 |
TWI660615B (zh) * | 2016-11-30 | 2019-05-21 | 英業達股份有限公司 | 網路系統控制方法及網路系統 |
CN108600107B (zh) * | 2017-11-07 | 2021-06-01 | 北京交通大学 | 一种可自定义内容字段的流匹配方法 |
CN108259353B (zh) * | 2018-01-10 | 2021-02-26 | 浙江工商大学 | 一种基于匹配字段具体值重复率的多级流表设计方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710489A (zh) * | 2011-03-28 | 2012-10-03 | 日电(中国)有限公司 | 动态分流调度系统和方法 |
CN102916887A (zh) * | 2012-10-23 | 2013-02-06 | 清华大学 | 基于带内虚通道的OpenFlow带外组网方法 |
CN103379039A (zh) * | 2012-04-23 | 2013-10-30 | 华为技术有限公司 | 一种用于流统计的方法、装置及系统 |
CN103401777A (zh) * | 2013-08-21 | 2013-11-20 | 中国人民解放军国防科学技术大学 | Openflow的并行查找方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8964569B2 (en) * | 2011-07-04 | 2015-02-24 | Telefonaktiebolaget L M Ericsson (Publ) | Generic monitoring packet handling mechanism for OpenFlow 1.1 |
-
2013
- 2013-12-25 CN CN201310726837.XA patent/CN103729427B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710489A (zh) * | 2011-03-28 | 2012-10-03 | 日电(中国)有限公司 | 动态分流调度系统和方法 |
CN103379039A (zh) * | 2012-04-23 | 2013-10-30 | 华为技术有限公司 | 一种用于流统计的方法、装置及系统 |
CN102916887A (zh) * | 2012-10-23 | 2013-02-06 | 清华大学 | 基于带内虚通道的OpenFlow带外组网方法 |
CN103401777A (zh) * | 2013-08-21 | 2013-11-20 | 中国人民解放军国防科学技术大学 | Openflow的并行查找方法和系统 |
Non-Patent Citations (1)
Title |
---|
基于OpenFlow的SDN技术研究;左青云等;《基于OpenFlow的SDN技术研究》;20130329;第1078-1097页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103729427A (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103729427B (zh) | 一种基于自定义多级流表增量更新的流表转换方法 | |
CN103368851B (zh) | 基于资源复用的Openflow流表存储优化方法 | |
CN103561133B (zh) | 一种ip地址归属信息索引方法及快速查询方法 | |
JP2017529796A5 (zh) | ||
JP5960863B1 (ja) | 検索装置、検索方法、プログラム、及び記録媒体 | |
CN103259718A (zh) | 一种流表转换方法和装置 | |
CN104468357A (zh) | 流表的多级化方法、多级流表处理方法及装置 | |
US11797534B2 (en) | Efficient SQL-based graph random walk | |
JP2019091257A (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN105976048A (zh) | 一种基于改进人工蜂群算法的输电网扩展规划方法 | |
CN105159783A (zh) | 一种系统任务分配方法 | |
JP2017537566A (ja) | ルーティングテーブルのメンテナンス方法、装置及び記憶媒体 | |
US20160026663A1 (en) | Distributing and processing streams over one or more networks for on-the-fly schema evolution | |
CN106416152A (zh) | 一种查找装置、查找配置方法和查找方法 | |
CN107276916A (zh) | 基于协议无感知转发技术的交换机流表管理方法 | |
CN105359472A (zh) | 一种用于OpenFlow网络的数据处理方法和装置 | |
CN110071871A (zh) | 一种大模式集ip地址匹配方法 | |
CN104780101A (zh) | 内容中心网络转发平面fib表结构及其检索方法 | |
EP2736201B1 (en) | Routing table management method and system | |
WO2015192742A1 (zh) | 一种查找装置、查找方法和配置方法 | |
CN111800339B (zh) | 混合sdn场景下带有路径数目约束的路由优化方法 | |
CN100486227C (zh) | 路由表查找方法 | |
CN109214656A (zh) | 一种用于城市公交网络的节点重要性评估方法 | |
CN105450524A (zh) | 一种媒体转发路由优化算法 | |
CN107292192A (zh) | 一种云计算环境中低调整率的保序加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |