TCP 三次握手详解
TCP 三次握手是建立可靠连接的关键过程,确保双方都准备好进行数据传输。
握手过程
- 第一次握手(SYN):客户端发送 SYN=1、seq=x 的报文段,进入 SYN_SENT 状态,等待服务器确认
- 第二次握手(SYN+ACK):服务器收到 SYN 后,发送 SYN=1、ACK=1、seq=y、ack=x+1 的报文段,进入 SYN_RCVD 状态
- 第三次握手(ACK):客户端收到 SYN+ACK 后,发送 ACK=1、seq=x+1、ack=y+1 的报文段,双方进入 ESTABLISHED 状态
为什么需要三次握手
- 防止已失效的连接请求突然又传到服务器:如果是两次握手,客户端发送的失效连接请求到达服务器,服务器误认为是新连接,造成资源浪费
- 同步双方的初始序列号:三次握手确保双方都知道对方的初始序列号,为可靠传输奠定基础
- 确认双方的接收和发送能力:通过三次交互,双方都能确认对方的收发功能正常
相关问题
- 三次握手过程中,如果第三次握手丢失会发生什么?
- SYN Flood 攻击是如何利用三次握手的?如何防御?
- 为什么不是两次握手或四次握手?