Jingguo Yao
Jingguo Yao

Reputation: 7986

What specifies the retry count of ACK during TCP connection establishment?

In the following TCP connection establishment diagram, tcp says that tcp_syn_retries specifies the retry count for SYN and tcp_synack_retries specifies the retry count of for SYN+ACK. There is no something like tcp_ack_retries to specify the retry count for ACK.

side-a        side-b
       SYN
      ------->
       SYN+ACK
      <-------
       ACK
      ------->

But there are tcp_retries1 and tcp_retries2. The description for tcp_retries1 says:

The number of times TCP will attempt to retransmit a packet on an established connection normally.

And after side-a receives SYN+ACK, the connection for sending data to side-b is established. So I think that tcp_retries1 and tcp_retries2 specifies the retry count of ACK. Is my understanding correct?

Upvotes: 0

Views: 778

Answers (1)

Steffen Ullrich
Steffen Ullrich

Reputation: 123260

I think you are missing an understanding of what ACK is.
ACK is an acknowledgement that some data was received. There is no response expected to an ACK. And, if no response is expected it is not known if the ACK was delivered or not, i.e. if a redelivery is needed or not.
Instead, if an ACK is lost the peer will resend the data which was not yet acknowledged in the assumption that either the original data was lost or that the ACK was lost. And, this will result in another ACK sent back to the peer.

Upvotes: 1

Related Questions