网络编程(三)浅谈三次握手,四次挥手

1、必须了解的一点,三次握手,四次挥手的发起端都是客户端。因为实际开发服务器是一直运行的。

2、你有写过网络通信你就会很了解三次握手和四次挥手,不废话了

三次握手

1、客户端对服务器发送连接请求=======>这时客户端会给服务器发送一份 SYN 信号,等待服务器的回复

2、服务器收到客户端的 SYN 信号,在服务器资源允许的情况下会回复客户端一个 SYN+ACK 信号

3、客户端收到服务器的回复,但还要确定自己的资源允许才可以连接,这时客户端会回复一个 ACK 信号给服务器

4、服务器收到这个 ANS 信号,确定客户端有资源可以进行连接,然后才连接客户端

理论说完那么现在说一说理解:

1、首先客户端要连接服务器就必须保证服务器有资源(这个资源代表内存,cpu等等)可以进行通信,很简单的道理,我假如说内存不足我还允许你连接占我资源,我不是傻子吗?所以客户端必须先发一个信号去询问服务器(这个信号就是 SYN )。

2、人家客户端问了服务器,服务器总得回复吧,服务器就说我有资源,你来连接我吧,但是你现在有没有资源呢?(SYN +ACK)很简单嘛。你客户端刚才有空和服务器连接,可现在客户端可能没有资源和服务器连接了,所以服务器要确定一下客户端是不是真的有资源连接。

3、所以客户端收到 SYN + ACK 之后就会在回复一下服务器,然后才连接

(你可能会认为这是一个无穷无尽的问题,但是这已经可以解决绝大多数问题了)你是客户端,邀请的客人是服务器

        联系生活当中:你请一个人来你家做客,你先会问他是否有空来你家做客,他回复有空,然后问你什么时候在家,然后你就告诉他你某某时候在家。这样你们两个人就可以在约定时间碰面。   (但是你要强行恶搞人家,或许他作弄你故意不在约定时间来你家,或者你在约定时间不在家。那么你们两个人就不可能碰面。这种情况就是你不是真心想邀请他,或者他不是真心接受你的邀请,回到程序,你都没想连接别人或者别人也不愿意接受连接,那么是什么心理让你用热脸去贴冷屁股的,犯贱吗?

四次挥手

1、客户端断开连接============> 客户端会发送一个 FIN 信号给服务器

2、服务器收到 FIN 信号,了解了你要断开连接就会回复一个 ACK 信号

3、超级短暂时间之后服务器会在发一个 FIN 信号去确定客户端是否真的要断开连接

4、客户端收到 FIN 信号会回复一个 ACK 信号给服务器说我真的要断开连接了

5、服务器收到 ACK 信号就会处理掉刚才用于连接这个客户端的资源

理论完了,也没什么好理解的,就直接联系生活吧

        刚刚你邀请来吃饭的这个人已经在你家呆了几天了,还没有走,你要赶他走了,就对他说,请你离开我的家,他很诧异的回答我知道了。因为他是你很好的朋友,他还想在你家玩,就抱着试一试的心理再问你一遍,你是不是真的要我走。你说你吃我的喝我的用我的住我的我很不开心,我的资源感觉被侵犯了,你不要再占我资源了。这时他就知道了你的决心,而且什么都不说就离开了。

猜你喜欢

转载自blog.csdn.net/qq_41985711/article/details/82796143