找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3432

积分

0

好友

451

主题
发表于 前天 04:19 | 查看: 8| 回复: 0

什么叫路由?

路由器(英文:Router)又称网关设备(Gateway)。从专业角度讲,它是用于连接多个逻辑上分开网络的一种设备。这里的逻辑网络代表一个单独的网络或一个子网。当数据需要从一个子网传输到另一个子网时,就要依靠路由器的路由功能来完成。

因此,路由器具备判断网络地址和选择 IP 路径的能力。它能在多网络互联环境中建立灵活的连接,并用完全不同的数据分组和介质访问方法连接各种子网。路由器只接受源站或其他路由器的信息,是一种工作在 网络层 的互联设备。

简单来说,路由器用来共享网络,实现多台设备上网,无线路由器则额外提供了无线接入功能。作为一个“找路”的工具,路由器的使命就是寻找各个网络节点之间的路径。这就好比一个快递中转站,包裹会经过一个个中转站,从遥远的地方最终抵达你家附近,数据包的传输过程也是如此。

路由器工作原理比喻:快递中转站

路由器是连接两个网络的硬件设备,承担着寻路的核心功能,是网络的“大门”。因此,路由器又被称为网关设备

路由表

路由器和交换机一样,也有自己的“小本本”,这就是路由表。路由表上记载了到达各个目标网络的路径信息,通常会记录数据来源、具体的路由条目以及下一跳地址。

路由表示例:包含来源、路由条目和下一跳

你可以把路由表看作是路由器的“导航地图”。路由器只需要按照路由表的指示转发数据包即可。当然,这有个前提:路由表中必须存在能匹配数据包目的 IP 地址的路由条目。路由表会周期性更新,当网络拓扑结构发生变化时也会动态更新,因此基本不用担心“走错路”。

路由器收发数据包的流程

路由器在处理数据包时,会首先查询自己的路由表。其基本决策流程如下:

数据包处理决策流程图

如果路由表里有匹配项,路由器就会把数据包转发给对应的“下一跳”设备。如果没有找到任何匹配项,路由器则会直接丢弃这个数据包,并向源主机发送“目的地不可达”的通知。

直连、静态路由与动态路由

路由表中的条目可以通过多种方式获得,主要包括直连路由、静态路由和动态路由。

  • 直连路由:指的是与路由器直接相连的邻居网络。路由器能够自动发现并记录这些直连的网络,无需手动配置。
  • 静态路由:由网络管理员手动添加到路由器中的路径信息。这种方式配置简单明确,适合网络规模小、拓扑结构稳定的场景。但缺点也很明显:当网络拓扑变化或规模扩大时,手动配置和维护的工作量会变得非常大,容易出错。
  • 动态路由:为了应对复杂多变的网络环境,就需要引入动态路由协议(如 OSPF、BGP)。路由器之间通过运行这些协议,能够自动地学习、交换路由信息,并动态更新路由表。在大型网络中,通常会采用动态路由与静态路由相结合的方式进行部署,在保证灵活性的同时,也能对关键路径进行精确控制。

三层寻址

在讨论路由时,我们常听到“三层寻址”。为了理解它,我们可以先回顾二层寻址:

  • 二层寻址:交换机根据数据帧的 MAC 地址,在数据链路层(二层)进行寻址和转发。
  • 三层寻址:路由器根据数据包的 IP 地址,在网络层(三层)进行寻址和路径选择。

三层寻址决策流程图

路由器三层寻址流程

当一台主机想要发送数据时,它首先会判断目的地址是否和自己在同一个网段

  1. 如果在同一个网段,主机会将数据交给交换机,由交换机进行二层转发即可完成通信。

同一网段内通信拓扑图

如上图所示,PC1 要给同属网络 A 的 PC2 发送数据,这个通信过程完全在交换机 A 的协助下于二层完成。

  1. 如果不在同一个网段,主机会意识到目标不在本地,于是将数据包发送给自己的默认网关设备——也就是连接本网段的路由器(例如路由器 A)。路由器收到数据包后,会根据目的 IP 地址查询自己的路由表。如果有匹配的条目,就转发给下一跳路由器;如果没有,则丢弃。

跨网段通信拓扑图

如上图所示,PC1 要发送数据给位于网络 C 的 PC3。PC1 发现 PC3 与自己不在同一网段,于是将数据包交给路由器 A。路由器 A 查询路由表后,可能会通过路由器 B 最终将数据包转发给路由器 C,再由路由器 C 通过交换机 C 送达 PC3。

寻路原则

既然路由器负责“找路”,而网络世界往往“条条大路通罗马”,那么路由器如何选择最优路径呢?

迷宫寻路示意图

默认情况下,路由器查询路由表时遵循最长匹配原则。也就是说,它会优先选择子网掩码最长、最精确的那条路由条目。这好比寄快递,地址写得越详细(例如具体到门牌号),就越能精准投递。

其次,路由器会考虑路径的“开销”,这包括带宽、管理距离、度量值(如跳数、延迟、成本)等因素。这相当于评估走哪条路花费的时间或金钱更少。

此外,由于绝大部分通信是双向的,因此在规划路径时还需要考虑往返流量的可达性。不能只顾着“去程”有路,而“回程”却无路可走。

数据传输路径示意图

最后需要理解的是,路由查询是一个逐跳的过程。数据包前往目标网络的沿途,每一个路由器都必须拥有关于该目标网段的路由信息。简单来说,数据包每到达一个路由器,该路由器就会根据本地路由表,告诉它下一跳该去往哪里。通过这样一站站的接力,数据包最终抵达目的地。

希望这篇文章能帮助你清晰理解路由器的工作机制。如果你对网络原理有更多兴趣,欢迎在云栈社区与更多技术爱好者交流探讨。




上一篇:从零开始:使用Rust与Bevy 0.18构建3D无限公路驾驶游戏
下一篇:iPhone 18 Pro换磁吸接口?产品功能与欧盟法规双重证伪
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 10:25 , Processed in 0.794219 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表