首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AODV序列号

AODV序列号
EN

Network Engineering用户
提问于 2016-02-22 01:08:09
回答 1查看 1.2K关注 0票数 1

目标节点的序列号是如何变化的?它是在其当前序列号中成为RREQ的seq最大值,还是dst节点增量序列号为一个?请举个例子!!

EN

回答 1

Network Engineering用户

发布于 2016-02-22 01:15:57

它是在RFC 3561中详细说明的:

6.1。在每个节点上维护序列号每个路由表条目必须包括维护路由表条目的目的地节点的IP地址的有关序列号的最新信息。这个序列号被称为“目标序列号”。每当节点从RREQ、RREP或RERR消息接收到与该目的地相关的新的(即不过时的)序列号信息时,就会更新该消息。AODV依赖于网络中的每个节点拥有和维护其目标序列号,以保证所有通向该节点的路由的循环自由。目标节点在以下两种情况下递增自己的序列号:

  • 在节点开始路由发现之前,它必须增加自己的序列号。这可以防止与先前建立的向RREQ发起人的反向路由发生冲突。
  • 在目标节点响应RREQ发出RREP之前,它必须将自己的序列号更新到RREQ数据包中其当前序列号和目标序列号的最大值。

当目标增加其序列号时,必须将序列号值视为无符号数字。若要完成序列号滚转,如果序列号已被指定为可表示为32位无符号整数(即4294967295)的最大可能数,则当它增加时,它的值将为零(0)。另一方面,如果序列号当前的值为2147483647,如果2's补码算法用于32位整数,则为最大可能的正整数,则下一个值为2147483648,这是同一编号系统中最负的可能整数。负数的表示与AODV序列数的增加无关。这与比较两个AODV序列号的结果的处理方式不同(见下文)。为了确定关于目的地的信息不过时,节点将其序列号的当前数值与从传入的AODV消息中获得的数值进行比较。这种比较必须使用带符号的32位算法,这是完成序列号翻转所必需的.如果从传入序列号的值中减去当前存储的序列号的结果小于零,则必须丢弃AODV消息中与该目的地有关的信息,因为与该节点当前存储的信息相比,该信息已经过时。节点可以在其路由表条目中更改目标序列号的唯一其他情况是响应到指向该目的地的下一跳的丢失或过期链路。节点通过查阅其路由表来确定哪些目的地使用特定的下一跳。在这种情况下,对于每个使用下一跳的目的地,节点会增加序列号,并将路由标记为无效(还请参阅第6.11、6.12节)。每当已将该路由表条目标记为无效的节点接收到用于受影响目的地的任何足够新的路由信息(即,包含至少等于记录的序列号的序列号)时,该节点应根据更新中包含的信息更新其路由表信息。只有在以下情况下,节点才能更改目标路由表条目中的序列号:

  • 它本身就是目标节点,并为自己提供了一个新的路由,或者
  • 它接收AODV消息,其中包含关于目标节点序列号的新信息,或者
  • 指向目标节点的路径过期或中断。
票数 1
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/28054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档