アプリケーションに使用するプロトコルを決定する場合は、実際に両方のプロトコルを詳しく調べる必要があります。以下は概要です。
TCPは、データを確実に配信するためのいくつかのメカニズムを提供するストリームプロトコルです。データが送信される速度を制御します(速度が遅くなり、ピアが持続可能な速度に達するまで速度を上げる)。相手側で受信されなかったデータは再送信されます。これを行うには、価格を支払う(例えば、スロースタート、受信したすべてのデータを確認する必要性など)
UDPは反対側の "データチャンク"(データグラム)プロトコルであり、完全性/レート/注文のそれは、(潜在的に)より速くなることによって「補償する」ことができます。できるだけ早くデータを取り出すことができます。極端なケースでは、完全なネットワーク速度で、相手が受け取ることができるデータを受け取ります。相手側に到着するデータの配信または順序の保証はありません。彼らはデータグラム全体を受信するか、何も受信しません。
1が通常になり、任意の決定は、失われたかではないが、それのいずれかを失うことの重要性されているデータの可能性とは何の関係もありません。ビデオストリーミングはUDPを介して何回も行われます。何度もデータグラムが欠落していることは、スムーズなイメージを持つことより重要ではありません。ファイル転送はデータの損失やデータチャンクの逆転を余儀なくされることはないので、TCPは当然の選択です。
その質問とは別に、ネットワークプロトコルが問題の半分しかないことを思い出してください。残りの半分は、受信しているバイトをインタープレストするためのアプリケーションプロトコルが出ています...
あなたはすでに自分自身と矛盾しています。 TCPには信頼性の機能があるため、ルータの実装にはどうしてですか? – EJP