1.为什么要三次握手
服务器客户端要建立链接,就要确认彼此的身份;
第一次握手客户端主动发出,询问服务器是否有接收消息的能力,确保消息发出去并告知我有写的能力。
第二次握手服务器收到消息,返回告诉客户端我已经收到了,并具备写能力。
第三次握手客户端再次确认,告诉服务器可以建立链接,可以放心通讯。
2.三次握手的原理
第一次:客户端为closed状态,发送信息给服务器,标志位为SYN,产生seq,转为sent状态等待服务器回复。
第二次:服务器为listen状态,收到客户端信息,并标志位为SYN,ACK=1,确认位为seq+1,转为recive状态等待客户端确认。
第三次:客户端收到服务器的回应,发送ACK=1,转为ESTABLISHED状态,并建立链接。