Data Forwarding
Process Switching
最古老的数据转发方式
- 当路由器收到一个需要处理的数据包时
- 路由器将存储该数据包进入内存
- 路由器CPU被打断,处理该数据包
- 并将其放入相应的输入队列中
弊端是需要使用CPU进行转发,对于CPU要求过高,目前已经不使用该种方式。
no ip route-cache #通过该命令启用CPU转发功能
Fast Switching
快速转发在CPU转发的基础上通过加入缓存进行改进。
- 第一个数据包依旧通过CPU进行处理
- 将处理结果存入缓存中
- 到达该目的地的数据包通过缓存中的信息进行处理
弊端
- 第一个数据包仍需要通过CPU处理
- 如果路由器接收到大量未在缓存中的数据,性能将会下降
- 当路由表变化时,缓存将会被清空并重新记录
ip route-cache #启用Fast Switching
Cisco Express Forwarding(CEF)
Cisco Express Forwarding是思科私有技术基于快速转发改进而来,CEF在Cisco设备为默认选项
CEF通过ASICs和NPUs实现高吞吐量(通过硬件加速)
ip route-cache cef #关闭CEF
show cef interface #查看CEF是否开启
show ip interface #查看CEF是否开启
开启CEF后,CEF会产生两张表,为FIB(Forwarding Informatica Base)和 Adjacency Table。
FIB与路由表相同,Adjacency Table则与ARP表相类似。
CEF的部署模式分为Centralized(集中式)和Distributed Forwarding(分布式),相对于的就是软件CEF与硬件CEF,也对应着低端设备与高端设备。
当一个路由处理引擎配置了一个CEF,能够让它处理所有分组流量,这即为集中式。
如果网卡配备了转发引擎且附带一个CEF,则能够使流量不经过路由处理引擎直接被转发,那么吞吐量会更高,这即为分布式。
SSO & NSF
SSO=Stateful switchover NSF=Nonstop forwarding
Route Processors用于生成路由表,如果路由处理器故障则会导致路由表重置并丢失报文(同时会导致CEF的重置),通过增加Route Processors数量来冗余。
SSO是一种冗余功能,它允许具有多个RP的Cisco路由器在RP间同步配置和控制层面的信息。若一个RP故障,则能够切换至另一个RP继续工作,但是在切换的过程中,会触发路由协议的翻动,清除路由表与CEF条目,再重新学习网络拓扑前,不再路由流量。
此时需要用到NSF功能,NSF功能则会假定在切换RP的过程中,CEF仍然使用切换前的RP的数据,继续转发工作,直到切换完成。