概述
2019独角兽企业重金招聘Python工程师标准>>>
一、分组处理流程
下面以共享存储器的路由器结构为例,对分组在路由器的处理流程作简要介绍(如图所示)。图中的报文指的是IP报文。
A、IP头检查:
报文进入输入端口,转发逻辑对所有第三层信息进行检查,包括头长度,报文长度,版本号,校验和等。
B、路由查找和报文头处理:
基于报文的目的地址进行路由查找,决定输出端口,进行转发操作(包括TTL操作和校验和计算等)。
C、报文分类:
路由器可能要检查第三层及其他高层信息,进行报文分类。
D、高层属性处理:
报文分类后,与策略库进行匹配,并采用相应的动作。
*设置报文的优先级,例如报文排队优先级、用于拥塞控制的丢弃优先级等;
*设置交换网络相连的输出接口内部标记;
*报文重定向到其他目的地;
*根据拥塞控制策略或安全策略丢弃报文;
*进行多项分组转发相关的统计功能。
E、转发引擎通知系统控制器有报文到达。
F、系统控制器为到达的报文预约存储空间。
G、报文到达共享存储区后,系统控制器通知相应的输出端口(如果是多播,要向多个输出端口发信号)。
H、输出端口从已知的共享存储区中读取报文,可以选择使用的调度算法包括WFQ(加权公平排队),WRR(加权轮询),SP(严格优先级)等。
I、目的输出端口提取报文后,通知系统控制器,释放占用的存储空间。
对于一个报文处理,路由器提供了两种不同的处理路径,即控制路径和数据路径。
数据路径:处理目的地址不是本路由器而需要转发的报文,因此数据路径是整个路由器的关键路径,它直接影响路由器的整体性能。
控制路径:处理目的地是本路由器的高层协议报文,特别是各种路由协议报文。虽然控制路径不是路由器的关键路径,但是它负责完成路由信息的交互,从而保证了数据路径上的报文沿着最优的路径转发。
二、路由器体系结构的演化
随着Internet的发展和网络流量的激增,路由器的设计暴露出三个性能瓶颈:处理能力、存储带宽和内部总线带宽。
采用分布转发结构是消除前两个平静的有效途径。路由器多是专用系统,不运行其他任务。将处理任务向接口转移,使接口分担控制CPU的处理工作可以提高系统的性能。接口板卡可以采用通用CPU或专用VLSI硬件。每个接口板卡有一定的处理能力和缓冲空间。第三个瓶颈采用共享存储器或交叉开关等可以消除,可以在不同的网络接口对之间并发传输数据。
可以看出,路由器体系结构演变的核心是控制平面与数据平面的关系的变化。
1、基于CPU转发的总线型路由器(基于总线的单CPU体系结构)
最早的路由器采用的是基于普通计算机的结构。它是由一条共享总线、中心CPU、存储器和线卡组成,输入输出端口功能由线卡完成,线卡提供MAC层功能并与外部链路相连。每个输入分组均通过共享总线送往CPU,由CPU完成转发决定,完后再次通过共享总线送往输出端口。其性能受两大因素限制:A、中心CPU的处理能力,因为搜索路由表非常耗时;B、共享总线的性能,因为每个分组均需两次通过共享总线。
2、基于Cache转发的总线型路由器(基于总线的多CPU体系结构)
为了解决第一个性能瓶颈问题,一些路由器厂商使用多CPU、让多CPU并发,每个CPU仅处理一部分输入流量,但是每个分组依然需要通过共享总线两次。于是,便出现了带有智能线卡的路由器结构。
每个智能线卡提供路由Cache和处理能力,转发决策在智能显卡中完成,每个分组仅需在从输入端口传送至输出端口时通过共享总线一次。路由Cache是中心CPU路由表的高速缓存,亦称转发表。
3、基于交叉开关的交换型路由器(基于交换结构的多CPU体系结构)
由于共享总线一次只允许一个分组从输入端口传送至输出端口,共享总线的性能瓶颈依然存在,为消除第三个性能瓶颈,可以将共享总线替换为交叉开关(crossbar),这样多线卡之间可以同时通信,下图显示了带有交叉开关的路由器结构。带有交换式背板的路由器结构是新一代路由器结构的典型代表。
网络接口卡(线卡)可用ASIC(专用集成电路),FPGA(现场可编程门阵列)或通用CPU完成分组转发。采用通用CPU比较灵活,但是转发性能难以与硬件转发相比,一般和FPGA结合使用。采用ASIC实现分组转发,速度快,一些灵活的处理功能可以由主控CPU进行。
对于接口板卡的设计是否能适应未来IP协议的演化,有不同的看法。有人认为IP协议规范比较稳定,使用ASIC比较经济,并且能够简化接口板卡设计。有人认为IP协议始终处于不断的变化中,Internet也在不断演化,采用性能不断提高的通用CPU才是最合适的。网络处理器(network processor)的出现使人们的看法趋于一致,网络处理器兼顾性能和灵活性两个方面,成为众多开发商进行转发引擎设计与实现的首选。
在带有交换式背板的路由器中,智能线卡对于输入分组主要完成接收、IP路由查找和分组分类操作,确定其输出端口、下一跳地址和对分组字段进行的操作;对于输出分组主要完成QoS调度和发送;交叉开关的主要功能是将返租从一个端口线速交换到另一个端口,并可同时对多个端口并发操作;路由处理器CPU主要完成系统的控制,包括路由表的更新、MIB库的管理和错误处理等。
交换型路由器网络接口功能图
4、高扩展交换网络路由器(集群路由器体系结构)
随着互联节点的密集,路由器接口数目不断增加,有的路由器各种类型的接口需要数百个。同时,由于网络流量的激增,对路由器交换能力也提出了越来越高的要求。这时,采用多机柜互联的新型的高可扩展路由器应运而生,或称之为集群路由器体系结构。
集群路由器体系结构是解决高性能路由器所面临问题的一个有效途径,他有若干个路由器节点构成,包含了多个路由实体和交换实体。它的交换结构由多个交换结构聚合而成,具有分布式的特点,能够满足性能、规模和可扩展性的要求。它还包含了多个路由计算能力的控制节点,有利于路由协议和控制协议等任务的分布式实现。
转载于:https://my.oschina.net/kiterunner24/blog/267065
最后
以上就是拉长时光为你收集整理的路由器简介二:分组处理流程 路由器体系结构的全部内容,希望文章能够帮你解决路由器简介二:分组处理流程 路由器体系结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复