ホームページ >よくある問題 >信頼性の高い伝送を実現するトランスポート層プロトコルは何ですか?

信頼性の高い伝送を実現するトランスポート層プロトコルは何ですか?

青灯夜游
青灯夜游オリジナル
2021-07-12 14:06:3323844ブラウズ

信頼性の高い伝送を提供するトランスポート層プロトコルは TCP です。 TCP (Transmission Control Protocol) は、接続指向で信頼性の高い、バイト ストリーム ベースのトランスポート層通信プロトコルであり、信頼性の低いインターネット ネットワーク上で信頼性の高いエンドツーエンドのバイト ストリームを提供するように特別に設計されています。

信頼性の高い伝送を実現するトランスポート層プロトコルは何ですか?

このチュートリアルの動作環境: Windows 10 システム、Dell G3 コンピューター。

TCP/IP プロトコル スイートには、TCP (伝送制御プロトコル) と UDP (ユーザー データグラム プロトコル) という 2 つの異なる伝送プロトコルがあります。 TCP プロトコルは接続指向のプロトコルで、比較的信頼性が高く、安全で、安定していますが、効率的ではなく、多くのリソースを消費します。 UDP プロトコルはコネクションレス型プロトコルであり、効率が高く、高速で、使用するリソースもほとんどありませんが、その送信メカニズムは信頼性が低く、送信制御を完了するには補助アルゴリズムに依存する必要があります。

したがって、信頼性の高い伝送を提供するトランスポート層プロトコルは TCP です。

TCP は、複数のネットワーク アプリケーションをサポートする階層化されたプロトコル階層に対応するように設計されています。 TCP は、相互接続された異なるコンピュータ通信ネットワークに接続されたホスト コンピュータ内のプロセスのペア間で信頼性の高い通信サービスを提供するために利用されています。 TCP は、単純で信頼性の低いデータグラム サービスを下位レベルのプロトコルから取得できることを前提としています。原則として、TCP は、有線接続からパケット交換ネットワークや回線交換ネットワークに至るまで、さまざまな通信システム上で動作できる必要があります。

TCP 伝送制御プロトコルは、信頼性の低いインターネット ネットワーク上で信頼性の高いエンドツーエンドのバイト ストリームを提供するために特別に設計された伝送プロトコルです。

主な機能:

アプリケーション層がネットワーク間送信のために 8 ビット バイトで表されるデータ ストリームを TCP 層に送信すると、TCP は次のセグメントに分割されます。適切な長さの場合、最大セグメント サイズ (MSS) は通常、コンピュータが接続されているネットワークのデータ リンク層の最大伝送単位 (MTU) によって制限されます。次に、TCP はデータ パケットを IP 層に渡し、IP 層はパケットをネットワーク経由で受信エンティティの TCP 層に配信します。

TCP はメッセージ伝送の信頼性を確保するために、各パケットにシーケンス番号を付与すると同時に、受信側エンティティに送信されたパケットが順番に受信されることを保証します。次に、受信側エンティティは、正常に受信したバイトに対して対応する確認応答 (ACK) を送り返します。送信側エンティティが妥当な往復遅延 (RTT) 以内に確認応答を受信しない場合、対応するデータ (失われたとみなされる) が再送信されます。 。

  • データの正確性と合法性の観点から、TCP はデータに誤りがないかチェックサム機能を使用して、送受信時にチェックサムを計算する必要があります。 md5認証を使用してデータを暗号化できます。

  • 信頼性を確保するために、タイムアウト再送信とピギーバック確認メカニズムが採用されています。

  • フロー制御にはスライディングウィンドウプロトコルが採用されており、ウィンドウ内の未確認パケットは再送する必要があると規定されています。

輻輳制御に関しては、広く評価されている TCP 輻輳制御アルゴリズム (AIMD アルゴリズムとも呼ばれます) が採用されています。アルゴリズムには、主に 4 つの主要な部分が含まれています:

(1) スロー スタート

TCP 接続が確立されるか、TCP 接続がタイムアウトして再送信されると、接続はスロー スタート フェーズに入ります。スロー スタートに入った後、TCP エンティティは輻輳ウィンドウのサイズを 1 セグメント、つまり cwnd=1 に初期化します。その後、メッセージ セグメントの確認応答 (ACK) が受信されるたびに、cwnd 値は 1 ずつ増加します。つまり、輻輳ウィンドウは指数関数的に増加します。 cwnd 値がスロー スタートしきい値 (ssthresh) を超えるか、セグメントが失われ再送信されると、スロー スタート フェーズは終了します。前者は輻輳回避フェーズに入り、後者は再びスロースタートフェーズに入ります。

(2) 輻輳回避

#​​##スロースタートフェーズでは、cwnd値がスロースタート解釈値(ssthresh)を超えると、スロースタート処理が終了し、TCPコネクションは輻輳回避状態に入ります。段階。輻輳回避フェーズでは、送信された各 cwnd メッセージ セグメントが完全に確認応答された後、cwnd 値が 1 ずつ増加します。この段階では、cwnd 値は直線的に増加します。

(3) 高速再送信

高速再送信は、タイムアウト再送信を改良したものです。送信元が同じメッセージに対して 3 つの重複確認応答を受信すると、メッセージ セグメントが失われたと判断し、再送信タイマー (RTO) の期限が切れるのを待たずに、失われたメッセージ セグメントをただちに再送信します。これにより、不要な待ち時間が削減されます。

(4) クイック リカバリ

クイック リカバリは、損失回復メカニズムの改良です。高速再送信後、スロー スタート プロセスを経ずに直接輻輳回避フェーズに入ります。高速再送信後は毎回、ssthresh=cwnd/2、ewnd=ssthresh 3 を設定します。その後、重複確認を受信するたびに、失われたメッセージ セグメントと後続のいくつかのメッセージ セグメントの累積確認を受信するまで、cwnd 値は 1 ずつ増加し、cwnd=ssthresh が設定されて輻輳回避フェーズに入ります。

さらに関連する知識については、

FAQ 列をご覧ください。

以上が信頼性の高い伝送を実現するトランスポート層プロトコルは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。