摘要:SDN将传统网络的控制平面和数据平面解耦,通过控制平面的控制器灵活地对网络进行管理,目前应用最广泛的控制协议是OpenFlow。三态内容寻址存储器(TCAM)查找速度快、支持三态掩码存储,在SDN网络中应用广泛.但TCAM成本高、功耗大,并且在存储含有范围字段匹配域的规则时候存在范围膨胀问题,因此交换机中可存储的转发规则数量,尤其是匹配域的数量和类型都比较多的OpenFlow规则数目非常有限,这成为约束SDN网络大规模扩展和应用的瓶颈。研究机构从不同角度提出了针对SDN中交换机转发规则的TCAM存储优化方案。本文从转发规则存储架构优化、本地交换机转发规则压缩、全局转发规则动态优化以及控制器参与的网络转发规则管理四个角度总结了相关研究工作,并提出了适合未来SDN网络的转发规则存储的综合优化方案。

1 引言

OpenFlow 是目前 SDN 中应用最为广泛的控制协议,它的规则匹配域已经增加到 40 多个,而转发规则宽度的持续增加进一步限制了 TCAM 可存储规则的数量。因此目前 TCAM 规则存储数量远远不能满足实际网络尤其是数据中心的数据交换需求,转发规则存储空间成为限制 SDN 尤其是支持 OpenFlow 协议的 SDN 网络大规模应用的瓶颈之一。如何优化 SDN 网络的转发规则存储,减轻 TCAM 的规则储存压力,成为重要的研究课题。

文章根据 TCAM 规则存储资源优化角度的不同,从“转发规则存储结构优化”、“本地转发规则压缩算法”、“网络全局转发规则存储优化”、“控制器参与网络转发规则管理机制”四个角度总结相关工作。

2 转发规则存储结构优化

转发规则存储结构优化从硬件存储结构角度出发,如优化交换机存储介质和存储结构等,使 SDN 交换机在保证优秀查找性能的前提下,更有效率地使用内部的转发规则存储空间。

3 本地转发规则压缩算法

通过软件方法对交换机中的规则进行压缩,在保持规则集语义不变的情况下,减少规则的数量,或者缩短规则的长度。传统算法如动态规划算法(TCAM-Razor、Diplomat 、Lossy Compression 算法等)、二叉树(MDTC 等),往往要求规则集的匹配域是前缀形式表示,但 OpenFlow 规则的维度更高、匹配域格式更为复杂,大多数软件压缩的方案无法直接应用于 OpenFlow 规则集。

3.1 压缩规则集中规则的数目

3.1.1 规则集压缩算法

Bitwaving:自上而下将规则集进行分组,原则是每一个分组的规则集可以通过列交换转换为一维前缀表达形式。组内通过比特列交换转换为前缀形式,将汉明距离为1的两个规则字符串进行聚合,得到压缩后的新分组规则。最后再将压缩后的规则集还原为原始比特顺序。压缩效率受到原始规则集“ * ”的分布限制,分组的数量可能会很多且由于组间列交换顺序各异,列的交换和还原会影响压缩的速度和更新的效率。

FFTA(Fast Incremental Flow Table Aggregation):取消了比特列交换的步骤,对Bitwaving得到的分组直接构造二叉树,利用改进ORTC和比特聚合方法进行压缩,提高了压缩速度。

Genmatcher:将某些原始规则进行膨胀得到前缀表达形式,与剩余规则组成新规则集再进行优化分组,相比Bitwaving分组更少,查询速度更快;但由于存在规则数目膨胀,且计算复杂度高,配置时间更长。

Bit & Subset Weaving:在Bitwaving算法得到的分组内,按照规则的动作指令继续划分为一系列的小子集,在子集内部和子集之间寻找压缩机会。

以上这些压缩算法一般与冗余规则的去除算法如 Redundancy Removal 互补。

3.1.2 范围字段优化编码——适用于 OpenFlow 规则

(1)设计范围字段存储和查找结构

(2)利用 TCAM 额外字段编码

(3) 裁剪范围字段长度

3.2 逻辑表达式最小化

将原始规则集看作或者映射成为特定的逻辑表达形式,通过逻辑运算的方式最小化表达式集合,包括卡诺图、Quine-McCluskey(QM) 算法和 Espresso 算法等。但逻辑运算复杂,规则集的原始状态无法保留,影响交换机的包匹配处理速度

3.3 减少规则集中规则的宽度

OpenFlow 规则集匹配域较多,单条规则占用的 TCAM 空间较大,存储效率低;单条规则长度过长也会影响查询的效率。匹配域修建是在保持转发语义不变的前提下,调整或者裁剪匹配域,降低单条规则占用的比特宽度。

3.3.1 根据分组头部信息熵裁剪匹配域

3.3.2 根据逻辑关系裁剪匹配域

3.4 其他压缩方案

FTRS:通过选取特殊的匹配域(如IP地址),构造 Trie 树,将改进后的 Trie 树中冗余的节点删除完成压缩的目的;但只适用于局域网的网络环境,且有大概率发生交换机规则溢出。

IDFA:通过控制器向交换机添加冗余规则,再通过降级、排序等方式对原规则集和冗余规则集进行组合,尽可能多地进行规则压缩;相比 FTRS ,在胖树网络拓扑中有更好的压缩效果以及更短的包传输时延。

TERM:对原始的含有“ * ”的规则进行整数编码,得到整数表达的新规则集。根据新规则集构造张量矩阵,原始规则集的压缩过程就转换成张量矩阵的降解过程。

4 网络全局转达规则优化

SDN 控制器可以获取全局网络信息,根据网络拓扑和资源情况,在全网范围内灵活分配转发规则,从而平衡全网转发规则分布;或者通过调整流的路径复用特定转发规则,进而减少全网转发规则的数量。

4.1 基于规则放置的优化方案

将整个网络抽象为一个大的交换机,在保持网络的端到端策略语义不变前提下,将相应规则在网络内部特定路径上合理放置,使得网络整体规则数目减少或均衡分布。规则放置的一般步骤包括规则分割和规则分配。

One Big Switch:根据网络的端到端策略和相应的路由转发策略,将网络拓扑分割为一系列的路径集合,并计算路径上单个交换机可分配的规则数目。采用贪心策略,在交换机转发规则容量允许范围内,尽可能多的放置规则集。

Palette:分析规则之间的依赖关系,将原始规则集分割为一系列独立的子规则集。根据端到端策略,计算路径,并通过彩虹着色算法将子规则集在路径上尽可能均衡分布。

CORA:将交换机中规则分割为相对独立的规则集,根据不同交换机之间的规则覆盖关系,沿原始数据包转发路径进行规则迁移和重新放置。

JORA:利用规则复用技术,提出多路径的端到端策略规则最小化分布方案,并基于网络约束条件构造混合整数线性规划方程(MILP),通过软件 CPLEX 求解。

Raptor:尽可能多的让规则被多条路径复用。

4.2 路由转发策略的优化方案

4.2.1 路径聚合方法

具有相同目的地的流,如果他们路径发生重合,那么在重合路径上可以通过相同的规则对这几条流进行转发,减少用于转发这部分流的规则数目。

分配路径使尽可能多的流路径重合从而复用某些规则,伴随的问题是可能导致部分流路径拉伸过长,而路径拉伸导致转发跳数增加从而单路径上转发规则数也会增加,网络整体的规则数目是否减少还需进行更深入的算法和实验验证。

4.2.2 求解数学模型

应用图论知识对网络进行建模,在节点交换机规则存储资源、链路带宽等一系列网络状态约束条件下,构造使得网络规则数目最小的线性规划方程组,并求解相应转发路径。

4.3 标签路由算法

MPLS:见论文阅读一

改进的标签路由算法主要集中在两个方面:利用 OpenFlow 自带的协议字段作为转发标签;使用协议无关路由的 SDN 架构;或者优化标签编码,使新的标签占用更少的带宽资源。

4.3.1 利用 OpenFlow 自带的协议字段

JumpFlow:将数据包分组的路由信息写入到分组自带的 VLAN ID(VID) 中。VID 只有12个比特位,只能携带3跳的路由信息,因此需要将数据包的路径进行分段,其中部分路径的数据转发依据 VID 信息。JumpFlow 通过计算不同分段方案下的交换机规则存储资源利用率,选择最合理的路径分段方式。缓解 TCAM 存储压力的同时增加控制器的计算负担。

4.3.2 网络不使用 OpenFlow 协议

(1)协议无关路由

POF(华为, 2013):通过重新设定的转发规则三元组(偏移量、长度及动作)来替代 OpenFlow 定义的复杂的协议规则。

POMP:利用“污点分析”得到并压缩多级规则集。

(2)优化标签编码方案

XPath:提前计算好“足够多”的静态路径,通过二进制前缀形式为单个交换机内的路径进行随机分配路径ID;利用数据中心拓扑的对称性等特点压缩路径的数量并赋予相应的ID,实现数据中心网络的离线路径设计。

PathSets:根据流的各种网络属性进行分组,对包含顺序的等属性子集合分别进行掩码编码压缩。

4.4 TCAM有限条件下的QoS指标优化

常见表示网络质量和性能参数的指标包括吞吐量、能源利用率、负载均衡、链路利用率等。

EAR:优化网络能源消耗,即网络在运行状态下活跃的链路数量。

MINNIE:在已有可选路径前提下对输入网络的流量进行再分配和节点交换机转发规则压缩,在使网络达到负载均衡的状态下尽可能多的压缩网络的转发规则数目。

5 控制器参与网络转发规则管理机制

通过 SDN 控制器的参与,对网络转发规则从生成到超时删除等中间各个阶段进行优化管理,分担或者缓解规则向 TCAM 存储的压力。

5.1 规则生成和下发管理机制

Mapple++:包含4个模块,核心引擎负责运行应用程序、记录网络状态等;全局优化模块根据数据包信息和网络全局信息做出路由决策;本地优化模块为每个交换机配置合适的规则集并进行优化压缩;环境信息收集模块收集网络拓扑和设备状态信息。

RL-based Approach:通过传统强化学习和深度强化学习算法,对网络中流量进行学习分类,决定哪些流适合放在交换机的TCAM中,哪些适合放在控制器中。

Table Visor 2.0:将数据平面每一个交换机看作多级子规则集,利用规则优先级和特定匹配域的哈希值将规则集在各个交换机之间进行均衡分布。

5.2  规则缓存机制

CAB:分析规则集空间内的依赖关系,将规则集空间进行分割,并放入合适的缓存痛内。掩码表示的缓存桶用于数据包的精确转发以及确定哪些规则适合放在缓存桶内。流建立时,控制器查询相应的缓存桶并将桶内相应规则缓存中交换机上。

CacheFlow:把最流行的转发规则集存储在资源有限的交换机TCAM中,通过软件处理非流行的流信息。

CRAFT:通过分析规则集的空间分布,在尽量减少规则集重叠的前提下,将规则集分类,然后分别缓存。

DevoFlow:通过检测并提取代表流的标志性字段,将需要存储在TCAM中的规则和需要精确匹配的规则区分开来,分开存放。

MMS:将最常匹配和最近匹配的规则存放在交换机TCAM中,最少被匹配到的规则被转移到控制器的RAM中进行缓存。

5.3 规则超时和溢出管理机制

通过控制器和交换机的协同作用,及时发现并删除交换机中冗余的超时规则,及时管理和控制交换机规则的溢出。

(1)规则超时处理

SmartTime:根据自适应的超时启发式算法,计算有效的空闲超时时间,主动删除掉交换机中需要清除的规则。

FlowMaster:基于马尔科夫预测模型进行学习预测,判断哪些规则更有价值,从而对规则集及时进行更新,删除不活跃的规则,释放交换机规则存储空间。

STAR:根据信息路由决策模块计算路由生成转发规则下发到数据平面。

(2)交换机规则溢出控制

FTS:使发生溢出的交换机继续对相应数据分组进行随机转发。

论文阅读八:SDN 交换机转发规则 TCAM 存储优化综述相关推荐

  1. [论文阅读笔记52]深度学习实体关系抽取研究综述

    来源:软件学报 2019 1.摘要: 围绕有监督和远程监督两个领域,系统总结了近几年来中外学者基于深度学习的实体关系 抽取研究进展,并对未来可能的研究方向进行了探讨和展望. 2.经典的实体关系抽取方法 ...

  2. 论文阅读:A Survey of Open Domain Event Extraction 综述:开放域事件抽取

    A Survey of Open Domain Event Extraction 综述:开放域事件抽取 目录 A Survey of Open Domain Event Extraction 综述:开 ...

  3. 论文阅读笔记【1】:在线凸优化算法Greedy Projection

    基本信息 题目: Online Convex Programming and Generalized Infinitesimal Gradient Ascent 作者: Martin Zinkevic ...

  4. [论文阅读] 对话式推荐系统的进展与挑战:综述(Advances and Challenges in Conversational Recommender Systems: ASurvey)-06

    0. 序言 本文介绍CRS的最后一个主要挑战:Evaluation and User Simulation   评估和用户模拟 1. Evaluation 常见数据集如下,大部分研究采用基于对通用数据 ...

  5. Mininet+OVS:如何更改SDN交换机的流表条目上限

    前言 流表是SDN交换机转发的重要环节.当一个不匹配的流量进入交换机时,交换机通过packet-in上报控制器,控制器以flow-mod应答,并在交换机中安装对应规则. OVS中提供了对于流表的支持, ...

  6. 论文阅读三:基于改进人工蜂群算法的SDN负载均衡策略研究

    名词解释: Artificial Bee Colony Algorithm, ABC:人工蜂群算法 Load balancing algorithm based on improved artific ...

  7. SDN Expriment2——动态转发规则和链路故障恢复

    1 实验题目 部署一个如下图的网络环境,在此拓扑的基础上完成动态转发规则的改变和链路故障恢复功能. 实验资料下载 https://www.aliyundrive.com/s/Lycd3MP5CbZ 2 ...

  8. 华为交换机端口转发规则

    交换机端口有三种工作模式,分别是Access,Hybrid,Trunk. Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口: Trunk类型的端口可以允许多个VLAN通过,可以接收 ...

  9. 论文阅读笔记 1.《Open Flow: Enabling Innovation in Campus Networks》(2022.12.22)

    论文阅读笔记 1.<Open Flow: Enabling Innovation in Campus Networks>(2022.12.22) 一.论文主要内容 二.对 OpenFlow ...

最新文章

  1. ASP.NET 快乐建站系列 -- 1. 十五分钟建立精美网站
  2. 博客园中的源代码格式显示
  3. html中如何设置几张图片在一个div里来回切换_从 B 站的秋季主题中学习 “图层组合动画”...
  4. Android系统(31)--- 如何分析native memory leak
  5. 风云再起-后IOE时代的Oracle架构变迁与创新-V3
  6. C++ 多字节与宽字符串的相互转换
  7. Matlab中插值函数使用
  8. 吴恩达机器学习课程资源(笔记、中英文字幕视频、课后作业,提供百度云镜像!)
  9. 64位Linux下安装iNode客户端
  10. 树莓派4B静态IP与屏幕分辨率设置
  11. 如何利用Spring Boot框架开发一个全球化的应用程序
  12. 国学大师 master of Chinese culture
  13. HDU4544 湫湫系列故事——消灭兔子
  14. win7变成xp风格了怎么改回_win7桌面怎么改成xp风格|win7桌面改成xp风格的方法
  15. 2021年装载机司机(建筑特殊工种)找解析及装载机司机(建筑特殊工种)考试总结
  16. matlab emi滤波器设计,EMI滤波器设计.pdf
  17. Leek——韭菜的自我救赎
  18. vpd安全策略的使用
  19. 360浏览器扩展插件离线安装方法
  20. Asp.net的GridView控件实现单元格可编辑

热门文章

  1. 黑马点评--附近商铺
  2. 台式计算机怎么加一个硬盘,台式电脑硬盘怎么多安装一个?电脑安装多加一块硬盘的方法...
  3. MindSpore如何实现自定义训练
  4. JAVA 抽象类与接口
  5. 2022中国眼博会,中国北京国际儿童青少年眼睛健康产业展览会
  6. lms全称是什么意思_lms是什么意思?
  7. Java面试问题集锦
  8. 06.看板实践——限制在制品
  9. 为什么优秀的程序员bug很少?因为他们……
  10. javascript的json比对插件