ホームページ  >  記事  >  tcp/ip 参照モデルの層は何ですか?

tcp/ip 参照モデルの層は何ですか?

青灯夜游
青灯夜游オリジナル
2020-11-25 14:01:16116990ブラウズ

tcp/ip 参照モデルは 4 つの層に分かれています: 1. データ リンク層、物理メディア上のデータ送信を処理するネットワーク カード インターフェイスのネットワーク ドライバーを実装します; 2. ネットワーク層、データ パケットのルーティングと転送を実装する、 3. 2 つのホスト上のアプリケーションにエンドツーエンド通信を提供するトランスポート層、 4. アプリケーション ロジックの処理を担当するアプリケーション層。

tcp/ip 参照モデルの層は何ですか?

TCP/IP プロトコル スイートは 4 層のプロトコル システムで、下から順に、データ リンク層、ネットワーク層、トランスポート層、およびアプリケーション層。各層は異なる
機能を実行し、いくつかのプロトコルを通じて実装されます。上位層のプロトコルは、下位層のプロトコルが提供するサービスを使用します。
tcp/ip 参照モデルの層は何ですか?

データ リンク層 (ネットワーク インターフェイス層)

データ リンク層は、ネットワーク カード インターフェイスを実装します。物理メディア (イーサネット、トークン リングなど) を介したデータの送信を処理するネットワーク ドライバー。

データリンク層で一般的に使用される 2 つのプロトコルは、ARP プロトコル (Address Resolve Protocol、アドレス解決プロトコル) と RARP プロトコル (ReverseAddress Resolve Protocol、逆アドレス解決プロトコル) です。 )。これらは、IP アドレスとマシンの物理アドレス (通常は、イーサネット、トークン リング、および 802.11 ワイヤレス ネットワークで使用される MAC アドレス) との間の変換を行います。

ネットワーク層は IP アドレスを使用してマシンをアドレス指定しますが、データリンク層は物理アドレスを使用してマシンをアドレス指定します。したがって、ネットワーク層はまずターゲット マシンの IP アドレスを物理アドレスに変換する必要があります。データ リンク層によって提供されるサービス、これが ARP プロトコルの目的です。

RARP プロトコルは、ネットワーク上の特定のディスクレス ワークステーションによってのみ使用されます。ストレージ デバイスがないため、ディスクレス ワークステーションは自分自身の IP アドレスを記憶できませんが、ネットワーク カード上の物理アドレスを使用して、ネットワーク マネージャ (サーバーまたはネットワーク管理ソフトウェア) に自分の IP アドレスを問い合わせることができます。 RARP サービスを実行するネットワーク管理者は、通常、ネットワーク上のすべてのマシンの物理アドレスと IP アドレスのマッピングを維持します。

#ネットワーク層

ネットワーク層は、データ パケットのルーティングと転送を実装します。

WAN (ワイド エリア ネットワーク、ワイド エリア ネットワーク) は通常、分散したホストや LAN (ローカル エリア ネットワーク、ローカル エリア ネットワーク) を接続するために多くの階層ルーターを使用するため、通信する 2 つのホストは通常​​直接接続されませんが、複数の中間ノード (ルーター) を介して接続されます。ネットワーク層のタスクは、これらの中間ノードを選択して 2 つのホスト間の通信パスを決定することです。同時に、ネットワーク層はネットワーク トポロジ接続の詳細を上位層プロトコルから隠すため、トランスポート層とネットワーク アプリケーションの観点からは、通信する 2 つの当事者は直接接続されます。
ネットワーク層の中核となるプロトコルは、IP プロトコル (インターネット プロトコル) です。 IP プロトコルは、宛先 IP アドレスに基づいてデータ パケットの配信方法を決定します。データ パケットを宛先ホストに直接送信できない場合、IP プロトコルはそれに適したネクスト ホップ ルーターを見つけ、データ パケットを転送のためにルーターに配信します。このプロセスが数回繰り返され、最終的にパケットは宛先ホストに到達するか、送信失敗により破棄されます。 IP プロトコルはホップバイホップ方式を使用して通信パスを決定することがわかります。

ネットワーク層のもう 1 つの重要なプロトコルは、ICMP プロトコル (インターネット コントロール メッセージ プロトコル) です。これは IP プロトコルの重要な補足であり、主にネットワーク接続を検出するために使用されます。


tcp/ip 参照モデルの層は何ですか?8 ビットのタイプ フィールドは、メッセージ タイプを区別するために使用されます。

ICMP メッセージは 2 つの主要カテゴリ

エラー メッセージ
に分類されます。このタイプのメッセージは主に、ターゲットに到達できない (タイプ値は 3) などのネットワーク エラーに応答するために使用されます。 ) およびリダイレクト (タイプ値は 5); クエリ メッセージ
、このタイプのメッセージはネットワーク情報のクエリに使用されます。たとえば、ping プログラムは ICMP メッセージを使用して、ターゲットが到達可能かどうかを確認します (タイプ値は 8)。 一部の ICMP メッセージでは、さまざまな条件をさらに細分化するために 8 ビット コード フィールドも使用されます。たとえば、リダイレクト メッセージは、ネットワーク リダイレクトを示すためにコード値 0 を使用し、ホスト リダイレクトを示すためにコード値 1 を使用します。 ICMP メッセージは、16 ビットのチェックサム フィールドを使用してメッセージ全体 (ヘッダーとコンテンツを含む) に対して巡回冗長検査 (CRC) を実行し、送信中にメッセージが破損していないかどうかを確認します。 ICMP メッセージのタイプが異なれば、本文の内容も異なります。

#トランスポート層

トランスポート層は、2 つのホスト上のアプリケーションにエンドツーエンドの通信を提供します。ネットワーク層で使用されるホップバイホップ通信方法とは異なり、トランスポート層は通信の発信元と宛先のみを考慮し、データ パケットの転送プロセスは考慮しません。

垂直の実線の矢印は、TCP/IP プロトコル スイートの層間の物理通信を表し (データ パケットは実際にこれらの線に沿って送信されます)、水平の破線の矢印は論理通信線を表します。この図では、さまざまな物理ネットワークがどのように接続されているかも説明されています。
データ リンク層 (ドライバー) は物理ネットワークの電気的な詳細をカプセル化し、ネットワーク層はネットワーク接続の詳細をカプセル化し、トランスポート層はエンドツーエンドの論理通信をカプセル化していることがわかります。アプリケーションのリンク。データの送受信、リンク タイムアウトの再接続などを担当します。

トランスポート層プロトコル: TCP プロトコル、UDP プロトコル。

  • TCP プロトコル (伝送制御プロトコル、伝送制御プロトコル) は、アプリケーション層に信頼性の高い接続指向のストリームベースのサービスを提供します。 TCP プロトコルは、タイムアウト再送信、データ確認応答などを使用して、データ パケットが宛先に正しく送信されることを保証するため、TCP サービスは信頼できます。 TCP プロトコルを使用して通信する両者は、まず TCP 接続を確立し、接続ステータス、読み取りおよび書き込みバッファ、および多数のタイマーなど、接続に必要なデータ構造をカーネル内で維持する必要があります。通信が終了したら、両方の当事者が接続を閉じて、このカーネル データを解放する必要があります。 TCP サービスはストリームベースです。ストリームベースのデータには境界 (長さ) 制限がなく、通信の一方の端からもう一方の端まで継続的に流れます。送信者はデータをバイトごとにデータ ストリームに書き込むことができ、受信者はデータをバイトごとに読み出すことができます。

  • UDP プロトコル (ユーザー データグラム プロトコル) は、TCP プロトコルとはまったく逆で、信頼性の低いコネクションレス型のデータグラム ベースのサービスをアプリケーション層に提供します。 「信頼性が低い」とは、UDP プロトコルがデータが送信者から宛先に正しく送信されることを保証できないことを意味します。データが途中で失われた場合、または宛先がデータ検証でデータエラーを見つけて破棄した場合、UDP プロトコルはアプリケーションに送信失敗を通知するだけです。したがって、UDP プロトコルを使用するアプリケーションは通常、データの確認やタイムアウト再送信などのロジックを独自に処理する必要があります。 UDPプロトコルはコネクションレス型、つまり通信相手が長時間接続を維持しないため、アプリケーションはデータを送信するたびに受信側のアドレス(IPアドレスなど)を明確に指定する必要があります。データグラムベースのサービスは、ストリームベースのサービスに関連しています。各 UDP データグラムには長さがあり、受信側はこの長さを最小単位としてすべての内容を一度に読み取る必要があり、そうしないとデータが切り捨てられます。

#アプリケーション層

アプリケーション層は、アプリケーションのロジックの処理を担当します。 データリンク層、ネットワーク層、トランスポート層はネットワーク通信の詳細を処理する役割を果たしますが、この部分は安定性と効率性の両方が必要であるため、これらはすべてカーネル空間に実装されています。アプリケーション層は、ファイル転送、名前クエリ、ネットワーク管理などの多くのロジックの処理を担当するため、ユーザー空間に実装されます。アプリケーション層もカーネルに実装すると、カーネルが非常に大きくなります。もちろん、いくつかのサーバー プログラムもカーネルに実装されているため、コードがユーザー空間とカーネル空間の間を行き来する必要がなく (主にデータのコピー)、作業効率が大幅に向上します。ただし、この種のコードは実装が複雑で、柔軟性が不十分で、移植も簡単ではありません。

Ping はプロトコルではなくアプリケーションです。前述したように、ICMP メッセージを使用してネットワーク接続を検出し、ネットワーク環境のデバッグに不可欠なツールです。

telnet プロトコルは、リモート タスクをローカルで完了できるようにするリモート ログイン プロトコルです。

OSPF (Open Shortest Path First、Open Shortest Path First) プロトコルは、ルータ間の通信に使用され、ルーティング情報を相互に通知する動的ルーティング更新プロトコルです。

DNS (ドメイン ネーム サービス、ドメイン ネーム サービス) プロトコルは、マシンのドメイン名を IP アドレスに変換します。

アプリケーション層プロトコル (またはプログラム) は、トランスポート層をスキップし、ping プログラムや OSPF プロトコルなどのネットワーク層によって提供されるサービスを直接使用する場合があります。アプリケーション層プロトコル (またはプログラム) は通常、TCP サービスと、DNS プロトコルなどの UDP サービスの両方を使用できます。 /etc/services ファイルを通じて、すべてのよく知られたアプリケーション層プロトコルと、それらが使用できるトランスポート層サービスを確認できます。

5 層プロトコルの背後にある考え方: 上位層は下位層の詳細を保護し、その層が提供するサービスのみを使用します。

凝集性が高く、結合性が低いため、各層がその機能に焦点を当てており、層間の関係への依存性がほとんどありません。

データ パケットは各層で異なる形式を持っています。それらは上から下にセグメント、データグラム、フレームと呼ばれます。データはアプリケーション層からプロトコル スタックを介して受け渡され、各層で追加されます。対応する層プロトコルのヘッダーは、最終的にフレームにカプセル化されて伝送媒体に送信され、ルーターまたは宛先ホストに到達すると、ヘッダーが取り除かれて、上位層のリクエスターに配信されます。

このプロセスは、カプセル化、送信、分離、および分散化と呼ばれます。

以上がtcp/ip 参照モデルの層は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。