無線LAN(IEEE802.11)のフレームフォーマット
この記事では無線LANのフレームフォーマットについて学びます。無線LANは電波という目に見えないモノを使ってパケットをやり取りするため、有線LANよりも複雑な通信制御/セキュリティ制御を必要とします。IEEE802.11においてどのような形式でカプセル化を行い、どのように安全かつスムーズに情報をやり取りするかが定義されています。まずは有線LAN(IEEE802.3)のフレーム構造を復習してから内容に入っていきます。
イーサネットⅡのフレーム構造
イーサネットⅡは5つの要素(フィールド)から構成されています。プリアンブル、宛先/送信先MACアドレス、タイプ、イーサネットペイロード、FCS の5つです。
フィールド名称 | 機能 |
---|---|
プリアンブル | フレーム送信の合図となる信号 |
MACアドレス | 機器を識別するための情報 |
タイプ | ネットワーク層でどんなプロトコルを使っているかを表すID |
イーサネットペイロード | ネットワーク層から受け渡しされた元々のデータ (=ほとんどの場合、IPパケットのこと) |
FCS | フレームが壊れていないかチェックするための値 |
プリアンブル
フレーム送信の合図となる信号です。具体的には8バイト(64ビット)の特別なビット列です。10101010
が7回送られ、最後に10101011
が1つ送られます。受信側の端末がプリアンブルを確認し、この直後から実際のフレームが始まることを認知します。
宛先/送信先MACアドレス
イーサネットネットワークに接続している端末を識別するためのIDです。6バイト(48ビット)で構成されています。00-0c-29-43-5e-be
のように、1バイト(8ビット)ずつ区切って16進数で表記します。イーサネットフレームを送信する際に、以下の2つの情報をセットします。
宛先MACアドレス:フレームを届けたい機器のMACアドレス
送信元MACアドレス:自分のMACアドレス
受信側の端末は宛先MACアドレスを見て、自分のMACアドレスなら受け入れて、関係ないモノは破棄します。また送信元MACアドレスを見て、どの端末から来たイーサネットフレームかを判断します。
タイプ
ネットワーク層でどんなプロトコルを使っているかを表すIDです。2バイト(16ビット)によって、上位層で使っているプロトコルを識別します。
タイプコード | プロトコル |
---|---|
0x0000 - 05DC | IEEE802.3 Lenght Field |
0x0800 | IPv4 |
0x0806 | ARP |
0x0835 | RARP |
0x86DD | IPv6 |
0x8863 | PPPoE |
0x8864 | PPPoE |
多くの場合はIPプロトコルが使われています。
イーサネットペイロード
上位層から受け渡しされるパケットのことです。イーサネットペイロードへL2ヘッダを付与することで、イーサネットフレームを作ることができます。イーサネットペイロードの正体はほとんどの場合IPパケットです(上位層であるネットワーク層では多くの場合、IPプロトコルが使われているから)。
L3から受け渡しされるパケットのサイズは決まっており、46バイト〜1500バイトに収める必要があります。46バイトに足りなければパディングといってダミーのデータを追加します。また1500バイト以上であれば、トランスポート層やネットワーク層でデータを分割して1500バイトに納めます。
FCS
フレームが壊れていないかチェックするための値です。Frame Check Sequenceの略です。イーサネットフレームを送信する際に5つのフィールドに対して一定の計算(チェックサム計算、CRC)を行い、その結果をFCSとしてフレームの最後に付与します。受信側の端末は同じように5つのフィールドで計算を行い、その値がFCSと同じかどうかを比較します。2つのFCSの値が同じであれば正しいイーサネットフレームと判断し、異なっている場合は伝送途中で壊れたと判断します(壊れたイーサネットフレームについては破棄されます)。FCSにおいてイーサネットにおけるエラー検知の全てを行っています。
IEEE802.11のフレーム構造
先ほどの有線LANと比較して無線LANのフレームには、たくさんの通信/セキュリティ制御に関する情報が含まれます(電波という目に見えないモノを使って通信するため)。
それぞれの内容を詳しく解説していきます。
プリアンブル
フレーム送信の合図となる信号です。具体的には8バイト(64ビット)の特別なビット列です。受信側の端末がプリアンブルを確認し、この直後から実際のフレームが始まることを認知します。
ヘッダ
変調方式(伝送速度)、データ長などの情報が含まれます。
フレーム制御
フレームの制御に必要な情報を含んだ2バイト(16ビット)のフィールドです。フレームの種類、送信元/宛先の種類、フラグメント情報、電力状態などがセットされます。無線LANのフレームには3種類あります。データフレーム,管理フレーム,制御フレーム です。
(1)データフレーム
IPパケットを送受信するためのフレームです。有線LANはこのタイプのフレームしかありません。
(2)管理フレーム
どのアクセスポイントと、どのように接続するかを管理するフレームです。無線LAN端末はネットワークへアクセスするに際していくつか手続きを踏む必要があります。空中に漂う電波をキャッチして、その電波を発信しているアクセスポイントへ接続処理を行います。接続処理全体のことをアソシエーションと呼び、アソシエーションを司っているのが管理フレームです。
アクセスポイントはビーコンを定期的に発信しています。ビーコンとはアクセスポイントの存在を知らせるための情報であり、管理フレームの一種です。無線LAN端末はビーコンをキャッチすることで接続するアクセスポイントを探すことができます。
そしてプローブ要求/応答、認証、アソシエーション要求/応答 という3種類の管理フレームを使って接続処理を行います。
(3)制御フレーム
データフレームの転送を助けるためのフレームです。無線LANは有線LANと比べるととても不安定なネットワークです。その不安定さを補うために制御フレームで確認応答の処理を行なっています。具体的にはACKフレームを使って、データがきちんと届いたかどうかを端末へ知らせています。
Duration/ID
無線回線を占有する予定期間(フレーム送信に必要な時間)の情報です。2バイト(16ビット)のフィールドとなっています。
MACアドレス 1/2/3/4
IEEE802.11のフレームはMACアドレス用のフィールドを4つ持っています。ネットワークの構成によってそれぞれに入るMACアドレスの内容は変わってきます。データフレーム,管理フレーム,制御フレームによって違った構成を持つので別々にご紹介します。
データフレームのMACアドレス
データフレームのMACアドレスはネットワーク構成によって変化します。無線LANのネットワーク構成には主に3種類あります。(1)インフラモード,(2)アドホックモード,(3)WDSモード の3つです。
(1)インフラモード
無線LAN端末が必ずアクセスポイントを介して通信するネットワーク構成です。無線LAN環境のほとんどはインフラモードで構成されています。
インフラモードでやり取りされるフレームのMACアドレスフィードには以下の情報がセットされます。
(2)アドホックモード
アクセスポイントを介さず、無線LAN端末同士が直接通信するネットワーク構成です。無線LAN端末同士で直接データをやり取りする際に使用します。
アドホックモードで通信する場合、MACアドレスフィールドには以下の情報がセットされます。
(3)WDSモード
アクセスポイント同士で通信するネットワーク構成です。無線LANでネットワークを延伸する際に使用します。
WDSモードでやり取りされるフレームのMACアドレスフィールドには以下のように情報がセットされます。
管理フレームのMACアドレス
無線LAN端末とアクセスポイントだけでやり取りされるフレームです。
管理フレームには以下のような形で情報がセットされます。
1つ目のフィールド:宛先MACアドレス
2つ目のフィールド:送信元MACアドレス
3つ目のフィールド:アクセスポイントのMACアドレス
制御フレームのMACアドレス
無線LAN端末とアクセスポイントだけでやり取りされるフレームです。制御フレームにセットされるMACアドレスのフィールドの数はフレームの用途によって変化します。例えばACKフレームには宛先端末のMACアドレスのみがセットされます。
シーケンス制御
断片化(フラグメンテーション)されたフレームを再結合したり、重複しているフレームを破棄する際に使われます。4ビットのフラグメント番号と、12ビットのシーケンス番号で構成されています。
無線LANはACKフレームで確認応答をしながら通信を進めます。アクセスポイントからACKフレームが届かないと一定時間待ってから再送を試みます。その際、シーケンス制御に前にセットしたモノと同じ値をセットして送ります。アクセスポイントはシーケンス制御に入っている値を見て、重複しているかどうかを判断します。
IEEE802.11ペイロード
上位層から受け渡しされるパケットのことです。IEEE802.11ペイロードの正体はほとんどの場合IPパケットです(上位層であるネットワーク層では多くの場合、IPプロトコルが使われているから)。
データフレームの場合
イーサネットヘッダにはタイプがありますが、IEEE802.11にはそれが用意されていません。そのため上位層でどんなプロトコルを使っているか知るためのフィールドが必要になります。そのためLLC(Logical Link Control)ヘッダで更にカプセル化した後に、IPパケットをセットすることになります。LLCにはネットワーク層のプロトコル情報を表すタイプフィールドが含まれています。
管理フレーム
無線LANの名前を表すSSIDやチャネル、伝送速度など色々な情報がセットされます。(SSID:Service Set ID の略)
制御フレーム
制御フレームにペイロードはありません。
FCS
フレームが壊れていないかチェックするための値です。Frame Check Sequenceの略です。イーサネットフレームを送信する際に5つのフィールドに対して一定の計算(チェックサム計算、CRC)を行い、その結果をFCSとしてフレームの最後に付与します。受信側の端末は同じように5つのフィールドで計算を行い、その値がFCSと同じかどうかを比較します。2つのFCSの値が同じであれば正しいイーサネットフレームと判断し、異なっている場合は伝送途中で壊れたと判断します(壊れたイーサネットフレームについては破棄されます)。
Discussion