二部分二代网络系统.ppt_第1页
二部分二代网络系统.ppt_第2页
二部分二代网络系统.ppt_第3页
二部分二代网络系统.ppt_第4页
二部分二代网络系统.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二部分 第二代网络系统,主要内容,用于协议处理的硬件体系结构 分类和转发 交换结构,1. 传统的软件路由器,第一个网络设备是分组交换机,使用的是小型机。 第一个商用的IP路由器是软件路由器,使用常规的计算机硬件: 由通用处理器、共享内存、共享总线、若干个网卡组成 通用处理器执行大部分的协议处理任务,网卡完成组帧及地址识别 适用于低速系统,成本低。,2. 路由器的速度,路由器的处理速度决定了: 可以连接到路由器上的网络的最大速率 路由器能够支持的最大网络接口数 集合速率和端口速率: 集合速率:数据进入或离开一个网络系统的总速率,是系统处理能力的测度。 端口速率:在一个网络接口上数据进入或离开的速度。 数据速率和包速率: 数据速率:单位为比特/秒。 包速率:单位为包/秒(pps),取决于网络的吞吐量和包的长度。,不同网络中的包速,注:灰色条块代表大数据包的速率,一个包的最大处理时间,注:以上仅是一个网络接口的数据,如果有N个端口,则每个包的处理 时间还要除以N。,一个软件系统能够支持多大的包速?,处理一个数据包的时间包括: 中断处理 将包拷入内存 包的协议处理:取决于包的内容(如使用的协议) 一个典型的运行Linux内核的PC机,每秒最多可以处理50000个IP包(每个数据报只做最少的处理)。 若数据包要经过防火墙软件处理,则每秒种最多处理8000个包。,软件路由器的能力,考虑两个10Base-T的以太网。每个网络的最大包速是19500pps,每个包的处理时间不超过25.6微秒,处理每个包的指令数一般在500010000条之内。因此,CPU的执行速度必须在195Mips390Mips之间。 许多商用的CPU可以有超过400Mips的执行速度,因此软件路由器可以连接大约两个10Mbps以太网。 考虑一个10Gbps的网络,每微秒产生大约20个数据包,CPU每秒钟必须执行21011 条指令。 结论:运行在通用处理器上的软件无法应对高速网络。,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处理器代替定制硬件 代价低,易于修改,允许将更多的处理功能转移到NIC上,TCP Offload Engine(TOE),TOE将处理TCP/IP的许多开销从主机转移到网卡,只将TCP/IP控制保留在主机上。,3.6 数据流水线,由一系列硬件stage组成的硬件体系结构,数据包经过每一级时被执行一种操作。 优点: 适合于多种协议处理任务 每一级可以做得很简单,运行得很快 所有级可以同时运行,4. 总结,传统的基于软件的网络系统已经不能适应高速网络的需要 高速网络系统需要特殊的硬件支持 可能的硬件体系结构包括: 多处理器系统 ASIC协处理器 智能NIC 数据流水线,主要内容,用于协议处理的硬件体系结构 分类和转发 交换结构,1. 解多路复用的局限性,解多路复用: 与分层协议一起使用,数据包穿过协议栈时每次前进一层。 在输出端,包头中的类型域指明封装的格式。 在输入端,每一层上的软件选择高一层上的一个协议模块。 特点: 使用全局类型系统,发送方参与,逐层执行。 优点: 传输效率高:每一种协议的包头只需要包含本协议需要的域 灵活定义新的协议类型:每个协议独立地定义它的协议头,不同协议头中的域不共享 缺点: 逐层顺序执行使得实现上很低效,2. 包分类,基本思想:一次性检查所有层次上的相关域,将包划分到相应的类(也称流)中。 举例: 从输入的以太帧流中分离出去往Web服务器的流量 描述该流量的规则集: 以太帧的type域为0x0800(IP) IP头中的protocol域为6(TCP) TCP段中的destination port域为80(HTTP) 从概念上说,分类器需要计算以上三个条件的逻辑“与”,3. 用软件实现分类,比较各级包头中的相关域,进行逻辑“与”运算 比如: If(type=0x0800),优化软件实现方法,重新排列条件测试的顺序,将能够过滤掉较多流量的测试排在前面; 比如,若已知95%的帧携带了IP包,92%的IP包携带了TCP段,85%的TCP段的目的端口号为80,则: If(destination port=80) ,4. 用硬件实现分类,建立专用的并行硬件,避免头域的顺序测试。 步骤 抽取多层报头中的相关域 将这些域连接成一个多字节的值 与分类规则中给出的常数进行比较 在前面的例子中,分类器将type、protocol和destination port三个域中的值连接成一个5字节的值,然后与08 00 06 00 50进行比较。,一个硬件分类器的例子,包头长度不固定的解决方法,方法一:在并行测试中增加对长度域的检查,针对每一种可能的包头长度设计一组分类规则。如在前面的例子中,假设IP头长度有20字节和24字节两种,则设计两组规则: Set 1 Set2 以太帧的type域为0x0800 以太帧的type域为0x0800 IP头中的头两个字节为0x45 IP头中的头两个字节为0x46 IP头中的protocol域为6 IP头中的protocol域为6 距IP头22个字节处的域为80 距IP头24个字节处的域为80 方法二:建立一个能够顺序计算报头偏移量的硬件,抽取当前协议头长度,并移动相应的距离到下一个协议头。,5. 混合硬件/软件实现方法,硬件分类方法:代价高昂,灵活性差 软件分类方法:灵活性好,速度不高 混合硬件/软件方法: 结合硬件分类的高速度与软件分类的灵活性 包含硬件分类与软件分类两个阶段,硬件分类处理标准格式的包,软件分类处理异常的包,一个混合分类器系统,注意:软件分类器可以运行在较低的速率,6. 多规则集分类与查找引擎,系统中通常定义了很多个流,分类器要将每个包分配到一个对应的流,为此需要查找所有的规则集。 一般做法: 分类器从包中抽取出相关域的值 通过一个查找引擎去查找分类规则表 查找引擎的实现: 算法:已经提出了很多种优化的包分类算法,可以并行地检查所有的规则集。 内容可寻址存储器CAM:目前绝大多数的查找引擎是基于CAM实现的。,Content Addressable Memory,一种支持快速查找的特殊存储器,与普通存储器的实现机制完全不同。 查找操作: 在CAM中输入查找关键字 CAM将查找关键字与其存储的所有表项匹配 返回匹配表项的地址 有两种类型的CAM: BCAM(Binary CAM):存储位有0、1两种状态,精确匹配查找,一般用于低层应用。 TCAM(Ternary CAM):存储位有0、1和不确定三种状态,支持通配符查找,常用于协议栈的高层,使用最为广泛。,CAM(续),优点: 查找速度快,最快在一个时钟周期内完成查找关键字的匹配 可以通过级联多个CAM增加容量 具有自动更新能力,能够更新查找表 缺点: 价格昂贵,封装面积大,功耗太大,容量有限 一般来说,以下应用适合采用CAM: 识别大比特模式 处理小规模的查找表 对查找延时有严格要求,7. 静态分类与动态分类,静态分类 流的集合及每个流的分类规则事先已知 主要用于根据服务类型或应用来隔离不同的流 动态分类 流的集合随时间而变,允许创建和改变流 动态分类通常使用地址和包类型来区分流 灵活性好,允许细粒度的流控制 开销大,需要保存状态信息 动态分类器应能自动建立和维护流描述表,并进行分类查找。通常用软件实现,状态信息保存在内存中。,8. 分类与转发,转发的任务是根据接收到的数据包确定包的处理方法,比如根据数据包的目的地址将包转发到合适的下一跳节点。 可以将以上任务分成两步来做: 分类:将输入数据包映射到一个流(包流) 转发:根据流确定包的处理方法(流包的处理),用分类优化无连接网络中的转发,将无连接转发划分成两个过程: 分类:destination addressflow ID 转发:flow ID(next_hop, interface) 引入分类的好处: 可以将转发信息放在一个路由cache中,用流标识进行查找。 可用0, N中的整数作为流标识F,并用F作为路由cache的索引。 路由cache比路由表小很多,而且采用索引查找,查找速度快。 高速转发的过程: 分类器将数据包映射为一个流标识F 转发器使用F作为索引查找路由cache。 分类和索引的全过程比传统的解多路复用和查表快得多。,9. 第二代网络系统,使用专门的协议处理硬件,为更高速度的网络而设计的网络系统。 第二代网络系统具有以下三个显著的特点: 使用分类代替解多路复用处理大部分的包 将包处理功能分散到各个网络接口,每个NIC都有分类和转发的能力 提供高速内部互连机制,在各个网络接口间提供快速数据通道 以上三个特点都允许系统扩展,即允许提高每个端口的数据速率,允许系统支持更多的网络连接。,第二代网络系统的概念组织,使用一个常规CPU,用于管理和控制系统、向系统管理员提供管理接口、运行路由协议和更新路由表、处理异常和错误。 网络接口使用路由表转发包 快速数据通道连接各个网络接口,一个典型的NIC的组成,物理芯片组:组帧 嵌入式RISC处理器:实现分类和转发 ROM:存放软件、分类规则集等 RAM:卡上包缓存 总线接口,主要内容,用于协议处理的硬件体系结构 分类和转发 交换结构,1. 内部数据通路,常规计算机中的总线不能提供足够的带宽处理高速网络之间的包转发。 数据通路的速度通常用集合数据速率和集合包速来衡量。 系统的集合数据速率及集合包速对内部互连机制(也称背板)的要求:必须有足够的带宽传输进入系统的所有包。,2. 交换结构的概念,从概念上说,交换结构是一种承担背板任务的硬件机制,它在一组输入端口、输出端口和CPU之间提供数据通路。,交换结构的概念(续),用于网络系统的交换结构需要优化以下特性: 可提供在CPU和智能I/O端口之间的连接 支持单播、多播和广播包的传输 可扩展支持任意的数据速率 可扩展支持任意的包速率 可扩展支持任意数目的输入或输出端口 低开销 低代价 实际的交换结构是对以上各种特性的权衡,3. 交换结构的分类,同步结构与异步结构 同步结构:交换结构按固定的时间间隔传输固定长度的数据块,最早用于电话交换机中。 异步结构:交换结构可以在任何时刻传输数据,最早用于通用多处理器系统中。 大多数网络交换结构是同步的,每个包被划分成固定大小的块,按固定的时间间隔传输。 空分结构与时分结构 空分结构:交换结构中使用许多通路以减小延迟,集合吞吐量高,代价高。 时分结构:许多端口共享一条或者很少几条内部通路,集合吞吐量低,代价低。,空分交换结构专用内部通路,每一对输入、输出端口之间有一条专用硬件通路 每个输出接口都包含了附加的电路用于处理端口竞争,空分交换结构- Crossbar结构,使用NM 个交叉开关连接输入与输出端口 控制器硬件处理端口竞争 控制器允许多个端口之间并行传输 优点: 允许同时建立多条路径,集合吞吐率高 路径上的硬件只需要容纳一条数据传输,易于支持更高的端口速度。 比全连接结构经济 缺点: 要求NM个部件,代价要比其它的一些设计高。,空分交换结构基本队列,输入队列 设置在输入端口与交换结构之间 队头阻塞问题 将输入队列改为随机访问列表,或者 为每个输出端口设置一个队列 通常在每个输入端口上设置两个队列,分别存放单播包和多播包 输出队列 设置在交换结构与输出端口之间 只使用输入队列 队头阻塞 只使用输出队列 输出队列及交换结构必须运行在集合速率上,或者 针对每个输入端口设置一个队列,有输入输出队列的Crossbar结构,时分交换结构共享总线结构,交换结构总线包括地址线、数据线和控制线 每个输入和输出端口都有一个接口硬件,每个端口被分配一个唯一的地址。 端口使用总线硬件将数据包传输到另一个端口 总线协议防止多个端口同时传输,总线操作的粒度,包粒度: 端口一次发送一个完整的包 操作和硬件均简单,但增加了包的延迟 数据块粒度: 包被划分成较小的数据块,每个发送端每次发送一个数据块; 避免了长延迟,多个传输可以并行进行;但增加了从一个发送者切换到另一个发送者的开销 信元粒度: 传输长度等于网络数据单元的长度; 类似于数据块粒度,但特别针对特殊协议而优化了,总线协议,一般采用时分多路复用的方法,将使用总线的时间片分配给各个输入端口。 各个输入端口在总线上轮流广播收到的包;每个输出端口的地址过滤器检查包中携带的内部路由标签,将发往本端口的包存放到相应的缓冲区中。,共享总线结构的可扩展性,总线及接口硬件必须操作在集合速率上。 受底层硬件技术的制约,该结构一般不能简单地扩展以适应任意数目的端口。,时分交换结构共享存储结构,使用内存作为共享媒体连接输入和输出端口。 每个端口需要一个内存接口硬件,将端口连接到存储系统。 使用一个控制器硬件在端口之间传输控制信息。,传输控制,一个控制器提供一条单独的高速总线,各个端口使用总线来协调各自的行为。 输入端口将一个包放入内存后,接口硬件通过控制器发送一个消息,通知输出端口数据准备好,消息中给出包在内存中的存放地址。 输出端口从控制器收到消息后,从内存的指定位置读取包,然后发回响应消息。 控制器只是用来传输短的控制消息,不用于传输大量的数据包。,共享存储结构的可扩展性,由于内存接口硬件非常昂贵,通常让许多端口共享一个内存接口。共享存储接口在降低代价的同时也降低了吞吐量。 共享存储结构的性能和代价取决于存储接口的数目。 该结构仅适

温馨提示

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

评论

0/150

提交评论