第二部分第二代网络系统说课讲解

上传人:yuzo****123 文档编号:137864478 上传时间:2020-07-12 格式:PPT 页数:60 大小:365.50KB
返回 下载 相关 举报
第二部分第二代网络系统说课讲解_第1页
第1页 / 共60页
第二部分第二代网络系统说课讲解_第2页
第2页 / 共60页
第二部分第二代网络系统说课讲解_第3页
第3页 / 共60页
第二部分第二代网络系统说课讲解_第4页
第4页 / 共60页
第二部分第二代网络系统说课讲解_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《第二部分第二代网络系统说课讲解》由会员分享,可在线阅读,更多相关《第二部分第二代网络系统说课讲解(60页珍藏版)》请在金锄头文库上搜索。

1、第二部分 第二代网络系统,主要内容,用于协议处理的硬件体系结构 分类和转发 交换结构,1. 传统的软件路由器,第一个网络设备是分组交换机,使用的是小型机。 第一个商用的IP路由器是软件路由器,使用常规的计算机硬件: 由通用处理器、共享内存、共享总线、若干个网卡组成 通用处理器执行大部分的协议处理任务,网卡完成组帧及地址识别 适用于低速系统,成本低。,2. 路由器的速度,路由器的处理速度决定了: 可以连接到路由器上的网络的最大速率 路由器能够支持的最大网络接口数 集合速率和端口速率: 集合速率:数据进入或离开一个网络系统的总速率,是系统处理能力的测度。 端口速率:在一个网络接口上数据进入或离开的

2、速度。 数据速率和包速率: 数据速率:单位为比特/秒。 包速率:单位为包/秒(pps),取决于网络的吞吐量和包的长度。,注:灰色条块代表大数据包的速率,一个包的最大处理时间,注:以上仅是一个网络接口的数据,如果有N个端口,则每个包的处理 时间还要除以N。,一个软件系统能够支持多大的包速?,处理一个数据包的时间包括: 中断处理 将包拷入内存 包的协议处理:取决于包的内容(如使用的协议) 一个典型的运行Linux内核的PC机,每秒最多可以处理50000个IP包(每个数据报只做最少的处理)。 若数据包要经过防火墙软件处理,则每秒种最多处理8000个包。,软件路由器的能力,考虑两个10Base-T的以

3、太网。每个网络的最大包速是19500pps,每个包的处理时间不超过25.6微秒,处理每个包的指令数一般在500010000条之内。因此,CPU的执行速度必须在195Mips390Mips之间。 许多商用的CPU可以有超过400Mips的执行速度,因此软件路由器可以连接大约两个10Mbps以太网。 考虑一个10Gbps的网络,每微秒产生大约20个数据包,CPU每秒钟必须执行21011 条指令。 结论:运行在通用处理器上的软件无法应对高速网络。,3. 克服单CPU瓶颈,细粒度并行(指令级并行) 对称粗粒度并行(对称多处理器) 非对称粗粒度并行(非对称多处理器) 专用协处理器 智能NIC 数据流水线

4、,3.1 细粒度并行(指令级并行),目前几乎所有的处理器均采用了指令流水线来重叠指令的执行,但数据包处理程序中可以利用的指令重叠很少。 利用程序中的循环级并行,如采用向量指令。向量指令可以同时操作在一组数据单元上,比如进行检查和计算时,对内存中连续8个位置的数值同时相加。但数据包处理程序中可以利用的循环级并行很少。 细粒度并行对包处理来说优势不明显 包处理功能很少能被细粒度优化的 程序必须花时间建立并行指令 细粒度并行仅能改善CPU性能,而多数情况下访存或I/O是瓶颈,3.2 对称粗粒度并行(SMP),在一个计算机上汇集一组相同的CPU,系统资源被所有CPU共享,工作负载被均匀分配到所有可用的

5、CPU上。 典型的设计:每个CPU处理一个包,或者每个CPU执行一个协议。 使用N个处理器的网络系统获得的性能增益不是单处理器系统的N倍: 大多数多处理器系统使用一个共享内存 包处理软件必须协调对共享数据结构(如队列)的访问 只能增加处理能力,不能自动增加I/O带宽。,3.3 非对称粗粒度并行,使用多个可并行执行的异构处理器,每个处理器针对一种任务而优化,使用特殊的指令集。 非对称多处理器的缺点: 每一个处理器都要有自己的指令 比对称系统难以编程 需要协调对共享数据结构的访问 通用性差,不适用于其它任务或协议 成本很高,3.4 专用协处理器,使用一个通用CPU加上一个或多个专用协处理器构成网络

6、系统。 协处理器是在CPU控制下运行的一个硬件: 灵活的设计自由度:协处理器可以设计得很复杂,也可以设计得很简单 不要求独立运行,没有通用指令,也没有取指令-执行周期 可以像软件例程一样被调用 可以被异步调用,从而允许系统同时处理多个包或对同一个包执行多个独立的操作 一般将消耗CPU时间最多或最频繁执行的操作(如检查和计算,加/解密等)用专用协处理器实现。 协处理器通常采用ASIC技术实现,ASIC(Application Specific Integrated Circuit)是指为某种特殊需要而定制的集成电路。,3.5 智能NIC,可以将一部分处理转移到网卡上: 地址识别和过滤,包缓存,D

7、MA,操作链 验证IP头校验,从IP头中抽取某些域,执行加密或压缩等 在网卡上增加处理的优点: 减轻CPU的负担 不要求NIC有很高的处理速度 使用ASIC硬件实现智能NIC: 设计专用芯片,集成到网卡上,如链路层芯片组、第3层ASIC芯片等 速度快 使用嵌入式RISC硬件实现智能NIC: 使用标准的RISC处理器代替定制硬件 代价低,易于修改,允许将更多的处理功能转移到NIC上,TCP Offload Engine(TOE),TOE将处理TCP/IP的许多开销从主机转移到网卡,只将TCP/IP控制保留在主机上。,3.6 数据流水线,由一系列硬件stage组成的硬件体系结构,数据包经过每一级时

8、被执行一种操作。 优点: 适合于多种协议处理任务 每一级可以做得很简单,运行得很快 所有级可以同时运行,4. 总结,传统的基于软件的网络系统已经不能适应高速网络的需要 高速网络系统需要特殊的硬件支持 可能的硬件体系结构包括: 多处理器系统 ASIC协处理器 智能NIC 数据流水线,主要内容,用于协议处理的硬件体系结构 分类和转发 交换结构,1. 解多路复用的局限性,解多路复用: 与分层协议一起使用,数据包穿过协议栈时每次前进一层。 在输出端,包头中的类型域指明封装的格式。 在输入端,每一层上的软件选择高一层上的一个协议模块。 特点: 使用全局类型系统,发送方参与,逐层执行。 优点: 传输效率高

9、:每一种协议的包头只需要包含本协议需要的域 灵活定义新的协议类型:每个协议独立地定义它的协议头,不同协议头中的域不共享 缺点: 逐层顺序执行使得实现上很低效,2. 包分类,基本思想:一次性检查所有层次上的相关域,将包划分到相应的类(也称流)中。 举例: 从输入的以太帧流中分离出去往Web服务器的流量 描述该流量的规则集: 以太帧的type域为0 x0800(IP) IP头中的protocol域为6(TCP) TCP段中的destination port域为80(HTTP) 从概念上说,分类器需要计算以上三个条件的逻辑“与”,3. 用软件实现分类,比较各级包头中的相关域,进行逻辑“与”运算 比如

10、: If(type=0 x0800),优化软件实现方法,重新排列条件测试的顺序,将能够过滤掉较多流量的测试排在前面; 比如,若已知95%的帧携带了IP包,92%的IP包携带了TCP段,85%的TCP段的目的端口号为80,则: If(destination port=80) ,4. 用硬件实现分类,建立专用的并行硬件,避免头域的顺序测试。 步骤 抽取多层报头中的相关域 将这些域连接成一个多字节的值 与分类规则中给出的常数进行比较 在前面的例子中,分类器将type、protocol和destination port三个域中的值连接成一个5字节的值,然后与08 00 06 00 50进行比较。,一个

11、硬件分类器的例子,包头长度不固定的解决方法,方法一:在并行测试中增加对长度域的检查,针对每一种可能的包头长度设计一组分类规则。如在前面的例子中,假设IP头长度有20字节和24字节两种,则设计两组规则: Set 1Set2 以太帧的type域为0 x0800 以太帧的type域为0 x0800 IP头中的头两个字节为0 x45 IP头中的头两个字节为0 x46 IP头中的protocol域为6 IP头中的protocol域为6 距IP头22个字节处的域为80 距IP头24个字节处的域为80 方法二:建立一个能够顺序计算报头偏移量的硬件,抽取当前协议头长度,并移动相应的距离到下一个协议头。,5.

12、混合硬件/软件实现方法,硬件分类方法:代价高昂,灵活性差 软件分类方法:灵活性好,速度不高 混合硬件/软件方法: 结合硬件分类的高速度与软件分类的灵活性 包含硬件分类与软件分类两个阶段,硬件分类处理标准格式的包,软件分类处理异常的包,一个混合分类器系统,注意:软件分类器可以运行在较低的速率,6. 多规则集分类与查找引擎,系统中通常定义了很多个流,分类器要将每个包分配到一个对应的流,为此需要查找所有的规则集。 一般做法: 分类器从包中抽取出相关域的值 通过一个查找引擎去查找分类规则表 查找引擎的实现: 算法:已经提出了很多种优化的包分类算法,可以并行地检查所有的规则集。 内容可寻址存储器CAM:

13、目前绝大多数的查找引擎是基于CAM实现的。,Content Addressable Memory,一种支持快速查找的特殊存储器,与普通存储器的实现机制完全不同。 查找操作: 在CAM中输入查找关键字 CAM将查找关键字与其存储的所有表项匹配 返回匹配表项的地址 有两种类型的CAM: BCAM(Binary CAM):存储位有0、1两种状态,精确匹配查找,一般用于低层应用。 TCAM(Ternary CAM):存储位有0、1和不确定三种状态,支持通配符查找,常用于协议栈的高层,使用最为广泛。,CAM(续),优点: 查找速度快,最快在一个时钟周期内完成查找关键字的匹配 可以通过级联多个CAM增加容

14、量 具有自动更新能力,能够更新查找表 缺点: 价格昂贵,封装面积大,功耗太大,容量有限 一般来说,以下应用适合采用CAM: 识别大比特模式 处理小规模的查找表 对查找延时有严格要求,7. 静态分类与动态分类,静态分类 流的集合及每个流的分类规则事先已知 主要用于根据服务类型或应用来隔离不同的流 动态分类 流的集合随时间而变,允许创建和改变流 动态分类通常使用地址和包类型来区分流 灵活性好,允许细粒度的流控制 开销大,需要保存状态信息 动态分类器应能自动建立和维护流描述表,并进行分类查找。通常用软件实现,状态信息保存在内存中。,8. 分类与转发,转发的任务是根据接收到的数据包确定包的处理方法,比

15、如根据数据包的目的地址将包转发到合适的下一跳节点。 可以将以上任务分成两步来做: 分类:将输入数据包映射到一个流(包-流) 转发:根据流确定包的处理方法(流-包的处理),用分类优化无连接网络中的转发,将无连接转发划分成两个过程: 分类:destination address-flow ID 转发:flow ID-(next_hop, interface) 引入分类的好处: 可以将转发信息放在一个路由cache中,用流标识进行查找。 可用0, N中的整数作为流标识F,并用F作为路由cache的索引。 路由cache比路由表小很多,而且采用索引查找,查找速度快。 高速转发的过程: 分类器将数据包映

16、射为一个流标识F 转发器使用F作为索引查找路由cache。 分类和索引的全过程比传统的解多路复用和查表快得多。,9. 第二代网络系统,使用专门的协议处理硬件,为更高速度的网络而设计的网络系统。 第二代网络系统具有以下三个显著的特点: 使用分类代替解多路复用处理大部分的包 将包处理功能分散到各个网络接口,每个NIC都有分类和转发的能力 提供高速内部互连机制,在各个网络接口间提供快速数据通道 以上三个特点都允许系统扩展,即允许提高每个端口的数据速率,允许系统支持更多的网络连接。,第二代网络系统的概念组织,使用一个常规CPU,用于管理和控制系统、向系统管理员提供管理接口、运行路由协议和更新路由表、处理异常和错误。 网络接口使用路由表转发包 快速数据通道连接各个网络接口,一个典型的NIC的组成,物理芯片组:组帧 嵌入式RISC处理器:实现分类和转发 ROM:存放软件、分类规则集等 RAM:卡上包缓存 总线接口,主要内容,用于协议处理的硬件体系结构 分类和转发 交换结构,1. 内部数据通路,常规计算机中的总线不能提供足够的带宽处理高速网络之间的包转发。 数

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号