3 章◆通信プロトコル ・ ARP(Address Resolution Protocol) く図 64 : ARP による MAC アドレスの取得〉 の情報を元に、その MAC アドレスを調べるためのプロトコルなのです。 しかし、これでは結局通信ができません。 ARP とは、送る相手の IP アドレス の相手にバケットを送信するために必要となる MAC アドレスを知りません。 を知らないのです。つまり、たとえ IP アドレスがわかっていたとしても、そ 信が可能となるのですが、実は各ノードは当初は自分以外の MAC アドレス さて、それでは ARP の説明に移りましよう。 MAC アドレスがわかれば通 A 機 C 機 旧アドレス 130.1 . 1 .3 旧アドレス 1 30.1 . 1 . 1 B 機 旧アドレス 1 30.1.1.2 MAC アドレス 「 ABC 」 ① A 機は、日機と通信を行う必要があった 場合、 B 機の MAC アドレスが必要とな るため、 A 日 P リクエストバケットをフ ロードキャスト。 ②ネットワーク上の各機は、 A 機のプロー ドキャストした A 日 P リクエストバケット を解析。このうち B 機は、そのバケット が自分に宛てたものであることを知る。 ③ B 機は、 A 機に対して自己の MAC アドレ スを含む A 日 P リクエストバケットを返送 する。 上記のやり取りによって A 機は B 機の MAC ア ドレス取得に成功する。 図 64 は、 A が IP アドレスを元に、 B の MAC アドレスを取得するまでを説 明しています。まず、 B との通信を行う必要のある A は、 B の MAC アドレス を取得しなければならないため、 ARP リクエストバケット * ( 図 65 ) をプロ ードキャスト * します。 ( プロードキャストとは自己の属するネットワーク のノードすべてにバケットを送出するものでした。よって A の ARP リクエス 【リクエストバケット】相手に対して何かを要求するためのバケット 【プロードキャスト】 95 ページ参照 これは、 A が B の MAC アドレスを知らないため、 ります ) 。 トバケットは自己の属するネットワークすべてのノードに到達することにな ネットワークすべての
3 章◆通信プロトコル 第 4 章で詳しく説明します ) 。また、最近では IAN 高速化に対応するために IOOBASE-IX という規格も登場しています ( IOOBASE の 100 とは転送速度を 表現していて、 100M ビット / 秒の転送速度を意味します ) 。 ィーサネットは CSMA/CD ( 次ページのコラム参照 ) と呼ばれる媒体アク セス制御方式を採用しており、これにより複数ユーザによる多重アクセスを 可能としています。 く図 87 : ィーサネットヘッダ〉 送信時にデータリンク層で付加される TCP / 旧バケットの場合 ィーサネットヘッダの次に 旧ヘッダ、 TCP ヘッダへも データと続くことになる ィーサネットヘッダ バケット長 送信元 宛先 MAC MAC タイプ アドレス アドレス ト ッ始号 開符 期号 同信 FC S 送信 32 宛先 MAC アドレス (Destination Address) 0 送信元 MAC アドレス (Source Add 「 ess) バケット長 (Length) / タイプ (ETYPE) ィーサネットの場合、上位層から渡されたバケットにデータリンク層でイ ーサネットヘッダが付加されるとともに、他のノードから届いたバケットは ィーサネットヘッダを見て処理されます。 ィーサネットヘッダは宛先 MAC アドレスと送信元 MAC アドレス、バケッ ト長やそのタイプなどから構成されています。各ノードは、届いたバケット のイーサネットヘッダの宛先 MAC アドレスを確認し、自分宛てであった場 合これを取り込むとともに、送信元 MAC アドレスを確認することで、どの
く図 63 : MAC アドレスと旧アドレスの関係〉 ④ A は届いたバケットのイーサ ネットヘッダ部の MAC アド レスが自分宛であったためこ れを GETO 旧アドレスが自分宛であった ため自分のバケットと認識。 受信側 に : = = コ ③旧ヘッダ部を見ると、目的地 は A となっているのでイーサ ネットヘッタ部に C → A の MAC アドレスを設定して言。 ② C は届いたバケットのイーサ ネットヘッダ部の MAC アドレ スが自分宛てだったためこれ を G ETO ィーサネット 旧ヘッダ部 ヘッダ部 D → A (MAC アドレス ) ( 旧アドレス ) ィーサネット 旧ヘッダ部 ヘッダ部 D → C D → A (MAC アドレス ) ()P アドレス ) ァータ C → A 送信側 ① D が A にバケットを送信 する、そこで旧ヘッダ の旧アドレスは D → A と 指定。 しかし、 C を中継する 必要があるため、イー サネットヘッダ部の MAC アドレスは D → C を指定する。 ィーサネット 旧ヘッダ部 ヘッダ部 D → A (MAC アドレス ) ()P アドレス ) 際の通信は可能となるように思えます。しかし、実際には IP アドレスだけで は相手にバケットを届けることができません。 これは、通信を行うコンピュータ同士の通信経路が、単なるケープルのみ で対となって接続されているとは限らず、そこには複数のルータやコンビュ ータなどの中継ノードが介在しているからです。このため、送出されるバケ ットは、相手の IP アドレスを知るとともに、そのアドレスに到達するための 次の中継ノードのハードウェアアドレスを知っている必要があるわけです。 つまり、目的地がわかっていても、途中に乗換駅が介在する場合、そこへ行 くためにはどの駅でどこ行きの電車に乗り換えるのかを知らなければ、目的 地へ到達できないのに似ています。なお、 IP アドレスが 32 ビットで表現され るのに対して MAC アドレスは 48 ビットで表現されます。 ェータ D → C
3 章◆通信プロトコル この点について ぜ必要であり、また、 は以下で説明します。 どのように活用されるのでしようか。 ■ループバックアドレス・ ホストアドレスがすべて 1 のものはプロードキャストアドレスとしてあら かじめ予約されているもの、またホストアドレスがすべて 0 のものは、ホス トアドレス自体が不明なことを表現する際のために予約されているものです が、これに対して、クラス A のネットワークアドレス 127. O. O. O は、ルー プバック (loopback) のために予約されているため、旧アドレスとして使 用することができません。ループバックはネットワーク上などでローカルな テストなどを行う際に活用されるものであり、これもまた一般の IP アドレス ではないことに注意してください。 ・ MAC アドレス ARP ( アドレス解決プロトコル ) を理解するためには、 MAC アドレスに ついて知っておく必要があります。 MAC (MediaAccess Control) アドレス とは、 OSI 参照モデルの 2 層にあたるデータリンク層で定義される機器自体 の物理アドレスをいいます。つまり、通信を行うコンピュータやルータなど のハードウェアがそれぞれ独自に持つアドレスであり、 LAN などにおいて接 続されている端末を互いに識別し、通信を行うのに必要不可欠なものです。 しかし、通信に必要なアドレスとしては、ネットワーク上にそれぞれ異な る IP アドレスが用意されています。送信する相手の IP アドレスがわかってい るのに、なぜ MAC アドレスが必要となるのでしよう ? IP アドレスとは通 信を行う互いのコンピュータの通信経路を確立するものでした。離れた場所 に存在する双方が IP アドレスによって互いを認識しあうことができれば、実 く図 62 : MAC アドレス〉 0 24 MAC アドレス メーカーコード 製品番号 48 MAC アドレスは 24 ビットのメーカーコードと製 品番号で構成されるもので、 LAN ボードに記録さ れている。よって、 LANjfi—ドを交換すれば、コ ンピュータは同じでも MAC アドレスが変更される ことになる。 【 MAC アドレス・補足】 MAC アドレスの先頭から 24 ビットは図 62 のようにメーカーコードだが、厳密に は 0 ビット目 ( 先頭ビット ) が I/G(IndividuaI/Group) で、 0 が個別アドレス、 1 であればグループアドレスを意味 する。次の 1 ビット目は U/L(Universal/LocaI) であり、 0 がグローパルアドレス、 1 であれば口一カルアドレス を意味する。純然たるメーカーコードは、これらに続いて 2 ビット目からの 22 ビットに格納される。
て、 MAC アドレスは、一つの LAN 内だけで有効なアドレスであるため、複 数の IAN を接続したネットワークの場合、ルータを介して別の 1. AN へバケッ トが転送される場合には、別の LAN へとバケットを送信する際に、ルータが ヘッダ部分の MAC アドレスを書き換えて送信するということが行われるの です。 このように、 MAC アドレスはそのときそのときで直接届けるべき機器に 届くように、ヘッダを付け替える形で次々と変更されて転送されることがあ ります。 42
代理 (Proxy) として自己の MAC アドレスを ARP レスポンスバケットにセッ トして A に返送します。これを受け取った A は、ルータ 1 を B として通信を開 始しますが、ルータ 1 はこの情報を B に中継するのです。 ・ RARP (Reverse Address Resolution ProtocoI) ARP が IP アドレスから MAC アドレスを得るプロトコルであるのに対して、 RARP ( 逆アドレス解決プロトコル ) は、 MAC アドレスから IP アドレスを得 るためのプロトコルです。 一般にネットワークに接続されるコンピュータは、接続されるハー スクなどに自分の IP アドレスを記憶しています。しかし、ハードディスクを 持たない端末専用機などの場合、ハードを立ち上げたときに自己の MAC ア ドレスは認識するものの、 IP アドレスを知るすべがありません。このため、 IP アドレスを一元管理する RARP サーバに対して自己の IP アドレスを問い合 わせることになります。このプロトコルが RARP です。つまり、 RARP はサ ーバとクライアント間で成立するプロトコルです。 RARP サーバ く図 67 : RARP 〉 成立する。 日 A 日 P は、日 A 日 P サーバとクライアント間で アドレスを A 機に送信する。 ②すると日 A 日 P サーバはこれに応え、 A 機の旧 サーバに問い合わせる。 いないため、これを一括管理している日 A 日 P を知っているが自分の旧アドレスを管理して ① A 機は、自分のハードウェア ( MAC ) アドレス A 機 MAC アドレス「 ABC 」 簒 02 は持つものの、そのバケットが実際に到達したか否かという保証を負うもの ットを介して存在する送信先のコンヒ。ュータに対してバケットを届ける機能 IP は、コネクションレス型のネットワーク層プロトコルであるため、バケ ・ ICMP (lnternet Control Message Protocol)
く図 65 : A 日 P ヘッダ〉 フレームヘッダ 8 ハードウェアタイプ ( HA 日 DWA 日 E TYPE) 0 送信元の IP アドレスの続き (SENDER HA) 送信元のイーサネット (MAC) アドレス (PLEN) (HLEN) ハードウェアアドレス長プロトコルアドレス長 ARP メッセージ 24 送信元の IP アドレス (SENDER 旧 ) オペレーション (OPERATION) プロトコルタイプ ( P 日 OTOCOL TYPE) 32 探している宛先のイーサネット (MAC) アドレス (TARGET HA) 探している宛先の旧アドレス ()A 日 GET 旧 ) A 日 P リクエストバケットには、この旧アドレスをセットする。 該当するノードのマシンは、この部分に自己の MAC アドレスを セット。 A 日 P レスポンスバケットとして送信元へ返送する。 ノードにこれを尋ね、知っているノードから返事をもらおうというものです。 図 61 の例では、当人である B が同じネットワーク上に存在しますので、 ARP リクエストバケットが自分宛てであることを知りこれを取得します。また、 それ以外のノードは自分宛てでないバケットであるのでこれを破棄します。 ARP リクエストバケットを取得した B は A に対して自己の MAC アドレスを 含む ARP レスポンスバケット * を返送 ( 先に取得した ARP リクエストバケッ トには A の MAC アドレスや IP アドレスも情報として用意されているため、 B から A への通信は確実に行うことができます ) 。 A は B の MAC アドレスを 取得することに成功し、無事に通信を行うことができるようになります。 「知らないときには手当たりしだいに聞きまくる」という、われわれの生 活にありがちな光景は、ネットワークプロトコルの世界にも存在するのです。 なお、一度取得した自分以外のノードの MAC アドレスは、一時的にキャッ シュ * に保管されるため、 ARP は通信の度に頻繁に行われるものではありま せん。 記憶した情報を活用する機能をキャッシュ機能という。 た方が高速で情報にアクセスでき効率的だ。このよ - らに、得た情報を保持し同様の情報が必要になった際には、 クやメモリに記録しておき、 2 度目からは問い合わせを行わずに記録しておいた情報 ( キャッシュ ) を参照し ドディス 【キャッシュ (cache) 】通常、通信で情報を問い合わせる場合、一度問い合わせた情報はハー 【レスポンスノ ( ケット】相手からの要求に応じ、情報を返送するためのバケット
2 章◆サーバを中心とする LAN の基礎知識 く図 23 : バケット交換技術を用いた情報伝送〉 D 氏へ送信する情報を分割 ト、匚 : ] 匚」 : ロ ] 匚」 : ロ ] 匚」 : C ] 匚ユ D 」 B 氏から受信した情報を再構築 會日・イ、ロ〕旦ー A 氏も B 氏も同時通信 が可能 A 氏 C 氏 D 氏 B 氏 A 氏から受信した情報を再構築 C 氏へ送信する情報を分割 ・ IP アドレスと MAC アドレス 通信において、送信元と送信先を明らかにするのが「アドレス」です。 のアドレスには 2 種類あります。ネットワーク層で規定される「 IP アドレス」 と、データリンク層で規定される「 MAC アドレス」の二つです。 IP アドレスはネットワークの中で個々のコンヒ。ュータを識別するためのも のです。これに対して、 MAC アドレスとは、コンピュータやルータなどの 各機器が個別に持っているハードウェアアドレスのことで、物理アドレスと も呼ばれています。 IAN に接続するためのネットワークインターフェースカ ードに製造時点から割り当てられています。したがって、ネットワークに接 続しているコンピュータをネットワークインターフェースカードごと取り替 えた場合、 IP アドレスは、ネットワーク内における位置を指定するものなの で接続するコンピュータが変わっても変史されませんが、 MAC アドレスの ほうは物理的な違いを指定するものなので変わってしまいます。 IP アドレスはバケットを最終的に届ける相手のアドレスですからネットワ ーク中を転送される間に書き変わってしまうことはありません。それに対し 4 夏
3 章◆通信プロトコル ・ ProxyARP 先の ARP のやり取りの例では、同一ネットワーク上に相手が存在するケー スを説明しました。しかし、実際に通信を行う相手はインターネットなどに 代表されるように複数のネットワークやルータなどを介した場所に存在しま す。このために、同一ネットワークの相手の MAC アドレスを知るためだけ では不十分です。しかし、このような場合には、 ARP レスポンスバケットは、 宛先端末への中継を行うルータから MAC アドレスを返すことになっていま す。ルータがその先にある端末に代わって ARP レスポンスバケットを応答す ることを「 ProxyARP 」といいます。 Pro とは「代理」を意味します。 く図 66 : ProxyARP 〉 サプネットアドレス 1 92. 1 . 0 . 0 255.255.255.0 ① A 機が接続するサブネットワー ク上の B 機とアクセスする場合、 A 日 P リクエストバケットをプロ ードキャストする。 ② A 機と同一ネットワーク上の各 機は、 A 機のプロードキャスト した A 日 P リクエストバケットを 解析。実際 B 機は、 A 機と同じ B 機 旧アドレス 192.1 . 1 .2 「 ABC 」 MAC アドレス 192.1.2.1 旧アドレス 1 92.1.1 .0 ネットワークアドレス サブネットマスク IP アドレス 1 92.1.1 . 1 A 機 ③「 XYZ 」 ( サプネットアドレス 1 ) ネットワーク上にはないが、隣 旧アドレス ニ② 192.1.1.254 ルータ 2 「 XYZ 」 MAC アドレス 接したネットワークであるため ルータ 1 が B 機のサブネットワー クを認識している。 ③そこでルータ 1 は、 B 機の代理 (P 「 oxy) として、自己の MAC ア トにセットして A 機へ返送する。 ドレスを A 日 P レスポンスバケッ 上記のやり取りにより、 A 機は ルータ 1 を B 機として通信を開 1 92.1 .2.0 始。ルータ 1 はこの情報を中継 ( サプネットアドレス 2 ) する。 0 夏 ルータ 1 は隣接するネットワーク上に存在する B を認識しているため、 B の ードキャストした ARP リクエストバケットは、 B には到達しません。しかし、 レスを持つ異なるネットワーク上に存在しています。このために、 A がプロ 図 66 の例では、通信を行う A と B が異なるサプネットのネットワークアド
点と自己のそれそれの MAC アドレス * などが含まれている。 ・物理層 6 ) 実際に小包を送り出す。 ・・テジタルテータ ( バケット ) を電気信号に変更して送信 ・中継点 ( C 中継所 ) ・テータリンク層・物理層 7 ) C 中継所では、届いた小包が D 配送所行きのものであることがわかるので、 C 中継所となって いたラベルを D 配送所行きラベルに張り替える。 ・・イーサネットヘッダを次の中継点と自己のそれぞれの MAC アドレスに置き換えて送信。 ・受け側 ( D 配送所 ~ B 氏 ) ・物理層 8 ) 届いた小包を降ろす。 ・届いた電気信号をデジタルデー タ ( バケット ) に変換。 ・テータリンク層 9 ) 届いた小包が C 中継所から D 配送 所行きとなっていることを確 ロい 0 ・・イーサネットヘッダの宛先 MAC アドレスが自己であるため、こ のバケットを獲得。 ・ネットワーク層 1 0) 届いた小包が E 配送所から D 配送 所行きとなっていることを確認。 ヨ P ヘッダの宛先旧アドレスが自 己であるためこのバケットを獲 侍。 ・トランスポート層 1 D 小包が B 氏宛てであることを確 認するとともに、正常に送られ ているかを確認する。もし正常 でなければ E 配送所へ電話をか けて再送してもらう。 ・・ TCP ヘッタをチェックし渡すべ 【 MAC アドレス】 97 ページ参照 く図 39 : 宅配便で理解するバケットの流れ〉 データを 「あ、 A さんから のプレゼントだ」 活用する 上 位 「梱包を解いて B 層 さんに届けよう」 「 B さん ! A さんか らの小包ですよ」 ホート NO. から ト 「確かに A さんか 渡すべきアプリ フ ら B さんに送っ ン ケーションを判 たものだ。もし 定。データを引 ボ 小包がうまく届 き渡す いてなければも ト う一度送っても ノけット欠如の 層 らわなきや」 際には再送要求 ッ 「確かにうちの集 送信元旧アドレ ト 配所に宛てたも スチェック のだな」 ク 「 C 中継所からや MAC アドレス ってきた小包だ」 チェック タ リ ン ク 層 D 集配所 物 「 C 中継所から届 受信した電気信 いた小包をおろ 号をデータに変 理 そう」 換 0 0