在 OSI 模型中,数据链路层负责将「帧」的数据从一个连接点传输到另一个。相比之下,网络层的主要任务是确保源数据包能传输到目标接收方,这使网络层成为端到端数据传输过程中的基础层级。当一台主机需要发送数据包时,它首先将数据包传输至距离最近的路由器。这个路由器可能位于同一个局域网内,也可能在某条特定的点到点链路上。无论它在哪里,数据到达路由器后,该路由器会对数据进行较验,然后将数据包转发至下一个目标路由器,直至最终抵达目标主机。为了简化理解,我们可以将路由器视为与主机类似的设备。模拟数据传输过程每个路由器都维护着一个内部表,这个表针对特定的目标地址应将数据包发送到哪条线路,这个内部表通常由目标地址和对应的出口线路两部分组成。
假设,我们传输一条长消息,我们将该消息分解成四个数据包:数据包1、数据包 2、数据包 3 和数据包 4。这些数据包按顺序发送至路由器A,根据路由器 A 的内部表,数据包沿着通往 C 的链路转发。数据包 1 首先被路由至 E,然后转发至 F,并最终通过内部局域网到达目标主机,数据包2和数据包3也经过了类似的路径。然而,当涉及到数据包 4 时,如果路由器 A 检测到 ACE 路径存在阻塞,它便会更新其路由表以选择一个可用的传输路径。这个路由表的管理和选择过程,并决定最佳的数据传输路径,被称为「路由算法」。路由器内部同时运行两个核心进程:一个是负责数据包的处理和转发,这称为「转发」;另一个则是负责路由表的生成和更新,为路由算法提供决策,而这个进程便是路由算法发挥作用的地方。路由最短路径确定数据传输的最佳路由路径是一个复杂的任务。一种测量路径长度的方法是「跳数」,但除此之外,还存在多种其他维度来评估和标识路径的效率。一般情况下,通过距离、带宽、平均流量、通信成本、平均延迟等因素。