2008年03月11日

無線LANと電子レンジ

ご挨拶にも書いたように、嘱託ならぬ食卓プログラマであり、メインの仕事場は食卓である。
食卓にノートPCを持ち出して仕事していると気が付くことが。
電子レンジを使っていると、無線LANが切れる。
 
そういえばそんな話を聞いたことがありましたよ。周波数帯がかぶってるとか。
調べてみますと、家の電子レンジの横に張ってあったラベルには、発信周波数2450MHzと。
IEEE802.11bの周波数帯は、2.4〜2.5GHzと…
 
うむ。かぶってますね。見事なくらいかぶってる。


 no-title
 しかし、無線LANのアクセスポイント、ノートPC、そして電子レンジの位置関係は図に示すような感じになっていて、出力的にそうそう簡単に影響が出るとも思えない。また完全にノイズに消されるわけでなく、リンクだけは残ったままになっている。いったいどういう機序か考えてみた。

というわけでIEEE802.11bだが、原典に当たってもわかりにくいだけなので、こういう調べものの際はWikipediaで十分。 
上記によると、周波数帯がISM帯であること、およびMACレイア規格にはIEEE802.11で策定されているMACレイア規格である、CSMA/CAが採用されていることがわかる。802.11に対して802.11bは、物理層を改良して高速化した規である、と。
 
問題はCSMA/CA。
キャリアセンス・マルチプルアクセス・コリジョンアボイダンスの略だが、要するにこういうことだ。
通信路には多数のノードが混在している。これがマルチプルアクセスの部分。
あるノードが他のノードにパケットを送りたいときには、まず通信路の様子を確認する。
これがキャリアセンスの部分。
そして誰も使ってないことが確認できたら自分がパケットを送るわけだが、もし誰か使ってたら?
 
誰かが使っていたら、その人が使い終わるまでじっと待つ。じっと待っているとやがて通信が終了するので、そこで即座に…とはいかない。通信終了を待っているのは自分だけじゃないかもしれない。通信終了後、即座に皆が通信しようとしたら、そこで深刻なコリジョンが発生する。
そのため、通信終了を検出したら、ランダムな時間だけ待って、その間に他のホストが通信を始めなかった場合にのみ、自分が通信を開始することができる。これがコリジョンアボイダンスの部分。
 
結局無線だと全二重通信が難しいもったいないので、半二重で衝突回避するために編み出した手法、ってわけか。
 
 
つまり、わがノートPCのIEEE802.11bは、電子レンジの発生する2450MHzの電波を、おそらくは他ノードのキャリアとして検知してしまうのだろうなあ。なので、無線自体はリンクしてるけど、誰かが使いっぱなしなので自分が送信する順番がまわってこない、と認識しているのだろう。ううむ。推測に推測を重ねた結論だが、自分なりに納得はできた。これでよしとしよう。
 
 
802.11gだとどうなのか、とか、位置関係によってどうなるか、などの実験は、また気が向いたときにすることにして、とりあえずこれでOKとしよう。

【テクニカル日記の最新記事】
posted by Tig3r at 14:47| Comment(0) | TrackBack(0) | テクニカル日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/12231079

この記事へのトラックバック