RichardLuo

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表相类似。

Data_Forwarding-1

​ CEF的部署模式分为Centralized(集中式)和Distributed Forwarding(分布式),相对于的就是软件CEF与硬件CEF,也对应着低端设备与高端设备。
​ 当一个路由处理引擎配置了一个CEF,能够让它处理所有分组流量,这即为集中式。
​ 如果网卡配备了转发引擎且附带一个CEF,则能够使流量不经过路由处理引擎直接被转发,那么吞吐量会更高,这即为分布式。

Data_Forwarding-2

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的数据,继续转发工作,直到切换完成。

相关文章: