1.2 报文处理流程
设备处理的报文可分为两种:一种是协议报文;另一种是业务报文。
(1)协议报文(ARP、OSPF、BGP等协议的报文),从LPU进入设备,经LPU交给MPU统一计算,经过计算后生成/更新转发表项,然后将转发表项下发到LPU、SFU,指导业务报文转发。
(2)业务报文,从LPU接口进入后,根据转发表项交给SFU,SFU再根据转发表项转发给出口LPU,然后从LPU接口发送出去,业务报文的转发不需要经过MPU。
以2块LPU、1块SFU、1块MPU为简单例子,介绍协议报文与业务报文的处理过程,如图1.7所示。
图1.7 报文处理流程
包转发引擎模块(Packet Forwarding Engine,PFE),实现对报文头部进行解析,查表转发,头部封装等功能。
转发信息表(Forwarding Information Base,FIB),在路由表的基础上计算而来,存放在LPU、SFU上面,指导业务板卡高效转发报文。
①协议报文从GE1/0/1接口进入设备,经过报文头部解析之后发现这是协议报文,如ARP、OSPF报文。
②各个LPU都将协议报文统一转发给MPU进行计算,得到路由表。
③在路由表基础上计算得到FIB表,下发给LPU和SFU。
④业务报文从GE1/0/1接口进来,经过报文解析发现这是业务报文,根据目标MAC或者目标IP查表后发现出接口是GE2/0/2,需要交给SFU进行转发。
⑤发给SFU之前需要将报文切片,变成固定长度的报文,有利于SFU高效转发。
⑥SFU收到切片后,根据FIB表转发给LPU2。在LPU2上面,先进行切片重组,然后由PFE模块封装处理,最终从GE2/0/2接口发送出去。
如果报文从GE1/0/1进来,查表后发现出接口是GE1/0/3,则此时还需要交给SFU进行转发吗?答案是:不用交给SFU。如果PFE模块查表后发现出接口在同一个板内,则会直接进行头部封装,然后从GE1/0/3发送出去。
有时协议报文需要应答,或者设备主动发送协议报文,此时都由MPU完成。MPU生成协议报文之后交给对应的LPU,然后从对应接口发送出去。