路由器和交换机
二层路由器和交换机
首先两者处于不同层,路由器在网络层,而二层交换机在数据链路层。
路由器主要做的,是不同网络之间的通信,一个网段的主机想要与另一个网段的主机通信,必须走路由器进行路由转发,交换机是支持两台在同一局域网进行通信的主机。
交换机不会共享网络带宽,路由器如果有多条网线相连,则共享主线的网络带宽。
交换机的转发决策是通过二层头部的mac地址,直接通过硬件芯片实现相应功能,廉价高速,被大量使用,转发时不需要改变数据帧;路由器由于是跨网段,必须接受到完整的ip数据包后才能转发数据,通过三层头部的ip地址进行决策,转发时需要修改三层的TTL,IP头部校验等,数据帧需要重新封装,通过软件处理,价格会比较昂贵。
交换机能做的,路由器都能做。交换机不能分割广播域,路由可以。
路由器提供了防火墙的服务。路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。
我们家用的路由器其实是由路由器和交换机两部分组成,交换机用于内部网络数据传输,举个例子就是同一wifi下两个手机之间进行数据通信,就走交换机;路由器是与外部网络进行通信的枢纽,通过NAT进行内部IP转外部IP进行通信,交换机是不支持NAT转换的。下图中:
做一个比喻:
路由器就像出租车,上车后司机需要知道你的目的地(IP地址),然后司机来负责选择线路到达目的地。到达目的地的线路可能会根据实际交通情况有所变化。
交换机就像地铁,线路是固定的,只要你选择了目的地(MAC地址),你就只能乘坐某条固定线路,地铁司机也不会问你去哪。
再做个比喻:
路由器是小邮局,就一个地址(IP),负责一个地方的收发(个人电脑,某个服务器,所以你家上网要这个东西),交换机是省里的大邮政中心,负责由一个地址给各个小地方的联系。简单的说路由器专管入网,交换机只管配送,路由路由就是给你找路让你上网的,交换机只负责开门,交换机上面要没有路由你是上不了网的。
为什么三层交换机无法替代路由器?
这么说吧,A要把包裹送给C,但是A不知道C在哪里,于是A去询问B,B是管理员,他通过一系列操作查询找到了C的地址,A要一直向C送东西,于是B帮他们铺了一条传送带,以后不用问B直接发送就行;如果A又想给D发包裹了,需要在找B,然后B再去进行一系列操作,然后再铺设传送带。这就是三层交换机的作用,传送带相当于交换转发芯片,B相当于控制CPU,只要一次找到了以后它就不管了交给传送带来做。
对于路由器,同样是A想发给C发包裹,他不知道地址于是去找B,这个B能力很强聪明手巧,B说我可以给你找到C送给他,另外我还能帮你再包装一下美化一下上个保险啥的,于是A每次发包裹都找到B去做,B相当于路由器的CPU,路由器所有的数据转发都走CPU。
综上可见,在进行大量的传送时使用“传送带”的三层交换机显然更快也更省时省力,但是一旦遇上复杂的网络情况,比如C的地址到处变,A还要给EFGHIJ…等等地方发送时三层交换机的B就忙不过来了,它本身就不怎么擅长找路,还要不断拆装传动带,很快就手忙脚乱了;这种情况下对路由器的B而言不过是送包裹任务量大了一点儿,他还是走正常的流程,找路然后送过去,而且它本身找路的能力就非常强,只是多跑几趟。反之如果A只是固定给C、D们送东西,不过每次都是成吨的送,对于三层交换机的传送带而言无所谓,都给范厨师装上走你┏ (゜ω゜)=☞,但是路由器的B可累坏了,很快就完蛋了。
简言之,三层交换机就像是铁路,运量大但是灵活性差,太偏僻的地方送起来有难度;路由器就像汽车,运量小但是再偏僻再难找的地方都能送到。
感谢知乎玩命快客的回答。
IP地址和MAC地址
网络层协议是IP,底层协议是以太网,在局域网的范围内,通过ARP来将IP和MAC地址对应起来。在主机中,并不是”MAC地址表中储存IP地址”,而是“ARP表中存储局域网内IP地址和MAC地址的对应关系”
传统交换机只处理以太网报文,完全不看IP层的内容。每次主机发送以太网帧,源地址填写自己的MAC地址,目的地址填写对端的MAC地址或者广播地址。交换机每次收到以太网帧,就在MAC地址表中记录这个帧的源MAC地址和收到这个帧的端口,这叫做MAC地址学习,然后再看这个帧的目的MAC地址,如果在MAC地址表中找到,就发给对应的端口,否则广播。
路由器则不同,它通过收到包的IP地址,查找路由表来决定转发到哪个端口。
IP地址是地域相关的,多个IP地址可以汇聚表示,而MAC地址是地域无关的难以汇聚,所以大规模网络只能使用三层路由组网。