照会すると 30 や 10 などの小さな数を返すだけで、どのインスタンスでも最大 5 つほどの要求を処理する必要があるサービスの場合、TCP または UDP のほうが適切なプロトコルでしょうか? 私は UDP に傾倒していますが、専門家の意見が欲しかったのです。比較的迅速な返信時間も求めています。このようなサービスでは、それぞれの利点がどのようなものになるか教えていただけますか? ありがとう。
1 に答える
TCP は、信頼性の高い接続ベースのプロトコルです。したがって、データが送受信されることが保証されます。相手側で受信が確認されない場合、パケットは自動的に再送信されます。ただし、接続を確立するためのスリーウェイ ハンドシェイクのオーバーヘッドがあります。
TCP は、1 回限りの情報交換 (HTTP 要求と応答) がある HTTP のようなプロトコルに使用されます。
UDP は信頼性の低いコネクションレス プロトコルです。したがって、単純にパケットを送受信できますが、相手がメッセージを受信したことを確認する (自動、OS スタック提供の) 方法はありません。気にする場合は、ある種の ACK を自分で実装する必要があります。
UDP は、より継続的な「ストリーミング」タイプのプロトコルによく使用されます。たとえば、多くのオンライン マルチプレイヤー ゲームでは、UDP を使用してホストとの間でゲーム情報を交換します。彼らはこれを継続的かつ定期的に行います。したがって、パケットが失われたとしても、別の更新が間近に迫っているため、大した問題ではありません。その (現在は古くなった) 更新が再送信されるのを待たなければならない場合、ゲームプレイにとってはるかに悪いことになります。
DNS も UDP 経由で実装されます。
最終的に選択するのはあなたです。ほとんどの場合、デフォルトで TCP を使用し、説明したようなシナリオでのみ UDP を使用します。