『ハイパフォーマンスブラウザネットワーキング』メモその6

本日はWiFiのお話です。ただ、そんなに突っ込んだ話ではないため、内容は少なめです。

6章 WiFi

  • WiFiという名称自体は、WiFi Allianceの商標。WiFi Allianceとは無線LAN技術の普及促進を目的とした業界団体であり、相互運用可能な標準規格の策定とその試験も担っている。
  • 802.11ワイヤレス規格は主に既存のEthernet規格(802.3)の応用、そして拡張規格として設計された。そのため、Ethernetが一般的にLAN標準と呼ばれる一方、802.11ファミリーは一般的に無線LAN(WLAN)と呼ばれている。
  • 有線か無線かに関わらず、これらはすべて媒体を「ランダムアクセスチャネル」として共有する。これは、ある時点においてどのデバイスがデータを送信すべきかを制御するような中心的なプロセス(パケットスケジューラ)のようなものが存在しないということである。代わりに、それぞれのデバイスはそれぞれのタイミングを自分で決定する。すべてのデバイスは協調として共有チャネルのパフォーマンスを保証するように動作する必要がある。
  • Ethernet規格は衝突検知と回避に確率的なCSMA(carrier sense multiple access)プロトコルを使用している。簡単に言うと、「話す前に聴く」というアルゴリズムで、ある媒体に接続しているデバイスが送信データを持っている場合に以下の動作を行う。
    • 他の誰かが通信をしていないかどうかを確認する。
    • チャネルがビジー状態の場合は、フリーになるまで聞き続ける。
    • チャネルがフリー状態の場合は、すぐにデータ送信を開始する。
  • 信号の伝達には時間がかかるため、衝突(colllision)が発生することもある。そのため、Ethernet標準は衝突検知(CSMA/CD)を追加した。衝突が検知された場合は、双方がランダムに決定された時間だけ待機状態に入る。これにより、複数の競合する送信者が同時に再送信することを防止する。
  • WiFiでは、無線ハードウェアの制限のため、送信中に衝突を検知できない。したがって、WiFiは衝突回避(CSMA/CA)に依存する。CSMA/CAにおいては、それぞれの送信者はチャネルがアイドル状態であることを検知した時のみ、メッセージ全体を一度に送信することで衝突回避を試みる。WiFiフレームが送信されると、送信者は次の送信を行う前に受信者からの明示的な受信確認を待つ。
    • 良好なチャネル利用率(衝突数の最小化)を維持するには、チャネルの使用率を10%未満に抑える必要がある。使用率が低く抑えられている場合、明示的な調整やスケジューリングなしに良好なスループットを得られる。しかし、使用率が高まるにつれ衝突の数は著しく増加し、ネットワーク全体が不安定になる。
  • 802.11では、現在bとgが最も広く使用され、サポートされている標準である。これらは2.4GHz ISMバンド(無免許帯)を使用し、20MHzの帯域幅を持ち、最大1つのデータストリームをサポートする。国や地域の規定によるが、出力が最大200mWに固定されている場合がほとんど。nとacはチャネルあたりの帯域幅を20MHzから40MHzに拡大し、より高位の変調方式を採用し、複数のストリームを並行して送信する技術(MIMO, multiple-input and multiple-output)を利用している。
  • WiFiはパケットの流れを制御する中心的なプロセス(パケットスケジューラ)を持たないため、クライアントのスループットやレイテンシに一切の保証がない
  • 一番広く利用されている2.4GHz帯は、互いにオーバーラップしない20MHzチャネルを3つ提供する。しかし、2つか3つのWiFiネットワークが互いに近くに存在する場合、その中のいくつかが使用する周波数帯は実質的に重複している。
  • クライアントとWiFiアクセスポイント間の最初のホップのレイテンシは予測できない。多くの重複するネットワークが存在するような環境では、レイテンシが大きく変化しても驚くべきではない。最初のホップに数十、場合によっては数百ミリ秒かかることもある。
  • WiFiプロトコルのデータリンク層と物理層はそれぞれ独自の再送とエラー訂正のメカニズムを持っている。そして、これらのメカニズムはネットワークの上位層から衝突を隠蔽する。つまり、TCPのパケットロスはWiFiでデータを送信する際の心配事であることは間違いないものの、TCPによって観察されるパケットロスの絶対数は、有線ネットワークよりも高くなる場合はあまりない。下位層で行われる衝突回避や再送処理によって、直接な「パケットロス」ではなく、パケットの到達時間の変動がより大きくなる

以上。次はモバイルネットワークのお話ですが、ここはかなり省略するかもしれません。