アドレス構造
ネットワークアドレス
ネットワークアドレスは、ネットワークタイプ(IPなど)のアドレスを制御ネットワーク内の論理アドレスにマッピングすることを表します。このマッピングは、対応するブロックドライバーによって実行されます。 IPアドレスの最初の3バイトは、「クラスC」IPアドレスを持つイーサネットネットワーク内のすべてのネットワークデバイスで同一です。したがって、IPアドレスの最後の8ビットは、ブロックドライバー上の2つのアドレス間の明確なマッピングを可能にするため、ネットワークアドレスとして十分です。
ノードには、ネットワーク接続ごとに異なるネットワークアドレスがあります。各アドレスはローカルで一意である必要があるだけなので、異なるネットワーク接続が同じネットワークアドレスを持つことができます。
用語:メインネットワークのネットワークアドレスは通常、ネットワーク接続の指定がないノードのネットワークアドレスとして指定されます。
ネットワークアドレスの長さはビット単位で指定され、必要に応じてブロックドライバで選択できます。ネットワークエリア内のすべてのノードに同じ長さを使用する必要があります。ネットワークアドレスは、次のコーディングに従ってバイトの配列で表されます。
ネットワークアドレスの長さ:nビット
必要なバイト数:b =(n + 7)DIV 8
ネットワークアドレスには、最初のバイトの最下位ランクの(n MOD 8)ビットと他のすべての(n DIV 8)ビットが使用されます。
長さ:11ビット
住所:111 1000 1100

ノードアドレス
ノードアドレスは、制御ネットワーク内のノードの絶対アドレスを示しているため、「ネットワークツリー」全体で一意です。アドレスは最大15個のアドレスコンポーネントで構成され、各コンポーネントは2バイトを占有します。ノードがネットワーク階層内の下位にあるほど、そのアドレスは長くなります。
完全なノードアドレスは、先行するすべてのノードの部分アドレスとノード自体の部分アドレスで構成されます。各部分アドレスは、1つ以上のアドレスコンポーネントで構成されます。したがって、長さは常に2バイトの倍数になります。ノードの部分アドレスは、メインネットワーク内のノードのネットワークアドレスと、親ノードの場合はメインネットワークのサブネットインデックスから形成されます。サブインデックスに必要なビットは、親ノードのルーターによって決定されます。部分アドレスの長さが2バイトの倍数になるように、サブネットインデックスとネットワークアドレスの間にフィラービットを挿入できます。
特殊なケース:
ネットワークのないノード:これは、メインネットワークにサブネットインデックスもネットワークアドレスもないことを意味します。この場合、アドレスは0x0000に設定されます。
親のないメインネットワーク内のノード:この場合、長さが0のサブネットインデックスが想定されます。部分アドレスは、必要に応じてフィラービットによって拡張されたネットワークアドレスに対応します。

ノードアドレスは常に16進数で指定されます。個々のアドレスコンポーネント(それぞれ2バイト)はコロン「:」で区切られます。これは16ビット値ではなくバイトの配列を表すため、コンポーネントはIntel形式で表示されません。手動でアドレスを入力する場合、アドレスコンポーネントの欠落している部分は、先行ゼロで補足されます。274
"=" = "0274
"。読みやすさを向上させるために、ディスプレイには常に先行ゼロを含める必要があります。
絶対アドレスと相対アドレス
2つのノード間の通信は、相対アドレスまたは絶対アドレスに基づくことができます。絶対アドレスはノードアドレスと同じです。相対アドレスは、送信者から受信者へのパスを指定します。これらは、アドレスオフセットとレシーバーへの下降パスで構成されます。
(負の)アドレスオフセットは、パッケージが共通の親ノードによって受け渡される前に、ツリー内でパッケージが上向きに渡される必要があるアドレスコンポーネントの数を表します。ノードは複数のコンポーネントで構成される部分アドレスを使用できるため、渡される親コンポーネントの数は常にアドレスオフセットに等しくなります。これは、親ノード間の境界が明確ではなくなったことを意味します。そのため、通信パートナーのアドレスの共通の開始が親アドレスとして使用されます。各アドレスコンポーネントは、現在の親ノードとは関係なく、上向きのステップとしてカウントされます。この仮定に起因する各エラーは、対応する親ノードで検出でき、それに応じて処理する必要があります。
共通の親ノードに到達した後、アドレスコンポーネントの配列としての相対パスは、通常どおり下向きにたどられます。正式:受信者のノードアドレスは、送信者のノードアドレスから最後のアドレスオフセットコンポーネントを削除し、残りのアドレスに相対パスを追加することによって形成されます。
次の例では、各アドレスコンポーネントは文字で表されています。いずれの場合も、ドットはノードを互いに分離します。ノードは複数のアドレスコンポーネントを運ぶことができるため、例にはいくつかの文字で表されるものがあります。
ノードA: a.bc.d.ef.g
ノードB: a.bc.i.j.kl.m
最も一般的でない親のアドレス:
a.bc
AからBへの相対アドレス:
-4/i.j.kl.m
数字の4は、4つのコンポーネントの結果です–
d
、e
、f
とg
–データパッケージを上向きに転送する必要があります。
ルーティングの正しい動作を保証するために、相対アドレスは、中間ノードを通過するたびに適合させる必要があります。アドレスオフセットを調整するだけで十分です。これは常に親ノードによって行われます。ノードがそのサブネットの1つからデータパッケージを受信した場合、アドレスオフセットはこのサブネットのアドレスコンポーネントの長さだけ増加します。
新しいアドレスオフセットが0未満の場合、データパッケージをさらに上に渡す必要があります。
アドレスオフセットが> = 0の場合、データパッケージは、アドレスオフセットから開始して、ローカルアドレスが相対パスに対応する子ノードに渡される必要があります。ただし、最初に、子ノードが正しいアドレスを認識できるように、アドレスオフセットを子ノードのローカルアドレスの長さだけ増やす必要があります。
共通の親ノードの決定中に上記のエラーが発生した場合、特別な状況が発生します。この場合、実際の親ノードのアドレスオフセットは負ですが、この値は、パッケージが発信されたサブネットの部分アドレスの長さよりも大きくなります。この場合、次のノードが正しい相対アドレスを認識できるように、関連するノードは次のことを行う必要があります。エラーを検出し、先行ノードのアドレスと長さの差に基づいて子ノードのローカルアドレスを計算します。それに応じてアドレスオフセットを調整します。この場合も、アドレスコンポーネント自体は変更されません。オフセットのみが変更されます。
ブロードキャストアドレス
ブロードキャストには、グローバルとローカルの2種類があります。グローバルブロードキャストは、ネットワーク内のすべてのノードに送信されます。長さが0の空のノードアドレスは、この目的のために予約されています。
ローカルブロードキャストは、ネットワークエリア内のすべてのデバイスに送信されます。この目的のために、ネットワークアドレスのすべてのビットが1に設定されます。これは、相対アドレスと絶対アドレスの両方で許可されます。
ブロックドライバは、両方の種類のブロードキャストアドレスを処理できる必要があります。つまり、空のネットワークアドレスと、ビットがすべて1に設定されているネットワークアドレスを解釈して、関連するすべての参加者に送信する必要があります。