SYN 同步序列编号 (Synchronize Sequence Number )
三次握手
第一次 握手 :建立连接时,客户端发送SYN(SYN=j) 到服务器,并进入到SYN_SEND状态,等待服务器的响应。
第二次握手:服务器接收到客户端发来的SYN,必须确认客户端的SYN (ack=j+1),同时自己也发送一个SYN(syn=k),服务器发送的是ACK和SYN两个,此时进入到了SYN_RECEV状态。
第三次握手:客户端受到了服务器端发送的ACK和SYN ,向服务器发送ACK ACK=k+1 ,此包发送结束后 客户端和服务端都进入了ESTABLISH状态
为什么 不是 两次握手或四次握手?
三次握手:“喂,你听得到吗?”“我听得到呀,你听得到我吗?”“我能听到你,今天balabala……”
两次握手:“喂,你听得到吗?”“我听得到呀”“喂喂,你听得到吗?”“草,我听得到呀!!!!”“你TM能不能听到我讲话啊!!喂!”“……”
四次握手:“喂,你听得到吗?”“我听得到呀,你听得到我吗?”“我能听到你,你能听到我吗?”“……不想跟傻逼说话”
四次挥手
第一次挥手:
Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
第二次挥手:
Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
第三次挥手:
Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
第四次挥手:
Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。