网络设备的两种基本类型

上传人:靓*** 文档编号:29581079 上传时间:2021-10-07 格式:DOCX 页数:5 大小:27.09KB
收藏 版权申诉 举报 下载
网络设备的两种基本类型_第1页
第1页 / 共5页
网络设备的两种基本类型_第2页
第2页 / 共5页
网络设备的两种基本类型_第3页
第3页 / 共5页
资源描述:

《网络设备的两种基本类型》由会员分享,可在线阅读,更多相关《网络设备的两种基本类型(5页珍藏版)》请在装配图网上搜索。

1、网络设备的两种基本类型那么网络设备都有些什么性能瓶颈呢?这里, 我们首先要对网络设备做一个分类, 因为不同的网络设备, 性能瓶颈产生的原因及解决方案都是不同的。 本书的作者将网络设备分为 端节点和路由器两种基本类型。端节点性能瓶颈的产生下面我们看一下端节点和路由器的性能瓶颈分别是怎么产生的?对于为通用计算而设计的端节点来说, 主要的性能瓶颈来自结构化开销。 ( 1) 为方便软件开发,大多数操作系统都按照分层原则来组织, 比如硬件抽象层、资源管理层、 资源分配及调度等。 ( 2)为了保护操作系统不受应用程序的破坏,操作系统都实现了一组保护机制。( 3 )为适应尽可能多的应用,核心操作系统的例程(

2、如调度器、内存分配器等)使用一般机制来写成。软件分层、 保护机制和过度一般化这三者结合起来, 就使得网络软件运行很慢, 哪怕是运行在一个高速处理器上。对于提供网络服务的服务器(如 web 服务器)来说,性能瓶颈还来自用户规模。许多操作系统使用的是只能支持少量连接的低效的数据结构和算法, 而现在一台服务器要求同时 服务一百万个并发客户,低效的实现使其运行很慢。路由器性能瓶颈的产生和端节点不同, 路由器是网络专用设备, 因此路由器内部的结构开销很少。 它只使用一个非常轻量级的操作系统, 以及一个完全由硬件实现的转发路径。 路由器瓶颈一般由规模和 服务引起。规模主要指链路带宽(流量)和网络规模(网络

3、数量、用户数量) 。 80 年代到 90 年代 之间, 网络设备厂商主要解决这两个规模问题, 因为越来越多的商业应用搬到了网络上, 越 来越多的网络加入因特网中。接下来的十年甚至更长时间, 关注点开始转向为这些网络应用提供服务质量、 安全性和可靠性方面的保证, 如实时流媒体、 入侵检测、内容过滤等。 这些服务都要求复杂的网络包 处理。高速实现这些新的服务是路由器制造商面临的主要挑战。现在,以上挑战并存,链路速率已达到 40Gbps 甚至更高。解决瓶颈的技术:网络算法学如何解决以上瓶颈?本课程会谈及许多具体的技术, 如减少中断开销、 消除拷贝、 时间轮等。 但是, 我们不能仅停留在这些技术的表面

4、, 而要去领会和掌握这些技术后面更重要的观念-网络算法学,即运用系统的方法去组织网络实现。系统方法中一个重要的观察是, 我们通常可以通过在时间及空间上移动一个子系统中的某些功能来设计出高效的子系统。比如,可以将协议处理从CPU 转移到网卡,包缓冲区可以被预分配。在某种程度上说, 网络算法学的执行者是一个不择手段的机会主义者, 他可以改变游戏规则,唯一的约束就是整个系统提供的功能是满足用户需要的。考虑一下网络实现者面对的问题: 越来越高的链路速度,越来越复杂的处理任务, 越来越大的网络规模,少量的高速内存( cache) ,比计算时间长得多的访存延迟。设计者必须使用各种可能的手段(使用硬件、改变

5、系统假设、设计新算法) ,只要能够解决问题。一个热身的例子下面我们通过一个热身的例子来直观地感受一下网络算法学。有一种常见的攻击类型 内存溢出攻击,入侵者将恶意代码放置在数据包头中的某个域。 如果目标计算机为该域分配的存储空间太小, 又没有进行边界检查, 就会发生数据溢出,恶意代码溢出到目标机器的堆栈中。 通过一些巧妙的设计, 入侵者可以使得目标机器去执行 恶意代码。入侵者经常使用的域是HTTP消息中的URL域。我想原因可能是三个:一是Web应用很普遍,防火墙一般开放端口 80 ;二是URL 域可以放置任意的字符串,服务器一般不会进行有效性检查;三是很长的URL 也很普遍,不太容易引起怀疑。I

6、DS 如何检测一个URL 可能携带了恶意代码呢?通过观察发现包含恶意代码的 URL 通常很长,并且包含大量在URL 中不常出现的字符,如 # 。假定安全分析员以 URL 太长、并且字符出现比例异常作为攻击特征,要求芯片设计师设计一个硬件来对包含可疑URL 的包作标记。一个简单的方案检查 URL 的长度很简单,我们重点研究如何检测可疑字符的出现比例。一种简单的方法是维护两个长度为256的数组T和C,数组中的每一个元素对应一个ASCII 字符。 T 数组保存各个字符在一个URL 中可接受的出现比例,如果某个字符在一个URL 中出现的比例超过了设定的门限,该分组应被标记。 C 数组记录每个字符在一个

7、URL中出现的次数。算法分析在分析算法之前, 我们先来看一下对这个硬件有什么性能上的要求。 一个最基本的要求是必须来得及处理按链路速率到来的流量, 这称为线速处理要求。 线速处理要求在网络中是非常常见的,即一个分组必须在下一个分组到来之前处理完,否则在最坏情况下会丢包。为满足线速处理要求, 理想情况下, 芯片对于每个扫描的字节应当只做少量的操作。 假定 Ci 加 1 可以在每个字节到来的时间内完成。注意到这个算法对数组有两次遍历, 一次是扫描新包前的初始化, 另一次是扫描完 URL后检查各个字符的出现比例是否超限,两次遍历至少需要768 次读/ 写操作(C 数组读、写各一次, T 数组读一次)

8、 。考虑最坏情况: 仅包含 HTTP 请求头的包连续到来。 在当前 URL 结束至下一个包的 URL开始,只有几十个字节的时间,每个字节的时间内需要完成一百多次的读/ 写操作,这是不可能完成的,即达不到线速处理的要求。因此,优化的关键是减少或消除这两次遍历。算法优化:取消 URL 结束后的一次遍历直观上看, 在扫描完 URL 后对 C 和 T 数组的遍历是不必要的。 因为芯片只是要标记数据包中是否有任何字符的出现比例过高, 并不需要给出究竟是哪些字符超标, 所以为什么要 检查所有的字符呢?一种想法是我们只需跟踪最高的相对出现次数, 看它是否超标。 注意, 这里不是跟踪最高出现次数,因为不同字符

9、的出现比例上限是不同的。这样当 URL 扫描结束,处理也完成 了。我们看到,该方法消除了一次遍历,其代价是每个字节时间内的处理增加了。这个方案存在什么问题呢?利用硬件特性:消除除法运算新的算法消除了 URL 扫描结束后的遍历,但是扫描每个字节时需要一次除法运算。除法运算不管是软件实现还是硬件实现, 都是开销比较大的。 因此, 这里的问题是能否消除这个除法运算?我们知道有一种特殊的情形, 除法的实现非常简单, 即是除数为 2 的幂次的情况, 这时除法可以用移位来实现。然而, Ti 不一定是 2 的幂次。再回到问题的开始。 我们认为每个字符的门限值不见得必须是一个精确的浮点数, 安全 分析员不太可

10、能精确地估计这个值, 因此完全可以用一个小于给定值的近似值来代替。 比如, 用 1/32 来代替 1/29 。当然这个改变必须征得安全分析员的同意。当做了这样的改变后,除法运算可以转化为简单的移位运算。比如,若 Ti=1/32 ,则Ci/Ti 只需要将 Ci 向左移 5 位。同时,数组 T 可以存放移位的次数(整数) ,而不是一个 分数。改进后的处理过程如下:读入一个新字符“ i”后,Ci加1,然后左移Ti位,若移位 后的值大于 Max,更新Max。当URL扫描结束后,如果 MaxRL,标记分组。大家看看这个改进后的方案,还有什么地方可以改进?提示:与朴素的方案相比,在每个字节的时间内增加了一

11、次读 Ti 的操作(朴素的方案 对 Ci 分别读、写一次) 。目前最快的片上存储器访问耗时1-2ns,慢的需要10ns,都比硬件逻辑慢。单个门电路的延迟在 ps 量级,移位逻辑不需要太多的门延迟,因此处理瓶颈在于访存次数。当我们在提出一种优化措施时,一般不希望引入新的问题。问题:能否不增加读/写内存的次数呢?利用硬件特性:合并对T 和 C 的读操作方法是使用较长宽度的字,每个字中保存Ci 和 Ti ,比如用 15 比特统计字符的出现次数(可允许32K 的 URL ) ,用 14 比特表示移位次数。需要注意的是,用软件方法抽取出合并到一个字中的域很烦人,但用硬件实现很容易,只需在寄存器之间合理连

12、线或使用多路复用器。到目前为止,我们成功地消除了 URL 扫描结束后对数组 T 和 C 的遍历,并消除了该方法产生的除法问题以及URL 扫描过程中多一次访问T 数组的问题。Lazy Evaluation :消除对 C 的初始化我们现在还剩下一个初始化 C 数组的循环。注意到,在相邻两个URL 之间只有几十个字节,若以40字节(UDP头+IP头)计算,在该空闲时间内初始化256字节的数组,平均每个字节时间需要完成6 次以上的操作( 256/40 6 )。大家考虑一下这个问题:我们是否有必要在每开始一个新的数据包时,清除整个C 数组?比如,一个URL 可能只有几十种字符,清除那些未使用的字符计数器

13、是否多余?从道理上说,芯片不需要初始化 Ci ,直到一个新的数据包需要使用该Ci 时(第一次访问该 Ci ) 。也就是说,从道理上我们可以仅在需要使用一个字符计数器时再去清除该计数器。这种将工作拖到不得不做的时候才去做(寄希望于可能不要做)的方法叫做lazyevaluation。如果以上想法可以实现,那么当芯片扫描到一个新的URL、并且第一次遇到字符“i时,设置Ci=1 ,此后再扫描到字符“i时,只需将Ci加1。但是,芯片如何知道它是第一次看到字符“ i”呢?换句话说,当芯片根据 “i找到Ci 时, 它怎么知道这个计数器统计的是当前URL 中的 ”i ”, 还是之前某个URL 中的 ”i ”?

14、为此,我们可以给每个数据包赋一个代号,该数据包使用的计数器具有与数据包相同的代号。这么做有问题吗?使用长周期的清洗循环清理C为避免 g 回绕产生歧义, 所有未被使用的计数器在其世代号发生回绕前必须被清除。 也就是说,芯片需要有一个主动清洗的循环,依次读入数组的表项,将那些代号过时的 Ci置 0。为保证正确性,每处理8 个分组,芯片必须执行完一次完整的清洗循环。假定每个分组有40 个非 URL 字节, 8 个分组就有320 个非 URL 字节,这些时间完全够用来初始化 256 个元素的数组(每个字节完成一次读和一次写操作) 。如果需要的话,可以通过增大世代号的长度来获得更宽松的处理时间,代价是增

15、大了一点点数组的存储空间。改进的方法如下。这是最终的改进方案。分析: 每个表项中增加3 比特的世代号后, 减少了初始化处理的周期数 (用存储换计算) 。在 URL 字节的处理过程中,增加的初始化检查(对Gi 的检查)不会增加访存(三个域一次读入) ,只是增加了一些处理逻辑(判断Gi ) 。另外,芯片需要2 个寄存器用来保存g 和s,增加了一点点空间开销。比较一下最初的简单方案(普通人的方案)和最终的方案(技术专家的方案) ,差距一目了然。 如果抽去中间的过程, 直接给出最终方案, 估计很少有人能够理解为什么要这么设计?设计者是怎么想到这个方案的?通过这个例子我想说的是, 我们要学会的就是这样一

16、种分析问题和解决问题的方法, 怎样运用我们学过的计算机知识, 不断地去发现实现中的问题, 不断地求精, 一步一步得到一个最好的方案。 当然光靠这门课不能让你们获得这种能力, 但你们要有这个目标, 就是要把自己培养成有这种能力的人。网络算法学的特性以上例子说明了网络算法学的三个重要方面。( 1)网络算法学是跨学科的这个例子用到了算法的知识和硬件的知识。 面对高速数据包的处理压力, 不使用硬件是很困难的。以上例子利用了硬件的好几个特性: 256 个元素的数组可以放入片上存储,移位比除法简单,内存访问是瓶颈,任意长度的字宽是容易做到的,增加几个寄存器是可行的,很容易增加一些逻辑将URL 处理和初始化

17、结合起来。对于不熟悉硬件设计的读者来说,无法理解这些设计,更想不到这些设计。 因此, 跨学 科的思维有助于产生出最好的设计。( 2)网络算法学肯定系统思维的重要性放宽对门限的要求, 允许用 2 的幂次来表示门限, 简化了硬件设计。 放宽要求和将工作从一个子系统迁移到另一个子系统是极其常见的系统技术, 但并不被当今大学的教育实践所支持。在当今的大学教育中,算法、操作系统、网络被放在不同的课程中孤立地教,这会鼓励那种“黑盒思维” ,而不是整体或系统思维,不能得到全局最优的设计方案。以上例子还用到了其它系统技术,如推迟计算、用存储换计算等。( 3)网络算法学从算法思维中获益尽管这门课强调用系统思维来解决问题, 但是算法思维也很重要。 比如, 将跟踪每个字符的出现比例转化为仅跟踪最有可能超标的字符的相对出现次数, 在此基础上, 再用系统方 法来解决问题。这里需要注意的是, 如果盲目地重用现有算法, 可能达不到预期的效果。 因此要求设计者能够理解算法,并且掌握基本的算法技术。网络算法学的确切定义尽管这本书关注网络,但是一般算法学方法也适用于其它的计算机系统,不管是数据库、处理器架构还是软件应用

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!