2012-11-06 51 views
1

我想实现路由信息协议的模拟器。我认为我已经完成了大部分实现,但我不太确定节点从不同节点接收表时使用的算法的一部分。路由信息协议实现

其中一个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

是的,就是这个意思。

p1从p2获取有关某个网络n的路由信息​​时,必须决定是否使用新路由。通常情况下,只有当它比当前所知道的n更好时,才会使用新路线(将链接设置为p2)。但是,如果p2是网关已有的网关n - 换句话说,它早期从p2获得信息 - 即使新成本高于旧成本,它也接受新信息。

这允许p2通知它的邻居,它已经失去了与其他网络的连接(通过将其成本设置为等于无穷大的RIP)。如果邻居先前依靠p2访问该网络,则他们现在将使到达该网络的路由无效,并等待来自其他具有连接性的其他网关的信息。它还允许p2通知其邻居,达到n的成本已经增加,如果他们能找到一个,他们应该使用更便宜的路线。