路由、转发、交换的区别

网络工程 路由 交换 层2 奥西 第3层
2021-07-03 02:31:00

我觉得这三个术语经常被用作同义词,但实际上都有不同的含义。我确实看过维基百科网站,但我仍然不确定这三个的定义。

根据我的理解,路由关注的是找到一条或多条路径到目的地,并根据其目的地或前缀决定将(未知)数据包发送到何处/使用哪条路径,而不仅仅是基于表中的简单查找。这就是 IP 路由器(最短前缀路由)发生的情况。

这些简单的查找是我所理解的转发:标头/标签(参见 MPLS)/等与流表(或多个表)中的条目匹配。精确匹配告诉交换机在哪个端口输出数据包,无需进一步计算或做出决定。如果未找到匹配项,则执行默认操作或询问单独的控制器(如在 SDN 中)。由于较少的计算和专用硬件,这可能比路由更快,对吗?

交换似乎与转发非常相似,但重点是在查找表后交换结构中的硬件会发生什么。这在 OSI 级别 2(数据链路)上,而路由和转发是在级别 3(网络)上的操作?

这些直觉有什么正确/错误之处?我错过了什么重要的事情吗?IP 路由/转发之间是否存在差异(Google 返回相同的维基百科文章)?MAC层呢?

4个回答

一般而言,转发是指设备将数据报发送到到达目的地的路径中的下一个设备,交换是指将数据报从设备内的一个接口移动到另一个接口,路由是指第 3 层设备使用的过程决定如何处理第 3 层数据包。

通过以太网接口向另一台主机发送数据的主机将在线路上放置一个帧。如果下一个设备是网桥(交换机就是网桥),网桥将检查帧中的源 MAC 地址和目标 MAC 地址。网桥将使用其 MAC 地址表中的源 MAC 地址,以便它知道具有该 MAC 地址的主机连接到帧进入网桥的接口。它还将尝试在其 MAC 地址表中查找目标 MAC 地址,以查看它应该将帧切换到哪个接口如果它在它的 MAC 地址表中找到 MAC 地址,它会将切换到它的 MAC 地址表中指定的接口,否则它会将泛洪到所有其他接口,转发到接口链路另一端的设备的帧。

在接口上接收帧的路由器将从数据包中剥离该帧。然后路由器将尝试在其路由表中查找目标 IP 地址如果它没有找到匹配项,即使是默认路由,它也会丢弃数据包。如果找到一个或多个匹配项,它会将数据包切换路由表中最长匹配项的接口然后路由器将准备一个新的帧为新的接口(新的接口的链路可以或可以不使用MAC地址)的分组,并且路由器将转发包含原始包过向其目的地的下一跳接口的新的帧. 路由器使用的整个过程称为路由,但在路由器内部,它在将数据包转发到下一跳设备之前交换数据包

在我看来,转发适用于任何层的转发。帧/数据包/信元到达设备,检查报头地址并在转发表中查找该地址,做出转发决定,数据报在途中从该接口发送出去。当使用 IP 目标地址在第 3 层做出转发决定时,路由描述了此功能。交换和桥接是指在第 2 层使用目标 MAC 地址做出的转发决定。我知道对此存在一些混淆,因为我已经看到在 L3 交换机上执行的第 3 层转发称为交换。

  • 路由 -数据包由第 3 层网关(又名路由器)转发。
  • 交换 -由第 2 层交换机转发。
  • 转发 -协议数据单元由联网/联网设备转发。

术语转发用于描述在网络上移动任何协议,它决定使用哪个出口接口将数据包发送到其下一跳。

路由是在 OSI 模型的 L3 转发数据包的过程。这是基于知道目的地在哪里以及第 3 层设备应该将其发送到哪个接口。

交换是基于目标地址在 OSI 的第 2 层转发帧的过程。