目的节点序号递增策略

网络工程 路由 协议理论 射频卡 临时无线
2021-07-11 16:23:38

我从RFC 3561 - AODV, page 11 中阅读了以下内容

A destination node increments its own sequence number in two circumstances:

   -  Immediately before a node originates a route discovery, it MUST
      increment its own sequence number.  This prevents conflicts with
      previously established reverse routes towards the originator of a

   -  Immediately before a destination node originates a RREP in
      response to a RREQ, it MUST update its own sequence number to the
      maximum of its current sequence number and the destination

我不明白递增序列号如何防止与先前建立的反向路由发生冲突;为什么这有帮助?另外,“它必须将自己的序列号更新为当前序列号的最大值”是什么意思,这个最大值是什么意思?

1个回答

RREP 的情况:当节点收到目的节点的 RREQ(路由请求)时,两种类型的节点都可以响应它。一个是目标节点本身——在这种情况下,它可以增加序列 ID。第二种类型的节点是那些具有到目的地节点的现有路由的节点。现在,当他们收到路由时,他们已经保存了目标节点生成的序列号。在发送 RREP 时,这些中间节点简单地复制先前学习的序列号(并且不生成新的序列号)。这样,如果目的地要发送一条新路由,那么生成 RREQ 的节点,当它收到 RREP 时,它可以选择具有最新序列号的那个,而忽略那些陈旧的。

以下是 RFC 关于发送 RREP 的目标节点的说明:

如果生成节点是目的地本身,如果 RREQ 数据包中的序列号等于增加的值,它必须将自己的序列号增加 1。

RREQ 的情况:节点还维护反向路由(让我们说,对于节点 X),并且只有当它们从节点 X 接收到新的 RREQ 时,它们才会想要更新到 RREQ 发起者(节点 X)的路由。一种方法来做到这一点是让 X 在每次发送 RREQ 时递增序列号。

关于 RREQ 中目的地序列号字段的注释:根据第 5.1 节,当发起 RREQ 时:“目的地序列号:发起者过去收到的任何通往目的地的路由的最新序列号。”。根据第 6.5 节,在处理 RREQ 时:“最后,将请求的 dest 的 Destination Sequene 编号设置为 RREQ 消息中接收到的相应值的最大值,以及节点当前为请求的目的地维护的目的地序列值。 ”

因此,基本上,设置/更新 Dest Seq Number 意味着 RREQ 的发送者或转发者表示我有信息,直到我们说 seq 101,这是由目标节点发送的。如果这不是最新的,则目标节点在发送 RREP 之前不会费心增加自己的序列号(第 6.6.1 节)。