1
计算机网络技术理论与实践
1.6.4.2 5.4.2 路由器工作过程

5.4.2 路由器工作过程

路由器工作时,由路由引擎负责计算路由表,由转发引擎负责根据输入端口收来的数据包的目的地址查询转发表,并将数据包按照查询的结果从相应输出端口发送出去。

通常可以将路由器划分为三个功能平面:主控功能平面、转发功能平面和业务功能平面。主控功能平面负责计算路由表,以及对转发功能平面和业务功能平面进行控制和管理;转发功能平面负责接收各种数据包,并根据路由转发表转发这些数据包;业务功能平面负责对数据包进行各种业务处理。

转发功能平面通常会包含多个网络接口,每个接口都具有数据包输入和输出功能。转发功能平面可以从这些网络接口中接收网络数据包,当收到数据包时,需要对数据包的类型进行分析,如果是网络协议数据包,则将该数据包转发给主控功能平面;如果是需要本路由器处理的业务数据包,则转发给业务功能平面进行处理;如果是一般的数据包则查询路由转发表,找到需要转发的网络接口,将其从该接口发送出去。当转发功能平面从主控功能平面和业务功能平面接收到网络协议数据包和业务数据包时,会查询路由转发表,将这些数据包从相应的网络接口转发出去。

主控功能平面接收到从转发功能平面发送来的网络协议数据包后,会根据该数据包的协议类型发送给相应的网络协议进程进行处理。多个不同的网络协议进程分别处理各自的网络协议数据包,最终会协同计算出本路由器的整个路由表。主控功能平面将重新计算出的路由表发送给转发功能平面,以更新它的转发表。转发功能平面会根据更新后的转发表进行数据包转发。主控功能平面上的各种网络协议在运行过程中,如果需要向其他路由器发送网络协议数据,就将这些数据包发送给转发功能平面,由其转发出去。

业务功能平面接收到从转发功能平面发送来的业务数据包后,根据数据包的类型将其交送给相应的业务处理程序进行处理,并将处理完的数据返回给转发功能平面。

在中低端路由器中,主控功能平面、转发功能平面和业务功能平面通常位于同一个实体上,而在一些高端路由器中,可以将主控功能平面、转发功能平面和业务功能平面分布到不同的实体上,比如分布式路由器中可以插入多块板卡,主控功能平面位于主控板上,转发功能平面包括了多块接口板,而业务功能平面则包含了多块业务板。