【図解】Wi-Fi 6の救世主「OFDMA」とは?IoT時代の遅延をなくす「リソースユニット(RU)」の仕組みを優しく解説
こんにちは!技術メディアの主筆ライター、そして無類のネットワークギークの私です。
休日の夜、リビングで家族全員がWi-Fiに繋いでいるとき、ふと「スマートリモコンで照明を消そうとしたのに、反応するまでワンテンポ遅れるな……」と感じたことはありませんか?
「光回線も速いし、最新のルーターを使っているはずなのに、なぜ?」
その原因は、光回線の太さではなく、実は「電波の順番待ち」にあります。
スマートホーム(IoT)デバイスが家中に溢れる現代、この「順番待ち」を劇的に解消するために生まれたWi-Fi 6(802.11ax)以降の超重要技術が、今回ご紹介する「OFDMA(直交周波数分割多元接続)」です。
難しそうな英単語が出てきましたが、心配はいりません! 今回は、小難しいビット数やパケット構造の数式はいったん脇に置いて、「郵便配達の流れ」に例えながら、その仕組みを世界一分かりやすく、一歩ずつ紐解いていきましょう!
—
1. 従来のWi-Fi(OFDM)は「大富豪の貸切トラック」だった?
OFDMAを理解するために、まずはWi-Fi 5(802.11ac)まで使われていた「OFDM(直交周波数分割多重)」という技術の弱点を見てみましょう。
ネットワークの世界を「道路とトラックの物流システム」に例えてみます。
- 電波(チャネル幅) = 道路
- パケット(データ) = 荷物
- ルーター(親機) = 配送センター
- スマホやIoT機器(子機) = 荷物の受取人
従来の「OFDM」という仕組みでは、「1回の配送(1つの電波送信タイミング)で、トラックの荷台には1人分の荷物しか載せられない」という厳格なルールがありました。
【従来のOFDMのイメージ】
[配送センター]
│
├─🚚 [スマホ宛てのデータ(満載)] ───────────→ 📱スマホへ(大満足!)
│
├─🚚 [スマート電球宛て(封筒1枚だけ)] ──────→ 💡スマート電球へ(※荷台はスカスカなのに貸切)
│
└─🚚 [PC宛て(順番待ち中...)] ───────────→ 💻PCは前のトラックが帰るまで待機
これの何が問題なのでしょうか?
例えば、お父さんがスマホで4K動画を見ているとします。この時、トラックの荷台は動画データでパンパンなので、効率よく道路を使えています。
しかし、その瞬間にスマート電球が「現在の明るさは50%です」という、たった数バイトの極小データ(封筒1枚分)を送ろうとしたとします。
従来のOFDMでは、この小さな封筒1枚を運ぶためだけに、巨大なトラックを丸ごと1台貸し切って走らせなければなりませんでした。
当然、そのトラックが戻ってくるまで、お姉ちゃんのPCや、他のスマートデバイスに届くはずの荷物は、配送センターで「順番待ち」をすることになります。これが、IoT機器が増えるとネットワークが重くなる原因、すなわち「キューイング遅延」の正体です。
—
2. Wi-Fi 6の「OFDMA」は、超効率的な「相乗り宅配便」!
そこで登場したのが、Wi-Fi 6(802.11ax)から採用された「OFDMA」です。
OFDMAの「A」は「Access(多元接続)」のA。
一言で言うと、「1台のトラックの荷台を細かく仕切って、複数の人への荷物を同時に載せて運んじゃおう!」という、相乗り(マルチユーザー)配送システムです。
【Wi-Fi 6のOFDMAのイメージ】
[配送センター]
│
│ 🚚 一台のトラックを「仕切り板」で分割!
│ ┌──────────┬─────┬──────────┐
└───│ 📱スマホ宛 │💡IoT │ 💻PC宛 │ ───→ 3台同時にデータが届く!
└──────────┴─────┴──────────┘
これなら、スマート電球用の小さな封筒は、トラックの「ほんの少しのスペース」に載せるだけで済みます。残りの広いスペースを使って、スマホの動画データやPCのウェブデータを同時に運べるのです。
誰も待たされることなく、電波という限られた道路(周波数帯域)を120%有効活用できるようになりました。これが、OFDMAが「IoT時代の救世主」と呼ばれる理由です。
—
3. 電波の仕切り板「リソースユニット(RU)」の仕組み
この「トラックの荷台を区切る仕切り板」のことを、専門用語で「リソースユニット(RU: Resource Unit)」と呼びます。
Wi-Fiの電波は、細かな周波数の束(サブキャリア)でできています。OFDMAでは、このサブキャリアをいくつか束ねて「1つのRU(=荷台の1区画)」として定義します。
このRUのサイズは、送るデータの量に応じてルーターがリアルタイムに、かつ臨機応変に変化させます。
- 大きなデータ(動画など)を送りたいデバイス = 大きなRU(仕切りを広くする)を割り当て
- 小さなデータ(IoTの制御信号など)を送りたいデバイス = 小さなRU(仕切りを狭くする)を割り当て
例えば、最も一般的な 20MHz というチャネル幅(道路の広さ)を1つ使う場合、OFDMAでは最小で最大9つのRUに分割できます。
つまり、たった1回電波を吹くだけで、同時に9台のデバイスと同時に通信ができるのです!
スマートホームのように、「データ量は少ないけれど、とにかくデバイスの数が多い」という環境において、このRUの細かな切り分けがいかに劇的な効果をもたらすか、イメージしていただけたでしょうか。
—
4. 【実務向け】ルーターでOFDMAを有効にする設定例
さて、ここからはインフラエンジニアや自宅のネットワーク環境を極めたい方向けの、実務的なお話です。
市販の家庭用ルーターや、エンタープライズ向けのアクセスポイント(AP)では、初期状態でOFDMAが「無効(Disable)」になっているケースが稀にあります。その力を最大限に引き出すための設定を見てみましょう。
一般的な家庭用ルーター(ASUSやSynologyなど)のWeb設定
管理画面の「詳細設定」>「ワイヤレス(無線LAN)」>「プロフェッショナル(詳細)」タブなどに進むと、以下のような項目があります。
- OFDMA/802.11ax HE Frame Support:
Enabled(有効) - DL OFDMA(ダウンリンク・下り):
Enabled - UL OFDMA(アップリンク・上り):
Enabled
エンタープライズ向けAP(Cisco Catalyst等)のCLI設定例
CiscoのワイヤレスLANコントローラ(WLC)やAPで、2.4GHz/5GHz帯におけるOFDMA(HE: High Efficiency)を明示的に有効化する場合のコマンド例です。
# 特権EXECモードに入ります
enable
# グローバル設定モードに入ります
configure terminal
# 5GHz帯の無線プロファイルに移動します(環境に合わせてプロファイル名を指定)
ap profile default-ap-profile
# Wi-Fi 6 (802.11ax) の設定を行うHEプロファイルに移行
# ※ダウンリンク(DL)およびアップリンク(UL)のOFDMAを有効化します
dot11ax downstream-ofdma enable
dot11ax upstream-ofdma enable
# 設定を保存して終了します
end
write memory
*※上記は一般的なCisco IOS-XEベースのワイヤレスコントローラにおける設定概念の一例です。機器のOSバージョンによってコマンド体系は異なります。*
—
5. Pythonによる「OFDM vs OFDMA」遅延削減シミュレーション
「本当にOFDMAにすると遅延が減るの?」という疑問を解消するために、簡易的なキューイング(順番待ち)シミュレーションコードを作成しました。
このPythonプログラムを実行すると、従来のOFDM(順番に1台ずつ送る)と、OFDMA(同時にまとめて送る)で、どれだけデバイス全体の「待ち時間(レイテンシ)」に差が出るかを可視化できます。
import random
import time
# 接続されているデバイスのリスト(データサイズ:バイト)
# スマート電球(IoT)はデータが小さく、PCはデータが大きい
devices = {
"スマート電球A": 64,
"スマートセンサーB": 128,
"スマートフォン": 1500,
"スマートスピーカー": 512,
"ノートPC": 4096
}
def simulate_ofdm(devices_dict):
"""
従来のOFDMのシミュレーション
1台ずつしか送れないため、順番待ち(待ち時間)が累積していきます。
"""
print("\n--- 従来のOFDM 送信開始 ---")
total_wait_time = 0
current_wait = 0
for name, size in devices_dict.items():
# データサイズに応じて送信完了までの処理時間がかかる(簡易シミュレーション)
transmission_time = size / 1000 # 単位:ミリ秒(シミュレーション用)
# このデバイスが送信を開始するまでの待ち時間
print(f"[{name}] 送信待ち時間: {current_wait:.2f} ms (データサイズ: {size} bytes)")
total_wait_time += current_wait
# 次のデバイスは、このデバイスの送信が終わるまで待たされる
current_wait += transmission_time
time.sleep(0.1) # シミュレーション上の微小ディレイ
avg_wait = total_wait_time / len(devices_dict)
print(f"👉 OFDMにおける平均待ち時間: {avg_wait:.2f} ms")
return avg_wait
def simulate_ofdma(devices_dict):
"""
Wi-Fi 6のOFDMAのシミュレーション
リソースユニット(RU)を使って、すべてのデバイスへ同時に(パラレルで)送信します。
"""
print("\n--- Wi-Fi 6 OFDMA 送信開始 ---")
# すべてのデバイスにRUを割り当て、同時に送信するため、
# 送信開始までの「待ち時間(順番待ち)」は原理上、全員「ほぼゼロ」になります。
total_wait_time = 0
for name, size in devices_dict.items():
# 同時並行で処理されるため、順番待ちは発生しません
wait_time = 0.05 # チャネルの割り当て制御にかかる極小のオーバーヘッドのみ
print(f"[{name}] 送信待ち時間: {wait_time:.2f} ms (RU割り当て完了)")
total_wait_time += wait_time
time.sleep(0.1)
avg_wait = total_wait_time / len(devices_dict)
print(f"👉 OFDMAにおける平均待ち時間: {avg_wait:.2f} ms")
return avg_wait
# シミュレーションの実行
ofdm_res = simulate_ofdm(devices)
ofdma_res = simulate_ofdma(devices)
print("\n==============================================")
print(f"【結果】OFDMAの導入により、平均待ち時間が {ofdm_res - ofdma_res:.2f} ms 削減されました!")
print("==============================================")
このコードを動かすとどうなる?
OFDMでは、先のデバイス(例えば「スマートフォン」や「ノートPC」)の巨大なデータの送信が終わるまで、後ろに並んだ「スマート電球」などのIoTデバイスがずっと待たされ、待ち時間がどんどん累積(雪だるま式に増加)していきます。
一方、OFDMAではルーターが帯域をRUに分割して一斉に送り出すため、どのデバイスも順番待ちをすることなく、ほぼ同時にデータを受け取ることができます。スマート電球のボタンを押した瞬間に「サッ」と電気が消える快適さは、この遅延削減のおかげなのです。
—
6. まとめ:これからのルーター選びは「OFDMA」を基準に!
今回は、Wi-Fi 6以降の最重要技術である「OFDMA」と、それを支える「リソースユニット(RU)」の仕組みについて解説しました。
- 従来のOFDM:1回に1つのデバイスしか送れない「貸切トラック」。小さなデータでもトラックを独占するため、混雑時の遅延が大きい。
- Wi-Fi 6のOFDMA:荷台を「リソースユニット(RU)」という仕切りで区切り、複数デバイスのデータを相乗りさせる「混載トラック」。
- IoT環境でのメリット:スマート家電などの小さなパケットが順番待ちを発生させず、ネットワーク全体の応答速度が劇的に向上する。
もし、あなたがこれから自宅のWi-Fiルーターを新調したり、オフィスの無線LAN環境を設計・構築したりするのであれば、「Wi-Fi 6(802.11ax)またはWi-Fi 7(802.11be)に対応し、OFDMAがしっかり動作すること」を最優先の基準にしてみてください。
一歩ずつ技術のパズルを解き明かしていくと、普段何気なく使っているWi-Fiの電波の中に、エンジニアたちの血のにじむような「効率化への執念」が詰まっているのが見えてきて、ワクワクしますよね!
これからも、ネットワークを流れるパケットの息吹を感じられるような、楽しい技術情報を発信していきます。また次の記事でお会いしましょう!
コメント