《高性能路由器 设计与实现》高性能路由器的组成 小记
2016-10-05 17:56
253 查看
目录
(1)高性能路由器的基本组成
(2)高性能路由器的结构特点
(3)高性能路由器软件系统
(4)高性能路由器信息模型
高性能路由器的基本组成
路由器可以抽象成四个部分:
输入端口
交换结构
输出端口
路由处理器
输入端口和输出端口都做在线卡(Line Card)上面。
有的端口同时具有接收和发送数据包的功能;有的只能接收或者只能发送数据包。
流程:数据包到达输入端口 ---> 路由查表 ---> 目的输出端口
对于高性能路由器而言,路由查表同样在线卡上进行,硬件或者通用处理器进行处理。
路由器分类之一:输入缓冲 及 输出缓冲
if(输入端口总带宽 < 交换结构带宽) then 输出缓冲;
else then 输入缓冲;
对于输入端口而言:
提供QoS保证:对数据包进行分类。
运行PPP等链路层协议。
如果需要在输入端口进行缓冲,那么输入端口需要参与交换结构的仲裁算法。
对于输出端口而言:
存储数据报文。
对数据报进行调度。
使用复杂的调度算法。
对于路由处理器而言(相当于路由器中的控制层和管理层):
运行路由协议。
生成转发表。
控制转发过程。
运行管理和配置文件。
结构特点
数据平面与控制平面的分离(是SDN的核心概念)
基于接口的并行分布体系结构
多机柜分布并行体系结构
高性能路由器逻辑视图(高性能路由器结构的一般化抽象)
数据平面和控制平面的分离
一般将网络的功能分为:
管理平面
控制平面
数据平面,又称用户平面
在路由器中,由于管理配置的目的是对报文转发进行控制,因此也归为控制平面。因此路由器的结构就简化为只含控制平面和数据平面的二层模型。
由于数据平面实现的是报文转发功能,因此又称转发平面。
高性能路由器结构的一个典型的特点,就是控制平面和转发平面分离。
大致流程:
来自外部高速网络接口的数据报 -> 接口板卡 -> 根据转发表的信息 -> 通过路由器的内部高速交换网络 -> 交换到目的输出接口 -> 外部网络。
由于转发表不再存储于路由处理器中,而是由路由处理器下载到各个接口板卡上,一般的报文转发不必再经过路由处理器。使得:
控制平面和转发平面相互独立。
不同接口的数据报转发相互独立,即分布并行。
这样的优点:提高了转发的效率,增加了转发平面的可靠性。
基于接口的分布并行体系结构
高性能路由器不同接口的数据报转发是独立进行的,不同接口并行转发;系统的吞吐量基于接口的转发能力之和。
在背板交换能力一定的情况下,系统的拓展性通过接口的数量和速率来体现。
多机柜分布并行体系结构
随着路由器规模的扩展,路由器的板卡可能需要放在多个机柜。
由控制处理系统运行路由协议,并基于性能及可靠性考虑采用多个节点。多个转发机柜并行转发数据报。
多个转发机柜之间通过 内部高性能数据网络 互联。
转发机柜和控制处理系统之间通过 控制网络 互联。
多个控制处理系统之间通过 控制网络 互联。
每个机柜有多个线卡,多个机柜并行转发。
路由器的转发能力和拓展性体现在可互联的机柜数量上。
高性能路由器逻辑视图
在上图中,高性能路由器逻辑结构主要由四部分组成:
(1)接口处理节点:负责接收来自外部高速网络的分组,通过数据交换网络交换到目的输出接口处理节点,发往外部网络。
(2)数据交换网络:实现不同接口处理节点之间的高性能数据交换。不占用路由器对外高速接口。
(3)控制节点:运行路由和信令协议,计算路由表,并将转发表发布给接口处理节点,控制分组转发。
(4)控制网络:负责1.控制节点间互联 2.控制节点和接口处理节点互联。协调控制节点间工作,采集接口处理节点信息。
高性能路由器软件系统
高性能路由器的软件系统包括两个部分:(1)控制节点的软件系统 (2)网络处理器的微码。
控制节点的软件由驱动程序,TCP/IP基本协议栈,路由和信令协议,配置和管理软件等组成。
其中由多个信息库,比如路由表,标记库,控制访问表,管理信息库,配置库等等。
高性能路由器信息模型
信息流模型
高性能路由器处理的数据报文包括 控制报文 和 数据报文。
控制报文主要是用于路由协议,信令和路由器管理与配置 交互的报文。
数据报文承载的是需要路由器转发的网络用户的信息,主要由路由器的接口板卡处理。
因此,整个路由器的处理和存储能力就在接口板卡和CPU之间分担。CPU处理慢速的控制流,接口板卡处理快速的数据流。
控制流的慢速路径
路由协议和网络管理协议主要在 主控CPU(控制节点) 上运行。
主控CPU在内部交换网络看来,和一般的网络接口没有区别。但是收发的是控制报文,比如ICMP,TCP,UDP,RIP,OSPF报文等等。
相对于底层内部快速交换网络交换数据报而言,这条路径(内部交换网络 <-> 主控CPU)称为非关键路径或者是慢速路径,一般对于时限没有具体的要求。
但是如果主控CPU上运行着大量的模块,不能及时对某些控制报文进行处理,可能会带来动态路由协议邻接关系的断链,造成路由震荡。
数据流的快速路径
数据报从外部高速网络被接口接收进入路由器,经过交换网络,到达出口,送往外部网络。
一般来说,转发路径中的协议只在接口板卡以及内部高速交换网络中运行。比如IP协议和数据链路层协议(以太网等)。
控制平面和数据平面的交互
路由器的控制平面,控制数据平面的报文转发;主控CPU(控制节点) 将控制信息送到 接口处理节点,由接口处理节点实施控制的策略。
主控CPU运行路由协议生成转发表,控制接口处理节点的转发过程;转发表和其它控制信息,以及过滤表,以适当的方式传递到接口处理节点。
主控CPU与接口板卡的交互信息格式,一般由开发商自己定义。
由于主控CPU也要发送自己产生的IP报文,和接口板卡不能处理的IP报文,因此主控CPU也要维护自己的转发表。
主控CPU通过广播或者其它技术,同时更新每一个接口处理节点的转发表。
对于同样的一个功能,开发商可以选择在快速路径实现(即在接口处理节点或者是内部快速交换网络),或者在慢速路径上实现(主控CPU)。
数据报分片,对路由器的性能影响较大。
2016/10/7
相关文章推荐
- 《高性能路由器 设计与实现》高性能路由器新型体系结构 小记
- 编译器的设计与实现(1)-编译器的组成
- 高性能Socket设计实现
- 基于LVS负载均衡的高性能Web站点设计与实现
- 基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
- 高性能nosql ledisdb设计与实现 (2):replication
- 一种高性能分布式Web爬行器的设计与实现(一)
- 2106某某面试编程题:必须用Java语言实现,给出一个由元素数范围从0到N-1个唯一正整数组成的列表。设计一种方法,将该列表所有元素的元素值和其相应的索引值互换
- 基于LVS负载均衡的高性能Web站点设计与实现
- 基于LVS负载均衡的高性能Web站点设计与实现
- 高性能页面加载技术--BigPipe设计原理及Java简单实现
- 高性能自旋锁 MCS Spinlock 的设计与实现
- 基于LVS负载均衡的高性能Web站点设计与实现
- 一种高性能分布式Web爬行器的设计与实现(二)
- 使用BCM56500实现板级高性能交换型路由器
- 高性能自旋锁 MCS Spinlock 的设计与实现
- 高性能数据库的访问,java程序员心中永远的痛(JDBC访问数据库的4中方式及数据库连接池中间件的设计和实现)(1)
- 计算机组成实验-第5章_R指令设计实现
- 基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
- 高性能nosql ledisdb设计与实现(1)