假如有一台客户机和一台服务器,现在客户机想要和服务器通信,那么首先客户机就会发送一个同步位等于1确认序列号有效位等于0的数据包给服务器,(syn(同步位)等于1表示请求建立链接)同时会随机产生一个sequence number(序列号),假如是100,当服务器接受到客户机发来的数据后,客户机从SYN(同步位)=1可知客户机是想要建立连接,第一次握手完成
第二次握手:服务器收到消息后肯定要进行确认,就像我和你打招呼的时候我说hello你肯定要回一个给我,所以这时候服务器就会向客户机发送一个确认报文ACK(确认序列号有效位)=1,SYN(同步位)=1,Acknowledge number=101,(确认序列号等于序列号+1)同时还会随机产生一个序列号sequence number假如等于200,这样就告诉了客户机可以进行连接,二次握手完成
第三次握手:当客户机收到服务器的确认信息后,客户机会检查Acknowledge number(确认序列号)是否等于序列号+1即101,以及ACK(确认序列号有效位)是否为1,若为1,客户机会发送一个ACK=1.Acknowledge number=201的确认报文,告诉服务器你的请求连接已经被确认,连接可以建立,客户机进入ESTABLISHED状态,TCP连接建立。三次握手完成