计算机网络 - 路由
-
简述
当一个设备有多个路径可以到达一个目的地时,它总是通过优先选择一条路径而不是其他路径。这个选择过程称为路由。路由由称为路由器的特殊网络设备完成,也可以通过软件进程完成。基于软件的路由器功能有限,范围有限。路由器总是配置有一些默认路由。如果没有找到特定目的地的路由,默认路由会告诉路由器将数据包转发到哪里。如果存在多条到达同一目的地的路径,路由器可以根据以下信息做出决策:-
跳数
-
带宽
-
公制
-
前缀长度
-
延迟
路由可以静态配置或动态学习。可以将一条路线配置为优先于其他路线。 -
-
单播路由
Internet 和 Intranet 上的大多数流量(称为单播数据或单播流量)都是通过指定的目的地发送的。在 Internet 上路由单播数据称为单播路由。这是最简单的路由形式,因为目的地是已知的。因此,路由器只需查找路由表并将数据包转发到下一跳。 -
广播路由
缺省情况下,广播报文不被任何网络中的路由器路由转发。路由器创建广播域。但它可以配置为在某些特殊情况下转发广播。广播消息发往所有网络设备。广播路由可以通过两种方式(算法)完成:-
路由器创建一个数据包,然后将其一一发送给每个主机。在这种情况下,路由器会创建具有不同目标地址的单个数据包的多个副本。所有数据包都作为单播发送,但因为它们发送给所有数据包,所以它模拟路由器正在广播。这种方法消耗大量带宽,并且路由器必须每个节点的目标地址。
-
其次,当路由器接收到要广播的数据包时,它只是将这些数据包从所有接口中溢出。所有路由器都以相同的方式配置。这种方法在路由器的 CPU 上很容易,但可能会导致从对等路由器接收到重复数据包的问题。反向路径转发是一种技术,在该技术中路由器预先知道它的前身应该从哪里接收广播。该技术用于检测和丢弃重复项。
-
-
组播路由
组播路由是广播路由的特例,具有显着性差异和挑战。在广播路由中,数据包被发送到所有节点,即使它们不想要它。但是在多播路由中,数据只发送到想要接收数据包的节点。路由器必须知道有节点希望接收多播数据包(或流),然后只有它应该转发。组播路由使用生成树协议来避免循环。组播路由还使用反向路径转发技术,以检测和丢弃重复和循环。 -
任播路由
Anycast 数据包转发是一种机制,其中多个主机可以具有相同的逻辑地址。当接收到发往该逻辑地址的数据包时,将其发送到路由拓扑中最近的主机。任播路由是在 DNS 服务器的帮助下完成的。每当接收到任播数据包时,都会通过 DNS 询问将其发送到何处。DNS 提供的 IP 地址是其上配置的最近 IP。 -
单播路由协议
有两种路由协议可用于路由单播数据包:-
距离矢量路由协议
距离向量是一个简单的路由协议,它根据源和目标之间的跳数进行路由决策。跳数较少的路由被认为是最佳路由。每个路由器都将其设置的最佳路由通告给其他路由器。最终,所有路由器都根据其对等路由器的通告建立自己的网络拓扑,例如路由信息协议 (RIP)。 -
链路状态路由协议
链路状态协议是比距离向量稍微复杂的协议。它考虑了网络中所有路由器的链路状态。这种技术有助于路由构建整个网络的通用图。所有路由器然后为路由目的计算它们的最佳路径。例如,开放最短路径优先 (OSPF) 和中间系统到中间系统 (ISIS)。
-
-
组播路由协议
单播路由协议使用图,而多播路由协议使用树,即生成树来避免循环。最优树称为最短路径生成树。-
DVMRP - 距离矢量组播路由协议
-
MOSPF - 组播开放最短路径优先
-
CBT - 基于核心的树
-
PIM - 独立于协议的组播
协议无关组播现在很常用。它有两种口味:-
PIM Dense Mode此模式使用基于源的树。用于局域网等密集环境。
-
PIM Sparse Mode此模式使用共享树。用于广域网等稀疏环境。
-
-
路由算法
路由算法如下:洪水
泛洪是最简单的方法包转发。收到数据包后,路由器会将其发送到除接收数据包的接口之外的所有接口。这给网络造成了太大的负担,并且大量重复的数据包在网络中徘徊。生存时间 (TTL) 可用于避免数据包的无限循环。存在另一种泛洪方法,称为选择性泛洪,以减少网络上的开销。在这种方法中,路由器不会在所有接口上泛洪,而是在选择性的接口上泛洪。最短路径
网络中的路由决策,大多是基于源和目的地之间的成本。跳数在这里起着重要作用。最短路径是一种使用各种算法来确定跳数最少的路径的技术。常见的最短路径算法有:-
Dijkstra 算法
-
Bellman Ford 算法
-
Floyd Warshall 算法
-