三层交换技术的出现,解决了局域网中网段划分之后,网段中子网必须依靠路由器进行治理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈等问题。
三层交换原理
一个具有三层交换功能的设备,相当于是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单地把路由器设备的硬件及软件叠加在局域网交换机上。
其原理是:假设两个使用IP协议的主机A、B通过第三层交换机进行通信,发送主机A在开始发送时,把自己的IP地址与B主机的IP地址比较,判定B主机是否与自己在同一子网内。若B与A在同一子网内,则进行二层的转发。若两个主机不在同一子网内,如A要与目的主机B通信,发送主机A要向“缺省网关”发出 ARP(地址解析)封包,而“缺省网关”的IP地址其实是三层交换机的三层交换模块。当发送主机A对“缺省网关”的IP地址广播出一个ARP请求时,假如三层交换模块在以前的通信过程中已经知道B主机的MAC地址,则向A回复B的MAC地址;否则三层交换模块根据路由信息向B广播一个ARP请求,B得到此 ARP请求后向三层交换模块回复其MAC地址,三层交换模块保存此地址并回复给发送主机A,同时将B主机的MAC地址发送到二层交换引擎的MAC地址表中。从这以后,当A向B发送的数据包便全部交给二层交换处理,信息得以高速交换。由于仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此三层交换机的速度很快,接近二层交换机的速度,同时比相同路由器的价格低很多。
因为通信双方并没有通过路由器进行“拆包”和“打包”的过程,所以那怕主机A、B或C分属于不同的子网,它们之间也可直接知道对方的MAC地址来进行通信,最重要的是,第三层交换机并没有像其它交换机一样把广播封包扩散,第三层交换机之所以叫三层交换机就是因为它可以看懂三层信息,比如IP地址、 ARP等。所以,三层交换机便能洞悉某一广播封包目的何在,在没有把它扩散出去的情形下,同时满足了发出该广播封包的人的需求(不论它们在任何子网里)。因为第三层交换机没做任何“拆、打”数据包的工作,所有经过它的数据包都不会被修改并以交换的速度传到目的地。所以,应用第三层交换技术即可实现网络路由的功能,又可以根据不同的网络状况做到最优的网络性能。
三层交换机种类
三层交换机可以根据其处理数据的不同而分为纯硬件和纯软件两大类。
(1)纯硬件的三层技术相对来说技术复杂,成本高,但是速度快,性能好,负载能力强。其原理是,采用ASIC芯片,采用硬件的方式进行路由表的查找和刷新。如图1所示。
当数据由端口接口芯片接收进来以后,首先在二层交换芯片中查找相应的目的MAC地址,假如查到,就进行二层转发,否则将数据送至三层引擎。在三层引擎中,ASIC芯片查找相应的路由表信息,与数据的目的IP地址相比对,然后发送ARP数据包到目的主机,得到该主机的MAC地址,将MAC地址发到二层芯片,由二层芯片转发该数据包。
图1 纯硬件三层交换机原理
① 端口A向三层交换模块发出ARP请求 ② 三层交换模块向端口B所在网段广播ARP请求 ③ 端口B的ARP应答 ④ 更新MAC地址表
广州百讯的SPEED ES3224及ES3800都属于这种类型。
(2)基于软件的三层交换机技术较简单,但速度较慢,不适合作为主干。其原理是,采用CPU用软件的方式查找路由表。如图2所示。
当数据由端口接口芯片接收进来以后,首先在二层交换芯片中查找相应的目的MAC地址,假如查到,就进行二层转发否则将数据送至CPU。CPU查找相应的路由表信息,与数据的目的IP地址相比对,然后发送ARP数据包到目的主机得到该主机的MAC地址,将MAC地址发到二层芯片,由二层芯片转发该数据包。因为低价CPU处理速度较慢,因此这种三层交换机处理速度较慢。
图2 软件三层交换机原理
① 端口A向三层交换模块发出ARP请求 ② 三层交换模块向端口B所在网段广播ARP请求 ③ 端口B的ARP应答 ④ 更新MAC地址表