We've seen that many client-server protocols work by having the client send a request and then the server send a response. We've also seen that when a TCP peer reads data off the network, it sends an acknowledgment to let the sender know that the data was received successfully.
A typical client-server interchange might, therefore, look like the following:
In the preceding diagram, the Client first sends a request to the Server. The Server reads this request, and a TCP ACK Message is sent back to the Client. The Server then processes the request data and replies with its response.
Some TCP stacks implement a delayed acknowledgment ...