Advertisement

《计算机网络自顶向下方法》笔记 (3) 网络层

阅读量:

网络层

互联网中的网络层负责处理数据报(datagram)分组的转移过程,并确保这些分组能够可靠地从一台主机传输到另一台主机以实现高效的信息传递。

网络层有两种重要的功能:

数据分组转发机制要求,在当一个数据分组到达路由器的一条输入链路时,在其上执行处理以将其移动至相应的输出链路。

路径选择问题。每当数据包按顺序从源发送到目标接收时,在网络层中必须确定这些数据包将遵循哪条路线前往其目的地。

转发是路由器完成的一个本地动作, 实现将数据分组从一个输入链路接口转移到适当的目标输出链路接口. 路由选择是一个网络范围内的过程, 在此过程中, 路由器决定如何通过完整的传输路径将数据分组从源节点传输至目的地节点.

4.2 虚电路和数据报网络
虚电路网络

在层次中采用虚电路(Virtual Circuit, VC)作为通信通道实现网络层功能。每条VC所需资源包括:源主机与目的主机之间的通信路径(即一系列链路与路由器),以及沿该路径各链路所分配的VC编号和各路由器内的转换表项信息。

在虚拟电路头端字段中包含一个VC编号标识该虚拟分组,在所有虚拟通道中可能存在不同配置的情况。这种逐链路替代表明不仅减少了VC字段长度还能简化建立虚拟通道的过程(同时避免了大量协商报文的发生)。为了正确处理数据包流量,在所有路由器中必须将接收的数据包中的VC编号与路由表中的相应信息匹配后才能将其发送出去。

在虚拟电路网络中

数据报网络

数据报网络不维护任何连接。

在数据报网络系统中,默认情况下每台路由器都配置了一个功能完善的转换表。当数据分组抵达相应路由器时,默认情况下会根据其目的IP地址与转换表的各项规则进行最长前缀匹配,并将其发送至对应最长匹配项的输出端口。

在数据报网络环境中,路由器的转表信息可能会随时更改。因此,在发送来自一个端系统的多个数据包时(即来自同一个源端系统),可能会导致这些分组沿不同路径传输(即可能存在不同的传输路径),最终可能导致这些数据包以非预期顺序到达目的地(即最终可能会以非预期顺序到达)。

4.3 路由器工作原理
在这里插入图片描述

路由转发平面:路由器的输入端口、输出端口以及交换结构通过硬件实现了路由数据的快速转发

路由控制平面: routing control plane: the routing selection algorithm (which is implemented on a routing controller unit) was realized via software to perform routing selection capability.

输入端口

输入端口在接收分组时需要依次执行以下功能:首先负责将路由器与物理链路建立连接;其次与数据链路的另一端进行交互;最后根据转表信息确定相应的输出端口以完成路由选择。

每个输入端口拥有转发表的一份影子副本,避免了集中式处理的瓶颈。

交换结构

交换结构将输入端口与输出端口相连。有三种交换方式:

  • 采用内存交换方式。基于 CPU 控制的 I/O 形式的内存交换过程。
    • 采用总线交换技术。单根共享总线每次仅能传输一个分组。
    • 采用互联网络技术进行数据传输。纵横式网络由 2N 条总线互联而成,最多可同时转发 N 个数据包(其中 N 表示最大吞吐量)。但是若来自两个不同输入端口的数据包其目的地为同一个输出端口,则其中一个数据包必须暂时搁置在输入端,在某个时刻只能通过指定的总线将一个数据包发送出去。
在这里插入图片描述
何处出现排队

分组队列可在输入和输出端口处均被建立起来,在这种情况下,在数据量不断增加的过程中路由器的缓存空间可能会逐渐减少至零。若此时没有足够的内存来接收新的数据包,则会导致数据丢失。

4.4 网络协议:因特网中的转发和编址
IPv4 数据报格式
在这里插入图片描述
  • 头部位数:4 bits
  • IPv4数据包长度可变(通过选项字段表示),需标识数据部分的实际起始位置
  • 服务类型字段:8 bits
  • 数据部分长度:16 bits
  • 包括头部和数据两部分的总长度(最大可能值为 65,535 字节),通常不超过 1,500 字节
  • 标识、标志、片偏移字段:共 32 bits用于IP地址分段标识 . 讨论内容可参考后续章节
  • 寿命(TTL)字段:8 bits,在每经过一个路由器节点时减1
  • 协议字段:8 bits用于在网络层与运输层之间建立联系 . 在网络层和运输层之间建立关联关系
  • 首部校验字段:16 bits用于计算首部的差错检测码
IP 数据报分片

一个链路层帧能携带的最大数据量被称为最大传送单元(MTU),其典型值通常为1500字节。发送方与目的地路径上的各个链路段可能会采用不同的链路层协议,并且每种协议可能包含各自的MTU值。由于MTU决定了IP数据包的最大长度,在必要时路由器必须将原始数据分割成两部分或更多较小的IP数据包,并将这些分片后的较小子数据包称为片。需要注意的是,在这种情况下每个片都会拥有自己的头部(通常包括20字节),因此实际可承载的数据量仅为MTU减去20字节的结果。

为坚持网络内核保持简单原则而进行的重新组装'片'任务被安置在端系统平台中。接收方通过使用标识、标志和片偏移字段来确定一个数据报是否属于'片'以及该'片'是否完整。

  • 标识字段:16-bit,用于标识一个数据报。发送方通常会将每个数据报的标识字段值加1(与TCP字节流序号不同)。接收方通过检查数据报中的标识字段值来确认哪些数据块属于同一段较大的数据分段。
  • 偏移字段:13-bit。该字段用于指示丢失的分段位置。为了确保目的主机能够正确识别是否丢失了某个片段,并按顺序重组这些片段。
  • 标志位:目标数据报的最后一片标志位被置为0(其余各片标志位均设置为1),以表明已接收完整的目标数据分段。
在这里插入图片描述

分片会带来一定的开销,并不会导致路由器和端系统变得更为复杂;但同时也能够被广泛应用于生成致命的 DoS 攻击。

IPv4 编址

IP地址由4个字节组成(共计32位),遵循点分十进制编码规则书写,在此表示法中,每个字节会被转换为其对应的十进制数值,并用点号进行分隔。例如,在二进制形式如 1100... 的情况下,则会将其转换为相应的IP地址表示:将各个二进制数转换成十进制数值后连接起来形成完整的 IP 地址串

每个 IP 地址本质上是通过特定接口建立连接的,并不涉及包含该接口的主机或路由器。

子网

IP地址由网络号(高位二进制位)与主机号(低位二进制位)共同构成。拥有相同网络号且不会跨越路由器(下层网络设备)的所有设备接口均能实现连接起来的状态,则形成了一个子网

普通IP地址并不直接包含网络信息。要确定一个子网段的网络地址,则必须使用子网掩码这一工具。其作用类似于虚拟的IP地址,在其二进制表示中将网络部分以1标识、主机部分以0标识。其中当一个子网段的网络号位于前缀长度为8时,则对应的mask值即为255.0.0.0

在IP地址族中没有独立存在的位置;每个IP地址都必须伴随对应的网络掩码一同存在。当使用IP地址与其对应网络掩码进行按位运算时,则能计算得出该IP地址所处的网络部分。进一步地分析,则可确定另一个IP地址是否属于同一个网络范围。

在IP地址族中没有独立存在的位置;每个IP地址都必须伴随对应的网络掩码一同存在。当使用IP地址与其对应网络掩码进行按位运算时,则能计算得出该IP地址所处的网络部分。进一步地分析,则可确定另一个IP地址是否属于同一个网络范围。

在这些特定的网络内部存在一些特殊的IP地址用于特定功能不能分配给连接这些网络的设备接口其中网络号用于标识所属的网络(子网)而主机号则用于标识连接该特定网络的设备接口

  • 网络号为零的IP地址即为网络基准地址,它标识该子网的网络段.
    • 网络号为一的IP地址即为广播基准地址,它覆盖该子网内的所有主机.

因此,记主机号长度为 h,一个子网内的地址数为 2^h ,可用的地址数为 2^h-2。如

子网地址 172.32.0.0,子网掩码 255.255.254.0

其地址范围为 172.32.0.0 ~ 172.32.1.255

可分配的地址范围为 172.32.0.1 ~ 172.32.1.254

广播地址为 172.32.1.255

编码方案:分类编址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编码方案:CIDR

无类别域间路由选择(CIDR)与分层编址存在显著差异,在于其对网络号长度的规定上并不存在严格限制。在CIDR编址体系中采用a.b.c.d/x的形式进行表示,在此框架下x代表了该地址所包含之网络号/前缀所占有的比特数量;其余留下的32-x位则用于表示主机号码。值得注意的是,同样的x值还决定了该网络所使用的子网掩码配置,即其高位全部置1而低位全部置0的状态分布情况。

有了 CIDR 技术后,可以直接实现路由聚合功能:通过将多个子网的最长公共前缀作为转发表中的项来简化网络管理。例如,在实际应用中可以选择一些典型的子网地址如 192.168.x.x 系列作为目标地址集,并根据业务需求进行优化配置。这些子网经过聚合后会形成更大的覆盖范围,并且不会影响到现有功能的正常运行。

获取主机地址:DHCP

在子网划分完成之后,在同一个网络环境中,各个接口如何获取地址?一种常用的方法则是采用静态IP配置的方式进行设置。然而这种方法存在明显的局限性。另一种更为常见的做法是利用动态主机配置协议(DHCP),由网络自身动态分配给设备的一个临时IP地址,并伴随相应的子网掩码、默认网关及本地DNS服务器信息。当设备接入该网络时,默认情况下会根据 DHCP 分配到一个可用的IP地址,并自动完成相关参数的绑定设置。

DHCP 包括四个步骤:

  1. DHCP 服务器进行识别。首先,在此网络中主机需要发起一个 DHCP 发现请求(以UDP协议传输,端口号为67),以便于其能够连接到能够分配IP地址的 DHCP 服务器上。由于此时主机尚未拥有IP地址配置信息,在生成的报文中源地址字段应采用本地机器的源地址0.0.0.0;而目的地址字段则需采用广播地址255.255.255.255。
  2. 当该网络中的某个DHCP服务器接收到一个合法的DHCP发现请求时(注:此处"发送"应为"接收"),它会生成一个响应包(尽管在实际应用中也会有单播的情况出现)。该响应包将包含被推荐给客户端的IP地址、子网掩码以及租赁期等关键信息。
  3. 在网络环境中可能会存在多个DHCP服务器在线提供服务,在这种情况下主机将根据接收到的各项分配信息选择最合适的IP地址,并随后生成一个新的请求包。
  4. 被选定的IP地址所对应的DNS服务器将返回一个ACK确认包给主机(注:此处"响应"应为"返回"),此ACK包仍将以广播方式发送出去。
网络地址转换:NAT

私有IP地址块10.0.0.0/24主要用于家庭和类似本地Networks。
该块仅适用于内部特定设备。
当数据包试图从本地Network脱离出去时,
它必须获得一个互联网IPaddress。
此时就需要用到NAT(网络安全技术——自然边界控制)
NAT能够启用路由器将所有离开本地Network的数据包源目的IPaddress转换为相同的NAT IPaddress,
并赋予其不同的端口号以确保通信路径的有效性。

为了实现 NAT 的功能,在 NAT 路由器上配置了一个包含四个元素的转换表。该表中的每一项都存储了一个包含四个元素的元组(NAT IP 地址、NAT 端口号、本地 IP 地址、本地端口号)。当存在需要转发的数据包时,在接收设备上会自动将这些数据包发送到相应的输出队列中,并将这些信息记录到转换表中以便后续查询使用。在实际应用中发现,在接收设备上根据接收到的数据包地址自动进行处理能够提高网络性能;此外该系统还支持高达 65536 个并发连接的能力

NAT 的优点在于:

  • 提升联网主机数量以缓解IP短缺问题。
  • 变更本地网络设备的IP地址时无需对外公告。
  • 更换ISP时不需要修改内部设备的IP编址。
  • 确保内部设备对外部不可见性的同时提升了整体安全性。

NAT 的争议在于:

端口号应当用于进程编址,而不是主机编址

路由器应当最高只处理第三层的分组

违反端到端原则

地址短缺应由 IPv6 解决

妨碍 P2P 应用程序

因特网控制报文协议:ICMP

作为主机与路由器使用的协议旨在传输网络层信息。

  • ping 的实现

Ping过程将发起一个ICMP响应询问(类型8编码0)数据包给定目标主机,并由该主机随后将响应一个ICMP确认应答(类型0编码0)。

  • tracert 的实现

构建一个 Tracert 工具的核心思路在于 TTL 参数的配置以及 ICMP 协议的应用。Tracert 向目标主机发送一系列的数据报包序列,在第一个阶段使用 TTL 设置为1,在后续阶段依次递增至2、3等数值,并对每个数据包进行时间记录,并计算Round Trip Time(RTT)。当第n个数据包抵达路由路径上的第n个路由器时,其TTL值刚好耗尽,则该数据包会被丢弃,并向源主机发送ICMP响应。当目标主机接收到这些ICMP响应时,则会向源主机发起测试并接收相应的RTT信息;若测试持续至某个特定条件满足后才会停止,则此时获得的结果即为目标主机往返的时间延展。

IPv6

IPv6的主要改进包括扩展了地址空间、采用了更简洁的40字节头部结构以及引入了流量标签和优先级字段。传统的分组拆分和重组功能被去除了,并且该协议仅能在端到端传输数据而不进行内部处理。

4.5 路由选择算法

与主节直接连接的路由器被称为主链路由器(或首级 routers),其对应的地址即为主链路由器接口上的默认网关接口 IP 地址。路由选择的主要职责是在源 router 到达目的 router 之间选择合适的路径(route)。该过程可转化为求解网络中两点间的最短路径问题。

在这里插入图片描述

在路由选择算法中进行划分时,默认是以全局式分散式 两种主要方式作为区分依据。采用完整网络信息的全球性方法会计算出源节点到目的节点之间具有最低成本路径;而基于迭代性和分布式机制运行的分散性策略同样能够确定最低成本路径。

链路状态路由选择算法(LS)

在LS协议框架下提供的网络架构信息以及各条线路的成本参数均为既定条件,在实际操作中,在每个节点上实施时都会发送到网络中的每一个其他节点。通过采用LS广播机制将带有各线路特征及开销的信息分组发送出去,在这些数据字段分别记录了相关线路的基本属性及其开销数值的情况下,“经过此过程后,在整个网络系统中各节点均获得了与原系统完全一致的状态信息副本”。“从而使得各个节点都能基于统一信息集运行相同的LS路径规划计算流程”并最终完成各自的LS路径规划计算任务并最终得到一致性的最经济通路集合结果

LS 算法可以采用 Dijkstra 算法,非常简单。

在这里插入图片描述

用上面的网络作为例子就是

在这里插入图片描述

因此,在此情况下,我们能够确定从该节点延伸出到各个节点的最短路径信息,并获取其所在路由器处的路由表数据。

在这里插入图片描述

该LS算法基于简明无向图模型,在链路成本与承载流量相等的情形下,则意味着为应用此模型需满足链路成本具有对称性(即c(u, v)=c(v, u))。然而实际情况通常并非如此,则促使我们转向使用有向图结构。问题在于,在这种情况下若采用有向图结构,则LS算法可能导致路由器误认为找到了更优路径(实际上只是在固定几条路径间来回循环)。为了解决这一问题,则需要考虑以下两种方法:一种不可取的方法是强行使链路成本与流量无关(因为路由选择的主要目标之一是避免过载情况的发生),另一种方法则是通过随机化路由器发送拓扑信息的时间来实现。

距离向量路由选择算法(DV)

DV 算法属于分布式计算体系。这是因为每个节点通过直接相连的邻居接收数据,并对其进行数据处理后传播给相邻节点;同时该算法还具有迭代特性(该过程会自动终止)。此外还具备异步处理能力(无需所有节点同步执行操作)。

DV 算法遵循 Bellman-Ford 方程 d_x(y) = \min_{v \in \text{Adj}(x)}\{c(x, v) + d_v(y)\} 计算得到,其中 x 为源节点而 y 为目标节点。该方程具有明确的有效性。路由器基于此选择具有最小累积权重 d_x(y) 的相邻节点 v^* 并将其用于构建转发表中的数据报下一跳字段。

DV算法的基本思路在于每个节点x估算从自身到图中其余节点的最短路径,并通过与邻居交换各自的距离信息来逐步优化自己的最短路径估计值。具体而言,在每次迭代中该节点会将收集到的所有邻居的距离信息代入Bellman-Ford方程进行计算和更新操作。当从邻居处获得的新距离信息能够进一步优化本节点的距离向量时,则会将更新后的距离信息传递给所有直接相连的邻居节点。这一过程将持续进行直至所有节点的距离估计值稳定不变即达到收敛状态。

因此,每个结点 x 维护下列路由选择信息:

  • 节点x连接到每个邻居v的成本c(x,v)
  • 节点x的距离向量包括了所有目标节点y的费用估计
  • 节点x的所有相邻节点的距离向量具体来说,则是对于每一个与之相邻的节点v有D_v = [D_v(y): y \in N]
在这里插入图片描述

总体而言,在分布式计算中存在这样一个机制:当每个节点的距离矢量发生变动时,并会将自身矢量传递给邻居节点,并同时利用来自邻居节点的矢量来更新自身的状态。反复执行这一流程后会发现经过多次迭代后各节点的矢量趋于一致。当系统达到稳定状态时不再有任何变化

在这里插入图片描述

DV算法也存在不足之处。假设链路费用发生变动,则当由高变为低时:

  • 结点能够迅速更新其自身的距离向量,
  • 并将新信息传递给相邻节点,
  • 从而使得邻近节点也随之及时更新各自的最短路径估计值;
    而当由低变为高时,
    情况则会有所逆转
在这里插入图片描述

以上述图为例,在仅关注y和z到达目的地x的情况时,在初始状态下D_y(x) = 4, D_y(z) = 1, D_z(x) = 1, D_z(x) = 5时系统已达到收敛状态。当某个时刻发生变动后(如:y到x的链路费用从4更新为60),系统会触发相应的响应机制以完成路径计算并进行优化操作。在这种情况下,y通过其向量通知相关节点:即通过其向量通知相关节点随后通过其向量通知相关节点随后通过其向量通知相关节点随后通过其向量通知相关节点随后通过其向量通知相关节点随后通过其向量通知相关节点随后通过其向量通知相关节点随后通过其向量通知相关节点随后通过其向量通知相关节点随后通过其向量通知相关节点随后通过其向量通知相关节点随后...

由此形成了路由环路。y和z之间不断来回选择路径,在每经过一次更新阶段后累计增加1个单位的计算开销。这种状态持续下去会使得系统陷入僵局直到某个节点发现通过另一条路径可以直接到达目标节点并具有更低的整体开销。随后该节点会选择直接连接的方式并以固定的成本单位完成连接过程之后其他节点也不再进行任何向量更新总共有46次迭代(计算过程涉及50-4=46次)。由此可见当网络路径上的成本持续增加时系统收敛至最低成本路径所需时间会变得非常漫长甚至可能出现某些特定条件导致无限计数的问题。

要解决这个特定的路由环路问题,则可采取毒性逆转策略 ,具体而言即若节点 z 选择通过节点 y 到达目标节点 x,则节点 z 应告知节点 y ,z 至 x 的最短路径长度为无穷大(即不存在路径),从而使得节点 y 和 z 将避免相互选择最短路径。需要注意的是,在当前方案中仅适用于解决上述所述的具体情况,并不适用于包含三个或更多节点所构成的环路问题。

LS 与 DV 的比较
  • 报文复杂性。每个节点都需要了解网络中每条链路的成本信息,并因此必须发送 O(NE) 个报文才能完成拓扑结构的更新;只有当某节点的距离向量发生变化时才会发送报文。
  • 收敛速度。在 LS 方案下基于 Dijkstra 算法实现的时间复杂度为 O(n^2) ,经过算法改进后可将时间复杂度降至 O(n\log n) 。相比之下 DV 方案的收敛速度较慢,并且容易出现路由环路和无限计数等问题。
  • 健壮性。在 LS 方案下各个节点之间彼此独立地维护本地转发表,在遭受个别路由器故障时也不会影响整体网络的正常运行;而 DV 方案则要求所有节点都需要与相邻节点进行通信以更新自身状态。一旦某一个 DV 节点出现故障或停机情况就会导致其错误信息被传播至整个网络系统而引发瘫痪。
4.6 因特网中的路由选择
层次路由选择

当路由器数量显著增加时,在大规模网络中实施LS算法变得不可行。此外,各个组织对于各自拥有的路由器实现自主管理的愿望日益强烈。基于以上理由,发展出自治系统(AS) ,即一组处在共同的管理框架下的路由器集合。用于AS内部路由选择的协议统称为自治系统内部路由协议(如RIP、OSPF)。负责在不同AS之间传输相邻AS可达性信息的路由协议则被统称为自治系统间路由协议(如BGP4)。

因特网中自治系统内部的路由选择:RIP

该方案称为基于距离的距离向量协议,并以跳数作为衡量标准;其中每条链路的成本定为1单位。与传统意义上的跳跃不同,在该方案中的一次跳跃意味着从一个子网跨越到另一个子网,并非指单个路由器与另一个单个路由器之间的连接;此外还规定了一条路径的最大跳跃次数限定为15次,并因此使得该方案仅限于网络直径在15跳以内的AS网络中运行

在这里插入图片描述

在 RIP 协议下,路由器负责维护路由选择表信息,并通过 RIP 响应报文(称为通告)交换到达 AS 内各子网的最短路径估计值。每隔约 30 秒发送一次。若某路由器超过 180 秒未收到邻居响应,则该邻居视为不可达。随后,路由器更新本地路由选择表信息并通知其他邻居。此外,在需要时,还可以利用 RIP 请求报文询问邻居到特定目的地的成本情况;这些报文中包含 UDP 数据字段端口号固定为 520。

因特网中自治系统内部的路由选择:OSPF

OSPF作为一种开放式的路由协议,在其核心机制中主要采用广播链路状态信息为基础的链路状态协议,并结合单源最短路径算法构建网络拓扑结构。具体而言,在这种机制下,每个路由器会生成从自身出发到整个子网范围内的最短路径树。其中,在OSPF中各条线路的权重由网络管理员进行设定,并且这种设置能够灵活地支持采用多种不同的配置策略。

OSPF中的路由器一旦检测到网络链路的状态有任何变化(如网络成本的变化或连接断开),就会立即向所有其他路由器发送最新的路由选择信息。即使没有发生任何链路状态的变化,路由器也会定期发送(每30分钟至少一次)其接收到的网络链路的状态更新,以增强其可靠性和稳定性. OSPF通告通过IP协议在其数据包中携带数据,并指定上层协议使用报文编号89.

OSPF可在单个AS中构建层次结构,并将每个子区划独立运行OSPF算法。在一个区域内有若干台或一台边界路由器负责转发超出本区目的分组。这些负责转发分组的BGR有时也包含非BGR节点组成唯一的骨干RBR。该骨干RBR为同一AS内不同子区间的通信提供路由选择。位于不同子区间间的数据包需先传输至对应的BGR然后从该BGR传输至目标子区间的BGR以完成到达的目的地

OSPF 的安全性更高,并确保所有路由器使用相同的口令进行配置(包括明文设置或采用 MD5 加密),以便区分数据包是否源自内部网络。

自治系统间的路由选择:BGP

边界网关协议(BGP)是当今因特网域间路由选择协议的标准。BGP 负责制定...标准并负责制定...标准以及负责制定...标准等核心规则

  • eBGP通信:通过与相邻AS的交互获取子网可达性信息
  • iBGP通信将这些数据发送给本AS内的所有路由器
  • 根据这些数据以及相关策略确定到达该子网的最优路由

在BGP协议中,路由器通过使用179端口的半永久TCP连接来传递路由选择信息,在AS内部形成一个完整的网络结构;网关路由器负责连接不同的AS。

BGP使每个AS通过其相邻AS到达非主机的目的地(这些目的地经由CDIR化前缀表示),即子网络或子网络集合(路由聚合结果)。此过程由不同AS间网关路由器之间的eBGP对话实现。随后,在iBGP对话中所学到的该前缀会被传播至该AS内部其他路由器上。因此,在转发表中将创建相应表目。

BGP 会话所通告的路由不仅包含前缀,并且涉及其他一些属性。其中最为关键的是 AS-PATH 和 NEXT-HOP。

  • AS-PATH标识为该通告已通过路径(每个AS由其自治系统号ASN唯一识别)。每当AS将此通告传播至新域时,该AS将自身的ASN加入当前路径中以避免循环回送。
  • NEXT-HOP标识为连接当前AS与其接收方AS之间的网关路由器接口IP地址(本书写作与翻译部分存在较大缺陷)。

网络设备在配置转发表项时可能会遇到多个来自不同路径的路由信息(即存在多个到达相同目的地址的路由通告),因此系统会根据一定的规则或优先级来处理这些路由信息

本地偏好值高的路由

AS-PATH 路径短的路由

NEXT-HOP 最近的路由

4.7 广播和多播路由选择
广播

广播服务是一种从源点向网络中所有其他节点传输分组的通信服务。

  1. 无控制洪泛

第二 天真的想法本质上就是洪泛现象。当某节点接收广播数据后, 会将这些数据副本发送给所有相邻节点。这种机制看似简单而优雅, 在表面上非常高效。然而, 在实际运行中存在潜在风险:一方面, 这种机制可能导致路由环路问题;另一方面, 则容易引发持续不断的数据风暴

  1. 受控洪泛

洪泛需要受到控制,网络才能不受其反噬。

在采用广播分组的序号控制机制中

反向路径转发(RPF)机制中,在接收到一个广播数据包时,并非所有的相邻节点都会转发该数据包。具体而言,在反向路径转发策略下规定:当接收方接收到一个广播数据包时,并非所有的相邻节点都会转发该数据包。具体的机制是:每个节点只需知道从自身到源节点的单播最短路上的那个直接邻居节点即可完成相应的操作。进而可知,在这种机制下每个节点只需知道从自身到源节点的单播最短路上的那个直接邻居节点即可完成相应的操作。进而可知,在这种机制下每个节点只需知道从自身到源节点的单播最短路上的那个直接邻居节点即可完成相应的操作。

在这里插入图片描述
  1. 生成树广播

尽管受控洪泛成功阻止了广播风暴的发生,但仍然无法完全消除冗余分组.为了彻底解决这一问题,在理想情况下每个节点应仅接收广播分组的一个副本.这使得我们自然地联想到最小生成树算法:它是一种能够以最少数量的边连接整个图的算法(假设所有边具有相同的权重).

随后,在与网络相关联的图中构建一棵最小生成树。当某个节点希望发送数据包时,则仅限于与其直接相连且位于生成树上的链路进行发送(无需返回至其副本版本的目标)。此外,在提升效率的同时也能覆盖整个网络系统。

为了构建一棵最小生成 tree ,其中一种简便的方式就是采用中心法。具体而言 ,首先选择一个核心节点作为生成 tree 的基础 ,然后让其他所有节点通过发送广播信息的方式连接到这个核心节点上 。每当已经包含在生成 tree 中的一个节点接收到一条广播信息时 ,这条广播信息所经过的所有接收方也会随之被纳入到这个最小生成_tree 中 。此过程持续进行直至网络中的所有节点都被成功纳入到这个最小生成_tree中

多播

不搞了。

全部评论 (0)

还没有任何评论哟~