TCP的三次握手

image

①、第一次握手:SYN(最开始都是 CLOSE,之后服务器进入 LISTEN)

  • 发起连接:客户端发送一个 TCP 报文段到服务器。这个报文段的头部中,SYN 位被设置为 1,表明这是一个连接请求。同时,客户端会随机选择一个序列号(Sequence Number),假设为 x,发送给服务器。
  • 目的:客户端通知服务器它希望建立连接,并告知服务器自己的初始序列号。
  • 状态:客户端进入 **SYN_SENT **状态。

②、第二次握手:SYN + ACK

  • 确认并应答:服务器收到客户端的连接请求后,如果同意建立连接,它会发送一个应答 TCP 报文段给客户端。在这个报文段中,SYN 位和 ACK 位都被设置为 1。服务器也会选择自己的一个随机序列号,假设为 y,并将客户端的序列号加 1(即 x+1)作为确认号(Acknowledgment Number),发送给客户端。
  • 目的:服务器告诉客户端,它的连接请求被接受了,并通知客户端自己的初始序列号。
  • 状态:服务器进入 SYN_RCVD 状态。

③、第三次握手:ACK

  • 最终确认:客户端收到服务器的应答后,还需要向服务器发送一个确认。这个 TCP 报文段的 ACK 位被设置为 1确认号被设置为服务器序列号加 1(即 y+1),而自己的序列号是 x+1
  • 目的:客户端确认收到了服务器的同步应答,完成三次握手,建立连接。
  • 状态:客户端进入 ESTABLISHED 状态,当服务器接收到这个包时,也进入 ESTABLISHED 状态
posted @ 2025-04-23 14:27  kuki'  阅读(30)  评论(0)    收藏  举报