路由器和交换机的不同之处有哪些?

关注者
1,121
被浏览
1,363,089
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

这个问题本身并不是很准确,实际中,按照不同的划分方式有不同的理解。


==== 从 普通用户用途 的角度来划分:

  • 交换机用来将一根网线变为多根,如果网络需要登录大家各自分别登录。
  • 路由器用来将一条网络变为多条,分出的多条网络共享主线的网络带宽。

// 这里以普通用户视角描述,用词不准确,谢绝打脸

实际情况是大部分家用路由由路由器和交换机两部分组成,交换机用于内部网络数据传输,路由器利用 NAT 转发数据与外部网络通信。




==== 从 课本上的定义 的角度来划分:

  • 交换机
    • 用于同一网络内部数据的快速传输
    • 转发决策通过查看二层头部完成
    • 转发不需要修改数据帧
    • 工作在 TCP/IP 协议的二层 —— 数据链路层
    • 工作简单,直接使用硬件处理
  • 路由器
    • 用于不同网络间数据的跨网络传输
    • 转发决策通过查看三层头部完成
    • 转发需要修改 TTL ,IP 头部校验和需要重新计算,数据帧需要重新封装
    • 工作在 TCP/IP 协议的三层 —— 网络层
    • 工作复杂,使用软件处理

// 应该说,这个定义已经很过时了,三层(多层)交换机早就已经普遍使用了,但是天知道什么原因,至少我手头的某一本课本还是这样说的。


这是许多课本上的标准解答,在传统上来讲也是正确的。

  • 由于交换机只需要查看 二层数据帧 的头部即可决策转发地址,策略十分简单,可以直接通过硬件芯片实现相应功能,所以可以做到廉价高速,被大量应用在接入层。
  • 而路由器由于需要处理跨网络的连接,必须在接收到完整的 IP数据包 后才能转发数据,路由协议又比较复杂,所以只能使用软件的方式实现相应的功能,要达到高性能只能付出更高的价格。

另外,由于二层转发只需要查看 帧头部 即可开始转发,也使得 (二层)交换机 有了一项独门功夫:直通转发。简单说就是只接收数据帧头部就开始转发,从而达到更高的性能。




==== 从 转发模式 的角度来划分:

Tips: 这里只讨论三层(多层)交换机,二层同上一条
  • 交换机
    • 硬件处理交换 (转发) 过程
    • 一次路由(寻路),多次交换(转发)
  • 路由器
    • 软件处理交换 (转发) 过程
    • 一次路由(寻路),一次交换(转发)

// 据说也有纯软件转发的三层交换机,暂不讨论

虽然上面写的是软/硬件的区别,实际上更多的是工作模式上的区别:

  • 三层(多层)交换机并非纯硬件工作,而是有单独的路由引擎,但是路由引擎并非一直工作,而是在第一次通信的时候通过路由引擎查询路由表,建立转发表,之后的数据不再经过路由引擎,而是通过与二层类似的交换引擎进行转发。
    • 由于工作内容简单,转发引擎可以使用专门的硬件芯片来达到廉价高性能。
  • 而路由器对每一个数据包都进行路由查询,占用大量资源,所以寻路效率较低,
    • 由于路由协议复杂,无法通过纯硬件芯片处理,造成大量数据转发时性能比不上三层(多层)交换机。
Tips: 事实上路由器方面也有类似的技术,例如思科快速转发机制(CEF-Cisco Express Forwarding)

也正是工作模式上的差异,造成了他们在实际应用时的一些区别:

  • 三层(多层)交换机的路由引擎较弱,相比路由器支持的路由协议有限。
  • 同样由于三层(多层)交换机的路由引擎较弱,且转发表有限,不适合复杂的多网络互联。
  • 因为并不是每一个包都会经过路由引擎,三层(多层)交换机的路由策略功能较弱。
  • 三层(多层)交换机更适合网络结构简单,交换数据量大的情景下使用(例如小型网络的汇聚层)
  • 路由器更适合复杂的多网络互联的核心交换区域。



==== 从 课本厚度 的角度划分:

上面那本是交换,中间那本是路由,你懂的。




参考资料:

[1] Google

[2] CCNP SWITCH 642-813 学习指南

[3] CCNP ROUTE 642-902 学习指南