単純ネット
単純ネットでは、TWENET 内での中継配送手続きの介在を行わず、単純なノード間通信を行います。通信方法はアドレス指定によるもの、同報通信による2種類を利用します。標準アプリケーション App_Twelite など多くのアプリケーションはこの単純ネットを用いています。
中継について
単純ネットでサポートする通信自体は中継を実施しないスター型のネットワークになりますが、簡単で実用的な中継を実装する方法もあります。
中継配送を行う場合は、いくつかの方法があります。代表的な中継方法を紹介します。
同報通信により中継を実施する方法。受信したパケット内に中継回数にあたる寿命データを含めておいて、中継ごとに寿命カウントを減少させて、一定回数無条件に中継する。
特定の要求に基づいたネットワークの実装も可能です。例えばショートアドレスを決め打ちにしたリニア型のネットワークです。
親局は 0x0000 のアドレスとし、親局から順に 0x0001 0x0002 ... とショートアドレスを振っていきます。自局の前後のアドレスは常に通信可能という前提をおきます。
こうすれば、子局から親局の配送は、自局のアドレスより1小さいアドレスに配送します。
ネットワークの自動構成について
周囲の中継器を探索し、中継局を決定することは、無線通信においては非常にオーバヘッドが大きいため、多くのアプリケーションでは推奨されません。
通信相手先を決定するのに多くの無線通信が必要になる。
電池の消耗
起動後から通信可能になるまでの時間がかかる
安定性が高くない中継局が選ばれてしまう場合がある。
通信相手先の探索条件を、その時もっとも良い通信とした場合、偶然条件が良かった遠くの局が選ばれてしまう。
通信相手先の途絶を知るにも時間がかかる。
通信失敗が連続したといった条件を成立するまでは、通信相手先の途絶とすることができないため、通信相手先の再探索まで長い時間が必要(または動的に通信相手先を切り替えるといった処方が必要)
中継ネットワークを維持するために多くの無線通信が必要になる。
帯域の圧迫となり、結果として、収容可能ノード数が減少する。
上記のような中継局を決定・維持するための原理的な問題があります。どのような手法を取っても一長一短があり、要求に合わせて考慮する必要があります。
一般に電池駆動のノードでは、こういった中継のための通信は現実的でありません。
役割と宛先について
単純ネットであっても、通常は親子といった役割を定めたネットワークとします。この役割についても、無線パケット通信ではいくつかの実装方法があります。
パケット内のデータによるもの。
中継を実現したい場合は、アドレスや役割に相当するもの(ここでは論理アドレスと言います)を無線パケット内のデータとして格納します。
親局には 0x00 という論理アドレスを割り振ります。子局には0x01...という論理アドレスを割り振ります。この論理アドレスは、無線送信時のパケット内のデータとして、送り主・宛先として格納します。
ショートアドレスの仕組みを使用したいところですが、中継を行う時に都合が良くないため(中継局のショートアドレスを送信元アドレスとして中継パケットを送るため)、パケット内のデータとして格納します。
無線パケットは全て同報通信として送信します。同報通信であるため、電波到達可能範囲の全てのノードがそのパケットを受信します。(注:宛先を指定したパケットであっても、その内容は電波到達範囲であれば全てのノードが受信します。宛先が違うためその受信データを無視しているだけです。)
受信されたパケットのデータを参照して、自局で処理すべきか、中継すべきかといったことをアプリケーション側で決定します。
最終更新