网络层路由



当设备有多条路径可以到达目的地时,它总是选择一条路径,优先于其他路径。这个选择过程称为路由。路由由称为路由器的专用网络设备完成,也可以通过软件进程完成。基于软件的路由器功能和范围有限。

路由器始终配置有某些默认路由。默认路由告诉路由器,如果找不到特定目的地的路由,则将数据包转发到哪里。如果存在多条路径可以到达同一目的地,路由器可以根据以下信息做出决策:

  • 跳数

  • 带宽

  • 度量

  • 前缀长度

  • 延迟

路由可以静态配置或动态学习。可以配置一条路由优先于其他路由。

单播路由

互联网和内联网上的大部分流量,称为单播数据或单播流量,都是使用指定的目的地发送的。在互联网上传输单播数据称为单播路由。这是最简单的路由形式,因为目的地已知。因此,路由器只需查找路由表并将数据包转发到下一跳。

Unicast routing

广播路由

默认情况下,广播数据包不会由任何网络上的路由器路由和转发。路由器创建广播域。但在某些特殊情况下,可以将其配置为转发广播。广播消息的目标是所有网络设备。

广播路由可以通过两种方式(算法)完成:

  • 路由器创建数据包,然后逐个将其发送到每个主机。在这种情况下,路由器创建具有不同目标地址的单个数据包的多个副本。所有数据包都作为单播发送,但由于它们发送给所有人,因此模拟了路由器正在广播的情况。

    此方法消耗大量带宽,路由器必须知道每个节点的目标地址。

  • 其次,当路由器收到要广播的数据包时,它只需将其从所有接口中泛洪出去。所有路由器的配置方式相同。

    Broadcast routing

    此方法对路由器的 CPU 来说很容易,但可能会导致从对等路由器接收到的重复数据包的问题。

    反向路径转发是一种技术,其中路由器预先知道其应该接收广播的前驱。此技术用于检测和丢弃重复项。

组播路由

组播路由是广播路由的一种特殊情况,具有显著的差异和挑战。在广播路由中,即使节点不需要,数据包也会发送到所有节点。但在组播路由中,数据仅发送到希望接收数据包(或流)的节点。

Multicast routing

路由器必须知道存在希望接收组播数据包(或流)的节点,然后才能转发。组播路由使用生成树协议来避免循环。

组播路由也使用反向路径转发技术来检测和丢弃重复项和循环。

任播路由

任播数据包转发是一种机制,其中多个主机可以具有相同的逻辑地址。当收到发往此逻辑地址的数据包时,它将发送到路由拓扑中最接近的主机。

Anycast routing

任播路由借助 DNS 服务器完成。每当收到任播数据包时,都会向 DNS 查询发送位置。DNS 提供在其上配置的最近的 IP 地址。

单播路由协议

有两种路由协议可用于路由单播数据包:

  • 距离矢量路由协议

    距离矢量是一种简单的路由协议,它根据源和目的地之间的跳数做出路由决策。跳数较少的路由被认为是最佳路由。每个路由器都将其最佳路由集通告给其他路由器。最终,所有路由器都基于其对等路由器的通告构建其网络拓扑。

    例如,路由信息协议 (RIP)。

  • 链路状态路由协议

    链路状态协议比距离矢量协议稍微复杂一些。它考虑网络中所有路由器的链路状态。此技术帮助路由构建整个网络的公共图。然后,所有路由器都计算其用于路由目的的最佳路径。例如,开放最短路径优先 (OSPF) 和中间系统到中间系统 (ISIS)。

组播路由协议

单播路由协议使用图,而组播路由协议使用树,即生成树来避免循环。最佳树称为最短路径生成树。

  • DVMRP - 距离矢量组播路由协议

  • MOSPF - 组播开放最短路径优先

  • CBT - 基于核心的树

  • PIM - 协议无关组播

协议无关组播现在通常使用。它有两种类型:

  • PIM 稠密模式

    此模式使用基于源的树。它用于诸如 LAN 之类的稠密环境中。

  • PIM 稀疏模式

    此模式使用共享树。它用于诸如 WAN 之类的稀疏环境中。

路由算法

路由算法如下:

泛洪

泛洪是最简单的分组转发方法。当收到数据包时,路由器会将其发送到除接收数据包的接口以外的所有接口。这会给网络带来过多的负担,并且许多重复的数据包在网络中漫游。

生存时间 (TTL) 可用于避免数据包无限循环。存在另一种泛洪方法,称为选择性泛洪,以减少网络开销。在这种方法中,路由器不会在所有接口上泛洪,而只在选择的接口上泛洪。

最短路径

网络中的路由决策大多基于源和目的地之间的成本。跳数在这里起着重要作用。最短路径是一种使用各种算法来确定具有最小跳数的路径的技术。

常见的最短路径算法是:

  • 迪杰斯特拉算法

  • 贝尔曼-福特算法

  • 弗洛伊德-沃歇尔算法

广告