第一章 络算法学概述.ppt

上传人:postpastor181 文档编号:373821 上传时间:2018-10-05 格式:PPT 页数:25 大小:296KB
下载 相关 举报
第一章 络算法学概述.ppt_第1页
第1页 / 共25页
第一章 络算法学概述.ppt_第2页
第2页 / 共25页
第一章 络算法学概述.ppt_第3页
第3页 / 共25页
第一章 络算法学概述.ppt_第4页
第4页 / 共25页
第一章 络算法学概述.ppt_第5页
第5页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第一章 网络算法学概述,什么是网络算法学?,网络算法学: 采用跨学科的、系统的方法组织网络实现 网络算法学是一种跨学科的方法: 包括体系结构、操作系统、硬件设计、算法设计等领域。 网络算法学是一种系统的方法: 将网络设备看成是一个系统,其功能可在不同的子系统间迁移,以达到提高网络设备性能的目的。,网络算法学要解决什么问题?,网络算法学要解决基本的网络性能瓶颈。网络算法学提倡的方案是解决这些瓶颈的一组基本技术。,网络设备的两种基本类型,端节点: 网络终端,包括PC机、工作站、服务器等 针对通用计算而设计 运行全功能的操作系统 路由器: 代表一类通用的网络互联设备,包括网桥、交换机、网关等。 网络

2、专用设备 运行一个很轻量级的OS,以及一个完全由硬件实现的转发路径。,端节点性能瓶颈的产生,主要的性能瓶颈来自结构化开销: 软件分层:OS按照分层原则组织(硬件抽象层,资源管理层,资源分配及调度层等) 保护机制:OS实现了一组保护机制,以免遭应用程序的破坏 过度一般化:为适应各种应用,核心例程(如调度器、内存分配器等)使用一般机制完成对于提供网络服务的节点而言,性能瓶颈还来自用户规模: 许多OS使用只能支持少量连接的低效算法和数据结构主要性能瓶颈: 数据拷贝,上下文切换,系统调用,中断处理,定时器管理,协议解复用,协议处理,路由器性能瓶颈的产生,规模: Bandwidth scaling:链路

3、速度和网络流量不断提高 Population scaling:因特网规模不断增大服务: 为网络应用提供服务质量、安全性和可靠性保证主要性能瓶颈: 查表,包分类,交换,排队,测量,安全检查,解决瓶颈的技术:网络算法学,运用系统的方法组织网络实现 网络系统的各个部分不是孤立的,通常可以通过在时间及空间上移动一个子系统中的某些功能来设计出高效的子系统: 某些功能可以移到其它子系统中实现 某些功能可以移到需要它的时间之前实现,或者推迟实现 网络算法学的执行者可以改变游戏规则,只要系统提供的功能满足用户需要,一个热身的例子:检测异常URL的硬件,应用背景:检测利用HTTP报文中的URL域实施的内存溢出攻

4、击。 提取攻击特征:URL很长,且字符出现比例异常。 设计要求:要求芯片设计师设计一个硬件,对包含可疑URL的包进行标记。,朴素的解决方案,维护两个长度为256的数组 T 和 C : 数组T:保存正常的URL中各个字符出现比例的上限 数组C:统计各个字符在当前URL中出现的次数 每当开始一个新的数据包时,对数组C清零 确定URL的起始位置后: 每读入一个字符 “ i ”,Ci加1 扫描到URL终结符时,得到URL的长度L 遍历T和C: 对于任何一个“j”,如果Cj L* Tj,标记该分组,算法分析,线速处理:一个分组必须在下一个分组到来之前处理完 假定Ci加1可以在每个字节到来的时间内完成 算

5、法对数组有两次遍历: 新的数据包开始时,初始化C为零。 扫描完URL后,检查各个字符的出现比例是否超限 两次遍历至少需要768次读/写操作: C数组读、写各一次 T数组读一次,算法优化:取消URL结束后的遍历,直观上,扫描完URL后检查每个字符的出现比例是不必要的 基本思想:只跟踪相对出现次数最高的,算法优化:取消URL结束后的遍历,基本思想:只跟踪最高的相对出现次数 方法: 使用一个寄存器记录到目前为止最高的相对出现次数:Max = maxCi/Ti 每读入一个新字符 “ i ”, Ci加1 若Ci/TiMax, Max= Ci/Ti URL扫描结束后,若Max L,标记分组,问题和分析,Q

6、:除法逻辑比较复杂,能否避免除法运算? A:若除数为2-k,除法可以用移位实现Q:Ti不一定是2-k A:放宽系统要求,对于每个Ti,用不大于Ti的近似值(1/2k)表示,利用硬件特性:消除除法运算,改进后的处理过程: Ti中存放移位的次数 读入新字符“i”后: Ci加1 左移Ti位 若移位后的值大于Max, 更新Max 当URL扫描结束后,如果Max L,标记分组,问题和分析,Q:与朴素方案相比,每处理一个字节增加了一次读操作,能否不增加读/写次数? 基本思路:将C数组和T数组合并到一个数组中,将2次读操作合并为1次读操作。,利用硬件:合并对T和C的读操作,改进方法: 使用较长宽度的字,每个

7、字中保存Ci和Ti 比如,Ci使用15比特,Ti使用14比特 可行性: 使用硬件取出合并到一个字中的域是很简单的到目前为止,我们成功消除了URL扫描结束后对数组T和C的遍历,并消除了该方法产生的除法问题以及URL扫描过程中多一次访问T数组的问题,初始化C的开销能不能降下来?,Q:有必要在每开始一个新的数据包时,清除整个C数组吗? A:从道理上说,Ci不需要被清除,直到一个新的数据包需要使用它。(lazy evaluation) 当芯片扫描到一个新的URL、并且第一次遇到字符“i”时,设置Ci=1 此后再扫描到字符“i”时,Ci加1,初始化C的开销能不能降下来?,Q:有必要在每开始一个新的数据包

8、时,清除整个C数组吗? A:从道理上说,Ci不需要被清除,直到一个新的数据包需要使用它。(lazy evaluation)Q:芯片如何知道Ci统计的是当前URL中的“i”,还是之前某个URL中的“i”?,初始化C的开销能不能降下来?,Q:有必要在每开始一个新的数据包时,清除整个C数组吗? A:从道理上说,Ci不需要被清除,直到一个新的数据包需要使用它。(lazy evaluation)Q:芯片如何知道Ci统计的是当前URL中的”i”,还是之前某个URL中的”i”? A:给每个数据包赋一个世代号,该数据包使用的计数器具有与数据包相同的世代号,Lazy Evaluation:消除对C的初始化,改进

9、方法: 每个表项扩展一个世代域(generation number)Gi,比如3比特 另外维护一个寄存器g,记录当前数据包的世代号 每当一个新的数据包到来,g = (g+1) mod 8 每当Ci初始化时,Gi也要更新,消除对C的初始化(续),假定一个正在处理的数据包,其世代号为h 当读入字符“i”时,从联合数组中读Gi、Ci和Ti 若Gi h,写Ci = 1,并设Gi = h 若Gi = h,Ci加1 Ci左移Ti位 若移位后的值大于Max,更新Max URL扫描结束后,如果Max L,标记分组,问题与分析,Q:g回绕怎么办? A:未被使用的计数器,在其世代号发生回绕前必须被清除 基本思想:

10、 芯片需要一个额外的清洗循环,将世代号过时的Ci置0,但该循环只需在8个分组的时间内完成。,使用长周期的清洗循环清理C,改进方法: 芯片需要两个状态,scrub和normal。每当扫描完一个URL,芯片切换到scrub状态。 另外维护一个寄存器,指向下一个要清洗的表项s。 在scrub状态,每当收到一个非URL字节,读入表项s,如果Gs g,设置Gs = g 和 Cs=0。,网络算法学的特性,网络算法学是跨学科的 跨学科的思维有助于产生出最好的设计 网络算法学肯定系统思维的重要性 放宽要求和将工作从一个子系统迁移到另一个子系统是极其常见的系统技术 “黑盒思维”不利于产生出整体或系统思维 网络算法学从算法思维中获益 算法思维也是重要的,但应注意不可盲目地重用已有的算法。,网络算法学的确切定义,网络算法学运用跨学科的、系统的方法加上算法思维,为服务器、路由器和其它网络设备上的网络处理任务设计快速的实现,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1