直接通信の仕組み
直接通信では、送信元ホストと宛先ホストが文字通り直接接続される。これはあくまでネットワーク的な意味で、物理的には各ホストの間にスイッチングハブが入っているだけの状況と考えればよい。
直接通信できるということは、IPパケットをそのまま電気信号に変換して、LANケーブルなどの媒体に流せば相手に届くことを意味する。そのため、今度はIPアドレスではなく、もう1つ下のレイヤの物理層における識別子である「MAC(Media Access Control)アドレス*2」が必要になる(Ethernetの場合)。
*2:MACアドレスは、ネットワークカードのメーカーが工場から出荷する際にユニークな値が書き込まれる。IPアドレスと違い、あとから変更できないのが原則である。IPアドレスからMACアドレスを求める際に利用されるのが、ARPだ。ARPでは、「ARPリクエスト」と「ARPリプライ」という2つのメッセージを利用する(図3)。データの送信元は、APRリクエストの中にMACアドレスを求めたいホストのIPアドレスを書き込み、「該当するIPアドレスを持つホストはMACアドレスを教えてください」と依頼する。このARPリクエストは、通信したいホストのMACアドレスが不明なので、すべてのホストに届くブロードキャスト用のMACアドレスである「FF-FF-FF-FF-FF-FF」を利用して送信する。
次に、ARPリクエストを受け取った周りのホストのうち、書き込まれたIPアドレスを持つものだけが、ARPリプライにMACアドレスを書き込んで応答する。ほかのホストはこのパケットを無視して破棄する。
以上でARPを使ったIPアドレス→MACアドレス変換は終了である。このあとはホスト同士が直接MACアドレスを指定し合った電気信号のやり取りが可能になる。
間接通信の仕組み
では、通信し合う2台のホストのネットワークアドレスが異なる場合はどうするのだろうか。結論からいえば、「ルータを飛び石伝いに転送してもらう」という動きをする。
インターネットは、ネットワークを相互に接続した大きなネットワークだが、そのネットワーク同士をつないでいるのは「ルータ」である。つまり、ルータを順番に伝っていけば、かならず通信相手のホストに届くはずである。
では、相手のホストが所属しているネットワークがつながっているルータは、どのようにして見つけるのだろうか。詳細な仕組みは次のパートで解説するが、ルータには「このインターフェイスの先につながったルータには、このネットワークがつながっている」という情報が備わっている。この情報を基準に、パケットはルータを次から次へと伝ってゆき、最終的な目的のホストが属するネットワークを収容したルータに届くのだ。
この連載の記事
-
第8回
ネットワーク
HTTP、FTP、SMTP、SIPはどう動くの? -
第7回
ネットワーク
帯域を効率的に利用するTCPの仕組みとは? -
第6回
ネットワーク
TCPのコネクションとはなんですか? -
第5回
ネットワーク
TCPのキモはコネクションとポート番号 -
第4回
ネットワーク
ルータの向こうに広がるネットワーク -
第2回
ネットワーク
TCP/IPはどのように普及していったの? -
第1回
ネットワーク
TCP/IPの基礎の基礎を理解していますか? -
ネットワーク
TCP/IPまるわかり - この連載の一覧へ