📜  DCN-网络层路由

📅  最后修改于: 2021-01-12 02:48:58             🧑  作者: Mango


当设备具有到达目的地的多条路径时,它总是通过优先选择一条路径来选择一条路径。该选择过程称为路由。路由由称为路由器的特殊网络设备完成,也可以通过软件过程完成。基于软件的路由器功能有限且范围有限。

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

  • 跳数

  • 带宽

  • 公制

  • 前缀长度

  • 延迟

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

单播路由

Internet和Intranet上的大多数流量(称为单播数据或单播流量)都是通过指定的目的地发送的。通过Internet路由单播数据称为单播路由。这是路由的最简单形式,因为目的地是已知的。因此,路由器仅需查找路由表并将数据包转发到下一跳。

单播路由

广播路由

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

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

  • 路由器创建一个数据包,然后将它一个一个地发送到每个主机。在这种情况下,路由器会创建具有不同目标地址的单个数据包的多个副本。所有数据包都以单播形式发送,但是由于它们是全部发送,因此模拟时就像路由器在广播一样。

    这种方法消耗大量带宽,并且路由器必须是每个节点的目标地址。

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

    广播路由

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

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

组播路由

组播路由是广播路由的特例,存在重大差异和挑战。在广播路由中,即使不希望将数据包也发送到所有节点。但是在多播路由中,数据仅发送到要接收数据包的节点。

组播路由

路由器必须知道有一些节点希望接收多播数据包(或流),然后才可以转发。组播路由工作在生成树协议中,可以避免循环。

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

任播路由

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

任播路由

任播路由是在DNS服务器的帮助下完成的。每当接收到Anycast数据包时,都会通过DNS查询将其发送到何处。 DNS提供的IP地址是在其上配置的最接近的IP。

单播路由协议

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

  • 距离矢量路由协议

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

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

  • 链路状态路由协议

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

组播路由协议

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

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

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

  • CBT-基于核心的树

  • PIM-与协议无关的组播

协议独立多播现在普遍使用。它具有两种口味:

  • PIM密集模式

    此模式使用基于源的树。它用于密集环境中,例如LAN。

  • PIM稀疏模式

    此模式使用共享树。它用于WAN等稀疏环境。

路由算法

路由算法如下:

洪水

泛洪是最简单的数据包转发方法。收到数据包后,路由器会将其发送到除接收数据包的接口以外的所有接口。这给网络带来了太多负担,并在网络中徘徊了很多重复的数据包。

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

最短路径

网络中的路由决策通常是基于源和目标之间的成本来决定的。跳数在这里起主要作用。最短路径是一种使用各种算法来确定跳数最少的路径的技术。

常见的最短路径算法是:

  • Dijkstra的算法

  • Bellman Ford算法

  • Floyd Warshall算法