[Linux] コンピュータネットワークの背景とプロトコル階層化

ネットワーク開発

コンピュータは当初、スタンドアロンコンピュータとして使われていましたが、現在ではネットワークが急速に発展し、LANからローカルエリアネットワークの構築、さらには数千マイル離れたコンピュータを接続するWANへと、ネットワークは社会と社会の発展を大きく推進してきました。人間と人間の関係、同じホストのプロセス間で通信が始まるため、ネットワークの出現は避けられません。

プロトコル

合意とは何ですか?

アグリーメントとはその名の通り、双方が守らなければならない「合意」のことですコンピュータの世界ではデータはすべて光電信号であり、強さを表すのに01が使われます。適切な対応フォーマット

簡単な例で言うと、現代社会では紙幣を使って取引をしていますが、古代では銀を使って取引をしていましたが、これらの取引方法は実は「合意」なのです。

ネットワークプロトコル

なぜネットワークプロトコルがあるのでしょうか?
1. コンピューター ハードウェア デバイスは数多くあり、すべて異なるメーカーが製造しています
2. コンピューター オペレーティング システムも多数あります。

多くのメーカーが製造する多くの製品が相互にスムーズに通信するためには、誰もが遵守するための一連の標準が当然必要であり、この要件のもとでネットワーク プロトコルが自然に誕生しました。

プロトコルの階層化

なぜプロトコルを階層化する必要があるのでしょうか? まず、ネットワーク送信によって引き起こされる問題を見てみましょう。

1. まず、ネットワーク伝送は長距離伝送であるため、データの消失などの異常トラブルが発生しやすいです。
2. 次に、ネットワーク内のホストの数が非常に多いため、ホストを見つける方法です。
3. 次に、データ転送と経路選択をどのように行うか
4. 最後に、ハードウェア上で経路と送信方法を選択します。

なぜこれほど多くの問題を引き起こすのでしょうか? とても単純で、データ通信の距離が長くなっただけです。
これらの問題は関連しており、たとえば、測位の問題が解決された後、データの転送パスをどのように選択するか? 適切なパスを選択してハードウェア上で送信するにはどうすればよいでしょうか?

层状结构このような特性を踏まえ、ネットワークは、各層が自身の層の機能のみに注力し、次の層のインターフェースを利用するように、凝集性が高く結合性が低いように設計されており、いずれかの層で問題が発生した場合には、他のレイヤーには直接影響しません。

高い凝集性: 関連する問題をまとめて解決策を設計する
低い結合性: さまざまな機能に応じてさまざまなモジュールを設計する

OSI 7 層モデル

このような要求のもと、ネットワークの各層の機能を完璧に定式化した最初のネットワーク標準プロトコルモデルが策定されましたが、実際の設計では、アプリケーションとの関連性が高い層も存在するため、別のモデルを学習することに重点を置きました。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

TCP/IP 5層モデル(4層)

TCP/IP はプロトコルのグループと同義であり、これらは一緒になって TCP/IP プロトコル ファミリを形成します。

  • 1. 物理層: 光電信号の伝送方法を担当し、物理層の機能によって最大伝送速度、伝送距離、耐干渉性などが決まります。ハブは物理層で動作します
  • 2. データリンク層: デバイス間のデータフレームの送信と識別を担当します。競合検出(自動再送)、データエラーチェックなど イーサネット、トークンリング、無線LANなどの規格があり、スイッチはデータリンク層で動作します。
  • 3. ネットワーク層: アドレス管理とルーティング選択を担当します。IP プロトコルでは、ホストは IP アドレスによって識別され、2 つのホスト間のデータ伝送ライン (ルーティング) はルーティング テーブルを通じて計画され、ルーターはネットワーク層で機能します。
  • 4. トランスポート層: 2 つのホスト間のデータ送信を担当します。
  • 5. アプリケーション層: アプリケーション間のデータ送信を担当します。Httpプロトコル、SMTP(電子メール送信)、FTP(テキスト転送プロトコル)、Telnet(ネットワークリモートアクセスプロトコル)など

同じ層のプロトコルには 2 つの機能が必要です:
1. ヘッダーはペイロードから分離されている必要があります
2. ヘッダーは、ペイロードが上位層に配信される特定のプロトコル (TCP? UDP?) をサポートしている必要があります。

カプセル化: ヘッダー + ペイロード —> 次の層に送信
分解: 2 つを分離し、ペイロードを上位層に渡す
ここに画像の説明を挿入します

基本的なコミュニケーションプロセス

ノイマン アーキテクチャによれば、オペレーティング システムはコンピュータ ソフトウェアとハ​​ードウェアの管理者です。ネットワーク カードのハードウェア デバイスを使用するには、オペレーティング システムが提供するインターフェイスを使用する必要があります。これは、ネットワークが実行される運命にあります。オペレーティング システムとトランスポート層 ネットワーク層とネットワーク層はオペレーティング システムに組み込まれており、オペレーティング システムは多数存在できますが、ネットワークは 1 つだけです。

そうしないとIPを使う人と使わない人がいて通信ができなくなります。

ネットワーク間セグメント伝送の基本プロセスは図に示すとおりです。伝送は 1 つ以上のルーターを通過する必要があります。ルーターは少なくとも 2 つのサブネットとカスケード接続する必要があります。ルーターは IP 層で動作します。このようにして、IPネットワーク間の違いは、IP がオンライン世界全体の基礎であると言えます。これは、次の文を裏付けています。コンピュータ設計哲学では、ソフトウェア層を使用してあらゆる問題を追加することができます。

ここに画像の説明を挿入します

MACアドレスとIPアドレス

通常、ネットワーク通信には mac アドレスと ip アドレスの 2 つのアドレスが存在しますが、平たく言えば、宛先 ip アドレスが最終的な宛先であり、宛先 mac アドレスによって次の宛先が決まります。つまり、宛先 IP は変化しませんが、宛先 MAC アドレスは常に変化します。

MAC アドレスはグローバルに一意であり、各ネットワーク デバイスは独自の一意の MAC アドレスを持つ必要があることに注意してください。IP アドレスは、パブリック ネットワーク内のホストの一意の識別子です。

ネットワーク通信の性質

本質を理解する前に、まず「2 つのホスト間のネットワーク通信は通信しているのか?」という質問について考える必要があります。

「はい、そうではありません。ネットワーク通信は 2 つのホストが通信するだけではありません。ホストが相手のデータを受け取った後、対応するプロセスに引き渡して処理する必要があります。ネットワーク通信の本質はプロセス間通信です。」

自分のプロセスの pid を公開するのは不合理なので、pid の代わりにポート番号を使用します。1 つのプロセスは複数のポート番号をバインドできますが、1 つのポート番号を複数のプロセスでバインドすることはできません。

この通信方式を[送信元IP、送信元ポート+宛先IP、宛先ポート]ソケット通信、つまりソケット通信と呼びます。

おすすめ

転載: blog.csdn.net/m0_73209194/article/details/132089509