路由器原理及设计-2010-lesson4-高速IP查表算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
要提高更新的性能,trie节点的大小不能太大,最 好处理每个trie节点只使用一次访存 节点的大小最好是2的次幂,最好是8字节的整数 倍
Tree Bitmap算法思想(1)
节点所有子节点连续存储(节约指针数目)
Tree Bitmap算法思想(2)
节点采用2个bitmap分别保存前缀信息和子 节点信息
2010年《路由器原理与设计》
高速IP查表算法
国防科大计算机学院
孙志刚
主要内容
Routing Lookups in Hardware at Memory Access Speeds
Tree Bitmap : Hardware/Software IP Lookups with Incremental Updates
bank1 第一级
bank2 第二级
bank1 第三级
bank2 第四级
DRAM1
DRAM2
存储器技术(5)
DRAM(2)
对于RLDRAM2随机访问时间为20ns,工作在 400MHz DDR方式,burst length为4,
每次burst时间为1/800MHz * 4=5ns 在20ns内可进行4个bank的交叉访问
FIB更改时开销过大,导致正常数据路径的查找中断 算法假设查表的输出结果仅为出口id(用8-10比特标识 查表结果) 实际情况需包括前缀访问统计、负载均衡控制和L2信息, 这些信息都存储在表的叶节点中,大约需要16B 只考虑一般情况,采用网络上现有的FIB进行模拟,可能 不会适应未来情况或极端情况下性能较差
缺点是前缀的插入速度慢,主要由于leaf pushing造成 在根部插入前缀P0,该前缀信息可能需要推到 数千个叶结点,需要上千次更新
Tree Bitmap算法基于的观察(1)
Multibit节点(代表多层unibit节点)有2 个功能:指向其孩子multibit节点以及 保存下一跳指针(对于最长前缀匹配落 在本节点内部的情况),而这两个功能 是相对独立的。
前缀长度小于24的将被扩展 例如128.23/16前缀将被扩展为224-16 =256项,对应地址为:128.23.0- 128.23.255,而这256项将保存相同 的内容,即指向前缀128.23/16转发 信息的指针
查表流程: (1)使用高24位IP地址查找TBL24,读出2个字节数据 •若第1位为0,后15位为下一跳信息 •否则,把后15位乘以256,加上IP地址低8位,计算新的地址 (2)使用新的地址查找TLBlong表,获得下一跳信息
Tree Bitmap算法思想(3)
减小节点大小,一次burst访问即得到节点信息
外部子节点信息bitmap 子节点指针 内部前缀信息bitmap 指向前缀信息块(resulLeabharlann Baidu block)的指针
Result block使查找每级节点的访存次数增加到2 次(读节点信息和读相应的result block信息)
算法研究目标
算法必须硬件实现简单 查表只需要一次访存操作 如果需要多次访存操作
只有很少概率需要多次访存 访存次数有很小的上限,如2次、3次等 数据在不同的物理存储器中保存,有利于流水 实现
控制表格的更新开销小
算法研究基于的假设
存储器的价格便宜 路由前缀长度分布特征
前言(2)
最长前缀匹配回顾
前缀由数字串(如01)以及后续的*组成 FIB由路由协议生成,包括前缀和输出端口组成 例如FIB中仅包括: 01*--> P1和0100* --> P2
如果到达报文的目的IP地址以01000开始,选择最 长匹配,从端口P2输出 如果到达报文的目的IP地址以01010开始,匹配01*, 从端口P1输出
片上RAM、SRAM、DRAM和TCAM
存储器技术(2)
片上RAM
优点
访存速度快 目前90nm ASIC上可实现50Mb的容量 可用于部分表项的存储
片上SRAM价格昂贵
是每bit是网络DRAM(RLDRAM)的25倍 是普通DRAM的50倍
存储器技术(3)
SRAM
DIR-24-8-BASIC算法的改进(1)
DIR-24-8-INT算法
将2级表 变成3级表,TBLint 表用来指示扩展表的大小, 而不是默认的256项 用多一次访存换取TLBlong 表利用率的提高
TLBlong中表 项为26项
DIR-24-8-BASIC算法的改进(2)
多级表结构
先用前n比特查表,若有扩 展表项,则用i位索引拼上 后续m位地址继续查找第 二级表,以此类推…
若将存储器的4个bank存放相同的FIB,那么 20ns内相当于访存4次,基本与SRAM相当,但价 格仍是SRAM的1/9 因此,目前实现查表可以不考虑SRAM
存储器技术(6)
•SRAM和DRAM存储器的比较
存储器技术(7)
TCAM(1)
优点 接口简单 性能高,满足高性能路由器的性能需求 可以与报文分类集成 容量问题 目前容量最大为18Mb,需要用多片级联来支持较多表项 例如支持10M IPv4 VPN(表项宽度为52),需要20片, 功耗超过200W,价格超过$4000
采用lazy的result block访问方式,查找过程保存当前 result block,只有全部查找结束才访问result block
Tree Bitmap算法思想(4)
Result block的组织
result block大小是节点大小的 偶数倍 每个节点可能使用多个result block 多个result block连续存放 根据result指针和前缀bitmap 可迅速定位到相应的result block
表项组织的例子
232-26=64
假设到达报文为: (1)10.54.22.147 (2)10.54.34.23 (3)10.54.34.194
每个前缀长度大于24的占用 256×2=512字节 1M字节保存2K个前缀,满足核 心路由器上前缀分布的要求
DIR-24-8-BASIC算法的优缺点
优点 绝大部分需要一次访存, 即时需要2次访存,也可 以流水实现 主要前缀长度小于25, 支持数目不限 只需要33MB的存储空间 若访存为50ns,则每秒 查表20M次 缺点 存储器利用率低 表项更新复杂。增加或删 除前缀需要大量的存储访 问 支持长度超过24的前缀 数目受限
通过增加访 存次数,降 低存储开销
算法的更新问题
转发表中的“洞”结构,存在多个嵌套的洞时,更新变 得复杂
Row update:软件计算,为更新每个地 址发出一条指令,硬件简单,软件开销太 大 Subrange updata:软件计算可以连续更 新的区域,发出一条指令,触发硬件更新 多个连续的地址 One Instruction update:每个表项中包 含对应的前缀长度(6位),硬件自动识别 是否要更新相应的表项
注:一个物理接口可能包含大量的逻辑接口,如ATM的VC,以太 网的VLAN等
需求和模型(2)
路由器的查表模型
需求和模型(3)
转发需要的数据
需求和模型(4)
路由器需要支持多种控制表的查找
不同的表具有不同的查找key和不同的深度 使用4比特表示控制表的类型
需求和模型(5)
需求和模型(6)
Routing Lookups in Hardware at Memory Access Speeds
Pankaj Gupta, Steven Lin, and Nick McKeown Computer Systems Laboratory, Stanford University Infocom 1998
Tree Bitmap : Hardware/Software IP Lookups with Incremental Updates
ACM SIGCOMM Computer Communications Review, Volume 34, Number 2: April 2004
前言(1)
目前IP查找算法研究得到广泛关注,但目前各种算 法有以下不足
需求和模型(1)
不同应用场合对路由器查表能力的不同要求
宽带(如 DSL) 租用线 大的企业网 边缘ISP 核心ISP 100k个会话,基于会话的队列管理,QoS调度 几K个会话(如T1),帧/语音和VPN的支持 QoS支持,加解密,几百个网络接口,对支持的前缀数目 要求不高,但对性能要求较高 成百上千个接口,v4/v6/mpls支持,每个接口可能会有 大量VPN表,对支持的前缀数目和性能要求较高 成百上千个接口,v4/v6/mpls支持,对性能要求很高
同一台路由器在不同场合应用需要处理的表 格类型和支持的表项不同 需要各种控制表能够共享存储器空间,采用 统一的查表方法
降低成本 一些算法不支持这一特性,如基于24/8扩展的 硬件查表方法
存储器技术(1)
存储器是影响查表算法设计的主要因素之一
存储器的指标有:
容量、随机访问延时、带宽、PCB空间占用(引 脚个数)以及价格等 可选的存储器类型有
核心路由器上路由前缀长度超 过24的十分少
例如:MAE-EAST骨干路由 器中99.93%的路由前缀小于 等于24
DIR-24-8-BASIC结构
TBL24:保存前缀长度小于等于24的所有前缀 的信息
0.0.0-255.255.255
TBLlong:保存前缀长度大于24的前缀信息
TBL24的表项
DDRII/QDRII SRAM 目前主要为网络应用使用 相同访问带宽,每bit价格约为网络DRAM的36倍
存储器技术(4)
DRAM(1)
可采用多个通道,利用dram多bank的特点加速查找的访 问 例如表项有4级,可采用如下方式存储:
转发引擎 通道1 通道2
1. 假设每个bank每20ns可以访问 一次,存储访问延时10ns 2. 如果同时对2个目的IP(d1、 d2)进行查找,每个需要访问4 次,延时为40ns。 3. 但d1在查找第34级时,d2可以 查找12级,因此平均20ns出一 个结果
存储器技术(8)
TCAM(2)
缺点
表项配置不灵活,只能配置成288/144/72/36长度, 可能造成浪费 不适合其它路由查表,没有DRAM灵活 板面积比DRAM大 功耗较大
存储器技术(9)
小结
网络DRAM是实现路由器统一查表的最佳选择
路由器查找引擎的设计要求
面向低成本的优化技术十分重要 各种转发表的查找能够共享存储器,对可变长度查 找支持灵活,可与其他应用(统计计数器、报文深 度检查等)共享存储器 对查找各种不同的表项可以有不同的性能要求,每 个表的大小可灵活伸缩 增量修改和in-place修改(不能采用standby修改) RIB表和FIB表采用相同的组织方式和查表方法 具有确定的最坏情况的性能
相关研究(1)
Unibit Tries 扩展Tries Lulea方法
相关研究(2)
Unibit Trie
每次查找1bit 具有最好的存储和更新性能
相关研究(3)
扩展Tries
每次使用n bit进行查找,n为步长 前缀扩展
以n=3为例,1*可扩展为100、101、110和111
相关研究(4)
扩展Tries示意图
每一项都包含前缀和指针
相关研究(5)
Leaf pushing 示意图
每一项包含前缀或指针
相关研究(6)
Lulea方法(1)
节点采用位向量(bitmap)压缩存储开销
0代表本项与前一 项相同
Leaf pushing方法
相关研究(7)
Lulea方法(2)
存储器采用burst的访问技术,每次访问存储器的数据 大小,例如SDRAM每次可burst32字节,因此 multibit节点的大小可针对存储器的burst大小进行优 化
Tree Bitmap算法基于的观察(2)
硬件可在一个时钟周期内处理复杂的bitmap。由 于处理器处理速度与访存速度相差很大,软件处理 复杂bitmap的时间相对访存来说也不算大
相关文档
最新文档