我正在尝试为路由信息协议实现一个模拟器。我想我已经完成了大部分的实现,但是我不太确定节点从不同节点接收表时使用的算法的一部分。
其中一个if语句如下:
if address is known by p1 with a link of p2 then:
if the cost for p2 is not exactly one less than p1's cost:
act as if this address was unknown to p1
p1从p2接收表格。这是否意味着如果p1在其表中具有地址,并且与p1中该地址相关联的链接是到p2的链接,那么检查p2的成本是否不完全小于p1s成本?
由于
答案 0 :(得分:0)
是的,这就是它的含义。
当p1
从p2获取有关某个网络n
的路由信息时,它必须决定是否使用新路由。通常,只有当它比p2
目前知道的路线更好时,它才会使用新路由(将链接设置为n
)。但是,如果p2
是n
已经拥有的网关 - 换句话说,它早先从p2
获得了信息 - 那么它接受新信息,甚至如果新费用高于旧费用。
这允许p2
通知其邻居它已经失去与其他网络的连接(通过将其成本设置为相当于无穷大的RIP)。如果以前依赖p2
的邻居到达该网络,他们现在将使他们到该网络的路由无效并等待来自其他具有连接性的网关的信息。它还允许p2
告知其邻居,到达n
的费用已经增加,如果他们能找到便宜的话,他们应该使用更便宜的路线。