一.CEF特快交换基本原理路由器和交换机是基础网络中最关键的部分,路由器和交换机其最主要的目的有两个:一是如何准确的把数据包(帧)从源地址送到目标地址,二是如何更快速的送达。当然第二点的优先级要低于第一点的。为
一.CEF特快交换基本原理 路由器和交换机是基础网络中最关键的部分,路由器和交换机其最主要的目的有两个:一是如何准确的把数据包(帧)从源地址送到目标地址,二是如何更快速的送达。当然第二点的优先级要低于第一点的。 为了更好的完成这两个任务,交换机和路由器经过了多年的发展其各自交换包的方法也在不断改进,其不论如何变化都是为了更好的完成这两个根本任 务。本篇的主题是讲解CEF基本原理
www.zhishiwu.com 首先,先来看一下包转发的过程。一般来说对于一个路由器会有以下三步: 1. 查看这个包的目标地址是否可达 2. 决定目标地址的下一跳和接口。 3. 改写MAC的包头使得它可以成功的到达下一跳。
以上三步是路由器包交换的根本,到现在为止所有衍生出来的包交换方法都必须完成以上三个过程。
为了更好的理解CEF,再阐述一下另外两种比较著名的包交换方法:进程交换和快速转发
www.zhishiwu.com
进程交换
最古老的一个交换方法,被所有的平台所支持。
为了便于理解,用图来具体讲解进程交换的方式。

紧接着再来看第二种重要的交换方法:快速交换

现在,回过头来观察对比一下这两个交换方式究竟有什么不同之处。
在讲二者区别之前,先插一个概念。
到目前为止,包交换的方法有N种,其重要的有两类,第一个就是进程交换,而第二类名字叫做“Interrupt Context Switching”,而这第二类中包含的交换方法有“快速交换”、我们熟知的CEF,还有 一个是Optimum交换。
在阅读下面的文字之前一定要把这个层次关系搞明白。
所谓进程交换,顾名思义,就是要创建进程,我们知道处理器在工作的时候是按照schedule(计划)进行工作的,而进程交换就是这样的,它会创建一个名 为“IP_INPUT”(假设讨论的是IP包),然后放入到处理器的SCHEDULE中等待,什么时候排到了什么时候执行这个进程。发现什么问题了吗?排 队这样的规则从设计的角度来说是很不错的,但是对于包交换来说就有一些拖沓,假设目前处理器有其他的工作要做,这个时候其创立的进程“IP_INPUT” 就必须在SCHEDULE中等着,不能执行,只有当排到的时候才能执行,这样显然是浪费时间的。
相比之下,Interrupt Context Switching就要“霸道”很多,注意这个“INTERRUPT”,注意我的黑体字,这个交换方式跟进程交换的区别就是“不排队”,只要有包过来就先 处理它,等它处理完了,处理器再回去干它SCHEDULE中的工作。
以上就是进程交换和Interrupt Context Switching的不同点之一。
另外一个不同点,如果你看过我上一篇文章的话,你可能有印象,就是增加了“缓存”,处理器在查找目标地址可达、下一跳这些信息的时候不是直接去查找路由表而是去查找缓存。这也是不同点之二。
第一个不同点让交换增速不少,那么第二点不同的作用又是什么呢?“缓存到底有什么用?”
对于Interrupt Context Switching这一类交换方式来说有三种不同的交换方法刚才已经介绍过了,他们是
Fast Switching
Optimum Switching
Cisco Express Forwarding
这三种方法的主要区别就体现于其构建缓存方法的差别上,而正是由于这种差别才导致他们某些特性的不同。
先从最基础的快速交换(Fast Switching)谈起


快一点!更快一点! 二叉树的构想是好的,但是它最多可能查询32级还是显得有些多,有没有更快的呢?Optimum Switching主要就是改进了快速交换的数据结构,它重新构造了一个多枝(256-way mtree),如图所示,这样一来它最多只需要四次查找就可以达到目的,而一般来说只需要一到三次查找就可以了。 这是一个不错的构想,但对于快速交换的其他方面并没有进行改进,只能算作快速交换的一个升级版本,不过它却起到了承上启下的作用。 接下来我们看看具有革命性的CEF! CEF是在快速交换和Optimum Switching的基础上发展起来的第三代基于 Interrupt Context Switching的交换方式,它很好的克服了前两种方法带来的弊端。 二,CEF提供了以下优点: 1• 改进的性能,CEF是小于快速切换路由缓存CPU密集型。更多的CPU处理能力,可专用于第3层服务,如服务质量(QoS)和加密。 2• 可扩展性,CEF在每个线卡提供了充分的交换容量时,分布式CEF(dCEF)模式是积极的。 3• 弹性的CEF提供了前所未有的水平在大型动态网络的一致性和稳定性的开关。 4• 虽然您可以使用CEF在任何一个网络的一部分,它是专为高性能,高弹性的第3层IP骨干交换。 例如:下图显示了CEF正在运行的Cisco 12000系列千兆位交换路由器在网络的核心汇聚点(GSRS)交通水平,密度和性能是至关重要的。

为了更快速的找到目的地址可达性信息,它依旧采用了Optimum Switching的mtree方式,唯一有区别的是CEF构建的mtree节点中并没有包含外出接口MAC地址这些信息,而是变成了一个指针,指向一个单独建立的表。CEF采用一个4级每级256条通道结构的转发表来指明转发条目的位置,转发表有next hop等信息,涵盖了整个IPv4的地址范围,并有指针指向另一个邻接表。转发条目(MAC地址之类)都存储在一个单独的邻接表上。

1>在查询方式上简化了步骤,提高了速度;
2>在分离了路由和转发功能。 CEF的讲解到此为止了,对于CEF,之所以说他是革命性的,不仅仅是因为其改进了查找的方式,而是因为它还有很多其他的特征,比如在负载均衡方面它相 较于其他的交换方式也有很大的进步;如果我们要启用MPLS,必须使用CEF,因为只有CEF能够在转发的包中加入标签等等。 总 结一下:回顾整个路由器包交换的发展,我们可以把它分成两类,四种方法。两类是:Process Switching类和Interrupt Context Switching类。四种方法:进程交换属于Process Switching,其他的三种 Fast Switching,Optimum Switching,CEF(Cisco Express Forwarding)属于Interrupt Context Switching