第 10 回 無線ネットワーク, ARP

本日の内容


このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。

10-1. 無線ネットワークの構成要素

無線ネットワークには様々な種類があり、また特定の規格であっても、用途に応じて使 用方法を複数選択できることがあります。IEEE 802 委員会で制定されている無線 ネットワークには次のものがあります。

  1. 無線LAN(Local Area Network)(802.11)
  2. 無線PAN(Personal Area Network)(802.15)
  3. 無線MAN(Metropolitan Area Network)(802.16)

この中でも複数の規格があります。 その規格を特徴づけるものに次のものがあります。

伝送速度
伝送範囲
使用電波帯

無線 LAN(802.11)

IEEE 802.11 委員会では物理層として赤外線、電波を使用する LAN の規格の 標準化が行われています。

世代123456
802.11802.11a802.11b802.11g802.11n802.11ac802.11ad802.11ax
使用周波数 2.4GHz 5GHz 2.4GHz(電子レンジなどと同じ) 2.4GHz+5GHz 5GHz 60GHz 2.4GHz+5GHz+6GHz
通信速度 2Mbps 54Mbps 11Mbps 54Mbps 600Mbps 6.9Gbps 6.75Gbps 9.6Gbps
伝送方式 DSSS / FHSS OFDM DSSS OFDM,DSSS MIMO-OFDM MIMO-OFDM シングルキャリア,OFDM MIMO-OFDM
MIMO
Multiple-Input and Multiple-Output の略。複数のアンテナを送受信局 とも設置することで次を実現する
プリコーディング
複数の送信アンテナ が受信側の利得が最大になるような位相差で同じ信号を送る
空間多重化
複数の送受アンテナの対を複数の伝送路として見なし、伝送路を多重 化して伝送効率を上げる
ダイバーシティコーディング
同一の信号を異なる位 相で送信し、受信側がそれらの電波を受信することで、フェージング等の電 波障害に対応する
Wi-Fi
Wi-fi Alliance というアメリカの業界団体により802.11 規格の相互接続が認 められた機器が名乗っていいブランド。Wi-Fi CERTIFIED のロゴの表示が許さ れる。 身近な無線LAN機器で Wi-Fi でないものとしては初代の Nintendo DS が上げ られる(規定されていた暗号化技術 WPAを実装していなかった)。 なお、ニンテンドーWi-Fiコネクションは Wi-Fi Alliance とは関係ない。

無線LANの特性

Ethernet の CSMA/CD 方式では LAN のサイズがあらかじめ決まっているので、 チャネルが空いているかどうかはチャネルを受信すればわかります。 また、宛先にパケットが到達したことは送信後一定時間混信がなければ判定で きます。 しかし無線 LAN では隠れ局問題露出局問題という 問題があり、チャネルの空きを判定するのが困難です。

隠れ局問題

隠れ局問題 C から B へデータを送信していても、 C の電波は A に届かないため、 A は B に送信可能だと考える。 しかし、A から B には送信できない。

露出局問題

露出局問題 C から D へデータを送信している間、 C の電波は B に届くため、B はチャ ネルは塞がっていると考える。 実際は B から A へデータを送ることができる。

送信方式

無線 LAN には DCF と PCF の二種類の送信方式があります。 DCF(Distributed Coodination Function 分散制御機構)は各ホストが相互に通 信を制御する方式でアドホックネットワークとも言われます。 一方 PCF(Point Coodination Function 集中制御機構)は一点で通信を制御す る方式でです。

競合回避

PCF では中央の局が全てを管理するため競合は起きません。 基地局は各端末局に対して送信データの有無を聞く、ポーリングサービスを行 います。 また、基地局がビーコン・フレームと呼ばれる定期的なパラメータの送信を行 い、新規の局はポーリングサービスに参加できるようになってます。

一方、 DCF では競合回避のアルゴリズムとしてCSMA/CA(Carrier Sence, Multiple Access, Collision Avoidance) が用いられます。 これは二つのアルゴリズムを含みます。 一つは送信前にキャリアを検出しますが、検出した時は 802.3 の巾乗バック オフのように送信時間をずらします。 もう一つは仮想チャネルを考える物で次のような工程でデータを送ります。

  1. 送信者はデータを転送する前に転送許可要求を送る。
  2. 受信者は転送許可を与える。
  3. 送信者は転送許可を受け取ったら、データを転送する。
  4. 受信者はデータを受け取ったら ACK を送る

この際、送受信者以外は転送許可要求または転送許可を受信したらチャネルを 使用するのを止めます。そして、データの終了または ACK を受信したらチャ ネルを使用できます。

PCF と DCF の混在

集中管理と分散管理の併用は困難なように思えますが、ACK をトリガーとして プロトコルを時分割で使用すると併用できるようになります。 ACK の送信後の時間を次のように 4 つに区切ります。

  1. 対向通信用
  2. 基地局用
  3. 新規局用
  4. エラー、その他

セキュリティ

WEP(Wired Equivalent Privacy) は無線 LAN が有線 LAN と同等 のセキュリティレベルを持つように考案されたセキュリティモデルです。 これは基地局と端末で 128 bit の共通鍵を用い、 RC4 と呼ばれる暗号方式を 使ったストリーム暗号です。 但し、 RC4 自体は 2001 年に破られてしまい安全ではありません。 そして、 IEEE は WEP が破られてしまったことに対し 802.11i という規格で 新しい暗号を出すと発表しました。

IEEE 802.11i の策定には時間がかかったため、 2002 年 10 月にその規格の 一部を先取りした WPA(Wi-Fi Protected Access)という規格を出しました。

2004年6月になってようやくIEEE802.11iが策定されたので、これをました。こ れを受け、WECA は IEEE802.11i仕様と同じ機能を備えたWPA2を発表しました。 Microsoft は 2005 年 5 月に Windows XP SP2 用の WPA2 に対応したモジュー ルを発表しました。

無線PAN(Personal Area Network)(IEEE 802.15)

IEEE 802.15.1(Bluetooth)

2.4GHzを使用する、近接領域の簡易通信です。 2.4GHz 帯のWi-fiと周波数が競合するため、共存させると相互に干渉しあい、 パフォーマンスが低下することもあります。

Bluetooth Basic Rate/Enhanced Data Rate (BR/EDR) に対して、 バージョン4.0より Bluetooth Low Energy (LE)という低消費電力のプロト コルが追加された。

互換性バージョン導入時期BREDRHSLE 備考
11.01999/7 1Mbps---
11.0+CE 1Mbps--- 誤りの訂正
11.12001/2 1Mbps--- 初期の普及バージョン
11.22003/11 1Mbps--- Wi-Fiとの干渉対策
12.02004/11 1Mbps3Mbps-- EDRの追加
12.12007/3 1Mbps3Mbps-- マウス、キーボードへの省電力化
1,+HS3.02009/4 1Mbps3Mbps24Mbps- HSの追加
44.02009/12 1Mbps3Mbps-1Mbps LEモードの追加(従来と互換性無し)
44.12013/12 1Mbps3Mbps-1Mbps 転送の最適化など様々な改良
44.22014/12 1Mbps3Mbps-1Mbps LEモードのアプリケーションスループットが650Kbpsに向上
45.02016/12 1Mbps3Mbps-2Mbps LEのデータレート向上
45.12019/1 1Mbps3Mbps-2Mbps 機器の方向検知
45.22020/1 1Mbps3Mbps-2Mbps LE Audioなどの追加

IEEE 802.15.4(Zig-Bee)

無線MAN(Metropolitan Area Network)(IEEE 802.16)

10-2. ARP

Ethernet では相互の通信は Ethernet のプロトコルで行います。 そのためにはMAC アドレス(Ethernet アドレス)を使用します。 一方、インターネットでは IP アドレスを使用して通信を行うことになってま す。 インターネットとして Ethernet を使うにはどうすれば良いのでしょうか? そのためには IP アドレス同士の通信を MAC アドレス同士の通信に変換 する必要があります。

ARP(Address Resolution Protocol RFC826) は特定の IP アドレ スから、その IP アドレスを持つホストの MAC アドレスを取得するプロ トコルです。 これを用いると同一ネットワーク上の IP 通信を Ethernet で行うことができ ます。

ARP の手順

IP アドレス A のホストから IP アドレス B のホストへ通信を行うことを考 えます。 A の MAC アドレスは X、 B の MAC アドレスは Y とします。

  1. 始めに A は Ethernet のブロードキャストアドレスに対して「IP アドレ ス B を持つホストは連絡して」というメッセージを送ります。 これには送信元の MAC アドレス X が付加されてます。
  2. すると同一ネットワーク上の全てのホストがそのメッセージを聞き、 IP アドレス B を持つホストだけが「Y が B のアドレスです」というメッセージ を X 宛のユニキャストで送ります。

送られて来たIPアドレスと MAC アドレスの対応の情報は ARP テーブル というテーブルに蓄えられてます。これを操作するのが arp です。 ARP テーブルを表示するには次のようにします。

arp -a

ARP テーブル蓄えられたアドレスは数分で消えます。 しかし、一旦あるホスト X に付けた IP アドレス A を別のホスト Y で使お うとする時、X と通信を行っていたホスト Z には数分の間、ARP テーブルに X と A の組が残ることになり、その間ホスト Y とは通信できません。 また、大量のファイル転送を行うときなどに、無線 LAN から有線 LAN へ切替 えた時、 IP アドレス A は無線アクセスポイントに付けられた Ethernet ア ドレス X から、ホストの Ethernet アドレス Y に切り替わりますので、同じ ことが起こります。 これに対処するにはホストの登録を ARP テーブルから消す必要があります。 特定のホストを ARP テーブルから消去するのは次のコマンドです。

arp -d ホスト名

ARPのプロトコル

ここでは、MAC アドレス EX, IP アドレス IX を持つ ホスト X が、 IP アドレス IY を持つホスト Y の MAC アドレス EY を求める時のプロトコルの流れを示します。

問い合わせ

ARP の問い合わせをするには、次のようなパケットを Ethernet フレームに入 れてブロードキャストします。 なお、Ethernet フレームの長さの欄は、実際は IANA の Ethernet-numbers( http://www.iana.org/assignments/ethernet-numbers で定められた値を入れることで、フレームのタイプも指定することができます。 IPパケットは 0x0800(RFC 894)、ARP は 0x0806 を入れます。

イーサフレーム
宛先FF-FF-FF-FF-FF-FF(ブロードキャスト)
送信者自分の MAC アドレス=EX
長さ/タイプARP=0x0806
データフィールド(ARP パケット)
ハードウェアEthernet=1
プロトコルIP=0x0800
ハードウェアアドレス長6(Byte)
プロトコルアドレス長4(Byte)
OPcodeRequest=1
送信者ハードウェアアドレス自分のMACアドレス=EX
送信者プロトコルアドレス自分のIPアドレス=IX
ターゲットハードウェアアドレスdon't care
ターゲットプロトコルアドレス相手のIPアドレス=IY

返答

ARP の問い合わせに対して、返答するには、次のようなパケットを Ethernet フレームに入れて相手に直接ユニキャストします。

イーサフレーム
宛先相手の MAC アドレス=EX
送信者自分の MAC アドレス=EY
長さ/タイプARP=0x0806
データフィールド(ARP パケット)
ハードウェアEthernet=1
プロトコルIP=0x0800
ハードウェアアドレス長6(Byte)
プロトコルアドレス長4(Byte)
OPcodeReply=2
送信者ハードウェアアドレス自分のMACアドレス=EY
送信者プロトコルアドレス自分のIPアドレス=IY
ターゲットハードウェアアドレス相手のMACアドレス=EX
ターゲットプロトコルアドレス相手のIPアドレス=IX

ARPパケットの受け入れ

ARP パケットは次のような手順で処理されます。

  1. 指定のハードウェアを持っていない→終了
  2. 指定のプロトコルを扱えない→終了
  3. Marge_flag を false にする
  4. もし、プロトコルタイプと送信者プロトコルアドレスが既に ARP テーブ ルに含まれていたら、
    1. そのエントリのハードウェアアドレスを新しいアドレスに更新し、
    2. Marge_flag を true にする
  5. 自分がターゲットプロトコルアドレスでない→終了
  6. もし、 Marge_flag が false なら、「プロトコル、送信者プロトコルア ドレス、送信者ハードウェアアドレス」を ARP テーブルに追加する
  7. OP code が Request でない→終了
  8. 送信者欄とターゲット欄を交換し、自ホストのハードウェアアドレスとプ ロトコルアドレスを送信者欄に記入する
  9. OP code を Reply にする
  10. このパケットが送られてきたホストに対して、作成した ARP パケットを 送信する

坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科