Data Communication Computer Network 简明教程
Network Layer Routing
当设备访问目标时具有多路径时,会优先选择一条路径。这个选择过程称为路由。路由由特殊网络设备(路由器)完成,也可以通过软件流程完成。基于软件的路由器功能有限,适用范围较小。
路由器始终配置一些默认路由。默认路由告诉路由器如果没有找到通往特定目的地的路由,则将数据包转发到何处。如果有多条路径可以到达同一目的地,路由器可以根据以下信息做出决策:
-
Hop Count
-
Bandwidth
-
Metric
-
Prefix-length
-
Delay
路由可以通过静态配置或动态学习。可以配置一条路由优先于其他路由。
Unicast routing
互联网和内联网上大多数流量(称为单播数据或单播流量)都使用指定目的地发送。通过互联网路由单播数据称为单播路由。这是最简单的路由形式,因为目的地已知。因此,路由器只需查找路由表并将数据包转发到下一跳即可。
Broadcast routing
默认情况下,广播数据包不会在任何网络上的路由器路由和转发。路由器创建广播域。但是,可以在某些特殊情况下对其进行配置以转发广播。广播消息会发送给网络中的所有设备。
广播路由可以通过两种方式(算法)进行:
-
路由器创建数据数据包,然后将其逐个发送到每个主机。在这种情况下,路由器用不同的目标地址创建单个数据包的多个副本。所有数据包都作为单播发送,但由于已发送到所有设备,它模拟路由器广播一样。此方法会消耗大量带宽,并且路由器必须存储每个节点的目标地址。
-
其次,当路由器接收到要广播的数据包时,它会简单地将这些数据包泛洪到所有接口。所有路由器都以相同的方式配置。这种方法对路由器的 CPU 压力较小,但可能会导致从对等路由器接收到的数据包重复的问题。反向路径转发是一种路由器可以提前了解其应该从中接收广播的前任的技术。这种技术用于检测和丢弃重复项。
Multicast Routing
多播路由是广播路由的一种特殊情况,具有重要的差异和挑战。在广播路由中,数据包会发送到所有节点,即使它们不需要。但在多播路由中,数据只会发送到希望接收数据包的节点。
路由器必须知道希望接收多播数据包(或流)的节点,然后才能进行转发。多播路由使用生成树协议来避免循环。
多播路由还使用反向路径转发技术来检测和丢弃重复项和循环。
Anycast Routing
Anycast 数据包转发是一种机制,其中多个主机可以具有相同的逻辑地址。当收到发往此逻辑地址的数据包时,它会发送到在路由拓扑中最近的主机。
Anycast 路由是借助 DNS 服务器完成的。每当收到 Anycast 数据包时,会询问 DNS 将其发送到何处。DNS 提供的是其上配置的最近的 IP 地址。
Multicast Routing Protocols
单播路由协议使用图形,而多播路由协议使用树,即生成树来避免循环。最佳树称为最短路径生成树。
-
DVMRP - 距离矢量多播路由协议
-
MOSPF - 多播最早打开最短路径
-
CBT - 基于核心的树
-
PIM - 跨协议组播
跨协议组播现在普遍使用。它有两种方式:
-
PIM Dense Mode 此模式使用基于源的树。在诸如 LAN 这样的稠密环境中使用。
-
PIM Sparse Mode 此模式使用共享树。在诸如 WAN 这样的稀疏环境中使用。