TCPとUDPのコメント(付属のインタビューFAQ)

ディレクトリ

UDPユーザーデータグラムプロトコル

TCP伝送制御プロトコル

TCPヘッダ

TCPコネクション

TCPは信頼性の高い伝送を確保する方法

具体TCP信頼性の高い通信

TCPフロー制御を実装する方法?

(どのようにウィンドウを受け取ることになるゼロである)ゼロウィンドウとは何ですか?

TCPの輻輳制御を実現する方法ですか?

TCPとUDPの違い

TCPを選択すると、とき選挙UDP?

HTTPは、UDPを使用することができますか?

接続指向とコネクションレスの違い

 


TCPとUDPは、最も基本的な責任である:サービスの提供のIP(ネットワーク層)は、二つのエンドシステム間のエンド配信サービス(トランスポート層)上の2つのプロセス間で実行するようにシステムを拡張します。

UDPは、UDP程度のletの話は比較的簡単です

 

UDPユーザーデータグラムプロトコル

データ配信(多重・分離)、エラーチェックが最小限のトランスポート層のサービスである、2つだけUDPサービスも提供することができます。だから、UDPはIPデータグラムにいくつかの小さな機能が追加されています。

UDPの特徴:

。1、UDPはコネクションレスです。(接続を確立せず)

2、UDPベストエフォート。(信頼性の高い配信を保証するものではありません)

3、UDPはメッセージ指向です。(これは、スプリット、マージメッセージ、プラスUDPヘッダの下に直接送信は、一度完全なパケットを配信しません。)

4、UDPなし輻輳制御。(マルチメディア通信用)

5、UDPのサポート一から一、多くの1つ、および多対多の双方向のコミュニケーション。(接続なしているので)

図6は、UDPヘッダは、オーバーヘッド、小さな TCPヘッダの20バイト、8バイト必要とします。(より少ないサービス、あまり保存された情報)

擬似ヘッダ:そうでもないUDPヘッダ、唯一の目的は、チェックサムを計算することです。チェックサムを計算する際に、一時的にではなく、通過しない受け継が、UDPデータグラムの前に追加するように疑似ヘッダと呼ばれます。

送信元ポート:他の人を防ぐために返すように状況のため派遣、。

[受信者が宛先ポート番号で受信したUDPパケットが正しくない見つかった場合、パケットはインターネット制御メッセージプロトコルICMPによって破棄されては入れて送信するために、「ポート到達不能」のエラーメッセージを送ります]

宛先ポート:領収書

長さ:UDPユーザデータグラムの長さ、分= 8(データなしの最初の部分)

そして、テスト:検出UDPユーザーデータグラムを送信処理に誤りがありません

 

 

UDPは、それをチェックし、エラーを提供するのはなぜ?(もちろん、UDPトランスポート層は、ここでアサリを変更することができ、UDPは、代表的なトランスポート層です)

UDPは、送信元と宛先の間のすべてのリンクは、所有権の考え方に沿って、エラーチェックを提供することを保証するものではありませんので、UDPは考えて:まあ、私はそれを所有しています。

両方のリンクの信頼性の場合には、それはエラーチェックのメモリ、端部がエラーチェックを提供するために、データ伝送を終了することを保証することができない、保証することはできません。これは「最後の原則に終わり。」

試験のほとんどがないことを確認答えを求めるように、再び弱い鶏Iをチェック -

 

 

TCPは、はるかに複雑であり、彼らは〜ゆっくり話します

 

TCP伝送制御プロトコル

TCPの特徴:

。1、TCPは接続指向です。(接続は、仮想接続(論理的接続)の代わりに、実際の物理的な接続です。)

図2に示すように、TCPは、いずれかの両方の一点をポイントです。

3、TCPは信頼性の高いサービスを提供しています。TCPデータ転送、エラーのない介して接続され、失われていない、繰り返されることはありません、順番に到着

。4、TCPは、全二重チャネルを提供します。任意の適切な通信相手がデータを送信することができます

。5、TCPバイトストリーム指向の(ネットワークの混雑度に応じて決定され、所与のセグメントの現在のウィンドウの他の値は、バイト数が含まれている必要があり、データブロックが再送短い長に分割され、待つことができます次に、送信セグメントを構成するバイトの十分な数を累積

 

TCPヘッダ

送信元ポートと宛先ポート:送料と配達、半分と2つのバイト

番号:シリアル番号にコンパイル各バイトのTCPデータストリームのトランスポート接続。これは、新聞を送信されたデータセグメントのシーケンス番号の最初のバイトのシーケンス番号フィールドの値を指します。 
確認番号:次のセグメントの他のデータの最初のバイトの所望の数です。(承認番号Nが数N-1を含む全てのデータが正しく受信されたことを示す場合)
どの程度近いかTCPセグメントの先頭にTCPデータセグメントの開始:データオフセット。(すなわち、ヘッダ長、なぜなら「オプション」および「フィル」未知の長さ)は、32ビットのワード単位で(単位として4バイト)、60バイトの最大値、すなわち、TCPヘッダ分= 20「のデータがオフセット」最大= 60バイトバイト。 
予約フィールド:雨の日には、将来の使用のために予約が、0に設定する必要があります。

 

URG:緊急!URG = 1のとき、それは緊急ポインタフィールドが有効であることを示し、できるだけ早く処理のニーズ(優先度が高いです)。TCP緊急データは、その後、最初のデータに挿入されます。

ACK:確認。ACK = 0は、確認応答番号が無効である場合には、ACK = 1が確認応答番号フィールドが有効であるとき。

PUSH:プッシュ。TCPセグメントの受信PSH = 1を受信し、その後すぐにできるだけ受信アプリケーションプロセスの送達は、むしろ待機より全体キャッシュまで送達後に充填されています。  

RST:リセット。ときRST = 1、深刻なエラーが(ホストのクラッシュやその他の理由によるものなど)TCPコネクションを発生することショーは、接続が解放されなければならないし、次にトランスポート接続を再確立します。 

SYN:同期。SYN = 1、ACK = 0は、この接続要求であることを示しています。あなたが接続を確立することに合意した場合は、応答を設定する必要があり、パケットSYN = 1、ACK = 1。

FIN:終了。接続を解除します。FIN = 1は、このセグメントにデータ送信側が送信されたことを示し、トランスポート接続の解放のために。 

 

ウィンドウ:ウィンドウの受信、送信パーティの新聞のセグメントを意味する(A:あなたに何かを与えるが、私はあなたに言った:私は、データのような大規模な金額を受け取ることができます)、相手方(受信者B、彼は過去のデータを送信する必要があるように、 )送信ウィンドウに合わせて設定します。明らかに窓を指摘し、今データの量が互いを送っ可能にし、動的に変化します。

そして、テスト:テストとフィールドテストの範囲は、二つの部分、ヘッダデータを含みます。TCPセグメントの前に12バイトの疑似ヘッダを追加するために、チェックサムを計算します。

緊急ポインタは:新聞記事セグメント緊急データの総バイト数を示します

 

 

 

TCPコネクション

TCPはコネクション指向で、各TCP接続は2つの端を持っています

TCPソケット接続エンドポイントは、(ソケット)と呼ばれています。
スプライシングは、IPアドレス、ポート番号は、ソケットを構成する:ソケット=(IPアドレス:ポート番号)               

各TCP接続は、一意の通信を終了することが二つの端点(すなわち、二つのソケット)が決定されます。すなわち:
TCP接続:: = {socket1、socket2} = {(IP1:PORT1)、(IP2:PORT2)}

 

TCP接続、IPアドレス、ポート番号

  • 同じIPアドレスが複数の異なるTCPコネクションを持つことができます。
  • 同じポート番号が異なる複数のTCPコネクション中に存在してもよいです。

 

 

TCPは信頼性の高い伝送を確保する方法

  1. パケットチェックサム:オブジェクトのチェックはパケットは、パケットが破棄され、応答期間、その後、TCP送信タイムアウトデータターミナル再送データを与えていない間違っている場合は、データ送信処理の変化を検出します。
  2. (TCPパケットがシーケンス番号を有する)シーケンスパケットのうち並べ替える:TCPセグメントはIPデータグラムとして送信され、IPデータグラムは、このようにまた、順不同であってもよいTCPセグメントに達し、順不同であってもよい達します。TCPは、アプリケーション層への前にシーケンスデータのうち、並べ替えます。
  3. 破棄重複データ:繰り返しデータの場合は、重複したデータを破棄することが可能です。
  4. 応答機構:データを受信した後、受信者は、それが(典型的には、遅延の分数)肯定応答を送信します。
  5. 再送タイムアウト:受信者の肯定応答、再送信データを受信することなくタイマ時間を開始するデータの送信元を供給した後、
  6. フロー制御:受信端がバッファオーバーフローせずにデータ送信元を受信できることを保証するために、フロー制御プロトコルTCPは、スライディングウィンドウ可変サイズで使用されています。

 

具体TCP信頼性の高い通信

- TCP接続の各端部は、二つのウィンドウで提供されなければならない送信ウィンドウ受信ウィンドウ
TCP信頼性の高い転送メカニズムバイトカウント制御。すべては、TCP受信確認番号ではなく、セグメントに基づいています。
で、多くの場合、全体でTCP 4つのウィンドウダイナミックな変化インチ
往復時間RTT TCP接続が固定されていません。私たちは、特定のアルゴリズムを使用する必要があり、合理的な再送信時間を推定します

 

TCPフロー制御を実装する方法?

フロー制御:送信側の伝送速度が、速すぎて、受信者が受信できるようにする時間はありませんしましょう。

使用したスライディングウィンドウプロトコルをフロー制御を達成します。伝送速度は、送信者を防ぐために、速すぎる、受信バッファがオーバーフローを引き起こしません。

受信機は、ACKパケットを受け入れるためにTCPウィンドウサイズに戻されたときにウィンドウフィールドを知らせる、ウィンドウ受信ウィンドウ(バイト単位のウィンドウサイズ)、動的に調整されている独自のリソースに応じて、受信ウィンドウのサイズを受け取る維持します送信者。送信ウィンドウサイズが受け入れウィンドウのサイズを超えることはできません、と送信者が送信し、右側にウィンドウを送信する前に確認を受信する場合にのみ。

透過窓と小さなウィンドウを受け入れる輻輳ウィンドウの上限。受容窓は、受信側の受信能力を示し、輻輳ウィンドウは、ネットワークの伝送能力を示しています。

 

(どのようにウィンドウを受け取ることになるゼロである)ゼロウィンドウとは何ですか?

受信機がデータを受信できない場合は、ウィンドウが0に設定され、受信後、送信側はデータ送信を停止する必要があり、それは1つのバイト検出の伝送の終了後、タイマー時間(持続タイマー)を開始しますデータ・パケット、ステータスを表示するには受信ウィンドウ。受信者がデータを受信できる場合は、受信ウィンドウサイズが戻りパケットに更新され、データ転送が再開されます。

 

TCPの輻輳制御を実現する方法ですか?

混雑は:特定の時間に、利用可能なリソースの一部を超えるネットワークリソースの需要は、ネットワークパフォーマンスの低下につながる、提供することができます。

輻輳制御:過度のデータを防ぐためには、ネットワーク内のルータが過負荷又はリンクを防止するために、ネットワークに注入しました。

ここではTCPの輻輳制御の方法は次のとおりです。

:TCP輻輳制御アルゴリズムは、4つの主要コンポーネントで構成されてスロースタート(スロースタート)、輻輳回避(輻輳voidance)、高速な再送信(高速再送信)、高速リカバリ(高速リカバリ)

まず、送信者制御、輻輳ウィンドウの原理は、限りネットワークが混雑していないとして、ウィンドウが大きくなることができます。そして、タイムアウトが発生した場合、輻輳が発生しないことを決定する方法があります。

1は、スロースタート:小さな大に徐々に送信ウィンドウを増加させることができます。MSSセグメントの最大値に設定され、データ伝送、最初の輻輳ウィンドウ(輻輳ウィンドウ)の開始後、それぞれの新しいメッセージの確認応答を受信し、輻輳ウィンドウプラスワンMSSを置きます。そのような各ラウンドの後に転送(または各ラウンドトリップ時間RTTを介してである)は、輻輳ウィンドウのサイズを倍増します

2、輻輳回避:輻輳ウィンドウのサイズは、スロースタート閾値(スロースタート閾値)に達すると、輻輳回避アルゴリズムを開始し、輻輳ウィンドウサイズはもはや指数関数的な増加であるが、直線的に増加、すなわち、丸い貫通各だけ増加送信1MSS 。

か(受信していない肯定応答に基づいて)スロースタートフェーズにおける輻輳回避フェーズ限り、ネットワークを決定するために送信者として混雑している半分は、送信側の輻輳ウィンドウ値を表示されるように設定されている閾値SSTHRESHを開始減速(しかしべきではありません2未満)。そして、輻輳ウィンドウcwndのは、スロースタートアルゴリズムを実行し、1にリセットされます。(これは、高速再送信の使用ではありません)

 

      3、高速再送:個々のセグメントの損失が可能な限り早期に発生したことを送信者のノウハウを聞かせて。受信した直後に発行され、高速再送請求は、配列セグメントのうち、パケットを受信し、重複確認応答ではなく、データをピギーバックのための待ち時間が自分自身を送信しています。高速再送アルゴリズムが提供し、連続する3が重複確認応答がすぐに他のセグメントがまだ受け取っていない再送信すべき受信限りとして送信者ではなく、再送タイマの設定時間が期限切れになるのを待ち続けています。

 

     4、高速回復:送信者が3つの連続で重複確認応答を受け取り、スロースタート閾値が半分に減少した後、輻輳回避アルゴリズムを実行している置きます。

          その理由は、スロースタートアルゴリズムを実行しません:あなたは、いくつかの重複確認応答を受信しませんので、ネットワークが混雑している場合、送信者は、ネットワークが混雑していると思わないかもしれません。
 

 

TCPとUDPの違い

  1. TCPはコネクション指向で、UDPはコネクションレスです。
  2. TCPは信頼性があり、UDPは信頼性がありません。
  3. TCPは、唯一のポイント通信、多対多の1、多くの1つのUDPサポート1、にポイントをサポートしています。
  4. TCPは、バイト指向のストリームで、UDPはメッセージ指向です。
  5. TCPの輻輳制御機構は、UDPはしていません。
  6. TCPヘッダのオーバーヘッド(20バイト)UDPヘッダオーバーヘッドよりも大きい(8バイト)

 

TCPを選択すると、とき選挙UDP?

伝送エラーを許容することができたとしても、ゲーム、メディア、コミュニケーション、(ライブ)ストリーミングリアルタイムビデオとして、UDPを選択し、比較的高いいくつかのリアルタイム要件を展開し、他のほとんどの場合、HTTPは、必要に応じて、TCPであります信頼性の高いコンテンツ配信、損失は発生しません。

 

HTTPは、UDPを使用することができますか?

UDPは信頼できない間、HTTP、UDP、HTTPベースの必要性信頼性の高いトランスポートプロトコルを使用していません。

 

接続指向とコネクションレスの違い

いいえサービスネットワークません(データグラムサービス)接続 - コネクション型のネットワークサービス(仮想回線サービス)

VCサービスは:最初の接続を確立し、すべてのデータパケットは、サービスの高品質を確保するために、同じパスを通過します。

データグラムサービス:;、各パケットは、宛先アドレスを含むデータが互いに独立ルーティング(経路が変化してもよい)、ネットワークが混雑しているときにベストエフォートネットワークデータが、その損失を保証するものではない、時間枠内の順序、しない保証配信を保証しません、いくつかのパケットが破棄される可能性があります。

 

 

 

 

 

公開された38元の記事 ウォンの賞賛6 ビュー1894

おすすめ

転載: blog.csdn.net/weixin_43827227/article/details/105023037