摘要:通信工程师交换技术无穷计算问题:距离向量路由算法在理论上是能有效工作的,但在实际运用中却有很大的缺陷。虽然它最终能得出正确的答案,但有可能太慢。特别是,它对好消息的反应迅速,但对坏消息却反应迟钝。
①无穷计算问题
距离向量路由算法在理论上是能有效工作的,但在实际运用中却有很大的缺陷。虽然它最终能得出正确的答案,但有可能太慢。特别是,它对好消息的反应迅速,但对坏消息却反应迟钝。考虑有一个节点,它到目的点尤的最佳路由很长,如果在某次交换信息时,它的邻居A突然报告说有一个到X更短的路径,即可以使该节点到X的距离更短,那么该节点仅需简单地将后继节点改为A,也就是使用它到A的链路来传送到的分组流。可见,好消息经过一次向量交换就处理完毕了。如图5-22所示的一个5节点(线性)子网,距离采用跳数度量,即每条链路的距离为1。假设节点A刚开始不在子网上,而且所有其他节点也知道这一点。也就是说,它们将到A的距离都记为无穷大。当A连接到网络工作后,其他节点通过向量交换都知道它上网了。为了简单起见,假设有一个时钟周期地令所有节点同时启动向量交换。在第一次交换路由信息后,B就在路由表中记上到A的距离是1。其他节点还认为A没有上网。这时候各节点的路由表中关于节点A的表项如图5-22(a)中的第二行所示。在第二次交换后,C知道B有一条到A和长度为1的路径,因此它就更新其路由表,记上一条长度为2的到A的路径,但D和E到现在还不知道这一消息。很明显,好消息的传播是每交换一次路由信息就前进一个节点。在一个最长路径为N跳的子网中,最多经过W次路由信息的交换,所有节点都会知道新增的链路和节点。
现在讨论一下坏消息的传播速度。如图5-22(b)所示,开始时,所有的链路和节点都在网上。节点B,C,D和E到A的距离分别是1,2,3和4。假定A突然下网了,或者A与B之间的线路断开了,这对于B来说都一样。在第一次交换路由信息时,B没有从A处得到任何信息,但C说:“我有一条到A的长度为2的路径。”B并不知道C到A的路径还要经过B本身。B认为C可能有多条独立的长度为2的路径通往A。结果,B认为它能通过C到达A,路径长度为3。第一次交换后,D和E并不更新其对应于A的表项。第二次交换路由信息时,C注意到它所有的邻居都声称有一条通往A的长度为3的路径。它随意选择任意一个邻居,并将到A的距离设为4,如图5-22(b)中第三行所示。后续的交换过程如图22(b)中所示。通过这张图可以看出,坏消息传播的很慢。只有当所有节点慢慢地增加其距离值,直至无穷大时,才发现网络拓扑发生了变化。这就是所谓的“无穷计算问题”。在实际的系统中可以将无穷大的取值设置成最长路径加1。但是,如果采用时延作为距离的度量值时,就很难定义一个合适的距离上限。
返回目录:
编辑推荐:
通信工程师备考资料免费领取
去领取