蛮荆

网络基础: 交换机和路由器的区别

2018-01-25

前言

本文中提到的交换机指的是 “二层交换机”,路由器指的是 “三层路由器”,三层交换机 (或者带有路由功能的交换设备等) 不在本文讨论范围内。

工作层次

  • 交换机主要工作在数据链路层,主要用于组建局域网
  • 路由器工作在网络层,主要用于将交换机组建的局域网相互连接起来,或者接入互联网

有个很形象的比喻:

交换机是小区看门大爷,路由器是快递小哥。

交换机

交换机是基于以太网设计的,实现了特定网络内的 数据帧 转发。

路由器

路由器是基于 IP 设计的,实现了不同网络之间的 数据包 转发。

图片来源: 网络是怎样连接的(户根勤)

路由器在转发网络包时,需要在前面加上 Mac 头部 (将 IP 报文包装进二层数据帧),委托数据链路层去传输数据 (传输到下一个路由器)。

创建 Mac 报文头部时,从路由表中查找出下一个路由器的 IP 地址,并通过 ARP 查询出对应的 Mac 地址,然后将 Mac 地址写入 Mac 报文头部中,表示 IP 对以太网的委托只是将包传输到下一个路由器就行了。

当包到达下一个路由器后,下一个路由器又会重新委托以太网将包传输到再下一个路由器,以此类推,包最终到达 IP 目标地址。


转发依据

  • 交换机转发所依据的对象是 Mac 地址
  • 路由转发所依据的对象是 IP 地址

Mac 地址通常是硬件实现的,由网卡生产商来分配,一般情况下不可修改。

IP 地址是在软件中实现的,描述的是设备所在的网络,通常由网络管理员或系统自动分配。

转发表的维护方式

  • 交换机维护 Mac 表
  • 路由器维护路由表

交换机对 Mac 地址表的维护是数据包转发操作中的一个 (顺带的) 步骤。

路由器对路由表的维护和数据包的转发操作相互独立的,也就是说,在转发数据包的过程中不需要对路由表的内容进行维护。

对路由表进行维护的方法有几种,大体上可分为以下两类。

  1. 由人手动维护路由记录
  2. 根据路由协议机制,通过路由器之间的信息交换,由路由器自行维护路由表的记录

转发规则

  • 交换机在地址表中只匹配完全一致的记录
  • 路由器只匹配网络号部分,忽略主机号部分
  • 交换机不会校验包中的目标 Mac 地址,全部收下做转发
  • 路由器会校验包中的目标 Mac 地址是不是自己,如果是的话存入内存缓冲区,否则丢弃
  • 交换机匹配不到时广播消息
  • 路由器匹配不到时丢弃消息

如果交换机在 Mac 地址表里找不到转发端口时,会选择广播。

如果路由器在路由表中无法找到匹配的记录,会丢弃这个包,并通过 ICMP 消息 (Destination Unreachable) 告知发送方。

两者的处理机制完全不同,原因在于网络规模的大小。

交换机连接的网络最多也就是几千台设备的规模,这个规模并不大。如果只有几千台设备,遇到不知道应该转发到哪里的包,交换机可以将包发送到所有的端口上,虽然这个方法很简单粗暴,但不会引发什么问题。

然而,路由器工作的网络环境就是互联网,它的规模是远远大于以太网的,全世界所有的设备都连接在互联网上,在如此庞大的网络中,如果将不知道应该转发到哪里的包发送到整个网络上,那就会产生大量的网络包,造成网络拥塞。因此,路由器遇到不知道该转发到哪里的包,就会直接丢弃。

端口和 Mac 地址

交换机只是将数据包转发到正确的端口,它自己并不会成为数据包的 (源) 发送方、(目标) 接收方。

路由器的各个端口都具有 Mac 地址和 IP 地址,因此能够成为数据链路层/以太网的发送方和接收方。从这个意义上来说,它和计算机的网卡是一样的。当转发数据包时,首先路由器端口会接收发给自己的以太网包,然后查询转发目标,再由相应的端口作为发送方将以太网包发送出去。


附录

前文中提到了交换机和路由器的几个区别,那么两者之间有哪些相同点呢?

路由器和交换机不考虑请求包和响应包之间的关联,而是将它们作为独立的包来对待,因此请求和响应有可能通过不同的路由来传输,具体走哪条路由,是由路由器的路由表和交换机的地址表中的配置来决定的。

服务器向客户端返回的响应消息 和 客户端向服务器发送的请求消息 不一定通过相同的路由传输。

三层交换机与路由器的比较

图片来源: 图解网络硬件(三轮贤一)

传统路由器的路由选择功能、分组转发以及管理功能等均由 CP U处理,管理功能负载的增加,就会带来分组转发能力的下降。

L3 交换机改善了这一缺点,将硬件设备内部分离成两个区域,即以路由选择、管理功能为主的控制平面,和以数据转发功能为主的数据平面,从而实现了能够高速转发分组的系统架构。

图片来源: 图解网络硬件(三轮贤一)

扩展阅读

转载申请

本作品采用 知识共享署名 4.0 国际许可协议 进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,商业转载请联系作者获得授权。