回答:
TCPは、データが行き先に到達することを確認するために、ACKと再試行によって支援されます。UDPはコネクションレスであり、「発火して忘れる」。UDPは、ストリーミングタイプのアプリケーションで主に使用されます。一部のデータが失われても、再度送信する必要はありません。
どちらを使用するかは、アプリケーションによって異なります。たとえば、WebサーバーはTCPを使用します。
ここで良い要約を見つけることができます:
TCPとUDPはどちらもトランスポートレイヤーTCP / IPモデルで動作しますが、使用方法が大きく異なります。
最も重要な違いは次のとおりです。
フレーム構造
ネットワークを介してデータを送信する場合、いわゆる「フレーム」にカプセル化する必要があります。使用されているプロトコルとトポロジに応じて、カプセル化のさまざまな方法があります。次の図は、TCPフレーム構造とUDPフレーム構造の違いを示しています。
これはTCPフレーム構造です。
これはUDPフレーム構造で、はるかに単純です。
TCPを使用する一般的なプロトコルは、HTTP、FTP、およびSMTPです。UDPを使用するプロトコルの例は、DNSおよびDHCPです。
CEOレベルの説明:
UDPは、ビンの一般的な方向に紙を投げるときです。
TCPは見逃したときに、同じ用紙の正確なコピーをビンに落ちるまで何度も投げます。紙の無駄があり、TCPパケットを再送しても、ネットワークまたはシステムのリソースが無駄になります。
質問の他の部分に答えるには、アプリケーションが使用するものを転送する必要があります。HTTPトラフィックを転送するには、TCPを選択します。TFTPトラフィックを転送するには、UDPを選択します。p2pプログラムは主にtcpとudpの両方を使用するため、両方を転送します。
それはすべて、使用しているプロトコルとプログラムに依存します。
これまでに述べた違いだけでなく、TCPも提供します
フロー制御。受信者は、ウィンドウメカニズムを使用して、送信者がさらにデータを送信する許可を待つ前に、送信者から受信するオクテット(バイト)の数を制限します。ウィンドウのサイズは、受信者が会話の進行に合わせて変更できます。これにより、受信者は送信者からのデータのレートを「スロットル」できます。UDPはこれを許可せず、受信者ができることは、到着時にバッファリングまたは処理できないデータを破棄することだけです。
不連続な確認応答(選択的確認応答を使用して、送信者が欠落フレームと受信者が既に持っているが通常の方法では確認できない後続フレームではなく欠落フレームのみを再送信できるようにする)、輻輳処理、適応再送信(確認応答が受信されない場合、送信されたフレームを再送信するまでの時間を決定するタイマーの調整)。これらはUDPとは関係ありませんが、TCPが同じペイロードボリュームのネットワーク負荷を大幅に増加させることなくUDP経由で追加のサービスを提供するのに役立ちます。
TCPは、データが受信者に届くように努力します。UDPはサポートしていません。
プロトコルがよく知られているほど、経路上のより多くのルーターがプロトコルに介入します。tcpパケットを送信すると、受信したパケットが非常に破損している可能性が高くなります。通常、UDPはそれほど複雑ではなく、他の254のIP Paylodプロトコルは通常完全に変更されていません。
ユーザーデータグラムプロトコル(UDP)
これは、インターネットプロトコルスイートの基本プロトコルの一部です。ネットワークコンピュータ上のプログラムは、データグラムとも呼ばれる短いメッセージを送信できます。UDPは信頼性を保証しません(データグラムが順不同で到着したり、複製されたり、予告なしに欠落したりすることがあります)。すべてのパケットが実際に配信されるかどうかのチェックが行われないという事実は、保証された配信を必要としないアプリケーションにとって、UDPがより速く、より効率的であることを証明します。UDPはそのような状況でその用途を見つけます:
時間に敏感なアプリケーション。遅延パケットによる問題は回避されます
また、膨大な数のクライアントからの小さなクエリに応答するサーバーにも役立ちます。UDPは、パケットブロードキャスト(ローカルネットワーク上のすべてに伝達)とマルチキャスト(すべてのサブスクライバに伝達)をサポートしています。
伝送制御プロトコル(TCP)
インターネットプロトコルスイートでのこのプロトコルの重要性から、TCP / IPと呼ばれることがよくあります。TCPは、2つのエンドシステムのみに関係するより高いレベルで動作します(たとえば、WebブラウザーとWebサーバー間)。TCPは、あるコンピューター上のあるプログラムから別のコンピューター上の別のプログラムへのデータストリームの信頼性の高い順次配信を提供します。TCPの一般的な用途は、電子メールサポートとファイル転送およびWebアプリケーションを再グループ化します。管理タスクの中で、TCPはメッセージサイズ、メッセージの交換速度、およびネットワークトラフィックの輻輳を制御します。IPに関しては、インターネット経由で転送されるメッセージとして、コンピューターからコンピューターへの低レベルの転送を処理します。
どちらも、インターネットプロトコルまたはIPと呼ばれるものの上に構築されたネットワークプロトコルです。インターネットプロトコルは、インターネットの主要なプロトコルであり、たとえばWebの閲覧を可能にするものです。そのため、これらのプロトコルがTCP / IPまたはUDP / IPとして記述されることがよくあります。これらは、実際にはインターネットのコアプロトコルです。
どちらの場合も、データはパケットと呼ばれるチャンクに分割されます。TCPは、これらのパケットが宛先に、正しい順序でエラーなしで到達することを保証します。
一方、UDPは、データパケットが到着することさえ保証しません。到着した場合にエラーが発生しないことのみを保証します。
通常、他のプロトコルはTCPおよびUDP上で実行され、オペレーティングシステム内ではなくアプリケーション内で動作するため、アプリケーションプロトコルとして知られています。Webブラウズは、TCPプロトコルを使用するHTTPプロトコルを使用します。
ドメイン名の検索またはDNSクエリは、多くの場合UDPを使用しますが、TCPも使用できます。多くのストリーミングサービスは、別のアプリケーションプロトコルの下でUDPを使用します。
それがあなたの質問にもっと簡単な英語で答えることを願っています。