[コンピュータネットワーク] プロトコルを理解する

1. アプリケーション層

これまでのソケット プログラミングはシステム コール レベルで行われていましたが、今度はコンピュータ ネットワークをオープンします。アプリケーション層プロトコルとシリアル化と逆シリアル化を理解する
ここに画像の説明を挿入します

実際的な問題を解決し、日常のニーズを満たすためにプログラマーによって作成されたネットワーク プログラムはすべてアプリケーション層にあります。アプリケーション層で使用されるデータ形式は通常、構造またはオブジェクトであり、ネットワークの場合、送信されるデータは通常、バイト ストリームです。

2. 同意

データがネットワーク上の送信元から宛先に到達するためには、ネットワーク通信の参加者は同じルールに従う必要があります。この一連のルールをプロトコルと呼びますが、プロトコルは最終的にはコンピューター言語で表現される必要があります。通信する両方のコンピュータが同じプロトコルに準拠している場合にのみ、コンピュータは相互に通信できます。

プロトコルとは「規約」です データの読み書きの際、ソケット API インターフェースは「文字列」の形でデータを送受信します 「構造化データ」を送信したい場合はどうすればよいでしょうか?役割の理解が深まりますコンピュータのネットワーク バージョンを実装することにより、プロトコルを強化します。

分析します:

  • ネットワーク経由で送信されるデータは構造体オブジェクトにすることもできますが、プラットフォームごとに構造体のアラインメント ルールが異なるため、そうしないことをお勧めします。これにより、同じ構造体オブジェクトのバイト ストリームが異なるプラットフォームで解析されます。結果は異なります。 ; 解析結果を同じにしたい場合は、ホストと対応するオペレーティング システムの一貫性が高くなければなりませんが、これは明らかに不可能です。したがって、ネットワーク送信プロセス中に、構造を大きな文字列にシリアル化する必要があり、メッセージを取得するには、ネットワークから取得したデータを逆シリアル化して、対応する情報を取得する必要があります。
  • 合意の本質: 相手方は、通常は構造またはクラスで表現される特定のデータ形式について合意しています。
  • シリアル化の役割: ネットワーク通信を容易にする。
  • デシリアライズ機能: 上位層がデータを設定および取得する場合、. -> 演算子を使用してデータを読み書きするのに便利です。
  • シリアル化と逆シリアル化は、構造データを大きな文字列に変換するだけではなく、データの抽出と識別を容易にするために、関連する区切り文字と対応するヘッダーを追加する必要があります。

3. シリアル化と逆シリアル化

シリアル化と逆シリアル化:

  • シリアル化は、オブジェクトの状態情報を、保存または送信できる形式 (バイトのシーケンス) に変換するプロセスです。
  • 逆シリアル化は、一連のバイトをオブジェクトに復元するプロセスです。

OSI 7 層モデルにおけるプレゼンテーション層の機能は、デバイス固有のデータ形式とネットワーク標準データ形式の間の変換を実現することです。デバイス固有のデータ形式はアプリケーション層のデータ形式を指し、ネットワーク標準データ形式はシリアル化後にネットワーク上で送信できるデータ形式を指します。

シリアル化と逆シリアル化の目的

  • ネットワーク伝送中、シリアル化の目的は、ネットワーク データの送受信を容易にすることです。データがどのような種類であっても、シリアル化後はバイナリ列になります。このとき、最下層はネットワーク データを伝送する際の統一性を認識します。 . これらはすべてバイナリ シーケンスです。
  • シリアル化されたバイナリ列は、ネットワーク伝送時に最下位層でしか認識できず、上位層のアプリケーションはシリアル化されたバイナリ列を認識できないため、ネットワークから取得したデータをデシリアライズしてバイナリ列データに変換する必要があります。アプリケーション層が認識できるデータ形式。

ネットワーク通信と業務処理は別のレベルにあると考えることができ、ネットワーク通信を行う場合は下位層が見るのはバイナリ列のデータであり、業務処理を行う場合は上位層が認識できるデータとなります。ビジネス処理とネットワーク通信の間でデータを変換する必要がある場合は、対応するシリアル化または逆シリアル化操作をデータに対して実行する必要があります。
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/Tianzhenchuan/article/details/133969296