前言

数据交换技术的发展,是伴随着互联网的不断发展和广泛应用自然而然不断向前推进的——从最初简单的电路交换发展到二层交换,又从二层交换逐渐发展到今天比较成熟的三层交换,也必将随着网络技术的发展而推进到高层交换。

我们常常听说三层交换机,也知道三层交换机的使用对网络管理、提高网络速度等有很大帮助。那么究竟三层交换技术是如何能够“起作用”的呢?本文将重点谈谈三层交换技术的原理,在谈三层交换技术之前,想先简单介绍一下二层交换技术。

二层交换的优势和不足

二层交换技术从网桥发展到VLAN(虚拟局域网),在局域网建设和改造中得到了广泛的应用。顾名思义,二层交换技术就是指交换机工作在OSI七层网络模型中的第二层,即数据链路层。它按照所接收到数据包的目的MAC地址来进行转发,对于网络层或者更高层协议来说是透明的。它不处理网络层的IP地址,不处理高层协议的诸如TCP、UDP的端口地址,它只需要数据包的物理地址即MAC地址,数据交换是靠硬件来实现的,其速度相当快,这是二层交换的一个显著的优点。但是,二层交换不能处理不同IP子网之间的数据交换。

上图:标准OSI参考模型

三层交换技术的诞生

与此相反的是,传统的路由器可以处理大量的跨越IP子网的数据包,但是转发效率远比二层低。那么是不是能产生一种技术,既能够利用二层转发效率高这一优点,又能够处理三层IP数据包呢?于是在这种需求下,三层交换技术诞生了。

三层交换技术(也称多层交换技术,或IP交换技术)是相对于传统交换概念而提出的。众所周知,传统的交换技术是在OSI网络标准模型中的第二层——数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发。简单地说,三层交换技术就是将路由技术与交换技术合二为一的技术,也即:二层交换技术+三层转发技术。
三层交换原理

前面已经提到,第三层交换工作在OSI七层网络模型中的第三层即网络层。它是利用第三层协议中的IP包的报头信息来对后续数据业务流进行标记,具有同一标记的数据流的后续报文被交换到第二层数据链路层,从而打通源IP地址和目的IP地址之间的一条通路。这条通路仅经过第二层链路层。有了这条通路,三层交换机就没有必要每次将接收到的数据包进行拆包来判断路由,而是直接将数据包进行转发,将数据流进行交换。

用实例说明三层交换过程

为了便于理解,下面举个实际的例子来说明三层交换过程是如何进行的:

假设两个使用IP协议的站点A、B要通过一个三层交换机进行通信,站点A为发送站点,站点B为目的站点。

Step 1:A在开始发送时,把自己的IP地址与B的IP地址进行比较,判断B是否与自己在同一子网内。

Step 2:若B与A在同一子网内,则进行二层的转发;若不在同一子网内,A需要向“缺省网关”发出ARP(地址解析)封包。值得注意的是,不同于二层交换机的“缺省网关”是路由器,这里的“缺省网关”的IP地址其实是三层交换机的三层交换模块。

Step 3:当A对“缺省网关”的IP地址广播出一个ARP请求时,如果三层交换模块在以前的通信过程中已经知道B站的MAC地址,则向发送站A回复B的MAC地址。

Step 4: 如果三层交换模块未和B站点通信过,不知B的MAC地址,则会根据路由信息向B广播一个ARP请求,B得到此ARP请求后向三层交换模块回复其MAC地址,三层交换模块保存此地址并回复给A,同时将B的MAC地址发送到二层交换引擎的MAC地址表中。

Step 5:此后,A向B发送的全部数据包通通交给二层交换来处理,无需再通过三层进行路由,从而实现高速数据交换。

以上例子可以看出,数据通信仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此三层交换机的速度很快,基本接近二层交换机的转发速度。

三层交换技术的作用

三层交换技术的出现,解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,从而缓解了由于路由器负担过重而造成的网络瓶颈问题。