通俗易懂的三次握手,四次挥手

1、本文通过通俗易懂的方式,让大家理解TCP协议的三次握手,四次挥手;

2、先看一下基础名称;

     SYN:同步连接序号,SYN=1(请求建立连接);
     ACK:请求/应答状态,ACK=0(请求状态),ACK=1(应答状态);
     FIN: 结束连线,FIN=0(结束连线请求),FIN=1(结束连线)。

3、 通过热身小故事带入理解“三次握手”;

热身篇:

TCP的三次握手有点像中华民族传统美德——礼尚往来;

1)a送给b一个苹果手机(第一次握手a->b);

2)b收到后,很开心,一直说谢谢,并且为了回赠,送给a一个苹果电脑(第二次握手b->a);

3)a收到b的回礼后,告诉b我收到了,并对b说谢谢(第三次握手a->b);

一次完整的送礼流程。

理解篇:

1)客户端向服务端发送连接请求(发送SYN包,进入SYN-SEND状态)(第一次握手);

2)服务端接收到连接请求后,同意向客户端建立连接(发送ACK-SYN包,进入SYN-RCVD状态)(第二次握手);

3)客户端接收到服务端的同意后,与服务端确认建立连接(第三次握手)。

客户端和服务端就建立起了连接,可以传输数据了。

4、通过热身小故事带入理解"四次挥手";

热身篇:

TCP的四次挥手——跟渣男分手;

故事简述:c和d是男女朋友,c有一天发现d是渣男,想跟d分手;

1)c向d提出分手请求(第一次挥手);

2)d收到请求后,虽然d是渣男,但是d还是很礼貌的,告诉c,我收到你的请求了;但是我现在忙着跟其他人谈恋爱昵(第二次挥手);

3)d终于空下来了,告诉c,我接受你的分手请求了(第三次挥手);

4)c收到d的回复后,告诉d我终于解脱(第四次挥手)。

理解篇:

1)客户端向服务端发送断开连接请求(FIN=1,进入FIN-WAIT-1状态)(第一次挥手);

2)服务端接收到断开请求后,同意向客户端断开连接,但是还有数据在传输,要等数据先传输完,所以先告知客户端收到断开请求了(进入CLOSE-WAIT状态)(第二次挥手);

3)服务端数据传输完成后,告知客户端,要关闭连接了(第三次挥手);

4)客户端接收到服务端的断开连接消息后,告知服务端已收到断开连接的消息(第四次挥手);

客户端和服务端就关闭了连接。

5、以上只是便于非专业人士对TCP的三次握手,四次挥手的理解;

猜你喜欢

转载自blog.csdn.net/qq_42676363/article/details/106758628