路由器与交换机的区别是什么?


一则或许对你有用的小广告

欢迎加入小哈的星球,你将获得:专属的实战项目(4个项目都能学) / 1v1 提问 / 简历修改 / Java 学习路线 / 社群讨论 / 学习打卡 / 每月赠书

  • 《Spring AI 项目实战(问答机器人、RAG 智能客服、联网搜索)》已完结,基于 Spring AI + Spring Boot 3.x + JDK 21...查看介绍

  • 《从零手撸:仿小红书(微服务架构)》 已完结,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...查看介绍;演示链接:http://116.62.199.48:7070/

  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接:http://116.62.199.48/

  • 新开坑项目:《从零手撸:秒杀系统高并发优化实战》 正在更新中...,查看介绍

截止目前,星球内专栏累计输出 150w+ 字,讲解图 5110+ 张,还在持续爆肝中.. 后续还会上新更多项目,已有 4700+ 小伙伴加入学习,欢迎点击围观

面试考察点

  1. 网络分层理解:面试官不仅仅是想知道 "交换机是二层的、路由器是三层的" 这个结论,更是想确认你是否理解 OSI 模型中每一层的职责,以及不同设备为什么工作在不同层。

  2. 寻址机制区分:考察你是否清楚 MAC 地址和 IP 地址的本质区别,以及交换机基于 MAC 地址转发、路由器基于 IP 地址转发背后的逻辑。

  3. 实际组网能力:看你能否把这些理论知识落地到真实网络架构中,比如一个企业网络是怎么用交换机和路由器搭建起来的。

核心答案

先说最核心的一句话:交换机负责 "局域网内部通信",路由器负责 "跨网络通信"

它们最本质的区别在于工作的网络层次和寻址方式不同:

对比维度 交换机(Switch) 路由器(Router)
工作层次 数据链路层(第二层) 网络层(第三层)
寻址依据 MAC 地址(物理地址) IP 地址(逻辑地址)
转发设备 根据 MAC 地址表转发 根据路由表转发
连接范围 同一局域网(同一网段) 连接不同网络(跨网段)
广播域 不隔离广播域(同一 VLAN 除外) 隔离广播域
处理速度 快(硬件转发) 相对较慢(需要解析网络层头部)
NAT 功能 不支持 支持(家用路由器的核心功能)
典型场景 企业内网、机房内部 家庭上网、跨网段互联

上图画出了交换机和路由器在典型网络中的位置关系:

  • 交换机位于局域网内部,连接同一网段内的所有设备(PC1、PC2、PC3 在交换机 A 下面)。同一交换机下的设备互相通信,交换机根据 MAC 地址表把数据帧精确地送到目标端口,不需要经过路由器。

  • 路由器位于不同网络之间,当局域网 1 的 PC1 要和局域网 2 的 PC4 通信时,数据帧必须先到路由器,路由器根据 IP 地址查路由表,决定往哪个方向转发。

  • 广播域的边界就是路由器。交换机 A 下面的 PC1 发广播,PC2 和 PC3 都能收到,但这个广播到不了交换机 B 那边的 PC4,因为路由器会把广播拦住。

深度解析

一、交换机的工作原理

交换机的核心就是一张 MAC 地址表(也叫 CAM 表),记录了 "MAC 地址 → 端口号" 的映射关系。

转发逻辑很简单:

  1. 交换机从某个端口收到一个数据帧,读取源 MAC 地址,记下来:"这个 MAC 在这个端口",这就是自学习
  2. 读取目标 MAC 地址,查表:
    • 找到了 → 从对应端口转发出去(单播
    • 没找到 → 向所有端口广播(泛洪
  3. 目标设备收到后回复,交换机又学到了新条目

所以交换机是 "边用边学" 的,刚启动的时候 MAC 地址表是空的,工作一段时间后就建立起来了。

交换机不隔离广播域这件事,很多面试者会搞混。默认情况下,交换机所有端口都在同一个广播域里。要想隔离,需要划分 VLAN(虚拟局域网),不同 VLAN 之间通信必须经过路由器或者三层交换机。

二、路由器的工作原理

路由器的核心是路由表,记录了 "目标网段 → 下一跳地址 → 出接口" 的映射。

路由表的生成方式有两种:

  • 直连路由:路由器自己接口上配置的网段,自动生成
  • 静态路由:管理员手动配置
  • 动态路由:通过路由协议(OSPF、BGP 等)自动学习和更新

转发过程:

  1. 收到数据包,解析出目标 IP 地址
  2. 用目标 IP 和路由表中的每条子网掩码做 "与" 运算,找到匹配的条目
  3. 匹配到了 → 转发到下一跳;没匹配 → 丢包或走默认路由
  4. 每经过一个路由器,TTL 减 1,TTL 为 0 时丢包

三、为什么不能只用交换机或只用路由器?

这个问题面试官偶尔会追问,答案其实很直觉:

只用交换机的问题:所有设备都在一个广播域里,网络稍微大一点,广播风暴就能把网络搞瘫痪。而且交换机只能识别 MAC 地址,MAC 地址没有层次结构,没法做跨网络的寻址。你总不能让交换机记住全世界所有设备的 MAC 地址吧?

只用路由器的问题:路由器每个端口都要解析网络层头部、查路由表,转发速度远不如交换机的硬件级 MAC 查找。如果局域网内部通信也走路由器,性能上划不来。

所以现实中两者是配合使用的:交换机搞定局域网内部的高速通信,路由器搞定跨网络互联和广播隔离

四、三层交换机是什么?

面试中偶尔会被问到这个概念。三层交换机 = 二层交换 + 三层路由,同一个设备既能像交换机一样基于 MAC 地址快速转发帧,又能像路由器一样基于 IP 地址做跨网段路由。

企业网络里用得很多,核心交换机基本上都是三层交换机,这样不同 VLAN 之间的通信不需要再绕到专门的路由器上去了。

面试高频追问

  1. 集线器(Hub)和交换机有什么区别?

    集线器工作在物理层,收到信号后向所有端口广播,所有设备共享带宽,是冲突域。交换机工作在数据链路层,根据 MAC 地址精准转发,每个端口独享带宽。集线器现在基本淘汰了,属于古董级设备。

  2. 家用 "路由器" 和企业路由器有什么区别?

    家用路由器其实是 "路由器 + 交换机 + 无线 AP + NAT 网关" 的多功能一体机。它内部的 LAN 口本质上就是一个小型交换机,WAN 口才做路由和 NAT。企业路由器是专门做路由的,性能强、功能纯,交换和无线由独立设备承担。

  3. VLAN 之间怎么通信?

    不同 VLAN 属于不同的广播域和子网,它们之间的通信必须经过三层设备——可以是路由器(单臂路由),也可以是三层交换机(更常见的方案)。

常见面试变体

  • "交换机和路由器分别工作在 OSI 模型的哪一层?"
  • "为什么交换机不能跨网段通信?"
  • "三层交换机和路由器有什么区别?"
  • "家用路由器到底算路由器还是交换机?"

记忆口诀

交换机管 "内",路由器管 "外"。交换机认 MAC 在二层转,路由器认 IP 在三层转。交换机不隔广播,路由器天然隔广播。记住一个场景就够:交换机连接同网段设备,路由器连接不同网段

总结

路由器和交换机的核心区别就在于工作层次不同——交换机在数据链路层基于 MAC 地址做局域网内转发,路由器在网络层基于 IP 地址做跨网络路由。面试中把这个分层关系讲清楚,再配上 MAC 地址表和路由表的对比,加上广播域隔离的理解,这道题就稳了。