二层交换机与三层交换机区别详解!
我们习惯说,在二层网络环境中相同vlan之间可以通信,不同vlan之间不可以通信,如果想通信必须借助三层设备,所以说三层交换机必须要做的事情是路由转发,但是二、三层交换机具体有什么区别呢?
二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机。
二层交换技术发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。具体的工作流程如下:
(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
(2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
(3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
(4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。
二层交换技术从网桥发展到VLAN(虚拟局域网),在局域网建设和改造中得到了广泛的应用。第二层交换技术是工作在OSI七层网络模型中的第二层,即数据链路层。它按照所接收到数据包的目的MAC地址来进行转发,对于网络层或者高层协议来说是透明的。它不处理网络层的IP地址,不处理高层协议的诸如TCP、UDP的端口地址,它只需要数据包的物理地址即MAC地址,数据交换是靠硬件来实现的,其速度相当快,这是二层交换的一个显著的优点。但是,它不能处理不同IP子网之间的数据交换。传统的路由器可以处理大量的跨越IP子网的数据包,但是它的转发效率比二层低,因此要想利用二层转发效率高这一优点,又要处理三层IP数据包,三层交换技术就诞生了。
三层交换(也称多层交换技术,或IP交换技术)是相对于传统交换概念而提出的。众所周知,传统的交换技术是在OSI网络标准模型中的第二层——数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发。简单地说,三层交换技术就是:二层交换技术+三层转发技术。
三层交换机就是具有部分路由器功能的交换机。
三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。三层交换技术就是二层交换技术+三层转发技术。
三层交换技术的出现,解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。
举个栗子,在上课的时候学生偷偷传纸条,当一个男生偷偷传张纸条给女生,女生这时候会干嘛?是要打开纸条查看里面写了什么内容吧!三层交换机在接收到目的mac地址是自己的时候要做的事情也是向上层解封装,查看三层目的IP地址,然后呢?
女生打开,上面写着“请将纸条递给下一个人”,三层交换机也是这样一看原来目的IP地址不是自己,这才执行路由层面的转发;所以说交换机在执行要不要三层转发,是在目的mac是自己的同时,IP地址是不是自己,如果是自己那还转发个啥来,就不用转发了。
交换机在判断出目的IP不是自己的时候是不是一定就去查看路由表呢 ?不是,这个就是交换机的关键所在了,交换机此时不会查看路由表,不会查看arp表,不会查看mac地址表;那交换机会查看什么表?
交换机此时会查看自己集成在ASIC硬件转发卡中的硬件转发表,那这个硬件转发表都包含了什么内容呢?
当第一个包过来的时候,发现硬件转发表并没有什么表项,所以此时必须将数据包交由路由进程处理,一旦交由cpu处理,必然会消耗cpu资源,此时会查看路由表,然后发现此IP地址个自己是直连的,此时就去查看arp找出此地址对应的mac地址,就可以转发出去了在决定转发出去过程中,交换机至少会做三件事情,一,修改IP包头的ttl值;二,修改原mac地址,改成自己出接口mac地址;三,建立交换机硬件转发表,包括目的IP地址,目的IP地址(下一跳)对应的mac地址,mac地址对应的vlan,以及对应的端口(这个每个厂家有自己的理解)这样当一下包过来的时候,交换机就会查看硬件转发表直接转发而不会在经过路由表的查询了,也即是交换机的一次路由,多次交换机原理。
总之,二层交换机用于小型的局域网络。这个就不用多言了,在小型局域网中,广播包影响不大,二层交换机的快速交换功能、多个接入端口和低廉价格为小型网络用户提供了很完善的解决方案。
而三层交换机的最重要的功能是加快大型局域网络内部的数据的快速转发,加入路由功能也是为这个目的服务的。如果把大型网络按照部门,地域等等因素划分成一个个小局域网,这将导致大量的网际互访,单纯的使用二层交换机不能实现网际互访;如单纯的使用路由器,由于接口数量有限和路由转发速度慢,将限制网络的速度和网络规模,采用具有路由功能的快速转发的三层交换机就成为首选。
一般来说,在内网数据流量大,要求快速转发响应的网络中,如全部由三层交换机来做这个工作,会造成三层交换机负担过重,响应速度受影响,将网间的路由交由路由器去完成,充分发挥不同设备的优点,不失为一种好的组网策略,当然,前提是你的腰包很鼓,不然就退而求其次,让三层交换机也兼为网际互连。
传统交换技术是在OSI网络标准模型第二层--数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。
为什么三层交换机无法替代路由器?
链接:https://www.zhihu.com/question/20843778/answer/20813852
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
从硬件上说,三层交换机是通过交换芯片转发数据的,交换芯片是带有三层转发能力的,也就是路由的功能。
路由器则是通过CPU转发的,所有的报文的重新计算和转发任务是在CPU的计算下完成的。
三层交换机无法取代路由器是因为以下几个致命的弱点:
1、交换机(下面所有的交换机都指的是三层交换机)网络打通速度很慢,有一个专业的说法叫做线速转发,比如交换机的带宽是1Gbps,带在没有达到线速转发之前,速度是很低的,并且达到线速转发的时间可能要很久,以IPv6为例,有些设备需要十几分钟才能达到线速转发,而路由器是不需要消耗这么久的,路由器的路由表计算是走CPU的,任何时间都是线速转发的(当然如果CPU负载太重则例外)——这是交换机最致命的弱点。
2、交换机支持的网络类型很少,串行链路,ATM,这些口一般交换机支持的都很差,有些大型交换机会用专门的一个板卡提供这些网络接口的支持。交换机通常支持的都是以太网光口或者电口。路由器则不一样,一个核心路由器通常是带一堆各种各样的接口,反而是以太网口不太多。虽然如今大部分线路都改造成光纤了,但在ISP那边,串行链路还是很多的,所以路由器就排上用场了。
3、路由器可以改造成网关或者防火墙——带日志记录的网关,因为所有报文都走CPU,所以CPU有能力记录下所有的报文,但交换机的交换芯片则没有这个能力——因为交换芯片太快了。路由器的这个特点,也用在了很多企业、ISP的出口网络上,以及伟大的GFW也是工作在路由器这个层面上的。
4、三层交换机的转发速度很快,但设计复杂,不管是交换机还是路由器,都有一个控制CPU,路由器里转发CPU跟控制CPU通常是分开的。对于所有发往路由器或者交换机自身的报文,走控制CPU。对于路由器来说,如果加防火墙之类的,都是软件实现的,代码可以是一套。但对于三层交换机则不同,三层交换机的交换芯片控制的防火墙等ACL控制(访问控制列表)是分成两套代码的,一套是控制走芯片转发的部分,另一套是控制走控制CPU的部分,实际上是多出了一套代码。
5、交换机抗网络震荡能力很弱,前面说了线速转发的问题,同样,网络一旦开始震荡,路由表不稳定的时候,交换机就又不能线速转发了,而路由器则基本不受影响。
因为上面几个原因,路由器是不可替代的。但确实路由器已经被边缘化了,路由器在核心网络里,一般都充当着出口和核心转发这一块,接入层和汇聚层基本上都被三层交换机所取代了。