第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认
第二次握手:服务器收到syn包,必须确认客户的syn,同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
核心思想
既要保证数据可靠传输,又要提高传输效率,而用三次恰恰可以满足以上两个方面的要求。
三次是保证双方互相明确对象能收,能发的最低值
归纳:
1:A发,B收,B知道A能发
2:B发,A收,A知道B能收能收
3:A发,B收,B知道A能收
本质
信道是不可靠的,但是通信双方需要就某个协议达成一致,而要解决这个问题,无论你在消息中包含什么信息,三次通信是理论上的最小值。因为三次握手不是TCP本身的要求,而是为了满足“在不可靠的信道上可靠的传输信息”这一需要导致的