TCP三次握手详解
TCP协议的连接建立过程称为三次握手,是网络通信的基础。
步骤说明
第一步:客户端发送SYN包
客户端向服务端发送SYN=1的同步包,seq=x
客户端进入SYN_SENT状态
第二步:服务端响应
服务端收到SYN后,发送SYN=1, ACK=1
seq=y, ack=x+1
服务端进入SYN_RCVD状态
第三步:客户端确认
客户端收到后发送ACK=1, seq=x+1, ack=y+1
双方进入ESTABLISHED状态
为什么需要三次
确认双方的收发能力都正常
防止失效的连接请求突然传到服务端
同步初始序列号
四次挥手
连接断开需要四次,因为TCP是全双工通信
TIME_WAIT状态
主动关闭方会进入TIME_WAIT状态,持续2MSL
作用:确保最后的ACK到达、让旧连接的报文消失
Linux优化参数
tcp_syncookies=1 防止SYN攻击
tcp_max_syn_backlog=8192 增大队列
tcp_fin_timeout=30 缩短超时时间