定义
路由器(router)是互联网的枢纽,是连接英特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送数据。
作用在OSI模型的第三层,提供了路由与转发两种重要机制
路由:路由器控制层面的工作,决定数据包从来源端到目的端所经过的路由路径(host到host至今的最佳传输路径)
转发:路由器数据层面的工作,将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行)
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地,把该分组从路由器的某个合适的输出端口转发给下一跳的路由器。
下一跳的路由器也按照这种方法处理分组,直到该分组到达终点为止。
路由器的功能
- 路由:收集网络拓扑信息并动态形成路由表
- 转发:根据转发表(FIB)转发IP数据包
- 子网间速率适配
- 隔离子网
- 隔离广播域
- 指定访问规则
- 不同类型的网络互联:路由器经常会收到以某种类型的数据链路帧封装的数据包,当转发这种数据包时,路由器可能需要将其封装为另一种类型的数据链路帧。数据链路封装取决于路由器接口的类型及其连接的介质类型。
基本工作过程
路由器工作在OSI模型三层(网络层)
收到数据包后根据OSI模型层层将数据包拆开,到网络层后根据IP进行路由转发
根据接口协议层层封装,实现异种网络的互联
路由器的结构
路由器内部整体分为两部分:路由选择部分、分组转发部分
路由选择部分:软件、控制层面、核心是路由选择处理机
分组转发部分:硬件、数据层面、核心是处理芯片和交换结构
报文处理路径
控制路径: 处理目的地址是本路由器的高层协议报文,特别是各种路由协议报
文。虽然控制路径不是路由器的关键路径,但是它负责完成路由信息的交互,从
而保证了数据路径上的报文沿着最优的路径转发
数据路径: 处理目的地址不是本路由器而需要转发的报文,因此数据路径是整个
路由器的关键路路径,它直接影响路由器的整体性能
路由表和转发表
每个路由器中都有一个路由表和FIB(Forward Information Base)表:路由表用来决策路由,FIB用来转发分组。
路由表:这里个表都用来保存路由信息,路由表通常由路由协议和路由管理模块维护,包括更多的信息(IP地址/IP子网、下一跳、路由度量、超时间等);
路由表中路由有三类:
(1)链路层协议发现的路由(即是直连路由)
(2)静态路由
(3)动态路由协议发现的路由。
转发表(FIB):是基于路由生成的,路由器实际转发时使用转发表(只包括IP地址/IP子网和下一跳/出接口);
转发表中每条转发项都指明分组到某个网段或者某个主机应该通过路由器的那个物理接口发送,然后就可以到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。
高性能路由器转发表通常都用硬件来实现,有利于高速查找。
CAM、TCAM是一种特殊的存储器,无论表大小如何,都会在一个时钟周期内检索出地址
CAM:执行二元运算
- 基于0或1匹配;所有比特都必须匹配
- “命中”将返回结果(出接口)
- 用于MAC地址查询
TCAM:执行三元运算
- 基于0、1或X(不关心)匹配
- 最长匹配返回“命中”
- 适用于并非所有值都需要精确匹配的查询(ACL或IP路由表)
分组转发部分
输入端口
交换结构
交换结构是一台路由器的核心组件,它的作用就是根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去
输出端口
路由器演化史
第一代路由器
集中转发,固定接口
- X86架构,转发速率小于0.5Gb/s,接口种类少
- 由一个中央处理器和若干网卡通过共享总线互联而成
- 主要功能是软件实现的
- 结构简单,容易实现,性能低
- 性能低的原因:
- CPU既运行路由协议,也负责数据包的处理和转发,存在严重的处理瓶颈
- 主要的数据处理涉及到存储器,对其的访问速度会影响系统性能
- 数据移动必须两次通过总线,耗时,有时甚至超出数据包头的处理时间
第二代路由器
集中转发,模块化接口
- 数据在第一次到达时生成转发表,然后将转发表从CPU下发到接口线卡缓存,一次转发多次路由
- 路由状况不断变化的环境中,IP路由表的改变会使得转发表无效,线卡缓存需要不断从CPU中同步转发表,性能优势会受到很大限制
第三代路由器
分布式软件转发
- 转发速录小于5Gb/s,处理能力强,接口种类多,配置灵活
- 提高了线卡的处理能力,将CPU从路由转发中解放出来
- 从板拥有自己的CPU,内存和若干网卡的独立子系统,在本地线卡进行存储和转发判断
- 主板基本不参与路由转发操作,主要负责整个系统的管理操作和路由计算等任务,把转发表发布到各个从板上
- 主板和从板的分布式结构大大提高了系统的整体性能
缺点:
- 共享总线的容量直接限制了路由器的吞吐率,成为系统无法避免的瓶颈
第四代路由器
基于ASIC与交换矩阵
- 转发速率小于50Gb/s,IP处理能力由质的突破,端口较丰富,端口r容量大
- 交换结构的引入解决了总线的瓶颈,显示无阻塞交换
- 对QOS,MPLS VPN,IPV6,组播支持能力弱
- 引入交换结构代替原来的共享总线,提供了比共享总线高得多的带宽
- 线卡上不采用通用CPU,而是采用ASIC实现的专用转发引擎或者是针对网络处理进行了优化的网络处理器
NP (network processor)芯片
可编程,同时对多业务硬件处理进行加速
网络芯片(NP)技术的出现是为了了适应下一代高速网络特点的需要,提供网络服务质量(QoS)控制,不断适应新的网络应用,发展新的网络管理模式以及快速响应市场对新的网络功能的需求而推出的一项新的芯片技术。它同时具有通用芯片和专用集成电路
ASIC两方面的优点,既具有ASICs线速转发报文的高速度特性同时又具有通用芯片的可编程性。
第五代路由器
- NP与ASIC之比较 性能更高:内部集成数十个CPU及硬件协处理器、硬件加速器,在实现 复杂的拥塞管理、队列调度等QOS功能前提下,仍能保持线速转发, 实现“硬转发”;
- 扩展更灵活:预留的用户接口可编程,扩展灵活;
- 业务支持能力强:对新的增值业务(MPLS、QOS、组播等等)迅速支持;
- 管理灵活,开发方便,大大缩短二次开发周期;
- 预留IPv6接口,可通过软件平滑升级;
- 可靠性高:芯片转产前通过严格的疲劳性测试,适合开发电信级设备。
第六代路由器
三级交换结构、严格意义上的无阻塞结构 第二级通常是单独的中央交换框 F1、F2、F3之间采用光纤互连(光背板) 随着分组搜索系统的日趋复杂,设计师需要采用各种各样的解决方案以满足千差万别的搜索要求。
策略略查表法(例如存取控制表(ACL)和服务质量量(QoS))需要高性能以及超群的搜索灵活性和易用性——而所有这些都需
要采用TCAM。
另一方面,转发查表(包括虚拟路由器转发(VRF)和虚拟专用网(VPN))也可以使用TCAM技术进行加速。随着网络速度的剧增,传统的解决方案已
经无法满足速度要求,这时就需要一个专门的硬件来解决这个矛盾,该硬件通常称为NSE(网络搜索引擎),TCAM其实就是一种基于CAM技术的NSE
多级交换结构是由多个交换单元互联起来的,每个交换单元具有一整套输入输出,与普通交换机类似,提供输入输出的连接。通过互联多个小的交换单元,就可以制造一个大型的、可扩展的交换结构。多级结构之间的不同取决于交换单元之间是如何互联的。
典型的结构包括Benes网、Butterfly网、Clos网等形式。 Benes网使用方形交换单元(即:输入输出端口数相同)进行多级互联。
一般来说,3级N部Benes网的每一级均可以用N个输入/输出端口和N个交换单元来构造。这个格形结构在每个输入端和每个输出端之间形成N个可能的通路。Benes输出可以扩展至任意奇数级。 虽然对于小型系统单级结构的设计相对简单,成本也相对低,但是它不能满足下一代Internet扩展的需要。
多级结构在操作上较复杂,但是可以扩展到成百上千个端口,这对于下一代
Internet核心路路由系统是绝对必要的。
在多级拓拓扑结构中,Benes结构是最佳选择,因为它的系统复杂程度最低,性能好且满足可扩展的要求。
集群路由器
集群路由器,路由器矩阵、多机框互联、可扩展路由器 就是将多台路由器互联起来,形成一套逻辑上一体的路由器系统或由多个可独立运行的路由节点,通过某种互连结构连接而成性能和功能可扩展的单映像路由器
可扩展性主要体现在以下3个方面:
- 交换实体的分布性带来的规模可扩展性;
- 路由实体的分布性带来的路由计算可扩展性;
- 路由器操作系统的分布性带来的功能可扩展性;
集群技术的产生,主要有两个直接的原因:
- 单机容量逐步发展到极限;
- 超级节点的产生使得网络结构越趋复杂,运维管理难度加大 集群路由器体系结构是解决高性能路由器所面临问题的一个有效途径,它由若干个路由器节点构成,包含了多个路由实体和交换实体 它的交换结构由多个交换结构聚合而成,具有分布式的特点,能够满足性能、规模和可扩展性的要求
- 它还包含了多个具有路由计算能力的控制节点,有利于路由协议和控制协议等任务的分布式实现 集群路由器体系结构被认为是符合互联网发展需要的下一代高性能路由器体系结构