ネットワーク層のプロトコルについて
ネットワーク層のプロトコルについて
主な規格の内容
続いてネットワーク/インターネット層のプロトコルについて詳しく見ていきましょう。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/4632f4c5c4e85e4fa8f1762f06152eaa.png)
主に「IP(Internet Protocol)」がこの層での中心的な役割を担いますが、それ以外にも「ICMP」「ARP」といったプロトコルがあります。
IP
エンドツーエンドの通信を可能にするためのプロトコル
ICMP
IPの代わりにエラーの発生、原因など通信状況を転送するプロトコル
ARP(アープ)
(宛先の)IPアドレスを元に(宛先の)MACアドレスを特定するためのプロトコル
IPについて(主な役割)
概要
再三の説明になりますが、IPはエンドツーエンドの通信を可能にするためのプロトコルです。
主な特徴
IPの主な特徴として、コネクションレス型とベストエフォート型があげられます。
コネクションレス型
宛先がデータを受け取る準備ができているかどうかに関わらず(事前の接続確認を行わず) 通信が行われる形態
ベストエフォート型
なるべく遅延がないよう到達できるよう最大限努力するが、ネットワークの状況によって通信状況が左右される形態
ネットワーク層のPDU、IPヘッダについて
![](https://kanda-it-school-kensyu.com/wp-content/uploads/46057a6629748542ff9914c714445eae.png)
では、ネットワーク層のプロトコルが機能するために、この階層におけるデータがどうなっているのか確認していきましょう。
まず、ネットワーク層で扱われるデータ(PDU)を「パケット」と呼び、
カプセル化の過程でこの層で新しく付与されるメインのヘッダを「IPヘッダ」と呼びます。
IPヘッダはIPプロトコルにより付与されます。
パケット
ネットワーク層のPDU
IPヘッダ
ネットワーク層における主なヘッダ
IPヘッダのフォーマットの中身
ではIPヘッダの中身について詳しく確認していきましょう。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/688dc3a30a0694d87facd6ad5e047ece.png)
![](https://kanda-it-school-kensyu.com/wp-content/uploads/ab71da688ed08fa4f3dcf9d428ff7dd6.png)
![](https://kanda-it-school-kensyu.com/wp-content/uploads/072f1b81d143e31d4f5513aa70294476.png)
(※補足)パケット分割(フラグメント)
データを送信する際、一度に送るデータの大きさには制限(最大転送サイズ:MTU)があります。そのため、制限を超える大きさのデータを送るためには、データを分割して送る必要があり、それを「フラグメント」と呼びます。
しかし宛先がデータを受け取るときには、当然、データを分割前の状態に戻さなければなりません。そこで元の状態にデータを組み立てるために組み立てに必要な「識別番号」や「フラグメントオフセット」などの情報がIPヘッダには含まれています。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/7f3aa6a4eca59297a0ba977e2ef0d90d.png)
![](https://kanda-it-school-kensyu.com/wp-content/uploads/ddc087c0573d31a4e65b355562b0f968.png)
ARPについて(主な役割)
![](https://kanda-it-school-kensyu.com/wp-content/uploads/bd1aadfe8f274177ea61ac2804bd1683.png)
データを送る際、宛先のIPアドレスを指定しますが、宛先のMACアドレスまで把握しているわけではありません。
「ARP」は与えられた(宛先の)IPアドレスから、(宛先の)MACアドレスを調べ、両者を紐づけするためのプロトコルです。
特定のIPアドレスからMACアドレスを調べることを「アドレス解決」と呼びます。
次のページでどのような流れでARPが行われるのかを確認しましょう。
ARPの処理の流れ
1. ARPリクエスト(要求)
まずブロードキャスト(同じネットワーク内での一斉送信)で同一のネットワーク内の全てのノードに、MACアドレスを尋ねます。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/600b61f5cd1b1833767e77643a253762.png)
2. ARPリプライ(応答)
続いて該当のIPアドレスのノードから、MACアドレスの情報を含め、送信元のIPアドレスのノード単体へ返信(ユニキャスト)します。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/dc437922aac8c4349862aefe8e153bb4.png)
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で確認する
![](https://kanda-it-school-kensyu.com/wp-content/uploads/fcbd275a582faa9429d8fa2f1d6c91da.png)
2. デフォルトゲートウェイにIPパケットを送信する
![](https://kanda-it-school-kensyu.com/wp-content/uploads/244ec6d80d4ae5a89d50a887cda1492b.png)
宛先まで1、2を繰り返す
![](https://kanda-it-school-kensyu.com/wp-content/uploads/8868642756ac4c3f7ead8f685befed17.png)
ICMPプロトコルについて(主な役割)
通信状況を確認するプロトコル
![](https://kanda-it-school-kensyu.com/wp-content/uploads/3a7fc553fd6b319aa2d56ea191b1c748.png)
「ICMP」は「IP」の代わりに、データの到達や通信、エラーなどの状況を確認するためのプロトコルです。
IPとICMPはセットで用いられます。
また、WindowsやUNIXでは、通信相手との繋がりを確認する「pingコマンド」があり、このpingコマンドでは、このICMPのプロトコルに沿って通信の確認を行っています。