Wi-Fi本格派入門 -IEEE802.11規格書を読もう-

# はじめに

みなさん、Wi-Fiを使った開発してますか？

Wi-Fiの動作を確認している中で困ったとき、最後に行き着く場所はIEEEの規格書になる（？）わけですが、その規格書が基本的に誰でも無料で確認できることをご存知でしょうか？この記事では、そのIEEE規格書を確認するための入り口みたいなものを示していけたらと思っています。ただし、規格書を読んで解説するようなことはせず、あくまで読むための取っ掛かりを作ることを目的としています。

一応注意として、筆者がIEEE802.11の策定に関わっているとかではないので、あくまで（元）Wi-Fiアクセスポイント開発者として得られたノウハウと思って下さい。


# Wi-Fi と IEEE802.11

ここまで「Wi-Fi」という言葉を使っていますが、この記事で扱うのは主にIEEE802.11についてです。まずはこの2つの関係について整理してみたいと思います。

- IEEE802.11
  - [IEEE（Institute of Electrical and Electronics Engineers）](https://www.ieee.org/)が策定している無線LANに関連する**規格**。機能ごとに「802.11n」とか、「802.11ax」とか、アルファベットの添字が付けられていることが多いです。後でもう少し詳しく説明します。
- Wi-Fi
  - [Wi-Fi Alliance](https://www.wi-fi.org/ja)が実施している、デバイスがIEEE802.11をベースとした仕様を満たしているかを保証する**認定**[^1]。満たしている仕様によって「Wi-Fi 5」とか、「Wi-Fi 6」とか、番号が付きます。

[^1]: Wi-Fi　Allianceでは「Wi-Fi」という用語をもっと広い概念として[定義しています](https://www.wi-fi.org/ja/discover-wi-fi)が、ちょっと話がややこしくなるので、ここでは「Wi-Fi認定」について話しています。

ちなみに、昔はWi-FiもIEEEと同じように「802.11n」や「802.11ac」などを認定の名称に使用していましたが、少し前に今のようなナンバリング方式に[名称を変更しました](https://www.wi-fi.org/news-events/newsroom/wi-fi-alliance-introduces-wi-fi-6)。過去の情報を参照する場合には気を付けるといいかもしれません。

誤解を恐れず言うなら、IEEE802.11は仕様書、Wi-Fiはテスト項目、みたいに自分は捉えています。


# IEEE802.11 のカバー範囲

なんとなく世間では、Wi-Fi =「つなげばインターネットが使える無線技術」みたいに思われている気もしますが、Wi-Fi（IEEE802.11）のカバー範囲はもう少し狭いものです。インターネット上のサービスを使うためには物理層からアプリケーション層まで様々な技術が必要になります。しかし、後ほど入手するIEEE802.11規格書のタイトルとしては、

*Wireless LAN Medium Access Control　(MAC) and Physical Layer (PHY) Specifications*

となっており、**MAC層**と**物理層**についてのみ規定しているのです。なんのこっちゃという感じではありますが、ざっくりとした言い方をするなら、デバイス同士で通信するための決まりごとと、物理的にどのように電波を飛ばすかという話が書かれているのみで、内部を流れるデータについては何も決めていないのです。LANケーブルを使って2つのデバイスを有線でつないだりすることがあると思いますが、Wi-Fiで親機（アクセスポイント）と子機（スマホ、パソコン等）をつなぐのも考え方としては全く同じで、通信するための経路を用意しているに過ぎないということです[^2]。

[^2]: IEEE802.11で規定する構成にはいくつかありますが、ここでは最も一般的であろうInfrastructure　BSSを前提としています。 

そのため、無線は接続できたがインターネットが使えない、みたいな状況も発生したりします。これは、IEEE802.11としては問題なく使えているが、流れているデータの中身の問題でWEBページなどを見ることができないといったことが起こっている可能性が高いわけです。

Wi-Fiを使うためのデバイス = Wi-Fiルーターという説明を耳にすることもありますが、これに関しても、Wi-Fiアクセスポイント + ルーターという2つの機能が組み合わさったデバイスになってるはずです。

Wi-Fiを使っていて問題が発生した場合には、それがWi-Fi（IEEE802.11）の領域で起こっているのか、それ以外の領域で起こっているのかをまずは切り分けましょう。


# IEEE規格書の入手

では規格書を入手していきましょう。

IEEEの文書は[IEEE Xplore](https://ieeexplore.ieee.org/Xplore/home.jsp)で検索することができます。さっそく検索、といきたいところですが、入手するには会員登録（無料）が必要なので、まずはリンク先の右上にある「Create Account」で会員登録を行っておきましょう。

ちなみに、私も詳しいわけではないですがIEEEの会員にもいくつかレベル（属性？）があり、それによって入手可能な範囲が異なります。規格書も完成してから半年間は無料会員では入手できなかったり、有料会員でも権限がないと策定中の規格のドラフト版は入手できなかったりします。

少し話が逸れましたが本題です。IEEE Xploreでカテゴリを「All」→「Standards」に変更し、「802.11」と入れて検索しましょう。

結果、すごい数の文書がヒットすると思います。しかも全部名前がめちゃくちゃ長いです。私たちが欲しいIEEE802.11の規格はどれなのでしょうか？（私は周りに教えてくれる人がいなかったので、ここで結構はまりました、、、）

結論から言うと、正式なタイトルっぽいのは無視して、タイトルの下に「IEEE Std 802.11-2020」と書いてあるものをまずは入手しましょう[^3]。（過去からの差分が見やすいRedline版というものもあるようですが、これは有料会員でないと入手できないっぽいので、「Redline」と付いていないものを選んで下さい。)

[^3]: 802.11の規格は機能追加が繰り返された結果、現状4,379ページあり、ファイルサイズもPDFで40MB近くあるので、開いたりダウンロードしたりする際は少し注意して下さい。

これで、無線LANの正式な仕様をいつでも確認できます！


# IEEE802.11規格の策定と統合

さて、ここで例えば、Wi-Fi 6のベースである802.11**ax**の仕様を確認したいとしましょう。

実は、802.11axの話は上記で入手した規格書「IEEE Std 802.11-2020」には**含まれていません**。新しい規格だから、というのが理由ではありますが、ちゃんと確認することはできます。このあたりを理解するには規格の運用を少し理解する必要があります。

上記で入手した規格書は、いうなれば802.11の**本体**です。

最初の方で少し言及しましたが、IEEE802.11では特定の機能・仕様について「802.11ax」のようにアルファベットの添字を付けた規格として策定します。そのような添字付きの規格は多岐に渡っており、通信速度の向上を目的としたものだけではなく、例えば省電力やローミングのための仕組み、また、無線LANの新たな使い方を提案するようなものなど、それぞれが並列に策定されていきます。

そして、そのような添字付きの規格がある程度たまってきたら、まとめて本体に**マージする**という流れになっているのです。

数百ページあるような複数の文書のマージはおそらくなかなかに大変であるため、マージは数年に1度くらいの頻度で実施されていて、本体の規格には802.11-**2020**のように作成した年が付いています。2022年3月現在、最新は2020年のもののようで、1つ前は2016年のものです。

よって、章のはじめに戻りますが、「IEEE Std 802.11-2020」は2020年に作成された802.11の本体であり、802.11axはまだ本体にマージされていないので、そこから仕様を確認することはできない、ということになります。802.11axの仕様を確認するのであれば「IEEE Std 802.11ax-2021」を確認する必要があるわけです。「IEEE Std 802.11ax-2021」もすでに公開されている規格なので、同じようにIEEE Xploreから入手できます。

ただし、「IEEE Std 802.11ax-2021」には当然802.11axに関する仕様しか記載されていないため、それ以外の802.11全般の仕様を確認する場合は「IEEE Std 802.11-2020」を読む必要があります。

こういった運用だと、自分が規格を参照したいときに「どの規格は本体にマージされているのか」、「自分が確認したい規格はすでに策定完了しているのか」といった情報を確認したくなりますよね。そういうときにはこのページが便利です。

https://www.ieee802.org/11/Reports/802.11_Timelines.htm

このページでは、過去に策定されたものを含め、全てのIEEE802.11規格のステータスを一覧で確認できます。中ほどにある「PUBLISHED」として記載されている規格が、現状で確認すべきものということになります。現在策定中の規格とかも書いてあるので、このページを定期的にチェックしておくと、この先どのような規格が策定されるのかとかも分かるので、ちょっと無線LANの上級者ぶれます。


# マージされた規格の扱い

IEEE802.11の規格は巨大で、正直、頭から全部読んでいたらやってられません。なので自分が調べたいキーワードで検索して読んでいくことになるのですが、ここで注意点があります。

上述したようにIEEE802.11の規格はまずアルファベット付きとして策定されて、世の中に出ていって、機能とアルファベットの添字はセットとして認識されます。なのですが、マージされた規格本体の説明に当時の添字は**出てきません**。802.11acの仕様を調べたくて「11ac」とかで検索しても、見たい情報はヒットしないわけです。

ではどうすれば？となるのですが、大抵の場合、各規格には単純なアルファベットではない**名称**のようなものが付いています。上で紹介した規格一覧表の「Project Authorization Request」に記載されているものが基本的にはそれです。

通信性能向上のための規格の名称を紹介すると、こんな感じになっています。

- 802.11n : **HT**（High Throughput） 
- 802.11ac : **VHT**（Very High Throughput）
- 802.11ax : **HE**（High Efficiency）

このような名称にもとづいたキーワードで検索することで、自分の調べたい部分の記載が見つけやすくなるはずです。特に名称の頭文字を取った略称が使われがちです。（例えば、802.11acのための情報を伝えるフィールドは「VHT Capabilities」という具合。）

余談にはなりますが、名称を見るとWi-Fi 6のベースである802.11axは802.11nや802.11acと異なり、単純な通信の高速化を目的としたものでないことが分かります。802.11axの資料にも「in a dense deployment」（高密度環境）での効率化をターゲットとしているような記載があります。ちなみに、次に計画されている通信性能向上のための規格は、

- 802.11be : **EHT**（Extremely High Throughput）

となっており、完全に形容詞がインフレしてます。さらに次に来る規格のタイトルが今から楽しみです。


# おわりに

冒頭に書いた通り中身については一切説明してないのですが、ここまでの情報があれば自身で規格を読んでいくことができるのではと思います。規格文書はまさに正式なリファレンスであり、規格の記述にもとづいて議論できれば、Wi-Fiを使っていて発生した問題に対して明確な対応が取れるはずです。

IEEE802.11の規格文書を活用して、快適なWi-Fi生活を送って下さい。