Warning: Can only detect less than 5000 characters
互联网草案2020年8月的Babel路由协议不增加,并且始终保留以下不变式:如果A选择了B作为其下一跳,则D(B)<B。 D(A),这意味着转发图是无循环的。 Babel使用了一个略微完善的可行性条件,该条件源自EIGRP [DUAL]。在给定路由器A的情况下,将A的可行距离定义为FD(A),作为A曾经向S通告给其任何邻居的最小度量。当由B通告的度量D(B)严格小于A的可行距离,即当D(B)<B时,由A的邻居B发送的更新是可行的。 FD(A)。不难看出,后一种情况比DSDV的可行性没有更多的限制。假设节点A遵守DSDV-可行性;则D(A)不会增加,因此D(A)始终等于FD(A)。现在假设A收到了DSDV可行的更新,该更新通告了度量D(B)。由于更新是可行的DSDV,所以C(A,B)+ D(B)<= D(A),因此D(B)<D。 D(A),并且由于D(A)<= FD(A),因此D(B)<D。 FD(A)。为了看到严格地限制较少,请考虑下图,其中A选择了通过B的路由,并且D(A)= FD(A)= 2。 FD(A),通过C的替代路线对于A来说是可行的,尽管其度量C(A,C)+ D(C)= 5大于当前选择的路线:B 1 / \ 1 / \ SA \ / 1 \ / 4 C为证明此可行性条件仍可保证循环自由,请回想一下,当A接受来自B的更新时,B宣布的度量D(B)不小于FD(B);因为它小于FD(A),所以在那个时间点FD(B)< FD(A)。由于此属性在A发送更新和选择不同的下一跳时均保留,因此始终保持为true,从而确保转发图没有循环。 2.5。解决饥饿问题:对路由进行排序显然,当路由器用尽了可行的路由时,上面定义的可行性条件会导致饥饿。考虑下图,其中A和B都选择了到S的直接路线:Chroboczek& Schinazi将于2021年2月26日到期[第8页]
互联网草案Babel路由协议2020年8月A 1 / | D(A)= 1 / | FD(A)= 1 S | 1 \ | D(B)= 2 2 \ | FD(B)= 2 B现在假设A和S之间的链接断开: | FD(A)= 1 S | 1 \ | D(B)= 2 2 \ | FD(B)= 2 B从A到S的唯一路径是经过B的路径是不可行的:A遭受虚假的饥饿。此时,必须重置整个处于饥饿状态的子树,这实际上是EIGRP在执行饥饿子树中所有路由器的全局同步时所做的工作(EIGRP的“活动”阶段)。 Babel通过使用有序路线(DSDV引入并由AODV采用的一种有序路线),以较不激烈的方式对饥饿做出反应。除度量标准外,每条路由还包含一个序列号,一个不减的整数,该整数不变地通过网络传播,并且
......