TCP在传输数据之前会进行三次数据发送进行校验 俗称三次握手 那么为什么需要需要三次握手 为什么三次握手之后客户端和服务端才彼此知道对方的通讯正常呢 咱们就以最通俗易懂的说法来解释一下
首先第一次客户端发出请求 服务器接收 服务器就知道客户端通信是正常的
第二次服务器端发出请求 客户端知道其服务器端数据传输为正常(并且也知道自己的数据传输正常 因为可以确定第一次发的消息服务器已经接接收到)
第三次客户端重新发送请求 服务器端接收到客户端的请求从而判断自己的收发能力都是正常的 因为第二次向服务器端发送的数据客户端已经准确收到 这样经过三次握手之后客户端和服务器端都知道彼此数据传输正常 从而建立通信。
如果这些你可以看懂了 那么接下来的这些话你也就更好理解了
首先第一次客户端发送SYN=1 且产生一个随机码seq 给服务器端 服务器端由SYN=1知道客户端开始请求链接
第二次服务端向客户端发送ack即为客户端的seq +1 在发送ACK=1 自身也发送一个seq随机码 和SYN=1
第三次客户端进行判断服务器的ACK=1 且ack是否正确为自身发送的随机码seq +1 如果正确 就再次发送ACK=1 ack=服务端seq +1 服务端确定随机码seq 与ACK=1及连接成功