交换机与路由器的分别 是什么?
从普通用户用途的角度来划分:交换机用来将一根网线变为多根,如果网络需要登录大家各自分别登录。
路由器用来将一条网络变为多条,分出的多条网络共享主线的网络带宽。
这里以普通用户视角描述,用词不准确,际情况是大部分家用路由由路由器和交换机两部分组成,交换机用于内部网络数据传输,路由器利用 NAT 转发数据与外部网络通信。
从课本上的定义 的角度来划分:交换机用于同一网络内部数据的快速传输转发决策通过查看二层头部完成转发不需要修改数据帧工作在 TCP/IP 协议的二层 —— 数据链路层工作简单,直接运用硬件处理路由器用于不一样网络间数据的跨网络传输转发决策通过查看三层头部完成转发需要修改 TTL ,IP 头部校验和需要重新计算,数据帧需要重新封装工作在 TCP/IP 协议的三层 —— 网络层工作复杂,运用软件处理// 应该说,这个定义已经很过时了,三层(多层)交换机早就已经普遍运用了,但是天知道什么原因,至少我手头的某一本课本还是这样说的。这是许多课本上的标准解答,在传统上来讲也是正确的。
由于交换机只需要查看二层数据帧 的头部即可决策转发地址,策略十分简单,可以直接通过硬件芯片实现相应功能,所以可以做到廉价高速,被大量使用在接入层。而路由器由于需要处理跨网络的连接,必须在接收到完整的 IP数据包 后才能转发数据,路由协议又比较复杂,所以只能运用软件的方式实现相应的功能,要达到高性能只能付出更高的价格。另外,由于二层转发只需要查看 帧头部 即可开始转发,也使得 (二层)交换机 有了一项独门功夫:直通转发。简单说就是只接收数据帧头部就开始转发,从而达到更高的性能。
从转发模式的角度来划分:Tips: 这里只讨论三层(多层)交换机,二层同上一条交换机硬件处理交换 (转发) 过程一次路由(寻路),多次交换(转发)路由器软件处理交换 (转发) 过程一次路由(寻路),一次交换(转发)// 据说也有纯软件转发的三层交换机,暂不讨论虽然上面写的是软/硬件的分别,实际上更多的是工作模式上的分别:三层(多层)交换机并非纯硬件工作,而是有单独的路由引擎,但是路由引擎并非一直工作,而是在第一次通信的时候通过路由引擎查询路由表,建立转发表,之后的数据不再经过路由引擎,而是通过与二层相似的交换引擎进行转发。由于工作内容简单,转发引擎可以运用专门的硬件芯片来达到廉价高性能。而路由器对每一个数据包都进行路由查询,占用大量资源,所以寻路效率较低,由于路由协议复杂,无法通过纯硬件芯片处理,造成大量数据转发时性能比不上三层(多层)交换机。
Tips: 事实上路由器方面也有相似的技术。而也正是工作模式上的不一样,造成了他们在实际使用时的一些分别:三层(多层)交换机的路由引擎较弱,相比路由器支持的路由协议有限。同样由于三层(多层)交换机的路由引擎较弱,且转发表有限,不合适复杂的多网络互联。因为并不是每一个包都会经过路由引擎,三层(多层)交换机的路由策略功能较弱。三层(多层)交换机更适合网络结构简单,交换数据量大的情景下运用(例如小型网络的汇聚层)路由器更适合复杂的多网络互联的核心交换区域。