路由器工作原理浅析

来源:互联网 发布:淘宝面具 编辑:程序博客网 时间:2024/05/16 19:33
路由器是TCP/IP模型上处于第三层网络层的设备,他是实现异构网络互联的关键器件。

路由器必须完成两个基本功能:路由处理和数据包转发处理。

路由处理:是路由器控制层面的工作,路由选择:收集网络拓扑信息并动态形成路由表(RIB)。

—数据转发层面:根据转发表(FIB)转发IP数据包。
        
路由选择的核心器件是路由选择处理器,就是运行着系统软件和路由协议的专用CPU,它动态收集路由拓扑信息,维护更新路由表。这没啥好说的,除非研究出来更先进的路由协议或算法,能大幅提升路由选择的效率,否则各大厂商在路由处理这一层面基本上都是同一水平。
数据/分组转发处理:根据控制层面生成的转发表转发IP分组。由于一台路由器得囊括物理层、数据链路层、网络层的工作,所以各大厂商都是在数据转发层面有很大不同并拉开差距的。
首先,要转发数据就要一套数据交换的方法,即交换结构:将来自某个输入端口的数据发送到一个输出端口,完成输入输出端口间的互联功能。常见的交换结构有三类:共享总线型、共享存储型、交叉开关型。早期的第一代路由器,如Cisco2501使用的就是单总线型,一个CPU+一块RAM,连接各个物理端口,不仅处理速度慢,而且容错率低。第二代单总线路由器采用了主从CPU的设计,主CPU负责路由控制层面的工作,从CPU负责数据转发层面的工作。第三代单总线路由采用的对称多CPU结构(并行处理技术),主CPU集中控制个端口CPU的转发表,各端口CPU负责查表、队列管理和转发,这一设计大大提高了网络接口的处理能力。第四代的路由采用多总线多CPU的设计,各方面性能大大提高,复杂度也提高了,同时实现了硬件查路由表。后来,大家都开始向共享存储型、交叉开关型的高性能复杂路由器发展,这里不展开了。
我们说了,既然是数据包转发,就要有数据源输入,这就是输入端口。输入端口是物理链路的连接点,也是数据包的接收点。端口通常由线卡提供,一块线卡一般支持4、8或16个端口。每个输入端口都有三个模块,它们分别是对应于物理层、数据链路层和网络层的模块。关于分组的处理:如果是路由交换信息——》路由选择处理机;如果是数据——》查找转发表;一个分组未处理完,又到了新的分组,则在输入队列中排队。
接下来是数据输出工作,就要经过输出端口。输出端口的—主要功能:队列和缓冲管理从交换结构接收数据包,然后将它们发送到路由器的线路接口卡上。当交换结构传送的数据包的速率超过输出链路的发送速率时,来不及发送的数据包就暂时存放在队列中。输出端口使用复杂的调度算法实现QoS功能。完成数据包的封装和支持物理链路协议等。 

搞清楚了路由器的几个核心部件及工作原理后,来走一遍路由器工作的流程。
       —  线路输入:信号恢复、译码和CRC校验,放进输入FIFO队列。
         数据包头部分析:主要是三层目的IP地址,甚至包括二层和四层数据头部
        — 查询路由表确定输出端口;查分组分类表确定输出队列QoS
—          数据包头部修改:包括TTL值减1、更新IP头部校验和、替换二层MAC地址等,送入输出FIFO队列
—        线路输出 :数据封装及发送。
0 0
原创粉丝点击