TCP三次握手
-
第一次握手, 客户端向服务端发送SYN包(syn = x)请求连接,然后进入Send状态并等待服务端确认。 -
第二次握手,服务端接收客户端发送的SYN包,然后向客户端发送ACK(x + 1)包确认以及发送SYN(syn =y)包,然后进入recv状态并等待客户端确认。 -
第三次握手,客户端接收服务端发送的两个包,然后向服务端发送ACK(y +1)包确认收到,然后进入establish状态。服务端接收后也进入establish状态。
至此,三次握手完毕,客户端和服务端才开始正式传输数据。
TCP四次挥手
-
第一次挥手, 主动请求关闭方 发送FIN包给被动关闭方,用来关闭两者之间的数据传送,也就是说我已经不会向你发送数据了,但还可以接收数据。 -
第二次挥手,被动关闭方接收到FIN包并发送ACK包确认收到。 -
第三次挥手,被动关闭方向主动请求关闭方发送FIN包,用来关闭两者之间的数据传送。意思是,我的数据已经发送完了,不会再向你发送数据了。 -
第四次挥手,主动关闭方接收到FIN包并发送ACK包确认。
至此,四次挥手结束。双方关闭数据传送。
四次挥手至尊版:
女生跟男生说:我们分手吧,我不会再爱你了。(相当于发送了FIN包,结束嘛!)
男生说:卧槽!!!居然甩我。然后说,你要搞真的是吗?但此时男生只是听到了,但是并没有同意。毕竟爱情是两个人的事嘛!(相当于接收到了FIN包并返回了ACK包确认)
男生沉思了会:想着天天被欺负,这女朋友不要也罢。然后对着女生吼:那就分。(相当于发送了FIN包)
女生听到男生吼他,就很不爽。大声说:是我甩了你,屌毛(也就接收到了FIN包并发送ACK包确认)。
然后两人就彻底凉凉。
|