ネットワーク層のプロトコルについて
ネットワーク層のプロトコルについて
主な規格の内容
続いてネットワーク/インターネット層のプロトコルについて詳しく見ていきましょう。
主に「IP(Internet Protocol)」がこの層での中心的な役割を担いますが、それ以外にも「ICMP」「ARP」といったプロトコルがあります。
IP
エンドツーエンドの通信を可能にするためのプロトコル
ICMP
IPの代わりにエラーの発生、原因など通信状況を転送するプロトコル
ARP(アープ)
(宛先の)IPアドレスを元に(宛先の)MACアドレスを特定するためのプロトコル
IPについて(主な役割)
概要
再三の説明になりますが、IPはエンドツーエンドの通信を可能にするためのプロトコルです。
主な特徴
IPの主な特徴として、コネクションレス型とベストエフォート型があげられます。
コネクションレス型
宛先がデータを受け取る準備ができているかどうかに関わらず(事前の接続確認を行わず) 通信が行われる形態
ベストエフォート型
なるべく遅延がないよう到達できるよう最大限努力するが、ネットワークの状況によって通信状況が左右される形態
ネットワーク層のPDU、IPヘッダについて
では、ネットワーク層のプロトコルが機能するために、この階層におけるデータがどうなっているのか確認していきましょう。
まず、ネットワーク層で扱われるデータ(PDU)を「パケット」と呼び、
カプセル化の過程でこの層で新しく付与されるメインのヘッダを「IPヘッダ」と呼びます。
IPヘッダはIPプロトコルにより付与されます。
パケット
ネットワーク層のPDU
IPヘッダ
ネットワーク層における主なヘッダ
IPヘッダのフォーマットの中身
ではIPヘッダの中身について詳しく確認していきましょう。
(※補足)パケット分割(フラグメント)
データを送信する際、一度に送るデータの大きさには制限(最大転送サイズ:MTU)があります。そのため、制限を超える大きさのデータを送るためには、データを分割して送る必要があり、それを「フラグメント」と呼びます。
しかし宛先がデータを受け取るときには、当然、データを分割前の状態に戻さなければなりません。そこで元の状態にデータを組み立てるために組み立てに必要な「識別番号」や「フラグメントオフセット」などの情報がIPヘッダには含まれています。
ARPについて(主な役割)
データを送る際、宛先のIPアドレスを指定しますが、宛先のMACアドレスまで把握しているわけではありません。
「ARP」は与えられた(宛先の)IPアドレスから、(宛先の)MACアドレスを調べ、両者を紐づけするためのプロトコルです。
特定のIPアドレスからMACアドレスを調べることを「アドレス解決」と呼びます。
次のページでどのような流れでARPが行われるのかを確認しましょう。
ARPの処理の流れ
1. ARPリクエスト(要求)
まずブロードキャスト(同じネットワーク内での一斉送信)で同一のネットワーク内の全てのノードに、MACアドレスを尋ねます。
2. ARPリプライ(応答)
続いて該当のIPアドレスのノードから、MACアドレスの情報を含め、送信元のIPアドレスのノード単体へ返信(ユニキャスト)します。
3. ARPテーブルにIPアドレスとMACアドレスを紐づける
MACアドレスとIPアドレスを紐づけた対応表に該当のIPアドレスとMACアドレスの情報を記録します。
この対応表をARPテーブルと呼び、同じ宛先にデータを送る度に、一連の操作を繰り返すこと(※ARPによってブロードキャストを行うこと)を防ぐために記録します。
ARPキャッシュ
一定時間が経過するとARPテーブルに記録した情報は破棄されます。
ARPの処理の流れ(ネットワークが異なる場合)
1. デフォルトゲートウェイのMACアドレスをARPで確認する
ブロードキャストは同一ネットワーク内でのみ有効です。そのため、ネットワークが異なる場合、同一ネットワーク内のデフォルトゲートウェイのIPアドレスに対して「ARP」を行います。
デフォルトゲートウェイにIPパケットを送信する
デフォルトゲートウェイのMACアドレスがわかったら、今度はデフォルトゲートウェイであるルータにデータ(この場合、IPパケットです)が送られます。
宛先まで1、2を繰り返す
データを受け取ったルータは、宛先のコンピュータが同じネットワーク内であればそのままARPにより宛先のコンピュータのMACアドレスを取得しますが、異なる場合、再度、次のネットワークのデフォルトゲートウェイに向けて、パケットを送信するため、次のネットワークのデフォルトゲートウェイに向けてARP処理をします。
※ルーティングについて詳しくは再度、ネットワーク基礎Ⅱで説明します。
1. デフォルトゲートウェイのMACアドレスをARPで確認する
2. デフォルトゲートウェイにIPパケットを送信する
宛先まで1、2を繰り返す
ICMPプロトコルについて(主な役割)
通信状況を確認するプロトコル
「ICMP」は「IP」の代わりに、データの到達や通信、エラーなどの状況を確認するためのプロトコルです。
IPとICMPはセットで用いられます。
また、WindowsやUNIXでは、通信相手との繋がりを確認する「pingコマンド」があり、このpingコマンドでは、このICMPのプロトコルに沿って通信の確認を行っています。