0
点赞
收藏
分享

微信扫一扫

TCP三次握手,四次挥手。

岛上码农 2022-05-01 阅读 53

0.四层模型

首先要知道TCP/IP的模型。从上到下:应用层,传输层、网络层、数据链路层。大家搜一下哈。

1.三次握手

        那这个三次握手就是要建立一个TCP连接。下面用相亲来解释。建立一个连接,就是我要和你相亲!!!(好可怕)

        第一次交流。初见面一般都是男生带着一些小礼品包(糖果啦什么的东西等等,里面有男生的微信(当做syn包)syn=j,这个j就相当于微信),来到女方家里,让人家看看你帅不帅,符不符合做人家女婿的标准。看过之后呢,这个男生就回到家里,进入等待状态(SYN_SEND状态),等女生家里给信号,愿不愿意进一步交流。

        第二次交流。女生这边收到男生的小礼品包后,确认你这个礼包不错的确是你的、综合考虑一下,感觉这个男孩长得也帅,方方面面安排的都挺到位,愿意进一步交流。那我就在你给我的礼品包里确认一下,打个对钩、扣个1什么的(这个理解为 syn(ack=j+1)就是表达我确认了),附加一个东西(女方微syn=k,这就相当于我给男方两个包,一个我表达确认你的包,一个让你确认我的包),然后女生进入等待状态(SYN_RECV状态),等男生回消息

        第三次交流。男方收到两个包后,首先确认一个包是你认同我了(我原来发的是syn=j,你给我加了一个1。我知道你对我有意思。)。再者是男生收到的另一个包是女生的微,如果男生没意见,OK,男生做的和第二次女生做的一样,也确认一下,扣个1什么的,再送给女生一个包(这个包就是ACK(ack=k+1)),女生收到后,OK,双方都同意,开始谈恋爱(进入ESTABLISHED状态,完成三次握手)。

2.四次挥手

        谈了一段时间后,发现不合适,男生生要提出分手,(至于为什么是客户端发起,通常断开连接都是由进程发起,所以是客户端),分手麻烦一些,要四次挥手。

        第一次挥手。男生发给女生一条信息(FIN),我们不合适,我想分手。而且不再主动发消息,男生关了闲聊的意愿,只说分手的事。进入自我封闭的状态(FIN_WAIT_1状态)。

        第二次挥手。女生收到信息后,给男生发一条消息(男生只是关闭了他那边的发送),说我知道了,我收到你说的分手了(发送一个ACK给Client,确认序号为收到序号+1)。女孩进入预分手状态(CLOSE_WAIT状态)。

        第三次挥手。女生再发一条消息(FIN),这个消息告诉男生,分就分。这个时候女孩不再发消息给男孩,进入封闭状态(LAST_ACK状态)。

        第四次挥手。男孩收到信息后(FIN),发一个“和平分手”(ACK)。好了女孩收到后,确认分手(CLOSED状态)。至此,彻底分手。

        上面男孩相当于是客户端,女孩是服务器。毕竟客户端的数量远多于服务器,服务器多么的抢手。啧啧啧!

举报

相关推荐

0 条评论