After reading Why do we need a 3-way handshake? Why not just 2-way? I understand that We need ACK otherwise the Server has no idea if the client ever received the SYN, and it's important that the client receives that. Once that ACK gets through, now the server knows that it can send packets to the client. It also knows that the client knows this, so it can start sending data right away. The handshake is complete. We have a good channel.
But I want to know If the final ACK segment (third step) is never sent by the client. What server will do then? Is it run out of memory or something else because as far as I know When a client sends a SYN segment to the server, the server reserves memory to keep state information? What server will do with this state information If there is no ACK from client?