精确匹配和最长匹配

一次投标过程中,客户抓住了市场吹嘘的最长匹配技术问个不停,这是我们后来的澄清。看过很多文章后,虽然原理已经清楚了,但我认为这并不能说明哪个技术更好。

最长匹配和精确匹配
本部分要点:
    最早的三层交换机因为硬件结构问题,如果使用最长匹配,需要用软件算法支持,这样必然会导致系统性能的大大降低,所以早期的三层交换机使用了精确匹配技术。利用类似CAM表的FIB表,采用折衷的方式实现三层转发。目前高端三层交换机发展,特别是硬件构架的进步,使用最长匹配已经不再会对交换机性能造成影响了。
        
        详细内容:
        开始的时候,三层交换机只有一张用于路由的路由表(该路由表是通过路由协议建立的),而精确匹配的三层转发表为空,这样当三层交换机接收到一个需要进行三层交换的数据帧时,它首先查询三层精确匹配缓冲区,因为三层转发表为空,查询失败,于是,三层交换机通过最长匹配算法查询路由表(根据数据报的目的IP地址),查询的结果是一个出口(一般是一个VLAN接口)和一个下一跳。于是,有两中可能的情况:
        1、数据报的目的地址跟VLAN接口不在同一个网段;
        2、数据报的目的地址跟VLAN接口在同一个网段。
        在第一种情况下,三层交换机通过ARP解析来解析下一跳IP地址,获得下一跳的MAC地址后,三层交换机把接收的数据帧进行二层封装,然后发送给下一跳。在第二种情况下,三层交换机直接解析数据报的目的IP地址,获得目的IP地址对应的主机MAC地址后,直接把该数据帧发送给目的主机。不论哪种情况,交换机进行ARP解析的时候,都会获得一个IP地址跟出口的对应关系,同时还通过ARP协议获得了下一跳的MAC地址,于是,三层交换机会把这些数据组合成一个三层精确匹配项,并插入到三层精确匹配缓冲区里面。这样当到达同一目的地的数据报到来后,三层交换机使用精确匹配算法直接查询高速缓冲区,根据查询的结果进行转发。
        在一些低端交换机的场合下,最长匹配查询采用软件实现,效率特别低,因而引入三层精确匹配算法,这是合理而且必须的。但对一些高端场合,就不适应了,在一些高端交换机上,最长匹配算法都是基于硬件实现的,而且采用了效率很高的树查找算法,其效率跟精确匹配算法相差无几,而且只采用最长匹配算法还减少了精确匹配缓冲区和路由表的同步问题,所以高端交换机结合最长匹配技术会大大提高三层报文转发的效率。