上でプログラミングしようとしたことはありませんUDP
が、高速で信頼性が低いことはわかっています。
私の質問は、信頼性をプログラムした場合UDP
、結果として得られるパフォーマンスは使用した場合と同じになりTCP
ますか? つまり、試してみる価値はありますか?
重要なポイント: プログラミングを行っておらずUDP
、初めて信頼性を実装しようとします。
4 に答える
高速で信頼性の高い UDP を提供する商用ソリューションが多数あります。これらの標準的なインストールには 10 万ドルもの費用がかかり、安定させるためにハードウェアにほぼ同じ費用を費やすことが期待できます。
ドロップされたパケットに非常に敏感であるため、信頼できる UDP を作成することは思ったよりも困難です。つまり、失うパケットがほとんどない限り問題なく動作します。
簡単なインストールでは、独自の信頼できる UDP を実装しようとするよりも、TCP の方が高速で簡単です。信頼性が必要ない場合にのみ、UDP を使用することをお勧めします。
選択肢が「ある程度の信頼性をUDPに組み込む」または「TCPのような実績のあるオプションを使用する」である場合、私は間違いなくTCPルートに行きます。TCP を避けようとしている理由はありますか? この推論は、推奨事項にとって重要になる可能性があると考えています。
これには同様のスレッドがあり、カスタムを実装する前に使用を検討できる UDP/TCP 以外の多くのオプションについて言及しています。ここで確認してください:信頼できる UDP が必要な場合、何を使用しますか?
TCP は、実装がより簡単になり、長期的には信頼性が高くなります。大規模なプロジェクトを検討している場合は、UDP が実行可能かもしれませんが、単純な TCP 設計では、大規模なタスクにさえ対応できる可能性があります。
考慮すべきもう 1 つのことは、TCP も送信レートの調整により独自のレイテンシー (輻輳制御とも呼ばれるプロパティ) を導入することです。輻輳制御は、スロー スタート、追加の増加、および TCP ウィンドウの相乗的な減少という形で現れます。このプロパティは、TCP によって提供される信頼性に追加されます。UDP (またはその変種の 1 つ) がオーディオ/ビデオに広く使用されている理由の 1 つは、輻輳制御と再送信による遅延がないことです。したがって、アプリケーションが遅延に敏感な場合は、最小限の信頼性で UDP を使用する方が確実に優れています。