IoTシステムの設計

読み:あいおーてぃーしすてむのせっけい / 英語表記:IoT system design

多数のセンサーやメーターなどの機器を、ネットワークでサーバにつなぐシステムの設計の考え方。機器の電池の持ちと処理能力の低さ、台数の多さを前提に、無線回線、通信プロトコル、セキュリティ、運用を選ぶ。

イマシルちゃんの解説

パソコンやスマホのネットワークと、IoTのネットワークは、考えることがけっこう違うんだ。

IoTの機器は、電池で何年も動かしたいし、計算する力も小さい。
しかも、何万台も全国に散らばっている。
だから、「速さ」より「省エネ」、「高機能」より「軽さ」、
そして「みんなが同じ時間にいっせいに送らない」工夫が大事になるんだよ!

より深い解説

検討の流れと観点

観点考えること選択肢の例
無線回線どこで使うか(全国か、敷地内か)、電池で動くか、データの量セルラー系LPWA(LTE-M、NB-IoT)、非セルラー系LPWA(LoRaWAN、Sigfox)、無線LAN
網の構成インターネットを通すか通信事業者の閉域網、IPsec VPNで、利用者専用の閉域網を作る
通信プロトコル機器の負荷、通信のパターンCoAP(UDP、要求と応答)、MQTT(TCP、発行と購読)
セキュリティ何から何を守るか、機器の負担閉域網、DTLS、SIMによる認証
消費電力通信しない時間をどう過ごすかスリープ状態、送信の回数をまとめる
サーバの負荷多数の機器の送信をどう受け止めるか送信のタイミングをランダムにずらす
時刻機器の時計のずれサーバから時刻を取得して補正する
費用回線ごとの料金と通信量1台あたりの月額を試算する

消費電力を抑える工夫

工夫効果
測定や送信をしない時間はスリープする待機中の消費電力を抑える
軽いプロトコル(CoAP)を使うTCPのコネクションの確立と切断が不要で、やり取りするパケットが少ない
暗号処理を減らす閉域網の中で通信するなら、DTLSを使わない判断もありうる
まとめて送る、送る回数を減らす無線部が動く時間を短くする

多数の機器の同時送信を避ける

全国の数万台の機器が、毎日同じ時刻(たとえば午前0時の測定の直後)にいっせいにデータを送ると、サーバや回線、通信事業者の網に負荷が集中し、通信の失敗や再送が増える。測定のあと、機器ごとにランダムな時間を待ってから送信すれば、送信のタイミングがばらけ、負荷の集中を避けられる。再送するときにも、指数バックオフで待ち時間を広げる。

時刻の管理

機器は、時計の誤差が積み重なると、決められた時刻とずれた時刻に測定や送信をしてしまう。高精度な時計を使っても、長期間動かすと誤差は大きくなる。そこで、定期的に(データの送信のついでなどに)サーバから現在時刻を取得して、機器の時計を補正する。サーバ自身は、NTPで正確な時刻に合わせておく。

セキュリティの考え方

対策内容
閉域網機器とサーバの通信を、インターネットに出さない(LPWAの閉域接続サービスと、拠点間のIPsec VPN)
SIMによる認証通信事業者が、正規の契約の機器だけを網に接続させる
DTLSインターネットを経由する場合や、通信の内容を守る必要がある場合に、CoAPの通信を暗号化する
踏み台の防止UDPを使うサービスが、送信元を偽装した要求で増幅攻撃の踏み台にならないようにする(DTLSのクッキーなど)

午後での問われ方

問われ方押さえるポイント
要件に合う無線回線全国規模ならセルラー系、免許不要の帯域なら干渉に注意
料金の試算1回あたりの通信量 × 回数 × 日数、と基本料金の合計
CoAPの動作メッセージIDとトークンの役割、再送、重複の検出
ランダムに待つ理由サーバやネットワークへの負荷の集中を避ける
スリープの効果消費電力を抑える
DTLSを使わない判断の理由通信が閉域網の中で行われる

実際の試験ではここに出る!

この用語が出てくる記事

↑