Reputation: 7986
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
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