はじめに
この記事は TCP / IP のインターネット層とネットワークインターフェース層について簡潔に説明した内容となっております。
上位層であるアプリケーション層とトランスポート層の解説については、以下の記事をご覧いただければ幸いです。
インターネット層
TCP / IP において、インターネット層は下位層のネットワークインターフェース層と協力して他のコンピュータにデータを届ける役割を担っている。
ハードウェアに依存する部分はネットワークインターフェース層が担当するので、インターネット層は「IPアドレス」を識別してデータを届ける仕組みを提供している。
IP アドレス
IP アドレスとは、現在主に使用されているインターネット層のプロトコルで、32 ビットの IP アドレスで各コンピュータの識別を行っている。
IP アドレスは 2 進数であるが、人間が理解しやすくするために 10 進数で表記される。
IP アドレスヘッダ
IP パケットのヘッダには、送信元と宛先の IP アドレスの他に、パケット長などのデータが含まれる。
フィールド | サイズ | 説明 |
---|---|---|
バージョン | 4ビット | ヘッダのバージョン情報 例)IPv4:4 |
ヘッダ長 | 4ビット | IPヘッダの長さ |
サービスタイプ | 1バイト | IPパケットの優先度 |
パケット長 | 2バイト | IPパケット(IPヘッダ+データ)の長さ(1バイト単位) |
識別子 | 2バイト | パケットを識別するための値。受信側は識別子やIPアドレスを手掛かりに、分散されたデータの復元を行う |
フラグ | 3ビット | IPパケットをフラグメント※に分割する際に使用される値 |
フラグメントオフセット | 13ビット | IPパケットが複数のフラグメントに分割された場合、そのフラグメントの順序を表す値 |
生存期間(TTL) | 1バイト | パケットが生存できる最大時間 |
プロトコル | 1バイト | 上位層(トランスポート層)のプロトコルを表す値 例)TCP:6、UDP:17 |
チェックサム | 2バイト | パケットにエラーがないかをチェックするための値 |
送信元IPアドレス | 4バイト | 送信元のIPアドレス |
宛先IPアドレス | 4バイト | 宛先のIPアドレス |
オプション | 可変長 | 追加のデータ(4バイト単位で、最大40バイト) |
※細分化された小さなデータのことで、送信できる最大サイズよりも大きい IP パケットはルータによって細分化される。
ルータの負荷が高くなることが考慮されるため、通常は TCP の MSS のすり合わせによってサイズが決定される。
ネットワーク部とホスト部
IP アドレスは「ネットワーク部」と「ホスト部」で構成されている。
ホストとは、ネットワークに参加しているコンピュータや機器のことで、ルータは宛先 IP アドレスのネットワーク部を見て、ネットワーク外に送るべきデータかネットワーク内に送るべきデータかを判断している。
初期のインターネットでは、何ビットまでがネットワーク部で、残り何ビットまでがホスト部かは「アドレスクラス」によって固定的に決定されてた。
クラスAのアドレスでは、1 つのネットワークで約 1,677万台分のホストにアドレスを割り当てることができる。
しかし、現実には多くのホストを 1 つのネットワークに所属させることができないので、多くのアドレスが無駄になってしまう。
そこで、「サブネットマスク」を指定することで、アドレスクラスで決められたネットワークをビット単位で柔軟に変更することができる。
例えば IP アドレスが 10.1.1.1 でネットワーク部が 24 ビットの場合の IP アドレスは以下の表記となる。
プライベート IP アドレス
「プライベート IP アドレス」は、家庭や組織で自由に使えるアドレスである。
直接つながっていなければ、他のネットワークと重複しても問題ないが、インターネットと通信を行う場合は NAT※等のアドレス変換技術を使用してグローバル IP アドレス※後述 に変換を行う必要がある。
※送信元 IP アドレスをグローバル IP アドレスに変換して通信を行う仕組み
グローバル IP アドレス
「グローバル IP アドレス(パブリック IP アドレス)」は、インターネット上で一意で世界的に識別される IP アドレスを指す。
グローバル IP アドレスは ICANN や JPNIC などの組織(「インターネットレジストリ」)によって管理されている。
グローバル IP アドレスが必要な場合は、各組織に申請して割り当ててもらう必要がある。
インターネットレジストリ
インターネットレジストリからプロバイダ(インターネットサービスプロバイダ:ISP)にグローバル IP アドレスが割り当てられ、企業や家庭などはプロバイダから貸し出されて使用する、といった仕組みとなっている。
ICMP
「ICMP(Internet Control Message Protocol)」は、データ転送中のトラブルの通知などに使われるプロトコルである。
ICMP メッセージを送信する際の ICMP ヘッダは以下のようになっており、既存のIP ヘッダに付加される形となっている。
タイプ | 意味 |
---|---|
0 | エコー応答。宛先の存在確認に使われる |
3 | データが到達できなかった |
4 | 回線が混雑している |
5 | 経路が最適ではない |
8 | エコー要求。宛先の存在確認に使われる |
9 | 所属ネットワークのルータの通知に使われる |
10 | 所属ネットワークのルータを探す際に使われる |
11 | 生存期間を超えたのでパケットが消滅 |
DNS
IPアドレスは数字の羅列のため覚えにくく、よりわかりやすくするために「ホスト名」が作られ、それを管理するために「DNS(Domain Name System)」とドメイン名が作られた。
ドメイン名の階層構造
DNS は「.(ピリオド)」で階層に区切られており、一番最後に来る「jp」や「com」などのドメインが最上位となり、「トップレベルドメイン」と呼ぶ。
トップレベルドメイン以降のドメインは「第2レベルドメイン」、「第3レベルドメイン」、...と続く。
DNS サーバの階層構造
DNSサーバもまた階層構造を持っており、自分が担当するゾーンに属するドメイン名を管理している。
また、ドメイン名を管理する DNS サーバを DNS コンテンツサーバ とも呼ぶ。
DNS サーバへの問い合わせの流れ
DNS サーバはドメイン名を管理するコンテンツサーバと、外部からの問い合わせに対応する「キャッシュサーバ」の2種類に分かれている。
ャッシュサーバはルート DNS サーバから順に問い合わせを行い、IP アドレスがわかったら、その IP アドレスを返す仕組みとなっている。
1回調べた名前はキャッシュサーバに保管されるので、次回からはルート DNS サーバなどに問い合わせることなく IP アドレスを返せるようになる。
DNS への登録
ドメイン名は、グローバル IP アドレスと同じく ICANN が管理しており、新しいドメイン名が必要な場合は申請が必要となる。
ドメイン事業者に申請を依頼した場合、通常は事業者が所有している DNS サーバにドメインが登録される。
DNS サーバに登録する情報を「リソースレコード」と呼ばれ、リソースレコードが記述されたファイルを「ゾーンファイル」と呼ぶ。
レコード名 | 説明 | 記載例 |
---|---|---|
SOAレコード | ドメイン名を管轄する DNS サーバを記述 | example.com. IN SOA ns1.example.com. admin.example.com. ( ) |
NSレコード | プライマリ、セカンダリの DNS サーバを記述 | example.com. IN NS ns1.example.com. example.com. IN NS ns2.example.com. |
Aレコード | ホスト名と IP アドレスを対応付ける | example.com. IN A 192.168.1.1 |
CNAMEレコード | Aレコードに指定済みのホスト名に別名を付ける | www IN CNAME example.com.(www.example.comとexample.comを同じ IP アドレスと関連付けたい場合) |
MXレコード | 「xxx@ドメイン名」という形式のメールアドレスとメールサーバを対応付ける | example.com. IN MX 10 mail.example.com. |
ネットワークインターフェース層
「ネットワークインターフェース層」はネットワークのハードウェアを制御する層である。
ネットワークのハードウェアには、ネットワークインターフェースカード(NIC)や LAN ケーブル、光ケーブルなどが含まれる。
ネットワークインターフェース層はこれらの要素を効果的に制御して、インターネット層など上位の層がハードウェアの違いを意識せず、同様に機能できるようにする役割を果たしている。
ちなみに OSI 参照モデルでは、プロトコルなどソフトウェア仕様の部分をデータリンク層、ハードウェア部分を物理層と呼ぶ。
ネットワークインターフェース層は多くの構成要素から成り立っており、ここでは MAC アドレスのみを紹介する。
詳細については、以下の参考文献で確認することをお勧めする。
MAC アドレス
ネットワークインターフェース層でデータを通信する際には、主に「MAC アドレス」が使用される。
MAC(Media Access Control)アドレスとは NIC に割り当てられた識別番号のことである。
これは製造段階でメーカーによって付与され、グローバル IP アドレス同様、全世界で重複しないように設定されている。
MAC アドレスは、有線 LAN のイーサネットや無線 LAN の他、短距離通信の Bluetooth など、様々なデータ通信で利用されている。
ネットワークインターフェース層が送信するデータを「フレーム」と呼び、フレーム内には宛先と送信先の MAC アドレスが含まれている。
MAC アドレスの役割は IP アドレスに類似しているが、IP アドレスは最終的な宛先を指すのに対して、MAC アドレスは途中の装置間の通信に使用される。
参考文献