当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《网络算法学》课程教学资源(PPT课件讲稿)第三章 实现原则

资源类别:文库,文档格式:PPT,文档页数:57,文件大小:4.45MB,团购合买
3.1 运用实现原则的例子:更新TCAM 3.2 算法VS算法学:安全物证问题 3.3 十五条实现原则 3.4 需要注意的问题
点击下载完整版文档(PPT)

第三章实现原则

3.1运用实现原则的例子:更新TCAM 内容可寻址存储器CAM: CAM 种支持快速搜索和数据存储的 one slot 存储器,主要用于改善查表操作 的性能 CAM被组织成一个二维阵列: 每一行(slot)长度固定,存放 个关键字 每一位为“0”或“1” 并行查找: 。处理器提供一个查找关键字 CAM返回匹配该关键字的一组 槽,响应时间一般不超过100ns CAM的组织

 内容可寻址存储器CAM: ◦ 一种支持快速搜索和数据存储的 存储器,主要用于改善查表操作 的性能  CAM被组织成一个二维阵列: ◦ 每一行(slot)长度固定,存放 一个关键字 ◦ 每一位为“0”或“1”  并行查找: ◦ 处理器提供一个查找关键字 ◦ CAM返回匹配该关键字的一组 槽,响应时间一般不超过100ns CAM的组织

三态内容可寻址存储器TCAM 〉支持“0”、“1”和“ 三种状态的CAM,其中*如-[0 00450600500000 表示可以匹配0或1 每个条目存储一个二进制 0800450600500002 数和一个掩码,掩码说明 ask 仟f ffffff ff 00 哪些比特要和查找关键字 slot =2 0800450600350003 中的相应比特进行比较 ask ffff ffffff ff0000 TCAM并行地执行查找 返回匹配的最小槽号 特别适合存储P转发表

 支持“0”、“1”和“*” 三种状态的CAM,其中 * 表示可以匹配0或1  每个条目存储一个二进制 数和一个掩码,掩码说明 哪些比特要和查找关键字 中的相应比特进行比较  TCAM并行地执行查找, 返回匹配的最小槽号  特别适合存储IP转发表

使用TCAM进行|P地址查找 Prefix Next Hop 问题: Free 如何在TCAM中添加或删 010001·P5 110001 P3 110001*P5 P4 除一条地址前缀? [」區 Router 比如,添加前缀11* 朴素的方法 10 P4 0 P4 将前缀10至010001整 FIGURE 3.4 Example of using a ternary CAM for prefix lookups 体向上移动一个位置 图中地址前缀的排列方法: 将11插入0和10之间 。按前缀长度从长到短排列 若包含大量表项,更新太 慢! 相同长度的前缀,按从小 到大排列

 图中地址前缀的排列方法: ◦ 按前缀长度从长到短排列 ◦ 相同长度的前缀,按从小 到大排列  问题: ◦ 如何在TCAM中添加或删 除一条地址前缀? ◦ 比如,添加前缀11*  朴素的方法: ◦ 将前缀10*至010001*整 体向上移动一个位置 ◦ 将11*插入 0*和10*之间 ◦ 若包含大量表项,更新太 慢!

理解并利用自由度 自由度:允许改变的量 Prefix Next Hop 自由度一: Free Free 相同长度的前缀不必有序 010001*P5 1100 110001*P5 优化方法: 110 Router 111 将11移出,将11插 00 入到原111的位置 01 10 P4 然后,为111寻找一个 新的位置 FIGURE 3.4 Example of using a ternary CAM for prefix lookups 尽管仍然要向TCAM中插入 条前缓,但是问题的规 模缩小了

 自由度:允许改变的量  自由度一: ◦ 相同长度的前缀不必有序  优化方法: ◦ 将111*移出,将11*插 入到原111*的位置 ◦ 然后,为111*寻找一个 新的位置  尽管仍然要向TCAM中插入 一条前缀,但是问题的规 模缩小了

使用算法技术:采用递归 采用递归的算法思想: 实现时展开递归,从TCAM 0将最后一条长度为(i+1)的前 顶部开始: 缀x移出,插入新前缀 0将最后一条长度为32的前缀 将最后一条长度为(i+2)的 移到TCAM的顶部,将最后 前缀Y移出,Ⅹ放到Y的位置 条长度为31的前缀移到空 以此类推 出的位置; 依次类推,直至长度为的前 Prefix Next Hop 缀插入 Free space 最坏情况: 每一种长度的前缀都有,需 要(32-i)次访存 Length-(+1)prefixes 若i较小,访存次数接近32 - Create a hole here by Length-i prefixes moving x to Ys position,问题:还能再改进吗?

 采用递归的算法思想: ◦ 将最后一条长度为 (i+1)的前 缀x移出,插入新前缀 ◦ 将最后一条长度为(i+2)的 前缀 Y 移出,X放到Y的位置 ◦ 以此类推  实现时展开递归,从TCAM 顶部开始: ◦ 将最后一条长度为32的前缀 移到TCAM的顶部,将最后 一条长度为31的前缀移到空 出的位置; ◦ 依次类推,直至长度为i的前 缀插入  最坏情况: ◦ 每一种长度的前缀都有,需 要(32-i)次访存 ◦ 若 i 较小,访存次数接近32  问题:还能再改进吗?

进一步利用自由度 自由度二:空闲空间可以放在TCAM的任何区域 优化方法: 。空闲空间放在长度为16和17的前缀项之间,可将最坏 情况下的访存次数减少一半 自由度三:“如果ij,那么长度为的前缀必须 出现在长度为的前缀之前”,这不是必要的! 改变规范: 0如果两个前缀P和Q可能匹配同一个地址,且P比Q长, 则P必须出现在Q之前

 自由度二:空闲空间可以放在TCAM的任何区域  优化方法: ◦ 空闲空间放在长度为16和17的前缀项之间,可将最坏 情况下的访存次数减少一半  自由度三:“如果i>j,那么长度为i的前缀必须 出现在长度为j的前缀之前”,这不是必要的!  改变规范: ◦ 如果两个前缀P和Q可能匹配同一个地址,且P比Q长, 则P必须出现在Q之前

3.2算法VS算法学:安全物证问题 应用背景: 入侵检测系统在规定的测量周期内检测攻击节 点,并在确定了可疑节点后,将该节点在测量 时间内发送的全部数据包放入安全物证日志, 发送给管理员。 问题: 0当判定一个节点为可疑节点时,如何得到它之 前发送的全部数据包?

 应用背景: ◦ 入侵检测系统在规定的测量周期内检测攻击节 点,并在确定了可疑节点后,将该节点在测量 时间内发送的全部数据包放入安全物证日志, 发送给管理员。  问题: ◦ 当判定一个节点为可疑节点时,如何得到它之 前发送的全部数据包?

解决方案 Packet P arrives for flow F st probabilistic Forward P suspicion test Add co of p to head If alert. add f to table Queue of If F In Table, update state last N Suspicion packets table Report to manager periodically_Forensic or upon bad flow detection How to search memory for log all packets sent with flow ID F to add to forensic log? 问题:如何从队列中高效地找到属于可疑流的包?

 问题:如何从队列中高效地找到属于可疑流的包?

教科书上的算法 ν维护一个流ID的哈希表: 0将每个流D映射到一个指针列表,列表中的指针指 向属于该流的数据包 0当一个数据包放入包队列时,用其流|D查找哈希表, 将数据包在队列中的地址放入表尾 当数据包离开队列时,从指针列表头部删除其指针 问题: 增加了空间复杂度:需要维护哈希表和指针列表 增加了计算复杂度:需要维护哈希表

 维护一个流ID的哈希表: ◦ 将每个流ID映射到一个指针列表,列表中的指针指 向属于该流的数据包 ◦ 当一个数据包放入包队列时,用其流ID查找哈希表, 将数据包在队列中的地址放入表尾 ◦ 当数据包离开队列时,从指针列表头部删除其指针  问题: ◦ 增加了空间复杂度:需要维护哈希表和指针列表 ◦ 增加了计算复杂度:需要维护哈希表

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共57页,可试读19页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有