ソナスの滝澤と申します。
普段はDX(デジタルトランスフォーメーション)担当としてお客様のIoT・DXの取り組みに関わらせていただいておりますが、これからこの「SONAS IoT/DXラボ」にてタイトルの通りIoTやDXに関する様々なことを取り上げて発信していくことになりました。
記念すべき最初の記事では、自社の紹介も兼ねて弊社のIoT向け通信技術「UNISONet」についてご紹介します。
UNISONetはソナス独自のIoT向けの省電力無線通信技術です。一般的なIoT無線では通信速度・省電力性・安定性など様々な機能・指標についてあちらを立てればこちらが立たずというトレードオフが発生するものですが、UNISONetではそれらを同時に実現できることを売りにしています。
そんなUNISONetの謳い文句に、「革新的な通信方式」とあります。「本当に?」とお思いの方もいらっしゃるかもしれません。
今回は学生時代に無線センサネットワークを研究していた筆者の視点から、「UNISONetの何が革新的なのか」を公式HPの解説よりディープに、ただし無線通信技術に詳しくない方にも出来るだけ分かりやすく、ご紹介します。
- 自己紹介と前置き
- 1. 干渉しても衝突しない!? 覆った無線の常識
- 2. ルーティングよりも効率的!? フラッディングの下剋上
- 3. UNISONetとしての付加価値 細粒度スケジューリング
- 終わりに
自己紹介と前置き
私は学生時代、千葉大学/大学院で無線センサネットワークの研究をしていました。
就職してSIerのネットワークエンジニアとなり研究分野とは多少離れていたのですが、30歳を過ぎて転職という選択肢もあるなと考えて調べていた折に、ソナスとUNISONetに出会いました。
UNISONetの技術の説明を見て思ったのは、
「この技術で、自分の修士論文は意味がなくなる」
ということです。
まあ、元々自分の修論などはそれほど大した内容ではないのですが(汗
自分の研究分野であった「ルーティング」という概念そのものが、UNISONetでは不要となっていたのです(詳細は後で解説します)。
このルーティング不要という点そのものもさることながら、それを実現する原理である「建設的干渉」も興味深く、さらにその原理を実用的な通信方式に落とし込むことで得られる付加価値も大きい、という三重の驚きがありました。
これから、この3つの衝撃を順番にご紹介していきます。
1. 干渉しても衝突しない!? 覆った無線の常識
まず最初の衝撃はこれです。
無線通信は電波を使います。電波は波なので、同じ波長の電波信号が複数重なると干渉(複数の波が強めあったり弱めあったりすること)が発生します。その結果、元々電波に載っていたデータは受信側で正しく受け取ることができません。これを衝突といいます。無線通信技術というのは、いかに干渉による衝突を回避しながら効率良くデータを送るか、ということを主題として発展してきたと言って良いでしょう。
複数の送信元から同時に電波信号を受信したら、データは壊れてしまう。これが無線の常識でした。しかし2011年にとある論文(ソナスHPに関連論文のページがあります)にて、変調方式(電波への信号の載せ方)によっては全く同じ信号を複数の送信元から受信した場合には、ある程度のタイミングのズレまでであればデータを壊さずに受信できるという、「建設的干渉」と呼ばれる事象が報告されます。
そして同じ論文で、この「建設的干渉」を利用した「同時送信フラッディング」という転送方式が提唱されます。この転送方式もまた、無線ルーティングの研究をしていた身には衝撃でした。
なぜなら、「フラッディングは効率が悪いから、ルーティングをする」というのが常識だったからです。
2. ルーティングよりも効率的!? フラッディングの下剋上
先に幾つかの用語の解説が必要になるため、この章ではさらに節を区切って順番に説明していきます。
2-1. ネットワークの接続形態:スター型とメッシュ型
無線ネットワークでは接続形態として大きく分けてスター型とメッシュ型の2種類があります。
スター型は携帯電話や家庭で使うWiFiのように、親機(基地局)と子機(端末)がそれぞれ直接通信をする形態です。IoT用無線においても実用化されているメジャーな通信規格(Sigfox, LoRaなど)の多くがこちらに属していますが、親機の通信範囲がそのままネットワークのカバー範囲となり、広範囲に対応しようとすると消費電力を増やすか通信速度を遅くする必要があります。
メッシュ型はノードがそれぞれ中継機能を持ち、マルチホップと言って送信元と宛先が直接通信範囲になくてもその間にいるノードに転送してもらうことで通信が可能な形態です。一つのノードの通信範囲を広く取る必要がないため、省電力かつ通信速度を維持したままノードを増やすことでネットワークのカバー範囲を広げられるという強みがあります。
2-2. 転送方式:フラッディングとルーティング
ただし、メッシュ型では「直接の通信範囲にいない送信元から宛先まで、どうやってデータを転送するか」という問題が生じます。これを解決する方法が、「フラッディング」と「ルーティング」という2つの転送方式です。
フラッディングはとてもシンプルで、データを受信したらバケツリレーのように自分も同じデータを送信して、それを全ノードが繰り返せばいずれは宛先にも到達するだろう、という方式です。
フラッディングは以下の2点から非効率な方式である、と考えられていました。
- 実際には送信する必要のないノードが送信を行うので、電力を余計に消費する
- 全ノードが干渉しないようにタイミングをずらして送信を行うので、ネットワーク全体でみて通信完了までに時間がかかる
そこで、きちんと送信元から宛先までどのノードが転送を行うかを決めてしまおうというのがルーティングです。経路が決まってしまえば、必要最低限のノードだけが通信を行うので電力の無駄がなく、ネットワーク全体でみた通信時間も最小限で済みます。
そのため、いかに上手くルーティングの仕組みを作るかが一つの研究分野となり、私滝澤の学生時代の研究対象にもなりました。
先ほどの繰り返しになりますが、そこには「ルーティングはフラッディングよりも優れている」という前提があったのです。
2-3. 同時送信フラッディング
さて、ここでようやく本筋に戻って「同時送信フラッディング」のお話です。
この方式はフラッディングの名前の通り受信したデータをそのまま自分も送信するのですが、送信タイミングはノードがデータを受信した直後となっており、結果的に複数のノードがほぼ同時に送信するのが特徴です。
複数のノードからの信号を同時に受信しても、同じデータなので前述の「建設的干渉」により正しく受信できます。
このときネットワーク全体での通信時間は、ネットワークの端から端まで何ホップで届くかという点で決まります。先ほど挙げたフラッディングの非効率な2点のうち、後者のネットワーク全体でみて通信完了まで時間がかかるという問題が解決できているのが分かると思います。しかし、前者に挙げた必要のないノードが送信を行ってしまうという問題は解決されていません。それでも同時送信フラッディングはルーティングと比較して電力効率の観点で引けを取らないことが示されたのです。
2-4. ルーティング vs 同時送信フラッディング
なぜそんなことになるのでしょうか。それは、実際のルーティングには下準備が必要だからです。
ルーティングでは各ノードあらかじめ隣にどのノードがいるのかを把握して、「ノードX宛に送るときは隣のノードBに送る」といった情報を持っておく必要があります。
さらに無線センサネットワークではノードの場所や電波状況が頻繁変わったり、電池切れでネットワークからいなくなってしまうこともあります。ということは、定期的に隣のノードとメッセージをやり取りしてネットワークが変化していないかを確認したり、大きくネットワークが変わってしまった場合は全体で経路を再計算するなど、最適な経路を維持するために必要な制御用の通信が発生します。
この制御用の通信にかかるオーバーヘッドをいかに小さくするかが研究における主な課題であり、メッシュ型の通信規格が普及に苦戦する一因となっていました。
一方で同時送信フラッディングには下準備は不要です。受信したらそのデータをそのまま送信する。それだけで良いのです。このシンプルさこそが、全体で見るとルーティングよりも良い効率をもたらす鍵となっています。(UNISONetは後で説明する細粒度スケジューリングと組み合わせることで、さらにルーティングに勝る効率をもたらしています)
もう一つ別の観点として、無線センサネットワークの評価指標にネットワークライフタイムというものがあります。電池で動作するノードから構成されるネットワークにおいて、最初にどれか一つのノードの電池が切れるまでどれだけ時間がかかるか、という指標です。
実はルーティング方式では、特定のノードに転送が集中してそのノードの電池がすぐ切れる、ということが起こる可能性があります。(それをいかに避けてネットワークライフタイムを延ばすかというのが私の修士論文のテーマでした)
一方フラッディングは全てのノードが満遍なく通信を行うのでノードごとに電池の消費の偏りが生まれにくく、そもそもの効率が改善されたことでネットワークライフタイムが延びやすいというメリットが生まれていたのです。
同時送信フラッディングが「ルーティングはフラッディングよりも優れている」という既成概念を打ち壊して下剋上を果たしたようで、私は自分の研究が否定される以上に「これは面白い技術だ!」と強い興味を持ちました。
3. UNISONetとしての付加価値 細粒度スケジューリング
これまでお話してきた「同時送信フラッディング」は、弊社ソナス発の独自技術ではありません。アカデミックで発表された内容をベースに、CTOの鈴木らが実用的な通信規格として仕立て上げたのがUNISONetです。その中でUNISONetを独自規格たらしめる部分が、「細粒度スケジューリング」だと思います。
3-1. 送信制御方式:コンテンションとスケジューリング
無線ネットワークにおいて、「誰がどのタイミングで通信を行うのか」を決める方法は大きく2種類あり、「コンテンション方式」と「スケジューリング方式」と呼ばれます。
コンテンション方式とは、各ノードが送信したいタイミングで一定のルールに従って送信権を獲り合う方式です。一定のルールとは例えば送信可能な状況になったら各ノードがランダムな時間を待って(ランダムバックオフといいます)、最初に待ち時間が0になったノードが送信する、といったものです。
他のノードとの協調は必要なく、ノードごとにそれぞれの処理に従えば良いので実装はシンプルになります。しかし送信権を獲得するまでの間待たなければいけなかったり、逆に自分が受信する可能性があるため送信データがなくても定期的にスリープを解除したりする必要があり、理想的な通信に比べて電力消費が悪化します。
もう一つのスケジューリング方式は名前の通り、各ノードの送信タイミングをスケジュールする方式です。送受信のタイミングが決まっているのでその時だけスリープを解除すれば良く、コンテンション方式よりも効率良く通信ができますが、その代わりに、親機がいて全体のスケジュールを決めてあげる必要があります。
また親機が決めたスケジュール通りにネットワークが動くためには、ネットワーク内のノードが時刻同期をして時間をスロットという単位に区切り、「次のスロットはどのノードが通信する」というスケジュールを伝達する仕組みが必要です。スター型のような1ホップのネットワークでは親機が1回の送信で時刻やスケジュールを広報してしまえば良いのでそんなに難しくないのですが、マルチホップになると途端に難易度が上がります。
3-2. 細粒度スケジューリング
UNISONetの細粒度スケジューリングはその名の通り、スケジューリング方式に分類されます(厳密にはコンテンション方式も一部組み合わせている部分があります)。
しかし、直前にマルチホップでは時刻同期とスケジュール伝達が難しいと書いたばかりですね。それを解決しているのが、実は同時送信フラッディングなのです。
細粒度スケジューリングでは、「同時送信フラッディングによってネットワークの端から端まで通信が伝達されるための時間」を1スロットとしています。つまり、親機から直接電波が届かないノードも含めて、1スロットでネットワーク全体にデータが届きます。これでスケジュール伝達の問題は解決です。
では、時刻同期はどうでしょうか? 実は時刻同期も可能です。
同時送信フラッディングでは、各ノードがデータを受信したら即時転送、を繰り返します。転送にかかる時間は僅かなズレこそあれほぼ一定です。データの中身に親機の送信時刻とこのデータが何ホップしたかの情報があれば、かなり正確に現在時刻を計算できるのです。
UNISONetでは一定周期ごとの最初のスロットを時刻同期スロットとして特別に割り当て、時刻同期を行っています。その後、データを持っているノードが送信要求を出すコンテンションスロット(その名の通りここでコンテンション方式が取り入れられています)があり、それから親機がネットワーク内のノードの送信順を割り当てて順番にリクエスト⇒データ送信を繰り返し、最後に親機からスリープパケットを送信して次の同期タイミングまで子機をスリープさせる、というのがUNISONetの一連の動作になります。
3-3. 高精度な時刻同期という付加価値
また、ネットワーク全体で高精度な時刻同期が可能という特徴は、UNISONetに稀有な強みを与えています。それは「センシングデータの測定時刻を高精度に揃えられる」ということです。
例えば1秒に1回温度を測定するセンサノードが無数にあるとします。時刻同期がされていない状態で9:00:00の温度データを集めたとすると、実際にはそれぞれのセンサノードの9:00:00には微妙にズレがあります。
この例では1秒に1回の温度データなので、そもそもズレが1秒以内なら気になりませんし、たとえ1秒以上のズレがあっても問題とされないかもしれません。しかしそれがシビアな分野もあり得ます。例えば弊社が得意とする振動計測による構造モニタリングの分野です。
弊社の振動計測システム「sonas xシリーズ」では、計測周波数が最大で2kHz(0.5ミリ秒に1回計測)です。そして構造モニタリングでは、同一時刻の複数地点の振動データを分析します。UNISONetではその仕組み上正確な時刻同期が可能なので、ノードごとに時刻を補正するなどの処理が不要になります。
学生時代に研究していたとき私はスケジューリング方式よりコンテンション方式を支持しており、恥ずかしながら高精度な時刻同期がセンシングデータの観点から重要という観点をあまり認識していなかったので、この強みは目から鱗でした。
終わりに
弊社の独自のIoT向け省電力無線通信規格であるUNISONetについて、学生時代にセンサネットワーク研究をしていた者の目線から「何が革新的なのか」について解説させていただきました。
ここに書いたことは、私が前職からの転職を考えてリサーチを始め、ソナスという会社を見つけたときに「この技術は凄い! 面白い!」と思った内容そのままです。あのときの自分の感覚が少しでも伝われば幸いです。
文中でご紹介した振動計測だけでなく、UNISONetは幅広い分野に適用可能な技術です。「こんなことに使えないか」といったご相談がありましたら、是非お気軽にソナスまでお問い合わせください。