TCP三次握手过程:
第一次握手:客户端发送SYN包(SYN=x)到服务器,并进入SYN_SEND状态,等待服务器确认。
第二次握手:服务器收到SYN包,确认客户端的SYN(ACK=x+1),同时自己也发送一个SYN包(SYN=y);即ACK + SYN,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到ACK + SYN包,向服务器发送确认包ACK(ACK = y+1),此包发送完毕,客户端和服务端进入ESTABLISHED状态,完成三次握手。
通俗理解:
客户端:你好,在吗?
服务端:在的,什么事?
客户端:好的,一会儿跟你讲哦
举个打仗的例子:A和B要攻打C
1,A写信给B说:明天早上5点,左右夹攻C
2,B收到信,回信给A:好的,明天一起进攻
3,A收到信,回信给B:好的
如果只有1次通信。A肯定不敢出兵。因为不知道B来不来
如果只有2次通信。B肯定不敢出兵。因为如果A没收到回信,A就不会出兵。A不出兵,B打不过。
如果是3次通信。A知道B会出兵,B也知道A会出兵,达成统一意见,放心攻打。