- なぜTCPプロトコルが必要なのですか?どのレベルに取り組んでいますか?
- 信頼性が高く、整然とした完全なパッケージ配信を保証する必要があるため、TCPプロトコルがあります。
- IP層は信頼できないため、トランスポート層で
- TCP接続とは
- 接続指向(1対1)、信頼性、バイトストリーム(ボーダレス、順序付け)
- TCP接続を一意に決定する方法
- 送信元アドレス+ポート、宛先アドレス+ポートは一意の接続を決定します
- TCP UDPの相違点とアプリケーションシナリオ
- 接続の観点から見ると、TCPは最初に接続を確立してから送信し、UDPは直接送信します。
- オブジェクトの観点からは、TCP 1対1送信、UDP 1対多(1対1、多対多)
- 信頼性の観点から、TCPは確実に配信され、UDP配信は保証されません
- 輻輳とフロー制御の観点から見ると、TCPには輻輳制御とフロー制御がありますが、UDPにはありません
- ヘッダーオーバーヘッドの観点から見ると、TCPは長く可変であり、UDPは8バイトに固定されています。
- アプリケーションのシナリオ:TCP(FTP、HTTPなど)UDP(ビデオ、オーディオ、ブロードキャスト通信)
- 3つの握手
- クライアントが送信(サーバーへの接続を開始)
- サーバーが受け取り、「確認応答」を送り返しました
- クライアントはそれを確立された状態に送信し、サーバー側はそれを受信した後、確立された状態になります(確立されているため、最初の2回ではなく、今回のみデータを送信できます)。
- なぜ三握手
- 履歴接続を回避します(古いメッセージが新しいメッセージの前にサーバーに到着し、サーバーが戻り、クライアントが受信した古いメッセージが期限切れのメッセージであることが判明し、RSTを送信して接続を終了するとします。 2回、この接続が確立され、それはばかげています)
- 同期初期シリアル番号
- リソースの浪費を回避するには(2番目のハンドシェイクによって複数の接続が確立される場合は、新旧のSYNパケットが次々に到着します)
- 第4波とは
- クライアントは閉じようとしています。閉じたFIN_WAIT_1メッセージを送信します
- サーバーはACK応答メッセージを送信し、CLOSED_WAIT状態に入ります
- クライアントは受信後にFIN_WAIT2状態に入ります
- サーバーはデータを処理した後、FINをクライアントに送信します
- クライアントが受信した後、ACKを返す
- サーバーはそれを受信した後、それを閉じました
- 最後に、クライアントが2MSLを待機した後、それも閉じられます
- なぜ4回振る必要があるのですか
- 接続を閉じるとき、クライアントは送信せずにデータを受信します
- サーバーがACKを返した後、送信および処理されるデータがある場合があります。データを送信した後、FINを送信します
- TIME_WAIT時間が2MSLである理由
- 1MSLはメッセージの最大生存時間です
- しかし、Wanluoの送信者からのメッセージがあり、受信者は応答して2MSLを返す必要があります。
- TIME_WAITが存在した理由
- 古い接続のデータパケットを防止します(古い接続のデータ。TIME_WAIT時間が短すぎるため、2番目の接続が開始され、ばかげて受信されました)。
- 接続が正しく閉じられていることを確認します(最後のACKがパッシブな閉じ側によって受信され、正常に閉じるのを助けるのに十分な時間待ちます)。
- 続く