目标节点的序列号是如何变化的?它是在其当前序列号中成为RREQ的seq最大值,还是dst节点增量序列号为一个?请举个例子!!
发布于 2016-02-22 01:15:57
它是在RFC 3561中详细说明的:
6.1。在每个节点上维护序列号每个路由表条目必须包括维护路由表条目的目的地节点的IP地址的有关序列号的最新信息。这个序列号被称为“目标序列号”。每当节点从RREQ、RREP或RERR消息接收到与该目的地相关的新的(即不过时的)序列号信息时,就会更新该消息。AODV依赖于网络中的每个节点拥有和维护其目标序列号,以保证所有通向该节点的路由的循环自由。目标节点在以下两种情况下递增自己的序列号:
当目标增加其序列号时,必须将序列号值视为无符号数字。若要完成序列号滚转,如果序列号已被指定为可表示为32位无符号整数(即4294967295)的最大可能数,则当它增加时,它的值将为零(0)。另一方面,如果序列号当前的值为2147483647,如果2's补码算法用于32位整数,则为最大可能的正整数,则下一个值为2147483648,这是同一编号系统中最负的可能整数。负数的表示与AODV序列数的增加无关。这与比较两个AODV序列号的结果的处理方式不同(见下文)。为了确定关于目的地的信息不过时,节点将其序列号的当前数值与从传入的AODV消息中获得的数值进行比较。这种比较必须使用带符号的32位算法,这是完成序列号翻转所必需的.如果从传入序列号的值中减去当前存储的序列号的结果小于零,则必须丢弃AODV消息中与该目的地有关的信息,因为与该节点当前存储的信息相比,该信息已经过时。节点可以在其路由表条目中更改目标序列号的唯一其他情况是响应到指向该目的地的下一跳的丢失或过期链路。节点通过查阅其路由表来确定哪些目的地使用特定的下一跳。在这种情况下,对于每个使用下一跳的目的地,节点会增加序列号,并将路由标记为无效(还请参阅第6.11、6.12节)。每当已将该路由表条目标记为无效的节点接收到用于受影响目的地的任何足够新的路由信息(即,包含至少等于记录的序列号的序列号)时,该节点应根据更新中包含的信息更新其路由表信息。只有在以下情况下,节点才能更改目标路由表条目中的序列号:
https://networkengineering.stackexchange.com/questions/28054
复制相似问题