《网络算法学》课程教学资源(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查找哈希表, 将数据包在队列中的地址放入表尾 ◦ 当数据包离开队列时,从指针列表头部删除其指针 问题: ◦ 增加了空间复杂度:需要维护哈希表和指针列表 ◦ 增加了计算复杂度:需要维护哈希表
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《电脑组装与维护实例教程》教学资源(PPT课件讲稿)第5章 多媒体设备介绍及选购.ppt
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)Chapter 02 Network Classification.pptx
- 清华大学:无线网和移动网(PPT课件讲稿)Mobile and wireless network.pptx
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第6章 Data-Level Parallelism in Vector, SIMD, and GPU Architectures.pptx
- 厦门大学:《分布式数据库》课程教学资源(PPT课件讲稿)专题一 分布式数据库介绍.ppt
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 06 OOP with Templates.ppt
- 武汉科技大学中南分校:Windows 2000/XP网络组建与系统管理(系统安装,李燕).ppt
- 电子科技大学:《面向对象程序设计语言C++》课程教学资源(PPT课件讲稿)第五章 构造数据类型.ppt
- 《C语言程序设计》课程电子教案(PPT教学课件)第三章 分支结构.ppt
- 计算机维护与维修(PPT课件讲稿)第十二章 笔记本电脑维护维修.ppt
- 西安电子科技大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第四章 汇编语言程序设计(主讲:王晓甜).pptx
- 厦门大学计算机科学系:《大数据技术原理与应用》课程教学资源(PPT课件)第12章 数据可视化.ppt
- 《计算机操作系统》课程教学资源(PPT讲稿)Windows 2003的安全.ppt
- 《计算机图形学》课程教学资源(PPT课件讲稿)Chapter 5 Attributes of Graphics Primitives.pptx
- 《计算机原理及应用》课程教学资源(PPT课件讲稿)第9章 单片机I/O接口扩展技术.pptx
- 《Access 2013数据库技术及应用》课程教学资源(PPT课件讲稿)第12章 VBA模块设计.ppt
- 清华大学:智能弹性重叠网关键技术研究(PPT讲稿,指导老师:李衍达).ppt
- 中国科学技术大学:《数据结构及其算法》课程PPT教学课件(Data Structure and Algorithm)第4章 栈和队列(主讲:刘东).pptx
- 北京科技大学:《物联网工程》课程教学资源(PPT课件讲稿)课程介绍.ppt
- 《电脑组装与维护实例教程》教学资源(PPT课件讲稿)第4章 输入输出设备介绍及选购.ppt
- 《数据结构》课程教学资源:实践教学大纲.doc
- 《数据结构》课程教学资源(PPT课件讲稿)第七章 图 Graph.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 3 Process Description and Control 3.4 Process Control 3.5 Execution of the Operating System 3.6 Unix SVR4 Process Management 3.7 Linux Process management system calls.ppt
- 大连理工大学:《计算机网络》课程教学资源(PPT课件讲稿)Chapter 2 应用层 application layer.ppt
- 3D Reconstruction from Images:Image-based Street-side City Modeling.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第七章 图及其应用.ppt
- 香港城市大学:基序检测的随机化算法(PPT讲稿)Randomized Algorithm for Motif Detection.ppt
- 《计算机组装与维护》课程教学资源(PPT课件讲稿)第9章 BIOS设置(设置BIOS).ppt
- 《Introduction to Java Programming》课程PPT教学课件(Sixth Edition)Chapter 16 Applets and Multimedia.ppt
- 上海交通大学:《挖掘海量数据集 Mining Massive Datasets》课程教学资源(PPT讲稿)Lecture 06 搜索引擎 Search Engines.ppt
- 《计算机系统安全》课程教学资源(PPT课件讲稿)第二章 黑客常用的系统攻击方法.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 结构体、共用体与枚举类型.ppt
- 香港浸会大学:Introduction to Linux and PC Cluster.ppt
- 南京大学:《计算机图形学》课程教学资源(PPT课件讲稿)第7讲 图元填充与裁剪算法.pptx
- 北京航空航天大学:SimplyDroid - Efficient Event Sequence Simplification for Android Application.pptx
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 04 Object-Based Programming.ppt
- 中国科学技术大学:Linux内核源代码导读(PPT讲稿,陈香兰).ppt
- 《网上开店实务》课程教学资源(PPT讲稿)学习情境3 网店装修.ppt
- 北京大学:《项目成本管理》课程教学资源(PPT课件讲稿)项目范围计划(主讲:周立新).ppt
- 香港中文大学:Achieving Secure and Cooperative Wireless Networks with Trust Modeling and Game Theory.ppt