TCAM存储高效的OpenFlow多级流表映射机制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 TCAM 中流表查找问题
流表查找是指网络设备根据数据包的包头信息 将数据包按照一定的规则进行分类和处理。在一个 流表中包括 N 条规则,每 条 规 则 表 示 为{Ri,1≤i≤ N},包括 3 个部分:1)匹配域,一般是由 d 元 组 构 成(F1,F2,…,Fd),其 中 Fi 既 可 以 是 前 缀,也 可 以 是范围,或者是一个特定值;2)优先级 Pri(Ri),定 义了规则之间的优 先 级 关 系,本 文 定 义 优 先 级 数 值 较小的规则优先级较 高;3)处 理 操 作 Action(Ri), 定义了匹配后的数据包操作方式。查找过程是指将 数据包中 提 取 出 的 数 据 域 与 流 表 中 的 规 则 进 行 匹 配,得到优先级最高 的 一 条 规 则 并 执 行 相 应 的 处 理 操作。
国家“八六三”高技术项目(2013AA010601;2013AA010605); 国 家 科 技 重 大 专 项 项 目 (2013ZX03002001) 中兴通讯产学研合作基金 作 者 简 介 :刘 中 金 (1988— ),男 (汉 ),山 东 ,博 士 研 究 生 。 通 信 作 者 :曾 烈 光 ,教 授 ,E-mail:zenglg@tsinghua.edu.cn
现有 研 究 主 要 集 中 在 单 个 TCAM 来 节 省 流 表 存储 效 率 和 提 高 查 找 速 度 ,或 [5-10] 者 通 过 多 个 TCAM 进行 并 行 查 找 。 [11-12] 但 这 些 算 法 在 存 储 空 间上还有进一步压 缩 的 空 间,如 果 把 单 个 流 表 中 的 一些匹配域进行正 交 拆 分,分 别 压 缩 存 储 在 多 个 流 表 中 ,就 可 以 有 效 地 降 低 单 个 流 表 的 存 储 空 间 。
Abstract:Flow-table based forwarding enables flexibility on the OpenFlow data plane.However,expanding the network functions results in explosive growth of the flow table size,so that it can not be stored in the limited TCAM in the switches,so the storage becomes a network bottleneck.This paper describes an OpenFlow multiple-table pipeline architecture that efficiently stores the flow table in the TCAM memories with an algorithm that maps a flow table to multiple tables for storage and look up.Simulations show that the algorithm reduces the TCAM usage for single table storage by 17% —95% ,which is important for scalable designs of OpenFlow data planes.
(清华大学 电子工程系,微波与数字通信国家重点实验室,北京 100084)
摘 要:基于流表的转发机制为 OpenFlow 提供了灵活的可 编程能力,但是 随 着 网 络 功 能 的 不 断 膨 胀 ,OpenFlow 交 换 机中的流表规模呈现出不断增长的趋势,这些流表难 以 在 交 换机有限的三态内容寻址存储器(TCAM)中进行 存 储,成 为 网络发展的一个瓶颈。为了高效地利用有限 的 TCAM 资 源 进行流表存储,该文提出一 种 OpenFlow 多 级 流 表 结 构 及 其 映射算法,将单一流表映射到多级流表中进行高效存 储 和 查 找。仿真结果表 明:该 文 所 提 方 法 比 单 一 流 表 的 存 储 方 法 节省17%~95%的 TCAM 资源。这对 OpenFlow 数 据 平 面 查找结构及其扩展性设计具有重要意义。
图 2 多 流 表 查 找 结 构
2.2 映 射 算 法 本文提出的流表映射方法将单个流表的部分匹
配域提取出来存储 到 新 的 流 表 中,并 通 过 压 缩 这 部 分匹配域来节省总体的 TCAM 存储空间。
对于单一流表而言,如果流表中有 N 条宽度为
刘中金,等: TCAM 存储高效的 OpenFlow 多级流表映射机制
LIU Zhongjin,LI Yong,SU Li,JIN Depeng,ZENG Lieguang
(State Key Laboratory of Microware and Digital Communication, Department of Electronic Engineering,Tsinghua University, Beijing 100084,China)
图1 中 给 出 了 一 个 典 型 的 基 于 TCAM 的 流 表 存储格式。由于 TCAM 允 许 输 入 同 时 匹 配 所 有 的 表 项 ,并 在 单 个 时 钟 周 期 内 输 出 查 找 结 果 ,因 此 查 找 速度非常快,是 进 行 流 表 查 找 的 理 想 存 储 器 件;但 是 TCAM 的一个显著缺点在于它的存储效率低,其 单比 特 所 需 的 存 储 单 元 是 SRAM 的 6 倍,单 片 TCAM 容量通常不到20Mb[13]。
基于 上 述 发 现,本 文 提 出 一 种 多 级 的 流 表 存 储 结 构 和 查 找 算 法 :首 先 ,在 单 个 流 表 中 ,按 照 优 先 级 进 行 排 序 ;其 次 ,对 每 个 匹 配 域 计 算 映 射 增 益 ,按 照
收 稿 日 期 :2013-08-01 基 金 项 目 :国 家 “九 七 三 ”重 点 基 础 研 究 项 目 (2013CB329105);
如何将单一流表存储到多级流表中将会影响到 整体的存储效率,合 理 地 选 择 匹 配 域 进 行 映 射 和 存 储将影响多级流表的利用率。下面对所提的存储结 构和从单一 TCAM 表到多 TCAM 表的映射算法进 行阐述。 本 文 的 设 计 目 标 主 要 包 括 以 下 三 点:首 先 ,映 射 前 后 的 查 找 结 果 必 须 一 致 ;其 次 ,映 射 要 能 够降低整体 TCAM 的存储需求;最后,每一级流表 的存储和查找结构足够简单。
Key words:OpenFlow;data plane; multiple flow tables;ternary content addressable memory
由于 互 联 网 中 路 由 和 交 换 设 备 的 封 闭 特 性,用 户难以定制自己的 网 络 设 备,使 得 网 络 创 新 的 步 伐
439
W 的 表 项,那 么 所 需 的 TCAM 存 储 空 间 为 NW。
每个表项具有d源自文库个匹配域Fi,i=1,2,…,d,如 果 只
十分缓慢。OpenFlow[1-2]通过分离 网 络 的 数 据 平 面 和控制平面,开放基 于 流 表 的 交 换 机 以 及 采 用 集 中 式的控制器使得网络的编程和控制变得十分灵活, 大大降低了网络创 新 的 难 度,备 受 工 业 界 和 研 究 人 员的关注。
三态内 容 寻 址 存 储 器 (TCAM)在 一 个 时 钟 周 期内就可以输出查 找 结 果,在 流 表 查 找 上 有 着 优 异 的性能表现,因此 TCAM 被广泛用在 OpenFlow 交 换机中 进 行 流 表 存 储 和 查 找 处 理。 但 是 在 Open- Flow 协议规范中,单个表项的匹配域超过 10 个,宽 度 超 过 200b。 由 于 网 络 功 能 的 快 速 膨 胀 ,造 成 表 项 数不断增加,比如 在 一 个 100 个 节 点 的 数 据 中 心 网 络中,每1秒建立 的 TCP 和 UDP 流 数 目 通 常 在 几 万的量级;而商用的 TCAM 的容量很小,能够存储 的表项数十 分 有 限,商 用 的 OpenFlow 交 换 芯 片 仅 能 支持104个 TCAM 表项[3-4]。因此,OpenFlow 交 换机面临着流表存 储 资 源 不 足 的 挑 战,难 以 在 大 规 模网络中应用。
ICSSNN 1 110-20202-30/05N4
清华大学学报 (自然科学版) 2014年 第54卷 J Tsinghua Univ(Sci & Technol),2014,Vol.54,
第4期 No.4
6/25 437-442
TCAM 存储高效的 OpenFlow 多级流表映射机制
刘 中 金 , 李 勇 , 苏 厉 , 金 德 鹏 , 曾 烈 光
2 存 储 结 构 及 映 射 算 法
2.1 结 构 设 计 为了充分 利 用 OpenFlow 中 的 存 储 资 源,本 文
提出图2中的多级 流 表 查 找 结 构,每 一 级 流 表 由 一 个 TCAM 和 一 个 双 端 口 SRAM 相 连 构 成,其 中 TCAM 用于存 储 流 表 匹 配 域,SRAM 用 于 存 储 查 找匹配后的中间 变 量 如 跳 转 关 系、匹 配 集 合 等。 查 找过程中,每级流表 的 会 将 所 有 的 匹 配 结 果 传 递 到 集中的计算单元中 进 行 处 理,基 于 这 些 信 息 进 行 判 断得到最终的结果。
图1 基于 TCAM 的流表存储格式
OpenFlow 流表中的的 匹 配 域 从 传 统 包 分 类 使 用的五元组扩展到 了 十 元 组,不 仅 匹 配 宽 度 扩 展 到 了200b以上,而 且 不 同 功 能 的 组 合 使 得 流 表 的 表 项数急剧增加。例 如,假 设 交 换 机 需 要 根 据 数 据 包 的目的IP 字段定义 M 种IP 转发规则,同时要根据 这些 数 据 包 的 TCP 字 段 进 行 N 种 端 口 过 滤 规 则,
关 键 词 :OpenFlow;数 据 平 面 ;多 级 流 表 ;三 态 内 容 寻 址 存 储器
中 图 分 类 号 :TP 393.1 文 章 编 号 :1000-0054(2014)04-0437-06
文 献 标 志 码 :A
TCAM-efficient flow table mapping scheme for OpenFlow multiple-table pipelines
由于这两种规则是正 交 的,在 单 个 流 表 中 就 需 要 M ×N 条表 项 存 储 这 些 规 则。 考 虑 十 个 匹 配 域 相 互 正 交 组 合 ,流 表 中 的 表 项 数 就 会 呈 现 爆 炸 性 的 增 长 , 那么 OpenFlow 交换机存储资源将难以支持如此多 的表项。本文考虑利用 OpenFlow 的多级流表结构 减少由于正交操作 产 生 的 表 项,上 述 规 则 如 果 分 别 存 储 在 2 个 流 表 中 分 别 进 行 查 找 ,那 么 只 需 要 (M + N)个 表 项 就 可 以 完 成 规 则 存 储 ,大 大 节 约 了 流 表 存 储所需的 TCAM 资源。
438
清 华 大 学 学 报 (自 然 科 学 版)
2014,54(4)
映射增益从大到小的顺序将匹配域逐个从原流表中 提 取 出 来 并 在 新 的 一 级 流 表 中 进 行 压 缩 存 储 ;这 样 在给定的延时限制下不断迭代映射。基于实际流表 的仿真结果表 明:与 单 一 流 表 的 存 储 方 法 相 比,本 文 所 提 算 法 TCAM 整 体 存 储 容 量 压 缩 17% ~95% 。
相关文档
最新文档