[Linux] ネットワーク プログラミング ネットワークの基礎 (C++)

目次

1. コンピュータネットワークの背景

2.「合意」を理解する

3. ネットワークプロトコルの最初の理解

【3.1】プロトコルの階層化

【3.2】OSI 7層モデル

【3.3】TCP/IP 5層(または4層)モデル

4. ネットワーク伝送の基本的な流れ

【4.1】ネットワーク送信フローチャート

【4.2】データパケットのカプセル化と多重分離

5. ネットワーク内のアドレス管理


1. コンピュータネットワークの背景

【独立モード】コンピュータ同士が独立しています。

【ネットワーク相互接続】複数のパソコンを接続し、データ共有を実現します。

[ローカルエリアネットワーク]スイッチやルータを介して接続されるコンピュータが増えています。

[ワイド エリア ネットワーク (WAN)] は、数千マイル離れたコンピュータを接続します。

        いわゆる「ローカルエリアネットワーク」「広域ネットワーク」は相対的な概念であり、例えば「中国の特徴」を持った我が国の広域ネットワークも比較的大規模なローカルエリアネットワークとみなすことができます。

2.「合意」を理解する

        「合意」は合意です

        コンピュータ間の伝送媒体は光信号や電気信号で、0や1などの情報は「周波数」や「強度」で表され、さまざまな情報を伝送するには双方のデータ形式を合意する必要があります。

[考察]通信する 2 つのホスト間のプロトコルに同意するだけで十分ですか?

  • パソコンのメーカーはたくさんあります。

  • コンピューターのオペレーティング システムも多数あります。

  • コンピュータ ネットワーク ハードウェア デバイスはまだ多数あります。

  • 異なるメーカーが製造したコンピュータが相互にスムーズに通信できるようにするにはどうすればよいでしょうか? 誰かが立ち上がって、全員が従うべき共通の標準に同意する必要があります。これがネットワーク プロトコルです

3. ネットワークプロトコルの最初の理解

【3.1】プロトコルの階層化

私たちのプロトコルには 2 つの層しかありませんが、実際のネットワーク通信はより複雑になり、より多くの層が必要になります。階層        化の最大の利点は「カプセル化」です

【3.2】OSI 7層モデル

        OSI (Open System Interconnection) の 7 層ネットワーク モデルは Open System Interconnection Reference Model と呼ばれ、論理的な定義と仕様です。

        ネットワークは論理的に 7 つの層に分割されており、各層にはルーターやスイッチなどの関連する対応する物理デバイスがあります。

        OSI 7 層モデルはフレームワーク設計手法であり、その主な機能は、さまざまな種類のホストによるデータ伝送の実現を支援することです。

        その最大の利点は、サービス、インターフェイス、プロトコルの 3 つの概念が明確に区別されていることです。概念は明確で、理論は比較的完全です。7 つの階層構造モデルを通じて、異なるシステムおよび異なるネットワーク間で信頼性の高い通信を実現できます。

        ただし、複雑で非現実的であるため、TCP/IP の 4 層モデルに基づいて説明します。

【3.3】TCP/IP 5層(または4層)モデル

        TCP/IP はプロトコルのグループと同義で、TCP/IP プロトコル クラスターを形成する多くのプロトコルも含まれます。

        TCP/IP 通信プロトコルは 5 層の階層構造を採用しており、各層は次の層が提供するネットワークを呼び出して、それぞれのニーズを満たします。

  • 物理層:光・電気信号の伝送方式を担当し、例えば、現在一般的に使用されているイーサネットのネットワークケーブル(ツイストペア)、初期のイーサネット(現在は主にケーブルテレビで使用されている)で使用されていた同軸ケーブル、光ファイバー、現在のWi-Fi 無線ネットワーク 電磁波の使用などはすべて物理層の概念に属します。物理層の機能によって、最大伝送速度、伝送距離、耐干渉性などが決まります。ハブ (Hub) は物理層で機能します。

  • データリンク層:デバイス間のデータ フレームの送信と識別を担当します。たとえば、ネットワーク カード デバイスのドライバー、フレーム同期 (つまり、ネットワーク回線から検出された信号が新しいフレームの開始としてカウントされます) )、競合検出(競合を検出した場合の自動再送信)、データエラーチェックなど イーサネット、トークンリング、無線LANなどの規格があり、スイッチ(Switch)はデータリンク層で動作します。

  • ネットワーク層:アドレス管理とルーティング選択を担当します。たとえば、IP プロトコルでは、ホストは IP アドレスによって識別され、2 つのホスト間のデータ伝送ライン (ルーティング) はルーティング テーブルを通じて計画されます。ルーター ) で動作します。ネットワーク層。

  • トランスポート層: 2 つのホスト間のデータ送信を担当します。送信制御プロトコル (TCP) など、ソース ホストからターゲット ホストへのデータの確実な送信を保証します。

  • アプリケーション層: Simple Email Transfer (SMTP)、File Transfer Protocol (FTP)、Network Remote Access Protocol (Telnet) などのアプリケーション間の通信を担当します。当社のネットワーク プログラミングは主にアプリケーション層向けです。

        物理層についてはあまり考慮しないため、TCP/IP 4 層モデルと呼ばれることがよくあります。

一般的に言えば:

  • ホストの場合、そのオペレーティング システム カーネルはトランスポート層から物理層までコンテンツを実装します。

  • ルーターの場合、ネットワーク層から物理層まで実装されます。

  • スイッチの場合、データリンク層から物理層まで実装されます。

  • ハブの場合、物理層のみが実装されます。

4. ネットワーク伝送の基本的な流れ

【4.1】ネットワーク送信フローチャート

同じネットワーク セグメント内の 2 つのホスト間のファイル転送:

TCP/IP プロトコルを介して通信する 2 台のコンピューターの概略図:

        ネットワーク セグメントをまたがるホスト間のファイル転送: あるコンピュータから別のコンピュータにデータを転送する場合、データは 1 つ以上のルーターを通過する必要があります。

        プロトコル ヘッダー:プロトコルの各層にあります。各プロトコルの最終的な表現は、プロトコルにヘッダーが必要であるということです。プロトコルは通常、ヘッダーを通じて表現されます。各データは最終的に送信されるか、異なるプロトコルで送信されます。独自のプロトコルを持つマストヘッド!

        LAN: 2 つの LAN ホストが直接通信でき、各コンピュータには独自の名前があり、各ホストには独自のネットワーク カードがあり、各ネットワーク カードには独自のアドレス (MAC アドレス) があります。

        メッセージ:ヘッダー + ペイロード。

        ネットワーク プロトコルでは、同じ層のプロトコルを直接通信するものと考えることもできますし、下向きの配信と考えることもできますが、これらは 2 つの異なる認識です。ネットワーク セグメントをまたがるホスト間のファイル転送: あるコンピュータから別のコンピュータにデータを転送する場合、データは 1 つ以上のルーターを通過する必要があります。

【4.2】データパケットのカプセル化と多重分離

  • データ パケットはプロトコル層ごとに異なる名前を持ち、トランスポート層ではセグメント、ネットワーク層ではデータグラム、リンク層ではフレームと呼ばれます。

  • アプリケーション層のデータがプロトコル スタックを通じてネットワークに送信される場合、プロトコルの各層はカプセル化と呼ばれるデータ ヘッダーを追加する必要があります。

  • ヘッダー情報には、ヘッダーの長さ、ペイロードの長さ、上位層プロトコルが何であるかなどの情報が含まれます。

  • データはフレームにカプセル化されて伝送媒体に送信され、宛先ホストに到達した後、プロトコルの各層で対応するヘッダーが取り除かれ、データが対応する上位層プロトコルに渡され、「上位層プロトコル フィールド」に基づいて処理されます。ヘッダーにあります。

5. ネットワーク内のアドレス管理

おすすめ

転載: blog.csdn.net/lx473774000/article/details/132769939