技術レベルでこの2つの違いを知っています。
しかし、実際には、TCPおよびUDPのアプリケーション(使用)の例を(より良い)提供して、違いを実証できますか?
UDP:すべてのデータを常に取得する場合、あまり気にしないもの
TCP:すべての送信データを取得する必要があるほとんどすべて
編集:私はあなたがすでに知っていると述べ、他のすべての答えがとにかくそれを説明するので、違いを説明するつもりはありません:)
UDPは郵便局に手紙を郵送しています。
TCPは、郵便局で郵便物を返送用の領収書とともに郵送していますが、郵便局長は郵便物を順番どおりに整理し、順番どおりに配達するだけです。
とにかく、それは試みでした。
TCP:
UDP:
古典的な見方は、TCPを安全で、UDPを信頼できないと考えることです。
ただし、TCP-IPプロトコルが安全上重要なアプリケーションで使用される場合、TCPは複数の理由でエラーが発生して停止する可能性があるため、お勧めしません。一方、UDPでは、アプリケーションソフトウェアがエラー、再送信タイマーなどを処理できます。
さらに、TCPの処理オーバーヘッドはUDPよりも大きくなります。
現在、UDPは、AFDX(Avionics Full-Duplex Switched Ethernet)とも呼ばれるARINC 664規格で、航空機制御および飛行計器で使用されています。 ARINC 664では、TCPはオプションですが、UDPはARINC 653標準(民間航空機の高信頼性制御ソフトウェア)用に設計されたRTOS(リアルタイムオペレーティングシステム)で使用されます。
AFDXでIPおよびUDPを使用したリアルタイムコントロールの詳細については、27から50ページの http://www.afdx.com/pdf/AFDX_Training_October_2010_Full.pdf をご覧ください。
TCP
確認を受け取るまで、データを送信しません。
このプロセスは遅いです
セキュリティ目的で使用されます
例:ウェブ、メールの送信、メールの受信など
UDP
ここで私は謝辞に頭痛を感じません。
このプロセスは高速ですが、ここではデータが失われる可能性があります。
例:ビデオストリーミング、オンラインゲームなど
TCP + UDP = SMTP(例:モバイル、電話)
TCPは(順序どおりの)パケット配信を保証します。 UDPはしません。
TCP-すべてのデータが必要なトラフィックに使用されます。つまり、HTML、写真などUDP-パケットがドロップされてもそれほど苦労しないトラフィックに使用されます。つまり、ビデオと音声のストリーミング、オンラインゲームの一部のデータチャネルなどです。
メール:
理由:一部のパケット(単語/文)が欠落している場合、内容を理解できないと仮定します。信頼できるはずです。
ビデオストリーミング:
* **理由:***パケット(フレーム/シーケンス)が欠落している場合、コンテンツを理解できると仮定します。ビデオはフレームのコレクションであるため、1秒のビデオには25フレーム(イメージ)である。想像力が原因で一部のフレームが欠落していることは理解できますが。 UDPがビデオストリーミングに使用される理由です。
TCPは接続指向のプロトコルであり、スイッチルータープロキシなどを介してパスまたは仮想接続を確立し、通信を開始します。仮想エンドツーエンド接続を確立するために、ルーティングジクストラの最短パスアルゴリズムなどのさまざまなメカニズムが存在します。そのため、HTMLやその他のページを閲覧し、支払いやWebアプリケーション全般を作成する際に使用されていることがわかります。
UDPはコネクションレス型のプロトコルです-宛先を持っているだけで、ノードができる限り最高の場合、ノードは単にそれを渡します。そのため、さまざまなルートなどに沿って順不同で到着するパケットが一般的です。したがって、インスタントメッセンジャーや同様のソフトウェア開発者は、UDPを理想的なソリューションと考えています。
現実には、到達するのにかかる時間を気にせずにデータをネットに投げたい場合、到達する順番にUDPを使用します。パケットのスローを開始する前にしっかりしたパスが必要で、データパケットと同じ順序と遅延が必要な場合は、TCPを使用します-トレントにはUDP、PaypalにはTCPを使用します
上記のコメントのいくつかについて、順序付き配信について説明します。宛先コンピュータがパケットを回線上で順番どおりに受信しない場合がありますが、宛先のTCPが責任を負うことを明確にする必要があります。スタックの上位層に渡す前に、「順序が乱れたデータを並べ替える」ため。 TCPがパケットの順序付き配信を保証すると言うとき、それは、スタックの上位層に正しい順序でパケットを配信することを意味します。
適切な量のデータ(>〜1 kB)を移動する必要があり、そのすべてを配信する必要がある場合、TCPは適切です。インターネット上を移動するほとんどすべてのデータは、TCPを介して移動します-HTTP、SMTP、BitTorrent、SSHなど、すべてTCPを使用します。
UDPは、損失する余裕のある小さなメッセージがあり、できるだけ効率的に送信したい場合に適しています。それらを紛失する余裕がある理由の1つは、紛失した場合に再送信できるためです。インターネットの主な例はDNSです。DNSは、「stackoverflow.comのIP番号は?」などの小さなクエリで構成されており、応答もそれに応じて小さくなっています。コンピューターはこれらのクエリを多数作成するため、効率的に作成する必要がありますが、途中で迷子になった場合、タイムアウトして再送信するのは簡単です。
TCPは、パケットの配信と順序を保証します。実行可能ファイルなどのファイルのデータを再構築する場合、順序は最初の配信とほぼ同じくらい重要です。
UDPは、配信NOR順序を保証しません。パケットは任意の順序で到着します(到着しない場合もあります)。
TCPの一般的な用途には、パケットの整合性が最重要であるファイル転送が含まれます。音声/ビデオアプリケーションは、許容可能な品質を維持しながら、一部のデータを失う余裕があるため、通常はUDPを使用します。
SCTP vs TCP vs UDPServices/Features SCTP TCP UDP
Connection-oriented yes yes no
Full duplex yes yes yes
Reliable data transfer yes yes no
Partial-reliable data transfer optional no no
Ordered data delivery yes yes no
Unordered data delivery yes no yes
Flow control yes yes no
Congestion control yes yes no
ECN capable yes yes no
Selective ACKs yes optional no
Preservation of message boundaries yes no yes
Path MTU discovery yes yes no
Application PDU fragmentation yes yes no
Application PDU bundling yes yes no
Multistreaming yes no no
Multihoming yes no no
Protection against SYN flooding attacks yes no n/a
Allows half-closed connections no yes n/a
Reachability check yes yes no
Psuedo-header for checksum no (vtags) yes yes
Time wait state vtags 4-Tuple n/a
Tcpの使用法は他の回答から非常に簡単なので、いくつかの興味深いUDPの使用例に言及します。
1)DHCP-動的ホスト構成プロトコル。IPアドレスおよびその他のネットワーク構成を接続デバイスに動的に割り当てるために使用されています。簡単に言えば、このプロトコルを使用すると、追加設定なしでネットワークケーブル(またはwifi)に接続してインターネットの使用を開始できます。 DHCPはUDPプロトコルを使用します。設定要求メッセージはホストからブロードキャストされており、DHCPサーバーとのTCP接続を確立する方法がないため(アドレスがわからない)TCPを使用することはできません。代わりに。
2)Traceroute-データグラムが目的地に到達するためにネットワーク内のどのパスを通過するかを調べることができる、よく知られたネットワーク診断ツール(および所要時間)。デフォルトでは、ttl(time-to-live)フィールドが1に設定された宛先に、ありそうもない宛先ポート番号(33434から33534の範囲)のUDPデータグラムを送信することで機能します。データグラムの有効期限が切れていることがわかります。次に、ルーターはデータグラムを削除し、データグラムのttlが期限切れであり、ルーターの名前とIPアドレスを含むICMP(Internet Control Message Protocol)エラーメッセージをデータグラムの送信元に送信します。ホストがTTLが高くなるほどデータグラムを送信するたびに、ネットワーク部分が増加し、それを克服して新しいルーターから新しいICMPメッセージを取得します。最終的に宛先に到達すると(データグラムTTLは十分に大きいため)、宛先ホストは 'Destination port unreachable' ICMPメッセージを送信元ホストに送信します。これにより、Tracerouteは宛先に到達したことを認識します。 TCPはセグメントの配信を保証するため、UDPの代わりに少なくともそれを使用することは少なくとも非効率的であり、これにより、データグラムを再送信の試行なしにドロップできます(再送信は、より高いレベルで、継続的に実装されます上記のようにTTLを増やします)。
UDPはゲームや他のピアツーピア設定で多く適用されます。これは、プロトコルが高速でほとんどの場合、すべてが元の順序で宛先に到達することを確認する必要がないためです(UDPはパケット配信を保証しませんまたは配達注文)。
一方、WebトラフィックはTCP経由です。 (ここではわかりませんが、HTTPプロトコルの構築方法に関係していると思います)
UDPで失敗したため編集しました。
TCPとUDP tcpの両方の実際の例->電話、SMS、または宛先UDPに固有のもの-> FMラジオチャネル(AM)、Wi-Fi。