メインコンテンツまでスキップ

8.5. Operation as a Leaf Node (リーフノードとしての動作)

場合によっては、RPLノードはリーフノードとしてのみDODAGにアタッチすることがあります。このようなケースの1つの例は、ノードがRPLインスタンスのOF(目的関数)や、アドバタイズされたメトリクス/制約を理解していない、または(ポリシーにより)サポートしていない場合です。セクション 18.6(ポリシー機能に関連)で規定されているように、ノードはリーフノードとしてDODAGに参加するか、あるいはDODAGに参加しないかのいずれかを選択できます。セクション 18.5 で述べられているように、その場合は障害をログに記録することが推奨されます。

リーフノードはDODAGの接続性を拡張しません。しかし、場合によっては、特にリーフノードが常にリーフノードとして動作していたわけではなく、不整合が検出された場合など、リーフノードが時折DIOを送信する必要がある場合があります。

リーフノードとして動作するノードは、以下のルールに従わなければなりません。

  1. DAG Metric Container(DAGメトリクスコンテナ)を含むDIOを送信してはなりません(MUST NOT)。

  2. そのDIOは、INFINITE_RANK(無限ランク)のDAGRankをアドバタイズしなければなりません(MUST)。

  3. パケットの転送中に不整合が検出されたためにDIO送信がトリガーされた場合、またはユニキャストDISメッセージへの応答である場合を除き、DIO送信を抑制してもよいです(MAY)。不整合の検出やユニキャストDISへの応答の場合は、DIO送信を抑制してはなりません(MUST NOT)。

  4. セクション 9.2 で説明されているように、ユニキャストDAOを送信してもよいです(MAY)。

  5. セクション 9.10 で説明されているように、「1ホップ」の近傍に対してマルチキャストDAOを送信してもよいです(MAY)。

リーフノードがDIOを送信する必要がある特定のケースは、そのリーフノードが以前別のDODAGのメンバーであり、別のノードが古いトポロジを想定してメッセージを転送し、不整合を引き起こした場合です。リーフノードは不整合を修復するためにDIOを送信する必要があります。LLNの損失の多い性質により、リーフノードがリーフノードになる前に古いDODAGでINFINITE_RANKのアドバタイズを行ってルートを毒殺(poisoned)していたとしても、そのアドバタイズが失われた可能性があるため、リーフノードは後で不整合を修復するためにDIOを送信できなければならないことに注意してください。

一般的なケースでは、リーフノードは自身をルーターとしてアドバタイズしてはなりません(MUST NOT)(すなわち、DIOを送信してはなりません)。