web-dev-qa-db-ja.com

ICMPがレイヤ3プロトコルとして分類されるのはなぜですか?

ICMPはOSIモデルのレイヤー3プロトコルとして分類されていますが、私が知る限り、ネットワークレイヤープロトコルの定義を満たしていません。

アドレッシングやパケットルーティングは提供されません(IPを使用します)。そのため、トランスポートプロトコルのように、あるノードから別のノードに情報を送信するだけです。では、ICMPはなぜレイヤー3プロトコルに分類されるのでしょうか。

11
Robbie Mckennie

ICMPは実際にはレイヤー3の「トップ」にあります。IPMPを使用して、データをリモートホストに配信します。つまり、ICMPメッセージはIPパケットにカプセル化する必要があります。

イーサネットプロトコルを使用して実際にパケットを送信しているときに、レイヤー2の「最上位」にあると見なすことができるARPに類似していると考えてください。

ICMPはIP層の一部として実装されているため、ICMP処理は、IP処理と並行して、またはIP処理の一部として発生すると見なすことができます。したがって、TCP/IPベースのレイヤードネットワークに関するトピックでは、ICMPはレイヤー3プロトコルとして示されています。

@ロビーマッケニー

ICMPがどの層に属するかは、激しい議論の的となっています。 ICMPヘッダーは、TCPおよびUDPと同様に、レイヤー4にあります。そのため、ICMPヘッダーはレイヤー4に属していると主張しています。ただし、ICMPはレイヤー3プロトコルであると主張しています。ポートの概念。

私にとって、OSIモデルの特定の層に属するプロトコルの分類は、プロトコルの動作に依存します。例:

BGPはレイヤー3でのルーティングに使用されますが、BGP自体はTCP(およびもちろんIP)によって実行されます)

15
cuonglm

ICMP(およびICMPv6、IGMPなど)はすべて、ネットワーク層接続を管理します。これらは(通常)エンドユーザーによって使用されるのではなく、オペレーティングシステムによって使用されます。そのため、アドレッシングとパスの決定(ルーティング)はIPに依存していますが、レイヤー3(ネットワーク)に属しています。

OSIモデルの大部分は、ユーザー(実際の人、またはアプリケーションサーバー)を接続するという見通しから書かれています。すべての管理プロトコルとOSIモデルにまだ適合しないものは、ユーザーに直接サービスを提供しないため(通常)、言語に完全には一致しないようです。

6
Chris S