ソケットを使用する2つのプログラム間の通信にアプリケーション層プロトコルが存在する必要がありますか?

ソケットを使用する2つのプログラム間の通信にアプリケーション層プロトコルが存在する必要がありますか?

どちらのプログラムがどんなに単純でも複雑でも、インターネットドメインソケット(またはUnixドメインソケット)を介して通信するときは、必ず次のことがありますか?アプリケーション層プロトコル 彼らのコミュニケーションのために?

そのようなアプリケーション層プロトコルはよく知られており、定義することができます(HTTPなど)か一時的(明確に定義されていません)?

たとえば、Virtual Machine ManagerとKVM / QEMUはUnixまたはインターネットドメインソケットを介して通信しますpsqlpostgresql serverそのようなプログラムが通信に独自のプロトコルを使用すべきかどうか疑問に思います。

これは、プロトコル(特にアプリケーション層プロトコル)の概念を理解するのに役立ちます。

ありがとうございます。

ベストアンサー1

プロトコルは単に通信方法のセットです。他の人はいません。どれほど厳しくて緩いかは別の問題です。

コミュニケーションが完全に混乱するのを防ぐ方法はありません。これを使用してnetcat2つのエンドポイント間で通信することができ、2つのエンドポイント間で送信されるデータは、データ交換が達成しようとする目標によってのみ制限されます。必要に応じて、これは純粋なごみです。つまり、制限がないことを意味します。

おすすめ記事