IPには、IPv4とIPv6の2種類▼がある。どちらのバージョンも、IPパケットは「IPヘッダー」と「データ部」という2つの部分で構成されている(図2-1)。IPヘッダーはIPパケットを目的の場所に届けるための宛先ラベルに相当する部分、データ部はアプリケーションのデータを含むTCPセグメントなどが格納される部分だ。
通信に必要な情報を格納
IPヘッダーには、IPパケットの宛先や送信元を示すIPアドレスが含まれている。IPアドレスは、インターネットや企業ネットワーク内での機器の場所を表す情報だ。ネットワーク機器ごとに異なるIPアドレスが割り当てられる。宛先IPアドレスは、IPパケットを届ける相手の機器を示す。送信元IPアドレスは、IPパケットを送り出す機器を示す情報だ。宛先の機器が、受信したIPパケットに対して返信するときなどに使われる。
IPヘッダーには、IPアドレス以外にも様々な情報が含まれている。例えば、「バージョン」はIPのバージョンを表す情報だ。IPv4であれば「4(2進数で『0100』)」、IPv6だと「6(2進数で『0110』)」という値が入る。「TTL▼(IPv6での名称は『ホップリミット』)」は、IPパケットの最大転送数を示す値だ。インターネットでは、ネットワークとネットワークを「ルーター」という装置で接続する。ルーターがIPパケットを転送することで、ネットワーク越しの通信が可能になる。ルーターがIPパケットを転送するたびにTTLの値が1ずつ減少し、0になるとそのIPパケットは破棄される。
IPv4は32ビットの数字列
IPヘッダーの中でも重要な役割を担う、IPアドレスについて詳しく見ていこう。IPアドレスはIPv4とIPv6で表記が異なる。IPv4のIPアドレスは32ビットの数字列で表す。2進数では0と1が32個並ぶビット列だ(図2-2)。ただし、2進数だと人間には分かりにくい。そこで8桁ずつピリオドで区切り、10進数に変換して表記するのが一般的だ。この区切り部分をオクテットと呼ぶ。例えば、「110000 00101010000000000000000001」というIPアドレスを「11000000.1 0101000.00000000.00000001」と区切り、それぞれを10進数に変換して「192.168.0.1」と表記する。
IPv4アドレスは、ネットワークを識別するための「ネットワーク部」と、ネットワーク上の端末を識別するための「ホスト部」から成る。住所で例えると前者は都道府県市町村、ホスト部は番地に当たる。ネットワーク部の長さは固定ではないので、IPアドレスだけではどこまでがネットワーク部なのかが分からない。そこでサブネットマスクを使って、ネットワーク部の範囲を占めす。