tcp vs udp what is difference between tcp
このチュートリアルでは、TCPとは何か、UDPとは何か、TCPとUDPの違いは何かについて説明します。また、それらの機能とアプリケーションについても学びます。
以前のチュートリアルでは、TCPプロトコルスイートモデルとその機能について詳しく説明しました。また、UDPプロトコルについても学びました。
このチュートリアルでは、これら2つの広く使用されているプロトコルのさまざまな機能、動作モード、アプリケーション、速度、信頼性、伝送特性、およびセキュリティ機能を比較します。
=> Easy ComputerNetworkingシリーズをお読みください。
安らかなWebサービスのJavaインタビューの質問
学習内容:
- TCPとは何ですか?
- UDPとは何ですか?
- TCPおよびUDP通信プロセス
- 比較チャートTCPとUDP
- UDPとTCPヘッダー形式
- TCPによって実行される機能
- UDPによって実行される機能
- TCPのアプリケーション
- UDPのアプリケーション
- 結論
- 推奨読書
TCPとは何ですか?
TCP / IPプロトコルは、4層のプロトコルのセットです。全体として、これらの4つの層は、通信プロセスの責任を負い、ネットワーク間およびネットワーク内のインターネットを介したデータ、音声、パケットのエンドツーエンド配信を行います。
伝送制御プロトコル(TCP)は、このプロトコルモデルの第3層であるトランスポート層で機能します。
TCPは、各データグラムのシーケンス番号と各通信セッションとの確認応答セッションを使用することにより、次のノードまたは宛先ノードへのデータパケットの配信を保証するコネクション型プロトコルスイートです。
このシステムはまた、データパケットの各層での安全な送信を保証し、それによって、タイムアウト状況に達するか、受信者から適切な確認メッセージを受信しない限り、データパケットの再送信をプロビジョニングします。
これらはTCPプロトコルの基本的な特徴です。
UDPとは何ですか?
ユーザーデータグラムプロトコル(UDP)は、TCP / IPプロトコルスイートの第3層であるトランスポート層で機能します。 TCPプロトコルとは対照的に、通信のためにネットワークを介してデータを送信する前に接続を確立しないため、コネクションレス型プロトコルです。
したがって、オンラインでビデオを視聴したり、オンラインでゲームをプレイしたりするなど、通信プロセスで必要なデータパケットの確認応答が不要なアプリケーションに最適です。
TCPおよびUDP通信プロセス
上図に示すように、伝送制御プロトコルは、最初に2つのホスト間の接続をセットアップし、次に通信プロセスを開始するため、コネクション型です。 3ウェイハンドシェイクプロセスを使用して安全な通信を提供するため、通信プロセスの安全モードに使用されます。
これにより、送信者から受信者へのデータの順次かつ正確な配信が保証されます。データの送信中にエラーが発生した場合、受信者は送信されたデータが正しくないことをソースに通知し、データの適切な配信の確認が受信されるまでソースはデータを再送信します。
上図に示すように、通信を開始するためのホストAとホストBの間に適切な接続が確立されていないため、ユーザーデータグラムプロトコルはコネクションレス型プロトコルです。ホストは、通信を開始するプロセスの2つのエンドデバイスにすぎません。
ホストAはデータを送信し続け、ホストBはデータのシーケンシャルでエラーのない配信を気にすることなくデータを受信します。
したがって、これは信頼性の低いプロトコルであり、安全なデータ送信は重要ではありませんが、ビデオのストリーミングやオンラインゲームのプレイなど、より高速な通信が必要な場合に使用されます。
比較チャートTCPとUDP
比較エンティティ | TCP | UDP |
---|---|---|
使用されるプロトコル | TCPがデータ転送に使用するさまざまな種類のプロトコルは、HTTP(ハイパーテキスト転送プロトコル)、HTTPS(ハイパーテキスト転送プロトコルセキュア)、FTP(ファイル転送プロトコル)、SMTP(簡易メール転送プロトコル)などです。 | UDPがデータ転送に使用するさまざまな種類のプロトコルは、BOOTP(ブートストラッププロトコル)、DHCP(動的ホスト構成プロトコル)、DNS(ドメインネームサーバー)、TFTP(トリビアルファイル転送プロトコル)などです。 |
基本機能 | 伝送制御プロトコルは、データパケットの通信プロセスを開始する前に、常に最初に送信元ホストと宛先ホスト間の接続を設定します。 | ユーザーデータグラムプロトコルは、送信元と宛先の間にリンクを確立することなく、データを宛先ホストに直接転送します。 |
接続の種類 | これはコネクション型プロトコルであり、データの送信を開始する前に接続を確立する必要があり、送信側と受信側の間の通信が終了すると、通信デバイスは接続を終了または終了する必要があります。 | これはコネクションレス型プロトコルであり、送信元と宛先の間の接続を確立、維持、および終了するための強制がないことを意味します。ブロードキャストおよびマルチキャストの目的に最適です。 |
速度 | 速度はUDPよりも遅いです。 | 高速、次にTCP。これは、リアルタイムのトランスポートプロトコルです。 |
信頼性 | 確認応答プロセスを通じて、宛先ノードへのデータパケットの適切な配信を保証するため、非常に信頼性があります。 | データパケットの配信は保証されていないため、信頼性の低いプロトコルです。 |
ヘッダーサイズ | 20バイト | 8バイト |
了承 | TCPプロトコルは、送信者と受信者の間のハンドシェイクプロセスに従って、両方向のデータパケットの受信を確認します。したがって、これは失われたデータパケットの再送信の機能を提供します。 | データの受信を確認することはないため、データが再送信される可能性はありません。 |
フロー制御 | フロー制御は、スライディングウィンドウや輻輳回避アルゴリズムなどを使用して行われます。 | 何のプロセスも実行されません |
アプリケーションへのデータインターフェース | データはメッセージベースの個別のデータパケットで送信されます | データはストリームベースのデータパケットで送信され、特定の構造はありません。 |
エラーチェック | エラーの検出と訂正はチェックサムを使用して行われ、データパケットは訂正後に送信側から宛先側に再送信されます。 | 失われたデータパケットは破棄され、エラーチェックプロセスは実行されません。 |
アプリケーション | このプロトコルは安全で信頼性の高い通信プロセスを提供するため、兵役、Webブラウジング、電子メールなど、データの機密性が最重要事項であるサービスで使用されます。 | 高速通信が必要で、VoIP、ゲームストリーミング、ビデオおよび音楽ストリーミングなどのデータの信頼性が問題にならない場合に使用されます。 |
UDPとTCPヘッダー形式
TCPヘッダー
- 送信元ポート: データセグメントの送信元ポートアドレスが含まれ、16ビットサイズです。
- 宛先ポート: 宛先ポートアドレスが含まれ、16ビットサイズでもあります。
- シーケンス番号: これは32ビットのサイズです。これは、最初のオクテットのデータセグメントのシーケンス番号を表します。 SYNが使用可能な場合、シーケンス番号の値はISN + 1ですが、ISNは初期シーケンス番号を表します。
- 確認番号: このフィールドのサイズも32ビットです。このフィールドには、ソースエンドがデータパケットの受信確認として受信者から到着することを期待している次のデータセグメントのシーケンス番号が含まれます。ソースエンドとデスティネーションエンドの間に適切な接続が確立されると、このビットは常に送信されます。
- データオフセット: このフィールドは4ビット長です。これは、データが開始するポイントを示します。
- 予約済み: 一部のビットは将来の目的のために予約されており、このフィールドの値はゼロです。 6ビット長です。
- フラグ: これも6ビットです。さまざまな目的でさまざまなフラグが使用されます。適合性に応じて、フラグは0または1に設定されます。
- ウィンドウサイズ: このフィールドのサイズは16ビットです。このフィールドには、確認応答番号フィールドに表示され、送信者が受信を待機しているデータオクテットで始まるデータオクテットの数が含まれます。
- チェックサム: これも16ビットサイズです。チェックサムは、データセグメント全体のすべてのデータオクテットに対して計算されます。これは、出力の1の補数と1の補数として評価され、出力の両方が現在の16ビットヘッダーとオクテットのテキストデータに追加されます。結果は、修正のために次の上位層にも送信されます。
- 緊急のポインタ: このフィールドは16ビットサイズです。 URGフラグが設定されている場合にのみ、このフィールドが計算されます。緊急データ後のデータオクテットのシーケンス番号を示します。
- オプション: これは可変フィールドです。これは、任意のオクテットエッジの開始時に設定できます。
UDPヘッダー
UDPヘッダーにはTCPヘッダーと比較して4つのフィールドしかなく、TCPヘッダーと比較すると非常に理解しやすいです。
php面接の質問と回答pdf
- 送信元ポート: これは16ビットの長さです。これには、データパケットを転送するために送信元側で使用される送信元ポートの値が含まれます。範囲は0〜65535です。
- 宛先ポート: このフィールドのサイズは16ビットです。これには、宛先ホストがデータの受信を期待しているポート番号が含まれています。
- 長さ: このフィールドサイズは16ビットです。これは、ユーザーデータグラム、ヘッダー、およびデータの長さサイズで構成されます。
- チェックサム: これも16ビットサイズですが、これはオプションのフィールドです。これは、データグラムのエラーの計算に使用されます。ゼロに設定されている場合、チェックサムは計算されず、1に設定されている場合、チェックサムが計算されます。
(画像 ソース )
TCPによって実行される機能
(i)アドレス指定と多重化:
TCPポートは、上位層アプリケーションのネットワークのさまざまなプロセスをアドレス指定するために使用されます。これにより、さまざまな手順で収集されたデータが多重化され、ネットワークアクセス層に関連付けられてデータパケットがブロードキャストされます。
(ii)接続を確立、維持、および終了するには:
このプロトコルでは、いくつかのプロセスとルールのセットに従って、送信元と宛先のエンド間の接続をセットアップします。ハンドシェイクのプロトコルと方法があり、進行中の通信プロセスを維持および確認するために使用されます。
最後に、送信元と宛先の間の通信が終了すると、接続を終了するためのいくつかのルールも実行されます。
(iii)データのパッケージ化:
TCPは、通信のためにデータパケットを上位層に転送する前に、まずデータをメッセージ形式にパッケージ化して送信する手順をプロビジョニングし、次に宛先エンドに配信します。
宛先側で、レシーバーはデータをデコードして解凍し、再び上位層のアプリケーションに転送します。
(iv)信頼性の高い通信モードと高いQoSを提供します。
送信側と受信側の間の通信に信頼性の高いモードを提供し、高品質のサービスも保証します。
アニメを見るトップ10のウェブサイト
TCPがデータ転送に使用するメカニズムは、データの信頼性の高い配信を保証し、欠落したデータまたはシーケンス外のデータの再送信を提供する一連のルールに従います。信頼性の高い通信を確保するために、さまざまなハンドシェイクプロトコルが使用されます。
UDPによって実行される機能
(i)データの上位層転送: UDPプロトコルは、上位層から転送されるデータを受信し、それをUDPメッセージに変換してから、通信のためにUDPソフトウェアに転送します。
(ii)UDPメッセージのカプセル化: UDPメッセージはデータフィールドにカプセル化されます。 UDPヘッダーは、送信元ポートと宛先ポートのドメインで構成され、チェックサム値も計算します。
(iii)次のレイヤーに転送されるメッセージ: 上記のフィールドの計算後、UDPメッセージは通信のためにIPに転送されます。宛先の終わりで、プロセスは元に戻されます。
TCPのアプリケーション
- TCPは、FTP(ファイル転送プロトコル)で使用され、組織内で遠く離れたホスト間でビッグデータファイルを安全に共有および送信します。
- 簡易メール転送プロトコル(SMTP)を使用する電子メールプロセスも、TCPを使用して、さまざまなホスト間で組織内および組織外に電子メールとデータファイルを送信します。
- POPは、電子メールメッセージの回復またはダウンロードにもTCPを利用します。
- TELNETプロトコルは、ログインと遠端またはリモートエンドにあるホストへの安全なアクセスにもTCPを使用します。
- ボーダーゲートウェイプロトコル(BGP)はTCPでも機能し、WANネットワークを介した信頼性の高い通信モードを提供します。
- 兵役は、インターネット作品内で機密性の高いデータや情報を交換するためにTCPを使用しています。
UDPのアプリケーション
- ストリーミングビデオ、ストリーミングオーディオなど、高速のデータ速度のみが重要であり、失われたデータの回復は処理されません。
- オンラインでビデオゲームやグラフィックゲームをプレイする。
- UDPは、失われたデータを後で回復できるトンネリングプロセスやVPNネットワークでも使用されます。
- UDPは、LANネットワークのブロードキャスト目的でも使用されます。
- 携帯電話でリアルタイムTVを視聴することは、IPTVとしても知られているUDPの最新の一般的な使用法です。
結論
図と表形式の比較表を使用して、TCPプロトコルとUDPプロトコルの違いを調査しました。一方では、TCPはコネクション型プロトコルであり、さまざまな機能を備えた信頼性の高い通信を提供します。
一方、UDPは非常にシンプルなコネクションレス型のリアルタイムトランスポートプロトコルであり、TCPよりも高速な通信プロセスを提供しますが、データの送受信の確認プロセスでサポートされていないため、信頼性がありません。
ただし、どちらも重要であり、その方法に重要性があります。
=> ここでコンピュータネットワークの基本ガイドを見てください。