なぜTCP接続を確立すると、3ウェイハンドシェイクを必要とし、断線が4波が必要です

なぜTCP接続を確立すると、3ウェイハンドシェイクを必要とし、断線が4波が必要です

2019年5月21日18時20分39秒  ザック・ラヴィーンが  1144を読み込み

1.なぜスリーウェイハンドシェイク

接続要求を防止するために、このようにしてエラーを生成する、突然サーバに転送セグメントを失敗しました。

1.1具体的な例:

このような場合には、「接続要求がセグメントに失敗した」製造:最初のクライアントが接続要求メッセージセグメントが失われていない送信するが、いくつかのネットワークが遅れ、その結果、滞留時間をノードサーバーに到達する前に、接続解除後の時間に。これ自体は、すでにセグメントの障害です。サーバが接続セグメントの障害が発生した後、この要求を受けた。しかし、それは再びクライアントによって発行された新しい接続要求のために間違っています。だから、クライアントへの確認メッセージのセグメントで、接続を確立することに合意しました。「スリーウェイハンドシェイク」は、限り、サーバーの確認として、新しい接続が確立されていることを前提としないでください。今は、クライアントが接続の確立を要求していないこと、したがって、確認サーバを無視しないだろう、それがサーバーにデータを送信しません。しかし、サーバーは、新しいトランスポート接続が確立されており、クライアントデータを待つために送信されたことを考えました。このように、サーバー上のリソースの多くが無駄に。「スリーウェイハンドシェイク」のアプローチは、この現象を防ぐことができます。例えば、状況のその種は、クライアントがサーバーを確認する確認を送信しません。サーバが確認を受信しないので、私たちは、クライアントが接続を確立するために必要されていないことを知っています。"

2.なぜ我々は4回を破る必要があります

TCPプロトコルは、バイトストリームに基づいて、接続指向の、信頼性の高いトランスポート層プロトコルです。TCPは、それは、ホスト1の問題FINセグメントを意味し、全二重モード、ですが、ホスト1は、送信するデータがないと、ホスト2ホスト1を伝え、そのデータは、すべてのアップ送られてきたと述べたが、この時、ホスト1又はホストコンピュータ2からのデータを受け入れることができる、とするとき、マスタデバイスは、2返すACKセグメントがすでにホスト1を知っていることを示すことは、データが送信されていないが、ホスト2は、まだ、ホスト1にデータを送信することができる。場合、ホスト2もFINセグメントを送信するときに、ホスト2はまた、送信するデータがないことは、この時間は、それがホスト1を教えてくれます、私は、送信するデータがない、そして愉快に相互にTCP接続を中断します。

3.上記の図は、なぜ我々はTIME-WAIT状態で2MSL時間を待つ必要がありますか?

  • まず、Aによって送信された最後のACKパケットを確実にするためにBに到達することができます ACKセグメントは、送信確認応答FIN + ACKパケットセグメントを受信することができない、したがってLAST-ACK状態Bにおいて、失われる可能性があります。このタイムアウト再送BのFIN + ACKセグメント、およびAは、2MSL時間内に再送FIN + ACKセグメントを受信することができます。Aは、時間TIME-WAIT状態の期間を待つが、接続の解放直後にACKセグメントを送信していない場合は、FIN + ACKパケット再送セグメントBを受信することはできませんので、もう一度確認を送信しませんセグメント。したがって、Bは閉状態に正常な手順に従うことができません。
  • 第二に、Aは、ACKセグメントを送信した後、次いで、2MSL時間の後、全てのセグメントの長さを結ぶ本がネットワークから消滅発生させることができます。だから、この古い接続要求の新しい接続次のセグメントが発生しないことができます。

4.完全なHTTP要求手順

私たちは、Webブラウザのアドレスバーに入力すると:www.baidu.com、プロセスの概要を何が起こったのか、最後に,,入力します

  • 1. www.baidu.comを、対応するIPアドレスを取得するには、このURLのDNSルックアップ
  • 2.このIPによると、対応するサーバーは、TCP 3ウェイハンドシェイクを開始見つけます
  • TCPコネクションを確立した後3. HTTPリクエストを送信します
  • 4. HTTPサーバが要求に応答する、ブラウザのhtmlコードを取得します
  • ブラウザは、HTMLコードを解析し、(最初にこれらのリソースを見つけるために、HTMLコードを取得する)(などのjs、CSSの写真、など)HTMLコードリソースを要求します
  • ユーザに提示6.ブラウザのページのレンダリング

4.1概要:

DNS - > TCP 3ウェイハンドシェイクを開始 - > [HTTP TCPコネクションの確立を開始するための要求 - >サーバーの応答のHTTPリクエストを、ブラウザGET HTMLコード - >ブラウザがHTMLコードを解析し、HTMLコードのリソースを要求(例えば、JS、CSS、画像などなど) - >ブラウザのページレンダリングは、ユーザに提示します

おすすめ

転載: blog.csdn.net/cxu123321/article/details/93653118