三层交换机原理图解

来源:互联网 发布:sql case没有else 编辑:程序博客网 时间:2024/05/01 08:00

与传统的二层交换机相比,三层交换机增加了路由功能,可以理解为具有路由功能的交换机

三层交换机可以根据其处理数据的不同而分为纯硬件和纯软件两大类。

(1)纯硬件的三层技术相对来说技术复杂,成本高,但是速度快,性能好,带负载能力强。其原理是,采用ASIC芯片,采用硬件的方式进行路由表的查找和刷新。

当数据由端口接口芯片接收进来以后,首先在二层交换芯片中查找相应的目的MAC地址,如果查到,就进行二层转发,否则将数据送至三层引擎。在三层引擎中,ASIC芯片查找相应的路由表信息,与数据的目的IP地址相比对,然后发送ARP数据包到目的主机,得到该主机的MAC地址,将MAC地址发到二层芯片,由二层芯片转发该数据包

(2)基于软件三层交换机技术较简单,但速度较慢,不适合作为主干。其原理是,采用CPU用软件的方式查找路由表

当数据由端口接口芯片接收进来以后,首先在二层交换芯片中查找相应的目的MAC地址,如果查到,就进行二层转发否则将数据送至CPU。CPU查找相应的路由表信息,与数据的目的IP地址相比对,然后发送ARP数据包到目的主机得到该主机的MAC地址,将MAC地址发到二层芯片,由二层芯片转发该数据包。因为低价CPU处理速度较慢,因此这种三层交换机处理速度较慢。

   二层交换机的二层数据交换一般都是使用ASIC(专用集成电路)的硬件芯片中的Mac表来实现的,因为是硬件转发,所以转发性能非常高。而三层交换机,但其中除了二层交换用的Mac表外,还保存有专门用于三层转发的三层硬件转发表。

图所示的为三层交换机的基本工作流程,主要步骤解释如下:

   (1)源主机在发起通信之前,将自己的IP地址与目的主机的IP地址进行比较,如果源主机判断目的主机与自己位于不同网段时,它需要通过网关来递交报文的(如果在同一网段,则直接二层转发就可以了),所以它首先需要通过一个ARP请求报文获取网关的MAC地址(在源主机不知道网关MAC地址的情形下),即源主机先发送ARP请求帧以获取网关IP地址对应的MAC地址。

   (2)网关在收到源主机发来的ARP请求报文后以一个ARP应答报文进行回应,在应答报文中的“源MAC地址”就包含了网关的MAC地址。

   (3)在得到网关的ARP应答后,源主机再用网关MAC地址作为报文的“目的MAC地址”,以源主机的IP地址作为报文的“源IP地址”,以目的主机的IP地址作为“目的IP地址”,先把发送给目的主机的数据发给网关。


三层交换基本流程图解

    (4)网关在收到源主机发送给目的主机的数据后,由于查看得知源主机和目的主机的IP地址不在同一网段,于是把数据报上传到三层交换引擎(ASIC芯片),在里面查看有无目的主机的三层转发表。

    (5)如果在三层硬件转发表中没有找到目的主机的对应表项,则向CPU请求查看软件路由表,如果有目的主机所在网段的路由表项,则还需要得到目的主机的MAC地址,因为数据包在链路层是要经过帧封装的。于是三层交换机CPU向目的主机所在网段发送一个ARP广播请求包,以获得目的主机MAC地址。

    (6)交换机获得目的主机MAC地址后,向ARP表中添加对应的表项,并转发由源主机到达目的主机的包。同时三层交换机三层引擎会结合路由表生成目的主机的三层硬件转发表。

     以后到达目的主机的数据包就可以直接利用三层硬件转发表中的转发表项进行数据交换,不用再查看CPU中的路由表了。这就是“一次路由,多次交换”的原理。