tcp的三次握⼿-数据包丢失处理
1.基础概念
三次握⼿的丢包重传机制的次数限制和RTO的增长mtbf>embody
1. 第⼀次握⼿(syn包): tcp_syn_retires 的参数来限制第⼀次握⼿(syn包)的重传次数,默认为5次。
2. 第⼆次握⼿(ack+ack包): tcp_synack_retires的参数来限制第⼆次握⼿(ack+syn包)的重传次数,默认为5次。
3. 第三次握⼿(ack包): tcp_retires2的参数来限制第三次握⼿(ack包)的重传次数,默认为15次。四六级报考
4. 每次重传都会导致RTO超时重传的时间成倍增长。
2.第⼀次握⼿(syn包)丢失
1. 当客户端发起的 TCP 第⼀次握⼿ SYN 包,在超时时间内没收到服务端的 ACK,就会在超时重传 SYN 数据包,每次超时重传的
japonesque
RTO 是翻倍上涨的,直到 SYN 包的重传次数到达 tcp_syn_retries 值后,客户端不再发送 SYN 包。storedprocedure
3.第⼆次握⼿(ack+syn包)丢失
1. 当 TCP 第⼆次握⼿ SYN、ACK 包丢了后,客户端 第⼀次握⼿的SYN 包会发⽣超时重传,服务端 第⼆次握⼿的SYN、ACK 也会发
⽣超时重传。
2. 客户端 SYN 包超时重传的最⼤次数,是由 tcp_syn_retries 决定的,默认值是 5 次;服务端 SYN、ACK 包时重传的最⼤次数,是
由 tcp_synack_retries 决定的,默认值是 5 次。
4.第三次握⼿(ack包)丢失
儿童节英语怎么说
对于服务器:
1. 在建⽴ TCP 连接时,如果第三次握⼿的 ACK,服务端⽆法收到,则服务端就会短暂处于 SYN_RECV 状态,⽽客户端会处于神探夏洛克 第三季
ESTABLISHED 状态。
half是什么意思>感觉的英文翻译2. 由于服务端⼀直收不到 TCP 第三次握⼿的 ACK,则第⼆次握⼿会⼀直重传 SYN、ACK 包,直到重传次数超过 tcp_synack_retries
值(默认值 5 次)后,服务端就会断开 TCP 连接。 (这⾥的断开是服务器单⽅⾯主动断开,客户端的状态还是established的)
⽽客户端则会有两种情况:mper
1. 如果客户端没发送数据包,⼀直处于 ESTABLISHED 状态,当达到我们保活机制的时间限制时会触发保活机制来看看这个tcp连接是
否还存活,如果不存活,则为死亡连接,客户端断开连接。 (触发保活机制)
2. 如果客户端发送了数据包,⼀直没有收到服务端对该数据包的确认报⽂,则会⼀直重传该数据包,直到重传次数超过 tcp_retries2 值
(默认值 15 次)后,客户端就会断开 TCP 连接。