路由器 vs 交换机

背景

交换机和路由器大家应该都听说过,大部分也用过,但是它俩有啥联系,又有啥区别?

P.S. 最近看《OSTEP》看的脑子有点短路,趁着周末看点网络的东西。

路由器

路由器(英语:Router,又称路径器)是一种电讯网络设备,提供路由与转送两种重要机制,可以决定封包从来源端到目的端所经过的路由路径(host 到 host 之间的传输路径),这个过程称为路由;将路由器输入端的封包移送至适当的路由器输出端(在路由器内部进行),这称为转送。路由工作在OSI模型的第三层——即网络层,例如网际协议(IP)。

路由器主要具有两个职能:

  • 路由器确保信息不到达不需要到达的位置
  • 路由器确保信息到达所需要的正确目的地

在执行以上这两种职能中,路由器连接两个网络,将信息从一个网络传送至另一个网络。在某些情况下,还执行两个网络间的多种协议的翻译职能。此外它还确保网络之间通信路由的相互独立,预防其中一个网络上的多余流量溢出到另一个网络上。该过程称为路由选择。

路由选择是 OSI 模型第三层(网络层的)一个功能。路由器通过网络层协议头如 IP 头(包含源地址和目的地址)和路由表,选择转发数据包的最佳路径。为选择任意两个主机间的最佳路由,实现路由器间的通信,通常需要应用如 ICMP 这样的路由选择协议。

交换机

网络交换机(Network switch)是一种网络数据转发设备,能够对数据包进行高速的“交换”。二层交换机工作于OSI参考模型的第二层,即数据链路层。

交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张 MAC 表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。交换机对数据包的转发是建立在MAC (Media Access Control) 地址–物理地址基础之上的,对于IP 网络协议来说,它是透明的,即交换机在转发数据包时,不知道也无须知道信源机和信宿机的IP 地址,只需知其物理地址即MAC 地址。

交换机在操作过程当中会不断的收集资料去建立它本身的一个地址表,这个表相当简单,它说明了某个MAC 地址是在哪个端口上被发现的,所以当交换机收到一个TCP/IP 封包时,它便会看一下该数据包的目的 MAC 地址,核对一下自己的地址表以确认应该从哪个端口把数据包发出去。由于这个过程比较简单,加上这功能由一崭新硬件进行——ASIC (Application Specific Integrated Circuit) ,因此速度相当快,一般只需几十微秒,交换机便可决定一个IP 封包该往那里送。

值得一提的是:万一交换机收到一个不认识的封包,就是说如果目的地MAC 地址不能在地址表中找到时,交换机会把IP 封包”扩散”出去,即把它从每一个端口中送出去,就如交换机在处理一个收到的广播封包时一样。

二层交换机的弱点正是它处理广播封包的手法不太有效,比方说,当一个交换机收到一个从TCP/IP 工作站上发出来的广播封包时,他便会把该封包传到所有其他端口去,哪怕有些端口上连的是IPX 或DECnet 工作站。这样一来,非TCP/IP 节点的带宽便会受到负面的影响,就算同样的TCP/IP 节点,如果他们的子网跟发送那个广播封包的工作站的子网相同,那么他们也会无原无故地收到一些与他们毫不相干的网络广播,整个网络的效率因此会大打折扣。

区别

路由器 交换机
OSI 网络层 数据链路层
数据传输地址 IP 地址 MAC 地址
使用范围 局域网/广域网 局域网
存储信息 路由表 MAC 地址与端口映射表
传输方式 全双工 全双工
隔离方式 划分子网 划分 VLAN
具体用途 连接多个网络 连接一个网络内的多个设备

那么路由器和交换机可以互相替换么?

路由器通常带有 WAN 口和多个 LAN 口,其中多个 LAN 口可以看作一个小型的交换机,只是端口数量较少。二层交换机无法替换路由器,因为不具有路由转发的功能。但是现在存在三层交换机,可以实现路由器中的路由转发功能,甚至看到部分三层交换机已经支持了 NAT 功能,那么当不同 VLAN 之间的网络设备想要进行通信,就可以直接通过三层交换机找到对应路由,交换机学习到了 MAC 地址与 IP 地址的对应关系后,后续直接通过二层联通,不需要经过查找路由这一步了。

参考链接