局域网的速度已从最初的10Mbit/s 提高到100Mbit/s,目前千兆以太网技术已得到普遍应用。在网络结构方面也从早期的共享介质的局域网发展到目前的交换式局域网。交换式局域网技术使专用的带宽为用户所独享,极大的提高了局域网传输的效率。可以说,在网络系统集成的技术中,直接面向用户的第一层接口和第二层交换技术方面已得到令人满意的答案。但是,作为网络核心、起到网间互连作用的路由器技术却没有质的突破。在这种情况下,一各新的路由技术应运而生,这就是第三层交换技术:说它是路由器,因为它可操作在网络协议的第三层,是一种路由理解设备并可起到路由决定的作用;说它是交换器,是因为它的速度极快,几乎达到第二层交换的速度。二层交换机、三层交换机和路由器这三种技术究竟谁优谁劣,它们各自适用在什么环境?为了解答这问题,我们先从这三种技术的工作原理入手。
1、二层交换技术
二层交换机是数据链路层的设备,它能够读取数据包中的MAC地址信息并根据MAC地址来进行交换。交换机内部有一个地址表,这个地址表标明了MAC地址和交换机端口的对应关系。
具体的工作流程如下:
(1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
(2)再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
(3)如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
(4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。
由于二层交换机一般具有很宽的交换总线带宽,所以可以同时为很多端口进行数据交换。二层交换机对广播包是不做限制的,把广播包复制到所有端口上。
二层交换机一般都含有专门用于处理数据包转发的ASIC (Application specific Integrated Circuit)芯片,因此转发速度可以做到非常快。
2、路由技术
路由器是在OSI七层网络模型中的第三层——网络层操作的。路由器内部有一个路由表,这表标明了如果要去某个地方,下一步应该往哪走。路由器从某个端口收到一个数据包,它首先把链路层的包头去掉(拆包),读取目的IP地址,然后查找路由表,若能确定下一步往哪送,则再加上链路层的包头(打包),把该数据包转发出去;如果不能确定下一步的地址,则向源地址返回一个信息,并把这个数据包丢掉。
路由技术和二层交换看起来有点相似,其实路由和交换之间的主要区别就是交换发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层。这一区别决定了路由和交换在传送数据的过程中需要使用不同的控制信息,所以两者实现各自功能的方式是不同的。
路由技术其实是由两项最基本的活动组成,即决定最优路径和传输数据包。其中,数据包的传输相对较为简单和直接,而路由的确定则更加复杂一些。路由算法在路由表中写入各种不同的信息,路由器会根据数据包所要到达的目的地选择最佳路径把数据包发送到可以到达该目的地的下一台路由器处。当下一台路由器接收到该数据包时,也会查看其目标地址,并使用合适的路径继续传送给后面的路由器。依次类推,直到数据包到达最终目的地。
路由器之间可以进行相互通讯,而且可以通过传送不同类型的信息维护各自的路由表,有两种不同的方式。一种是路由信息的更新,将部分或者全部的路由信息公布出去,路由器通过互相学习路由信息,就掌握了全网的拓扑结构,这一类的路由协议称为距离矢量路由协议;另一种是路由器将自己的链路状态信息进行广播,通过互相学习掌握全网的路由信息,进而计算出最佳的转发路径,这类路由协议称为链路状态路由协议。
3、三层交换技术
一个具有第三层交换功能的设备是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单的把路由器设备的硬件及软件简单地叠加在局域网交换机上。
从硬件上看,第二层交换机的接口模块都是通过高速背板/总线(速率可高达几十Gbit/s)交换数据的,在第三层交换机中,与路由器有关的第三层路由硬件模块也插接在高速背板/总线上,这种方式使得路由模块可以与需要路由的其他模块间高速的交换数据,从而突破了传统的外接路由器接口速率的限制。在软件方面,第三层交换机也有重大的举措,它将传统的基于软件的路由器软件进行了界定,其做法是:
² 对于数据包的转发:如IP/IPX包的转发,这些规律的过程通过硬件得以高速实现。
² 对于第三层路由软件:如路由信息的更新、路由表维护、路由计算、路由的确定等功能,用优化、高效的软件实现。
假设两个使用IP协议的机器通过第三层交换机进行通信的过程,如下所示:
使用IP的设备A------------------------三层交换机------------------------使用IP的设备B
比如A要给B发送数据,已知目的IP,那么A就用子网掩码取得网络地址,判断目的IP是否与自己在同一网段。
如果在同一网段,但不知道转发数据所需的MAC地址,A就发送一个ARP请求,B返回其MAC地址,A用此MAC封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC地址表,将数据包转发到相应的端口。
如果目的IP地址显示不是同一网段的,那么A要实现和B的通讯,在流缓存条目中没有对应MAC地址条目,就将第一个正常数据包发向一个缺省网关,这个缺省网关一般在操作系统中已经设好,实际上对应第三层交换机的第三层交换模块。所以当发送机器A对“缺省网关”的IP地址广播出一个ARP请求时,若第三层交换模块在以往的通信过程中已得到目的机器C的MAC地址,则向发送机器A回复C的MAC地址;否则第三层交换模块根据路由信息向目的机器广播一个ARP请求,目的机器C得到此ARP请示后向第三层交换模块回复其MAC地址,第三层交换模块保存此地址并回复给发送机器A,同时将B站的MAC地址发送到二层交换引擎的MAC地址表中,这样就确立了主机A与B的MAC地址及转发端口的对应关系,并记录进流缓存条目表。
从这以后,当A向B发送的数据包便全部交给二层交换处理,信息得以高速交换,这就通常所说的一次路由多次转发。由于仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此三层交换机的速度很快,接近二层交换机的速度,同时比相同路由器的价格低很多。
4、三种技术的对比
可以看出,二层交换机主要用在小型局域网中,机器数量在二、三十台以下,这样的网络环境下,广播包影响不大,二层交换机的快速交换功能、多个接入端口和低谦价格为小型网络用户提供了很完善的解决方案。在这种小型网络中根本没必要引入路由功能从而增加管理的难度和费用,所以没有必要使用路由器,当然也没有必要使用三层交换机。
三层交换机是为IP设计的,接口类型简单,拥有很强二层包处理能力,所以适用于大型局域网。三层交换机的最重要的功能是加快大型局域网络内部的数据的快速转发,加入路由功能也是为这个目的服务的。如果把大型网络按照部门,地域等等因素划分成一个个小局域网,这将导致大量的网际互访,单纯的使用二层交换机不能实现网际互访;如单纯的使用路由器,由于接口数量有限和路由转发速度慢,将限制网络的速度和网络规模,采用具有路由功能的快速转发的三层交换机就成为首选。
路由器端口类型多,支持的三层协议多,路由能力强,所以适合于在大型网络之间的互连,但一般大型网络的互连端口不多,互连设备的主要功能不在于在端口之间进行快速交换,而是要选择最佳路径,进行负载分担,链路备份和最重要的与其它网络进行路由信息交换,所有这些都是路由完成的功能。在这种情况下,自然不可能使用二层交换机,但是否使用三层交换机,则视具体情况而下。影响的因素主要有网络流量、响应速度要求和投资预算等。三层交换机的最重要目的是加快大型局域网内部的数据交换,揉合进去的路由功能也是为这目的服务的,所以它的路由功能没有同一档次的专业路由器强。