- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二部分 第二代網络系统
第二部分 第二代网络系统
主要内容
用于协议处理的硬件体系结构
分类和转发
交换结构
1. 传统的软件路由器
第一个网络设备是分组交换机,使用的是小型机。
第一个商用的IP路由器是软件路由器,使用常规的计算机硬件:
由通用处理器、共享内存、共享总线、若干个网卡组成
通用处理器执行大部分的协议处理任务,网卡完成组帧及地址识别
适用于低速系统,成本低。
2. 路由器的速度
路由器的处理速度决定了:
可以连接到路由器上的网络的最大速率
路由器能够支持的最大网络接口数
集合速率和端口速率:
集合速率:数据进入或离开一个网络系统的总速率,是系统处理能力的测度。
端口速率:在一个网络接口上数据进入或离开的速度。
数据速率和包速率:
数据速率:单位为比特/秒。
包速率:单位为包/秒(pps),取决于网络的吞吐量和包的长度。
不同网络中的包速
注:灰色条块代表大数据包的速率
一个包的最大处理时间
注:以上仅是一个网络接口的数据,如果有N个端口,则每个包的处理
时间还要除以N。
一个软件系统能够支持多大的包速?
处理一个数据包的时间包括:
中断处理
将包拷入内存
包的协议处理:取决于包的内容(如使用的协议)
一个典型的运行Linux内核的PC机,每秒最多可以处理50000个IP包(每个数据报只做最少的处理)。
若数据包要经过防火墙软件处理,则每秒种最多处理8000个包。
软件路由器的能力
考虑两个10Base-T的以太网。每个网络的最大包速是19500pps,每个包的处理时间不超过25.6微秒,处理每个包的指令数一般在5000~10000条之内。因此,CPU的执行速度必须在195Mips~390Mips之间。
许多商用的CPU可以有超过400Mips的执行速度,因此软件路由器可以连接大约两个10Mbps以太网。
考虑一个10Gbps的网络,每微秒产生大约20个数据包,CPU每秒钟必须执行2×1011 条指令。
结论:运行在通用处理器上的软件无法应对高速网络。
3. 克服单CPU瓶颈
细粒度并行(指令级并行)
对称粗粒度并行(对称多处理器)
非对称粗粒度并行(非对称多处理器)
专用协处理器
智能NIC
数据流水线
3.1 细粒度并行(指令级并行)
目前几乎所有的处理器均采用了指令流水线来重叠指令的执行,但数据包处理程序中可以利用的指令重叠很少。
利用程序中的循环级并行,如采用向量指令。向量指令可以同时操作在一组数据单元上,比如进行检查和计算时,对内存中连续8个位置的数值同时相加。但数据包处理程序中可以利用的循环级并行很少。
细粒度并行对包处理来说优势不明显
包处理功能很少能被细粒度优化的
程序必须花时间建立并行指令
细粒度并行仅能改善CPU性能,而多数情况下访存或I/O是瓶颈
3.2 对称粗粒度并行(SMP)
在一个计算机上汇集一组相同的CPU,系统资源被所有CPU共享,工作负载被均匀分配到所有可用的CPU上。
典型的设计:每个CPU处理一个包,或者每个CPU执行一个协议。
使用N个处理器的网络系统获得的性能增益不是单处理器系统的N倍:
大多数多处理器系统使用一个共享内存
包处理软件必须协调对共享数据结构(如队列)的访问
只能增加处理能力,不能自动增加I/O带宽。
3.3 非对称粗粒度并行
使用多个可并行执行的异构处理器,每个处理器针对一种任务而优化,使用特殊的指令集。
非对称多处理器的缺点:
每一个处理器都要有自己的指令
比对称系统难以编程
需要协调对共享数据结构的访问
通用性差,不适用于其它任务或协议
成本很高
3.4 专用协处理器
使用一个通用CPU加上一个或多个专用协处理器构成网络系统。
协处理器是在CPU控制下运行的一个硬件:
灵活的设计自由度:协处理器可以设计得很复杂,也可以设计得很简单
不要求独立运行,没有通用指令,也没有取指令-执行周期
可以像软件例程一样被调用
可以被异步调用,从而允许系统同时处理多个包或对同一个包执行多个独立的操作
一般将消耗CPU时间最多或最频繁执行的操作(如检查和计算,加/解密等)用专用协处理器实现。
协处理器通常采用ASIC技术实现,ASIC(Application Specific Integrated Circuit)是指为某种特殊需要而定制的集成电路。
3.5 智能NIC
可以将一部分处理转移到网卡上:
地址识别和过滤,包缓存,DMA,操作链
验证IP头校验,从IP头中抽取某些域,执行加密或压缩等
在网卡上增加处理的优点:
减轻CPU的负担
不要求NIC有很高的处理速度
使用ASIC硬件实现智能NIC:
设计专用芯片,集成到网卡上,如链路层芯片组、第3层ASIC芯片等
速度快
使用嵌入式RISC硬件实现智能NIC:
使用标准的RISC处理器代替定制
文档评论(0)