最近WIFIモジュールを書き、その理解の発見や少し誤解する前に、TCPとUDPの違いのいくつかをクリアしたいです。今すぐ再学習。
同じポイント
UDPプロトコルとTCPプロトコルは、トランスポート層プロトコルであります
TCP(伝送制御プロトコル、伝送制御プロトコル)は、接続指向、信頼性の高いバイトストリームサービスです。つまり、クライアントとサーバがデータを交換する前に、あなたは最初の後にデータを送信するためには、両者の間のTCP接続を確立する必要があります。そしてデータは、一端から他端まで伝達することを確実にするために、重複データ、テストデータ、及び他の流量制御機能を、廃棄、タイムアウトまたは再送信を提供します。
UDP(ユーザーデータプロトコル、ユーザーデータグラムプロトコル)は、単純なデータグラム指向のトランスポート層プロトコルです。それはちょうど送り出されたアプリケーション層のIPデータグラムを渡すために、信頼性を提供していませんが、彼らは彼らの目的地に到達できることを保証することはできません。UDPはもはやクライアントとサーバ間でデータパケット、およびタイムアウトなし再送メカニズムを送信する前に、接続を確立するため、その伝送が高速です。
異なる点
1、別のヘッダー
図2に示すように、異なる特性
3、異なるプロトコル
UDP
データ長が手動でサブアプリケーション層に必要に64Kを超える場合(UDPヘッダを含む)UDPデータグラム64Kの最大長さは、UDPパケットは、アプリケーション層で、必要な数の順序を保証することはできません。
機能
1は、何も接続:接続を確立することなく、直接輸送上のピアIPとポート番号を知りません。
図2に示すように、信頼性のない:なしの確認応答機構、再送メカニズム、ネットワーク障害がセグメントのもう一方の側に送信できない場合、UDPプロトコル層アプリケーション層は、任意のエラーメッセージを返しません。
図3に示すように、データがに関して報告:柔軟な制御が読み出されてUDPパケット長、アヒルUDP送信、いずれも分割するデータ及び回数、アプリケーション層の書き込みも組み合わせることができません。
4、データ収集は、問題のパッケージを貼り付ける避けるために、十分な柔軟性が、2つのデータパケットの間に明確な区別ではありません。
協定:
NFS:ネットワーク・ファイル・システム
TFTP:トリビアルファイル転送プロトコル
DHCP:動的ホスト構成プロトコル
BOOTP:開始プロトコル(ディスクレスブートのための装置)
DNS:ドメイン名解決プロトコル
TCP
特長:コネクション指向
1、接続指向
TCP 3ウェイハンドシェイク
私がしたい:1、Aは二つのことを伝えるために、ホストBホスト、データ・セグメントを介してホストに接続要求を確立するために、ホストBへデータセグメント同期シーケンス番号フラグ(SYN)を送信することにより、BをBをホストするホストが含まれていますあなたとコミュニケーション;あなたが開始セグメントとして私に対応するために使用することができますシリアル番号。
図2に示すように、ホストホストBは、要求、およびAホストに応答してデータ肯定応答(ACK)とセグメント同期シリアル番号(SYN)フラグを受信し、ホストAは、2つのことを言った:私はあなたを受けています要求は、あなたがデータを転送することができ、あなたが私に応答するために開始セグメントとして使用するシリアル番号を。
3. Aは、データセグメントを受信し、データセグメントのホストBの受信を確認する確認応答を送信ホストした後:「私は返事を受け取った、私は今、実際のデータ送信を開始したいです。」
このような3ウェイハンドシェイクが完了し、ホストAとホストBは、データを送信することができます。
TCP 4は、プロセスを振りました
データ転送が完了すると、ホスト1は、制御ビットが1 FIN、製TCP接続停止要求に設定されています。
図2に示すように、ホストBはFINそれに応答を受信し、TCP接続肯定応答は、ACKがセットされ、その方向に閉じられます。
図3に示すように、ホストB上のホストAは確認応答を要求し、ACKを1に設定、両端に近接しています。
TIME_WAIT状態
TCP契約は、接続を閉じるためのイニシアチブを取るために当事者は2つのMSL(最大パケット生存期間)時間後に戻ってCLOSED状態に取得するのを待って、TIME_WAIT状態にあります。
TIME_WAIT永続2MSLは、その後、我々はセグメントが遅れて受信された伝送の両方の方向になっていないか、消えてしまった保証することができます(または、すぐにサーバーを再起動して、あなたがプロセスに後半からのデータを受信することができるが、このデータは)間違っている可能性が高いです。しかし、また、理論的には、信頼性の最後のパケットが到着したことを確認(最後のACKが失われていると仮定して、サーバは、クライアント・プロセスがなくなっているが、このとき。FINを再送するが、それでもTCPコネクションのことができます。まだ再送LAST_ACKます)。
リンク:https://blog.csdn.net/sifanchao/article/details/82285018