3
votes

when a TCP client wants to establish a tcp connection with a tcp server it needs to send SYN and then ACK while tcp server only sends SYN/ACK so they are different

but , after the 3_way handshaking, is this connection symmetric, namely, are TCP client and server in equal status for example, after the 3-way handshake, usually the client send packet first, can TCP server send packet first?

2

2 Answers

0
votes

No, the procedure is not different at all, but instead of sending a SYN then an ACK in two different packets, the servers concatenate them by sending them via a single packet!

In the other hand, remember always that the client/server nomenclature is relative. The server is the party that remains in listening mode, while the client is the party that initiates the connection ...
After the establishment of the connection, both parties are equivalent (same status as you said: ESTABLISHED). For that reason, both can send the FIN statement to close the connection ...

0
votes

After the connection is established, both ends are indeed "symmetric". Who sends first is decided by the underlying protocol and differes amongst them.

For example, HTTP starts with the GET <path> HTTP/1.0 command, while other protocols let the server give a greeting line first, and only then the client sends its request.

So in general, both ends are free to send their stuff first.