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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用于协议处理的硬件体系结构

用于协议处理的硬件体系结构 前面我们讨论了常规计算机上的协议处理软件的体系结构,本章讨论用于协议处理的硬件体系结构。我们将讨论为什么常规计算机不适用于协议处理,目前有哪几种用于协议处理的硬件体系结构,它们的优缺点是什么。 和早期的计算机设计者一样,网络系统的建造者尝试设计各种功能单元并把它们互连起来。大量的尝试以及缺乏可供借鉴的经验导致出现了很多种方法和体系结构,很难对它们进行一个清楚的分类,对于哪一种结构是最佳的目前也没有统一的认识。尽管如此,我们仍然可以确定出几种基本的方法,我们将简要介绍它们的基本思想。传统的软件路由器 第一个网络设备由分组交换机组成。分组交换机的实验开始于上世纪六、七十年代,那时DEC等公司引入了小型机来代替庞大、昂贵和高性能的主机。小型机的硬件被广泛采用,将它们用于分组交换机有几个好处:1)由于早期的网络运行在很低的速率,小型机的CPU足够用来处理分组交换;2)小型机较小的物理尺寸使得分组交换机可以放入已有的机房;3)小型机较简单的I/O接口简化了网络接口的设计;4)小型机低廉的代价使得用多个分组交换机构成一个网络在经济上是可行的。 当因特网技术出现时,更廉价的微型机已经商用,网络工程师们也知道如何将它们用于网络系统。那时候,CPU的速度提高很快,微机的CPU已有足够的能力完成IP包的转发。因此,第一个商用的IP路由器使用的就是常规计算机硬件,目前低端的路由器仍是如此。所谓常规计算机硬件主要指的是通用处理器(General Purpose Presessor,GPP),基于常规计算机的IP路由器也称为软件路由器,因为所有的协议都是用运行在通用处理器上的软件实现的。软件路由器的硬件体系结构如图所示,由一个CPU和若干NIC组成。其中,CPU执行所有的协议处理任务,NIC执行组帧和上地址识别。软件路由器的主要优点是代价低,主要缺点是处理速度低。由于路由器必须处理来自各个网络接口的数据包,因此路由器的处理速度决定了可以连接到路由器上的网络的最大数据速率以及路由器能够支持的最大网络接口数。我们使用集合速率指代数据进入或离开一个网络系统的总速率。有时候我们只关心一个方向上的集合速率,如考虑路由表查找时我们只需要关心到达的包,这时集合速率是指所有接口上的数据速率之和。类似地,对于使用单工传输的硬件,我们只考虑一个方向的数据速率;对于使用全双工模式的硬件,我们考虑两个方向的数据速率。一个系统的最大集合速率非常重要,因为它决定了系统可能的效用。 尽管集合数据速率易于计算并且提供了系统能力的一种度量,但不够全面。我们知道数据包的长度是变化的,而许多协议处理操作对于每个包的处理时间是固定的,比如IP路由查找的时间不依赖于包的长度,因此,对于许多处理任务来说每秒处理的数据包数比集合数据速率更重要。每秒钟有多少个包通过网络到来呢?这取决于网络的吞吐量以及包的长度。列出了不同类型网络中的包速,用Kpps表示,1Kpps表示每秒钟1000个包。在高端网络中,一条OC-192线路就可以提供高达20Mpps的包速,由于路由器通常连接多个网络,因此路由器的集合包速比表中列出的值还要大得多。一个软件系统每秒钟能够处理多少个包呢?一个典型的运行Linux内核的PC机每秒钟最多可以处理50000个IP数据报,前提是每个数据报只要求最少的处理;若每个数据报必须由防火墙软件处理,则每秒钟最多只能处理8000个包。确切的包速要取决于CPU速度、总线带宽、内存延迟以及处理量等。为了获得每秒钟N个数据包的集合速率,CPU处理每个包的时间不能多于1/N,列出了不同类型的网络中处理每个数据包所允许的最大CPU时间。实际上,处理一个包的时间包括了中断处理、将包拷入内存以及处理包的时间,在这里我们忽略中断处理时间,只关注CPU处理协议的时间。每个包要求的处理时间取决于包的内容(如使用的协议),并且不同的协议要求的处理时间差异很大。在一个典型的CPU上,处理一个分组的指令不会超过10000条,许多分组要求少于5000条的指令。 下面我们看一下,软件路由器在什么场合下是可行的。考虑两个10Base-T的以太网,每个网络的最大包速是19500pps,CPU最多只有25.6微秒时间处理一个包。为了处理从两个10Mbps以太网上到来的网络流量,CPU必须在25.6微秒内执行5000~10000条指令。也就是说,CPU的执行速度必须在195Mips~390Mips之间。许多商用的CPU可以有超过400Mips的执行速度,因此,一个软件路由器可以连接两个10Mbps以太网。 考虑一个10Gbps的网络,每微秒产生大约20个数据包,这时CPU每秒钟必须执行21011条指令。即使是像交换机这样工作在第二层、每个数据包只要求几百条指令的网络设备,这样的分组速率也超过了一个CPU

文档评论(0)

sunhao111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档