IPアドレスを使って通信する仕組み
ここまで、IPアドレスはホストを識別するための情報として解説してきた。では実際にIPアドレスを使ってどのように通信するのだろうか。IP層の目的である「相手ホストにパケットを届ける」というキモとなる部分だ。その仕組みを順に追っていこう。
IPアドレスは、ホストが内蔵するネットワークカードを識別するための情報である。では、通信相手のホストのネットワークカードのIPアドレスがわかっている状態で、どのような仕組みでパケットのやり取りが行なわれるのだろうか。ここでの重要なキーワードは、「ネットワークアドレス」「サブネットマスク」「ARP(Address Resolution Protocol)」の3つである。これらを順を追って説明しよう。
まず、データの送信元ホストは、宛先ホストのIPアドレスと自身のIPアドレスをチェックして、お互いが同じネットワークに属しているかどうか調べる。この場合の「同じネットワーク」とは、「同じネットワークアドレスを持っているかどうか」で判断する。
ネットワークアドレスは、IPアドレスとサブネットマスクを組み合わせて表現する、「グループ化したホストに付けられた識別子」である。サブネットマスクは、IPアドレスの先頭からどこまでがネットワークアドレスなのかを示す情報だ。IPアドレスと同様に32桁の2進数で、ドット10進数や、「/桁数」という「CIDR(Classless Inter Domain Routing)」あるいは「プレフィクス」という表記方法が用いられる。
サブネットマスクを使ってネットワークアドレスを求める方法は非常に単純である。IPアドレスと並べて、2進数で表記したサブネットマスクの「1」の部分がグループ化したホストのネットワークアドレスとなり、残りの「0」の部分がグループ内での識別子である「ホストアドレス」となる(図2)。仮にサブネットマスクが「255.255.255.0」や「/24」などと書かれていたら、IPアドレスの先頭から24桁目までがネットワークアドレスで、残りの8桁がそのホストのホストアドレスとなる。つまり、「192.168.1.100/24」というIPアドレスを持つホストのネットワークアドレスは「192.168.1.0」でホストアドレスは「100」になる。そして、IPアドレスが「192.168.1.1~192.168.1.254*1」のホストが「同じネットワークに属している」わけだ。
*1:「192.168.1.0」はネットワークそのものを示すアドレスなので、ホストには割り当てられない。また、「192.168.1.255」は、192.168.1.0/24ネットワークに属するすべてのホストに対してパケットを送信する際に使う「ブロードキャストアドレス」なので、同様にホストには割り当てられない。先のパートでは触れなかったが、これらも特別なIPアドレスといえる。
このようにして調べた通信相手のネットワークアドレスが自身のものと同じであれば「直接通信」が選択され、異なっていれば「間接通信」が選択される。まずは直接通信の仕組みから見ていこう。
(次ページ、「直接通信の仕組み」に続く)
この連載の記事
-
第8回
ネットワーク
HTTP、FTP、SMTP、SIPはどう動くの? -
第7回
ネットワーク
帯域を効率的に利用するTCPの仕組みとは? -
第6回
ネットワーク
TCPのコネクションとはなんですか? -
第5回
ネットワーク
TCPのキモはコネクションとポート番号 -
第4回
ネットワーク
ルータの向こうに広がるネットワーク -
第2回
ネットワーク
TCP/IPはどのように普及していったの? -
第1回
ネットワーク
TCP/IPの基礎の基礎を理解していますか? -
ネットワーク
TCP/IPまるわかり - この連載の一覧へ