TCPクライアントがtcpサーバーとのtcp接続を確立する場合は、SYNを送信してからACKを送信する必要がありますが、tcpサーバーはSYN / ACKのみを送信するため、これらは異なります。
しかし、3ウェイハンドシェイクの後、この接続は対称的ですか。つまり、TCPクライアントとサーバーは同じステータスになります。たとえば、3ウェイハンドシェイクの後、通常はクライアントが最初にパケットを送信しますが、TCPサーバーは最初にパケットを送信できますか?
TCPクライアントがtcpサーバーとのtcp接続を確立する場合は、SYNを送信してからACKを送信する必要がありますが、tcpサーバーはSYN / ACKのみを送信するため、これらは異なります。
しかし、3ウェイハンドシェイクの後、この接続は対称的ですか。つまり、TCPクライアントとサーバーは同じステータスになります。たとえば、3ウェイハンドシェイクの後、通常はクライアントが最初にパケットを送信しますが、TCPサーバーは最初にパケットを送信できますか?
いいえ、手順はまったく異なりませんが、SYNを送信してから2つの異なるパケットでACKを送信する代わりに、サーバーは単一のパケットを介して送信することでそれらを連結します。
一方、クライアント/サーバーの命名法は相対的なものであることを常に忘れないでください。サーバーはリスニングモードのままのパーティであり、クライアントは接続を開始するパーティです...接続
の確立後、両方のパーティは同等です(あなたが言ったのと同じステータス:ESTABLISHED)。そのため、両方がFINステートメントを送信して接続を閉じることができます...
接続が確立された後、両端は確かに「対称」になります。誰が最初に送信するかは、基礎となるプロトコルによって決定され、それらの間で異なります。
たとえば、HTTPはGET <path> HTTP/1.0
コマンドで始まりますが、他のプロトコルでは、サーバーが最初にグリーティングラインを提供し、次にクライアントがその要求を送信します。
したがって、一般的に、両端は最初に自分のコンテンツを自由に送信できます。