TCP连接的"三次握手"及其异常分析
TCP连接的"三次握手"
- 开始时,客户端和服务器端都处于CLOSE状态,服务器为了提供服务,会主动监听某个端口,进入LISTEN状态
- 客户端主动发送连接的 【SYN】 包,之后进入SYN-SENT状态,服务端在收到客户端发来的 【SYN】包后,回复 【SYN , ACK】包,之后进入 SYN-RCVD 状态。
- 客户端收到服务端发来的【SYN ,ACK】包后,可以确认对方的的存在,回复 【ACK】包,进入ESTABLISHED状态
- 服务端收到最后一个[ACK]包后,也进入ESTABLISHED状态
正常的三次握手之后,双端都进入ESTABLISHED状态,然后开始传输数据。
TCP连接”三次握手“的异常情况
1、客户端第一个【SYN】包丢了
- 如果在TCP连接中,客户端的第一个【SYN】包丢了,而此时跟服务器端并无联系,所以处理办法在客户端。
- 在TCP协议中,任何一端的【请求——应答】过程中,在一定时间范围内没哟接收到对方的回应的【ACK】包,就会认为是丢包,此时触发超时重传机制。
- 此时会重传【SYN】包,会重传3次,时间间隔分别是: 5.8s、24s、48s,三次时间大约是 76s 左右,而大多数伯克利系统将建立一