You can help expand this article with text translated from the corresponding article in German. (April 2016) Click [show] for important translation instructions.
|
センサーメディアアクセス制御(S-MAC)は、センサーネットワーク用のネットワークプロトコルです。センサーネットワークは、ワイヤレスで通信する小型コンピュータ(センサーノード)で構成されます。これらのコンピュータは、独立してネットワークを構築するためにエリア内に多数配置され、センサーと共同で周囲を監視している限り、エネルギーの蓄えが枯渇します。アドホックネットワークの特殊な形式であるセンサーは、ネットワークプロトコル(インターネットなど)にまったく異なる要求をするため、専用に構築されたネットワークプロトコル(SMAC)が必要です。センサーメディアアクセス制御は、センサーネットワークのノードがデータを交換する方法、ネットワークの共有通信メディアにアクセスするためのメディアアクセス制御(MAC)を制御する方法、ネットワークトポロジの構造を規制する方法、および同期の方法を提供します。
S-MACは今日では主に学術的な関心の対象となっているものの、センサーネットワーク研究における重要な一歩となり、その後の多くのネットワークプロトコルに影響を与えました。2001年に南カリフォルニア大学のWei Ye、John Heidemann、Deborah Estrinによって導入され、センサーノードの希少で再充電不可能なエネルギー資源を節約することを目的としていました。[1]この開発は、米国国防高等研究計画局(DARPA)のSensor Information Technology(Sensit)プロジェクトによって 資金援助を受けました。
プロトコル構造
このプロトコルは、コンピュータサイエンスの他の分野でも使用されているランデブー技術に基づいています。メッセージを送信したいネットワークノードは、まず送信要求(RTS、送信要求)を受信者に送信します。受信者はメッセージを受信する準備が整っている場合、送信確認(CTS、送信可)で応答します。次に、送信者は実際のデータパケットを送信し、受信者は確認応答(ACK )でそれを確認します。このデータ交換に関する合意により、送信者は受信者が実際に受信していることを保証され、受信者は他の場所で通信中であるため、何もせずにデータ送信を拒否することができます。
プロトコルの残りの部分は、日常的なルーチン、通信の干渉、およびメッセージの送信という 3 つのタスク領域に分かれています。
毎日のルーティン
センサーノードは、クロック以外のすべてのコンポーネントの電源をオフにしたスタンバイモードに切り替える機能を備えています。この「スリープフェーズ」では、消費電力は最小限に抑えられますが、非アクティブ状態となり、特にメッセージの受信はできません。S-MACは、センサーノードに、定期的なウェイクアップとスリープのサイクルを含む固定の「デイリールーチン」を提供します。共通のウェイクアップ時間中に安全な通信を確保するため、できるだけ多くのノードが同じデイリールーチンを実行する必要があります。
日常ルーチンは、同期インパルス(SYNC)を介して調整されます。SYNCは、「今は…時です。x秒後に寝ます。」という内容の短いメッセージです。電源投入後、各センサーノードは他のノードからのSYNCメッセージを待機します。SYNCメッセージを受信しない場合は、ランダムな時間間隔後に自らSYNCを送信します。SYNCを受信したノードは、そこに指定された日常ルーチンに適応します。それが最初のSYNC受信である場合、ノードは現在時刻とメッセージの時刻との差dを算出し、「今は…時です。x - d秒後に寝ます。」という内容の新しいSYNCを送信します。各ノードは、必要に応じて自身の日常ルーチンを中断することで接続を確立できるように、隣接ノードの日常ルーチンを記憶しています。
複数の同期パルスがネットワークの異なる端で同時に、または異なる時間に開始される可能性があるため、ネットワークは異なる昼夜のリズムに従うグループに分割される可能性があります。センサーノードはこれらのグループの境界に配置され、すべての隣接ネットワークの日常的なルーチンに従います。これによりノードグループ間の通信は確保されますが、境界ノードは内部ノードよりも起動時間が多いため、より多くの電力を消費し、より早く故障します。
電子時計でさえ、完全に同期することは決してありません。そのため、同期パルスを更新することで、時計が徐々に「ずれていく」のを防ぐ必要があります。これを実現するために、S-MACはウェイクアップフェーズを2つのサブフェーズに分割します。短い1番目のフェーズは同期メッセージの送受信に使用され、長い1番目のフェーズは実際のデータ交換に使用されます。
頻繁に更新される同期パルスにより、連続動作中にネットワークに新しいノードを追加することも可能になります。新しいノードは既存のネットワークからSYNCを受信し、受信した日々のスケジュールに適応します。
コミュニケーションの問題
コンピュータネットワークにおける通信の問題は、データの損失や電力の浪費につながるため、回避する必要があります。S-MACのランデブー方式は、隠れステーションの問題を本質的に軽減します。その他の干渉を回避するためのプロトコルの他のコンポーネントについては、以下で説明します。
2つのノードが共通の通信媒体上で同時に送信を行うと、データの衝突が発生します。信号が重なり、両方のメッセージが使用できなくなります。衝突を回避するために、S-MACは物理キャリア センスと仮想キャリアセンス、つまり送信前に通信媒体の占有を排除する機能に依存しています。物理キャリアセンスとは、他の使用を排除するために実際に媒体を短時間傍受することを指します。一方、仮想キャリアセンスとは、事前に通知された送信要求に基づいて、他の通信を予測することを指します。
仮想キャリア チェックは、オーバーヒアリングも回避します。オーバーヒアリングが発生すると、ノードは、自分宛てではない、処理できないデータ交換をリッスンするため、エネルギーを無駄にします。仮想キャリア チェックは、各送信要求で送信するメッセージの長さを同時に通信することで実装されます。リッスンしているノードは、この長さから、データ送信の開始後に通信媒体が占有される時間を推測し、この時間スリープ状態に入ることができます。これは、ネットワーク割り当てベクトル(NAV) を利用して実装されます。NAV は、送信要求で指定された値に設定され、タイマーを使用して徐々にカウントダウンされます。NAV が値 0 に達すると、仮想キャリア センスによれば媒体は空いており、ノードはウェイクアップされます。物理キャリア センスで再確認された後、ノードは独自のデータ送信を開始できます。
メッセージ送信
コンピュータネットワークでは、連続する大きなデータ単位を小さなパケット(フラグメント)に分割するのが一般的です。大きなデータ単位の送信中にエラーが発生した場合は、すべてのデータを再送信する必要があります。パケットで送信エラーが発生した場合は、個々のデータフラグメントを繰り返すだけで十分です。このアプローチはS-MACでも採用されています。通常、ランデブー方式はパケットレベルで適用されます。つまり、個々のパケットは、ランデブーメッセージの完全なセットであるRTS、CTS、およびACKで確認されます。S-MACでは、連続するすべてのパケットを次々に送信することでこの不要なオーバーヘッドが削減されるため、完全なデータ単位ごとに1つのRTSとCTSのみが必要になります。
受信側は受信した各パケットをACKで確認し、ACKが受信されない場合、送信側は最後のフラグメントを繰り返し送信します。メッセージ全体の最後にACKを1つだけ送信することも可能ですが、開発者は隠れステーション通信エラーに対する再保険として、意図的にこれを実施しませんでした。ACKを継続的に送信することで、受信側環境内のノードが、通信相手のRTS-CTS交換を認識していない場合でも、通信を開始するのを阻止します。さらなる改善として、S-MACは、データ交換の予想残り時間も各パケットとACKに指定することを推奨しています。これにより、新たに追加されたノードや「誤って」起動されたノードはスリープ状態に戻ることができます。
参照
外部リンク
- センサーMAC(S-MAC):無線センサーネットワークのメディアアクセス制御
参考文献
- ^ Ye, Wei; Heidemann, J.; Estrin, D. (2002). 「無線センサーネットワークのためのエネルギー効率の高いMACプロトコル」. Proceedings. Twenty-First Annual Joint Conference of the IEEE Computer and Communications Societies . Vol. 3. pp. 1567– 1576. CiteSeerX 10.1.1.16.1535 . doi :10.1109/INFCOM.2002.1019408. ISBN 978-0-7803-7476-8. S2CID 548846。