TCPトランスポート接続の管理

TCPトランスポート接続の管理

三相伝送接続

1.1概要

  • 伝送接続は三つの段階があります:接続確立データ転送、および接続解除

  • 接続確立プロセスは、次の3つの質問を解決するために:
    • 各当事者のために、互いの存在を確認することができます。
    • 双方が(例えば、最大セグメントサイズ、最大ウィンドウサイズ、品質、サービス、等のような)多数のパラメータをネゴシエートできるようにします。
    • 輸送は、(例えば、キャッシュサイズ、テーブルの接続の項目など)の物理リソースを割り当てることができます。
  • 基づいているTCPコネクションの確立クライアント-サーバモードを
  • 接続を確立するためのアプリケーション・プロセスが呼び出された開始クライアント(クライアント)。
  • 接続を確立するためのアプリケーション・プロセスのために受動的に待機が呼び出されたサーバー(サーバー)。


二、TCPコネクションの確立

3とのTCP接続を確立する2.1握手

クライアントAがサーバーB上のサービスにアクセスしようとする場合、Bとの接続を確立する必要性は、3ウェイハンドシェイクは、以下のプロセスを経ることが必要です。

画像-20200130170026670

  • 最初のハンドシェイク:A Xianxiang Bは、同期データ・パケット(メッセージ)を送信します。

    フラグ:パケットのTCPヘッダ内の同期SYNが 1であり、これは、パケット接続を確立するための要求であることを示し、確認マーカは、データパケットの確認応答番号フラグを省略することができるように、無効であることを示す、ACKが0ビット。参照SEQ = X、Xデータを送信する際に最初のデータバイトのシーケンス番号です。

  • 第二のハンドシェイク:BがAの後に送信された最初のパケットを受信し、フラグに応じてSYN = 1、ACK = 0ビットには、データパケットが積極的に接続されていると判断されます。Bが一致するように接続されている場合、その後、Bは、応答パケットを送信します。

    TCPパケットヘッダの:フラグ:SYN同期 = 1;フラグ:確認ACK = 1;参照配列= Y、Bを表すデータを送信するときに最初のデータバイトのシーケンス番号で指定Y値B;。確認応答番号のACK = X + 1、Xは、バイトが送信されたデータを受信しており、次は、x + 1がデータの送信を開始する最初のバイトを伝えるべきで表します。

前者におけるTCPヘッダ内のフラグである:ACKとACKの間の区別は、そのノート肯定応答ACK - ACK =確認応答番号フィールドが有効1である場合にのみ、1バイト。ときにACK = 0、確認応答番号が無効です。後者は確認応答番号フィールドは- 4つのバイトを占有し、受信された最初のバイトは、次のデータパケットの他のセグメントの所望の数です。

  • サードハンドシェイクは:AはBを確認した後、Aを与えるためにパケットを送信しました。

    :有効なフラグがありません:TCPパケットのヘッダ内の同期SYNフラグは、(すなわち、SYN = 0)のを、それが当事者が接続を確立することに合意した表すACKを確認する = 1、データパケットがBを受信し確認するために、番号seq。 = X + 1は、パケットデータの最初のx + 1つのバイトが送信されることを示し、確認応答番号のACK = Y + 1、Yが送信された受信バイトデータBを表し、次のBのY +のデータを教えてください1つのバイトの伝送。

2.2。なぜ第三ハンドシェイクがありますか?

クライアントは、サーバとクライアントとサーバの接続確立要求の受け付けに要求を送信し、2つのデータパケット(最初の双方向ハンドシェーク)は、クライアントとサーバ間のネットワークが妨げられていることを証明するのに十分であり、データ通信のネゴシエーションをするために必要なパラメータ。ウィンドウの例についてネゴシエートサイズ、サポートされるデータパケットの最大バイト数を受け取ります。

ない最後のパケットの確認応答(第3のハンドシェイク)は、Aは、第1のネットワーク上の理由のためにコネクション確立要求パケット、迂回を送信します。確認応答パケットを受信した後、設定されたタイムアウト期間がB、そしてネットワークがBのパケットに達するとすぐ、滑らか、第二の接続要求パケットを確立するために送信されていない、確認応答パケットBもあります間もなくA.到着 最初に到達Bは、再度接続を確立することをBは、それがさらに確認パケットを送信しながら、A及びBは、データの送信を開始し、接続確立要求パケットが後に送信されます。Aは、確認パケットを受信して​​いるので、Bは2番目の確認パケットを送信し無視しますが、確認応答パケットを発行した後、BはAの返信を待っているはず、とAが戻ることはありません。したがって、サーバリソースの無駄で、その結果、より多くのBのコンピュータよりも、このような状況は、に応答を停止すること。

第ハンドシェーク(第3パケット)の機能は、第二のB A Aに送信されたハンドシェイク確認データは、パケットが有効で受信し、コンピュータBに伝えることができます。資源の浪費のためにBのコンピュータが待機しないでください。A及びBは、その後、更なる通信のためにすることができます。

2.3各状態スリーウェイハンドシェイクは、TCP接続プロセスを確立します

画像-20200130165906308

  • データパケットを確立するための要求は、に接続した後に送信されたSYN-SENTの接続の要求パケット送信された同期確立を示す状態。

  • データパケット接続Bを確立した後の終わりが発行したリクエストAを受信LISTENに、状態をSYN-RCVDの状態Aと肯定応答パケットを送信します。

  • Aは、応答パケット、SYN-SENT状態の終了を受けて、入力した後ESTABLISHED状態を、そしてBは、確認応答パケットを送信します。

  • A Bは、確認応答パケットを受信した後に、SYN-RCVD状態の端部が、入射ESTABLISHED状態。

AとBが入力したESTABLISHED状態の後、それによって3ウェイハンドシェイクが完了し、データの送信を開始します。

これらの状態を見ます

で:

netstat -n

在命令行窗口查看计算机建立的会话的装态。由于建立TCP连接的三次握手过程非常快,我们可以通过访问一个不存在的网址来查看:比如http://192.168.80.200

画像-20200130171444612

可以看到建立TCP连接时,本计算机访问了该地址的80端口(对应Web服务),并且TCP连接状态为SYN-SENT。此外本计算机还有其他已经建立的TCP连接,状态为ESTABLISHED。

如何查看SYN-RCVD状态呢?可通过模拟SYN攻击(大量模拟虚构地址与本计算机建立会话)即可查看该状态:

画像-20200130172613268

框内为SYN攻击虚构的地址,可看到建立TCP连接的会话都处于SYN-RECEIVED状态。

那么平常如果看到计算机有大量处于SYN-RECEIVED状态的会话说明有人利用SYN攻击器在攻击你的电脑。


三、TCP的连接释放

3.1.使用四次挥手释放TCP连接

数据传输结束后,通信的双方都可主动释放连接。下为A主动释放TCP连接。

画像-20200130183903175

  • 第一次挥手:首先A向B发送连接释放请求报文(数据包),并停止发送数据。

    在连接释放报文(数据包)的TCP首部中:标志位:终止FIN=1,意味着A要主动释放A—>B的TCP连接;序号位seq为u,u值由A指定。随后等待B的确认。

  • 第二次挥手:B收到连接释放报文之后,给A发送确认报文,此时TCP服务器进程通知高层应用进程,这样从A到B这个方向上的连接就释放了,TCP连接处于半关闭状态。此时A没有数据要发给B了,但是B还有数据要发送给A,A仍可以接收。

    在确认报文的TCP首部中:标志位:确认ACK=1,表示收到了A发送的数据包,同意A释放连接;序号位seq=v,v值由B指定;确认号ack=u+1,表示已经收到A发送的u个字节数据,并告诉A下次应从数据的第u+1个字节开始发送,下面同理;此时B还可以向A传输数据。

  • サードハンドシェイク:BはAさんを送信するデータがないと、アプリケーション・プロセスは、TCPコネクションの解放を通知すると、Aは確認応答メッセージを送信する場合。

    フラグ:TCP確認応答パケットのヘッダに確認ACK = 1、Bは必要に分散データA上になされたもので表し、フラグ:FIN終端 = 1、B-へ放出手段B> A TCP接続を。 ;番号seq =値がBで指定されていないwは、wは、確認応答番号ACK = U + 1; A後にBがもはやデータに伝達され、それはデータを受信することができます。

  • 第四の波:A Bは、接続解放メッセージセグメントBに送信される肯定応答メッセージを受信します

    TCP確認応答パケットのヘッダに:フラグ:確認ACK ;番号SEQ = U + 1、確認応答番号のACK = + 1、W = 1、Bは、肯定応答パケットが受信され、Bは、接続を解放することに同意され表します。

したがって、TCPコネクションを振っ4のリリースによります。

おすすめ

転載: www.cnblogs.com/AhuntSun-blog/p/12332240.html