用于协议处理硬件体系结构

用于协议处理硬件体系结构

ID:39057955

大小:202.00 KB

页数:19页

时间:2019-06-24

用于协议处理硬件体系结构_第1页
用于协议处理硬件体系结构_第2页
用于协议处理硬件体系结构_第3页
用于协议处理硬件体系结构_第4页
用于协议处理硬件体系结构_第5页
资源描述:

《用于协议处理硬件体系结构》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第六章用于协议处理的硬件体系结构前面我们讨论了常规计算机上的协议处理软件的体系结构,本章讨论用于协议处理的硬件体系结构。我们将讨论为什么常规计算机不适用于协议处理,目前有哪几种用于协议处理的硬件体系结构,它们的优缺点是什么。和早期的计算机设计者一样,网络系统的建造者尝试设计各种功能单元并把它们互连起来。大量的尝试以及缺乏可供借鉴的经验导致出现了很多种方法和体系结构,很难对它们进行一个清楚的分类,对于哪一种结构是最佳的目前也没有统一的认识。尽管如此,我们仍然可以确定出几种基本的方法,我们将简要介绍它们的基本思想。6.1传统的软件路由器第一个网

2、络设备由分组交换机组成。分组交换机的实验开始于上世纪六、七十年代,那时DEC等公司引入了小型机来代替庞大、昂贵和高性能的主机。小型机的硬件被广泛采用,将它们用于分组交换机有几个好处:1)由于早期的网络运行在很低的速率,小型机的CPU足够用来处理分组交换;2)小型机较小的物理尺寸使得分组交换机可以放入已有的机房;3)小型机较简单的I/O接口简化了网络接口的设计;4)小型机低廉的代价使得用多个分组交换机构成一个网络在经济上是可行的。当因特网技术出现时,更廉价的微型机已经商用,网络工程师们也知道如何将它们用于网络系统。那时候,CPU的速度提高很快

3、,微机的CPU已有足够的能力完成IP包的转发。因此,第一个商用的IP路由器使用的就是常规计算机硬件,目前低端的路由器仍是如此。所谓常规计算机硬件主要指的是通用处理器(GeneralPurposePresessor,GPP),基于常规计算机的IP路由器也称为软件路由器,因为所有的协议都是用运行在通用处理器上的软件实现的。软件路由器的硬件体系结构如图6-1所示,由一个CPU和若干NIC组成。其中,CPU执行所有的协议处理任务,NIC执行组帧和卡上地址识别。图6-1软件路由器的硬件体系结构软件路由器的主要优点是代价低,主要缺点是处理速度低。由于路

4、由器必须处理来自各个网络接口的数据包,因此路由器的处理速度决定了可以连接到路由器上的网络的最大数据速率以及路由器能够支持的最大网络接口数。我们使用集合速率指代数据进入或离开一个网络系统的总速率。有时候我们只关心一个方向上的集合速率,如考虑路由表查找时我们只需要关心到达的包,这时集合速率是指所有接口上的数据速率之和。类似地,对于使用单工传输的硬件,我们只考虑一个方向的数据速率;对于使用全双工模式的硬件,我们考虑两个方向的数据速率。一个系统的最大集合速率非常重要,因为它决定了系统可能的效用。尽管集合数据速率易于计算并且提供了系统能力的一种度量,

5、但不够全面。我们知道数据包的长度是变化的,而许多协议处理操作对于每个包的处理时间是固定的,比如IP路由查找的时间不依赖于包的长度,因此,对于许多处理任务来说每秒处理的数据包数比集合数据速率更重要。每秒钟有多少个包通过网络到来呢?这取决于网络的吞吐量以及包的长度。图6-2列出了不同类型网络中的包速,用Kpps表示,1Kpps表示每秒钟1000个包。在高端网络中,一条OC-192线路就可以提供高达20Mpps的包速,由于路由器通常连接多个网络,因此路由器的集合包速比表中列出的值还要大得多。图6-2不同网络中的包速一个软件系统每秒钟能够处理多少个

6、包呢?一个典型的运行Linux内核的PC机每秒钟最多可以处理50000个IP数据报,前提是每个数据报只要求最少的处理;若每个数据报必须由防火墙软件处理,则每秒钟最多只能处理8000个包。确切的包速要取决于CPU速度、总线带宽、内存延迟以及处理量等。为了获得每秒钟N个数据包的集合速率,CPU处理每个包的时间不能多于1/N,图6-3列出了不同类型的网络中处理每个数据包所允许的最大CPU时间。图6-3不同网络中一个数据包的最大处理时间实际上,处理一个包的时间包括了中断处理、将包拷入内存以及处理包的时间,在这里我们忽略中断处理时间,只关注CPU处理

7、协议的时间。每个包要求的处理时间取决于包的内容(如使用的协议),并且不同的协议要求的处理时间差异很大。在一个典型的CPU上,处理一个分组的指令不会超过10000条,许多分组要求少于5000条的指令。下面我们看一下,软件路由器在什么场合下是可行的。考虑两个10Base-T的以太网,每个网络的最大包速是19500pps,CPU最多只有25.6微秒时间处理一个包。为了处理从两个10Mbps以太网上到来的网络流量,CPU必须在25.6微秒内执行5000~10000条指令。也就是说,CPU的执行速度必须在195Mips~390Mips之间。许多商用的

8、CPU可以有超过400Mips的执行速度,因此,一个软件路由器可以连接两个10Mbps以太网。考虑一个10Gbps的网络,每微秒产生大约20个数据包,这时CPU每秒钟必须执行2×

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。