技術共有

ネットワークプログラミング!

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

ネットワークプログラミング

【1】ネットワーク開発アーキテクチャ

(1) C/Sアーキテクチャ
C:クライアント(クライアント)

S:サーバー(サーバー)

APP - サーバーです

C/S アーキテクチャは、クライアント ソフトウェアとサーバー間の対話を通じてフロントエンド インターフェイスとバックエンド ビジネス ロジックの分離を実現し、安定した信頼性の高いアーキテクチャ モデルを提供します。

(2) B/Sアーキテクチャ
B:ブラウザ(Webページ)

S:サーバー(サーバー)

QQ Music を開く ----> QQ Music にリクエストを送信します

ローカルブラウザでリソースをレンダリングする

B/S アーキテクチャは、ブラウザとサーバー間の対話を通じてフロントエンド インターフェイスとバックエンド ビジネス ロジックの分離を実現し、柔軟でスケーラブルなアーキテクチャ モデルを提供します。


(3) B/SアーキテクチャとC/S組織のメリット・デメリット


B/S アーキテクチャ
メンテナンスとアップグレードの方法は簡単です。サーバーのリソースを更新するだけです。

コストも比較的安く、オプションも豊富です

サービスデータが多すぎて負荷が大きい

C/Sアーキテクチャ
サーバーへの負荷が軽減され、一部のリソースがストレージ用にクライアントに割り当てられます。

データの保存と管理は比較的透過的であり、APP はリバース エンジニアリングされています。

コストが高く、メンテナンスに手間がかかる

C/Sアーキテクチャが主流


【2】インターネットプロトコル


(1) ネットワークプログラミングとは何ですか?


ネットワークプログラミングの研究前提はインターネットに基づいています

ネットワークプログラミングはインターネットに基づいてコードを書くことです

(2) ネットワークプログラミングという媒体


ネットワーク プログラミングの媒体はコンピュータ ネットワークです。

ネットワーク プロトコルとネットワーク プログラミング フレームワークとライブラリは、ネットワーク プログラミングを実現するための基礎です。

【3】OSI 7層プロトコル


ネットワーク通信プロトコル規格
アプリケーション層: 電子メール、ファイル転送、リモート ログインなどの特定のアプリケーション プロトコルの処理を担当します。

プレゼンテーション層: データの表現とエンコードを担当し、さまざまなシステムで送信する前にデータを変換および圧縮します。

セッション層: データ交換の同期やチェックポイントの作成と回復などの機能を含む、セッションの確立、管理、終了を担当します。

トランスポート層: エンドツーエンドのデータ送信を担当し、フロー制御、輻輳制御、エラー回復、データ再送信など、信頼性の高いデータ送信サービスを提供します。

ネットワーク層: 異なるコンピュータ間でのデータ パケットの転送とルーターの選択を担当し、論理アドレス指定や輻輳制御などの機能を提供します。

データリンク層: フレームを通じてデータを送信し、データの信頼性の高い送信を担当します。

物理層: 伝送メディア、物理インターフェイス、電気特性などの物理メディア上のビット ストリームの伝送を担当します。

アドバンテージ:
理解と実装が簡単: OSI モデルは明確な階層構造を持っているため、理解と実装が簡単です。

優れたスケーラビリティ: このアーキテクチャはさまざまなレイヤーとプロトコルを明確に定義しているため、非常にスケーラビリティが高く、いつでも新しいプロトコルとサービスを追加できます。

プロトコルの相互運用性の向上: OSI モデルはさまざまなプロトコルに対して明確なガイダンスを提供するため、異なるメーカーやサプライヤーのデバイス間の相互運用性を促進できます。

複雑さの軽減: OSI モデルは、各レイヤーの機能が固定されているため、他のアーキテクチャに比べて複雑さが軽減されます。

欠点:


理論的すぎる: OSI モデルは理論的すぎるため、実際の実装での使用が制限されます。

柔軟性の欠如: OSI モデルは各層で特定の機能を定義するため、柔軟性に欠け、さまざまなネットワーク環境の要件に完全に適応できません。

煩雑すぎる: OSI モデルは 7 つの層に分割されているため、実際のアプリケーションではプロトコルの複雑さとリソースの消費が増加します。

高い実装コスト: OSI モデルでは、さまざまなレイヤー間の通信を実現するために多数のプロトコルとデバイスを使用する必要があるため、実装コストが高くなります。

【4】TCP 5層プロトコル


アプリケーション層: ネットワーク アプリケーション間の通信の処理を担当します。

トランスポート層: トランスポート層プロトコルは、ネットワーク上で確実にデータを送信するためのエンドツーエンド プロトコルを提供します。

ネットワーク層: ネットワーク内のデータの送信とルーティングを処理します。

データリンク層: 物理ネットワーク上で信頼性の高いデータ伝送を提供します。データ パケットをフレームにカプセル化し、物理メディアを介して送信します。

物理層: 伝送メディア、物理インターフェイス、電気特性などの物理メディア上のビット ストリームの伝送を担当します。

アドバンテージ:
シンプルかつ明確: TCP/IP 5 層プロトコルはシンプルかつ明確で、理解と実装が簡単です。

強力なオープン性: TCP/IP プロトコルは、優れた互換性と拡張性を備えたオープン標準です。

安定性と信頼性: TCP プロトコルは、データの整合性と信頼性を保証する信頼性の高いデータ送信サービスを提供します。

高い柔軟性: TCP/IP プロトコルは、電子メール、ファイル転送、Web ブラウジングなど、さまざまなアプリケーションをサポートします。

高いセキュリティ: TCP/IP プロトコルは、データのセキュリティとプライバシーを確​​保するために、IPSec、SSL などのいくつかのセキュリティ メカニズムを提供します。

欠点:


高い複雑さ: TCP/IP プロトコルの実装は比較的複雑であり、ネットワーク プロトコルと関連テクノロジの原理を深く理解する必要があります。

パフォーマンスの制限: データの信頼性を確保するために、TCP プロトコルにはある程度の遅延とオーバーヘッドが生じるため、高いリアルタイム要件を持つアプリケーションには適していません。

不十分なセキュリティ: TCP/IP プロトコルの一部のセキュリティ メカニズムは攻撃に対して脆弱であるため、セキュリティを確保するには追加の対策を講じる必要があります。

信頼性の限界: TCP/IP プロトコルは信頼性の高いデータ送信サービスを提供しますが、ネットワークが混雑するとパケット損失や遅延などの問題が発生する可能性があり、それらを解決するためにいくつかの対策を講じる必要があります。

大規模な展開には適さない: TCP/IP プロトコルはネットワーク管理とメンテナンスの問題を十分に考慮していないため、大規模なネットワーク展開ではいくつかの問題が発生する可能性があります。

【5】イーサネットプロトコル


インターネットアクセスの標準化

コンピュータ ネットワークでのデータ通信に使用される幅広い有線 LAN テクノロジの 1 つです。

コンピュータ間の物理層とデータリンク層の通信ルールと形式を定義します。

イーサネットプロトコル特徴
柔軟性、スピード、シンプルさ、信頼性、耐障害性、拡張性、信頼性

【6】IPプロトコル


ネットワーク通信プロトコルです

TCP/IP プロトコルは、送信元アドレスから宛先アドレスへのデータ パケットの送信を担うネットワーク層プロトコルです。

データがインターネット上でどのように送信およびルーティングされるかを定義します。

IPプロトコル特徴: リンクなし、シンプルかつ柔軟、パケット送信、ルーティング、IP アドレス、バージョン番号、プロトコルの種類

【7】Macアドレス


ネットワークカード

物理アドレスとも呼ばれ、ネットワーク機器 (コンピュータ、ルーター、スイッチ、ネットワーク カードなど) の製造時に割り当てられる、世界的に一意なアドレスを指します。

「物理アドレス」または「MAC アドレス」というフィールドを探します。

【8】放送


同一LAN内でのデータ交換

【9】TCPプロトコル


ストリーミングプロトコル

信頼性が高く、送信用のチャネルに基づいて、仕様を満たしている場合にのみチャネルの確立が許可されます。

(1) スリーウェイハンドシェイク


1. クライアントは (クライアントの ID aaa を使用して) 接続要求をサーバーに送信します。

2. サーバーはクライアントの接続要求を受信し、(サーバーの識別子とクライアントの識別子 bbb を含む) 要求をクライアントに送り返します。

3. クライアントとサーバーが接続を確立します

(2) 4回振る


1. クライアントがサーバーに切断要求を送信します。

2. サーバーはクライアントのリクエストを受信し、未完成のデータの処理を続けます。

3. 切断要求をクライアントに送信します。

4. クライアントはサーバーから切断要求を受信し、切断します。

【10】UDPプロトコル


電報契約

UDPプロトコルはトランスポート層のプロトコルです

特徴
コネクションレス: UDP では、データを送信する前に接続を確立する必要はありません。

シンプルかつ高速: UDP のプロトコル ヘッダーは比較的小さいです。通信のオーバーヘッドが最小限であるため、転送は比較的高速です。

信頼性の低さ: UDP は信頼性の保証を提供せず、データ パケットの送信順序も保証されません。

ブロードキャストとマルチキャストをサポート: LAN に接続されているすべてのデバイスがブロードキャストできます。

リアルタイム アプリケーションに適しています。

【11】リアルタイムアプリケーションに適したソケットプロトコル


TCP接続/UDP接続の確立方法

ソケットとは:
Scoket は、ネットワーク接続の確立、データの送受信に使用できる抽象エンドポイントとして理解できます。

Socket は、ネットワーク通信を実装するために使用されるプログラミング インターフェイスで、アプリケーションがネットワークを介して異なるコンピュータ間でデータやクラスメートを転送できるようにします。