三次握手和四次挥手幽默解释

通过学习tcp/ip协议,对三次握手和四次挥手的个人认识通过这个幽默的方式来描述。

这个协议的核心思想是让我知道你已经知道了,重要的事情说三遍!

让我知道你已经知道了

让我知道你已经知道了

让我知道你已经知道了

1.三次握手

三次握手是建立tcp链接的过程,大概流程如下图

第一次握手:这个就是客户端向服务器发起连接请求,客户端跟服务器发送加好友请求(SYN=1),并且说聊上2块钱的天(seq=x)

第二次握手:让我知道你已经知道的核心思想从这儿开始体现。得让客户端知道服务器收没收到加好友请求,服务器回复客户端同意加你好友(SYN=1,ACK=1),并且回复聊上3块钱的(ack=x+1),还给他发了一个小红包(seq=y)

第三次握手:这一次得让服务器知道客户端收到服务器的红包没,客户端就回复他我收到你红包了(ack=1),并且说那就聊上3块钱的天吧(seq=x+1),顺带回了一个红包意思一下(ack=y+1)

这样三次握手过程就结束了。

2.四次挥手

四次挥手是断开tcp连接的过程,大概流程如下图:

 继续接着上次故事讲,客户端和服务器聊完3块钱的,客户端觉得没意思不想聊了。

第一次挥手:客户端跟服务器讲我不想跟你聊了(FIN),分手吧。

第二次挥手:服务器收到回复他知道了(ACK)但是你得等我忙完的。

第三次挥手:服务器跟别人聊完了,回客户端,我忙完了,我知道你不想聊了,那就分手吧(FIN)

第四次挥手:客户端收到服务器这个消息,很生气,分就分(ACK)甩给服务器就把服务器删好友了

到此为止,断开tcp链接的四次挥手就结束了,这个故事是不是有点像你跟你的男/女朋友,哈哈哈

3.为什么链接的时候三次握手,关闭的时候是四次挥手?

因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

这就到了刚开始那会儿的故事,你加你女神微信的时候,你先发起加好友申请(客户端向服务器申请链接SYN),你女神收到你的加好友申请,然后点了一个确认(确认链接SYN)女神发给你我已经加你好友了(服务器发ACK)你收到后给女神回复我看到了(客户端发ACK给服务器)这样你就建立的好友关系(tcp链接建立),这样就可以给女神巴拉巴拉发消息了,从此你们就聊的水深火热。

SYN用来同步ACK用来应答

过了一段时间你们的感情发生了分歧,突然有一天你跟你女神讲要不咱分手吧(客户端向服务器发FIN),女神收到后不耐烦回了一句行行行我知道了(服务器向客户端发ACK),我现在在忙等会儿跟你讲(服务器还有数据没处理完),女神忙完了然后跟你说,你要分手是吧,分就分吧(服务器向客户端发FIN),你收到这句分手的话内心的怒火终于爆发,行那就分手吧(客户端向服务器发ACK),不过你没有马上删除好友(一个时间等待防止网络出错服务器没收到客户端的应答,服务器会再次发送FIN),过了一段时间没消息了,至此你放下了你们的感情。。。。。。

4.为什么不能用两次握手?

你加你女神微信后,你女神同意后,要是腾讯后台不提醒你通过了你的好友申请,你能知道你加上你女神没?是不是这个道理

客户端发送服务器连接申请后,服务器回复客户端同意连接可以发了,如果客户端不回复确认信息的话,服务器就不知道客户端收到他发地同意连接信息,这样会一直占用服务器的资源。

5如果建立了链接,客户端发生了故障如何处理?

TCP设有一个保活计时器,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。
故事紧接上回,这就跟女神热恋时期,女神每2小时查岗,你每天给女神发消息(客户端向服务器传数据)女神认为你还爱着他(复位tcp的保活计时器),一旦你女神超过两小时没收到你的消息,你女神就怀疑你问题,于是她每隔75秒就给你打一个电话(每隔75秒服务器向客户端发探测报文),连续打了十个电话你还没反应,你女神就认为你不爱她了,八成出轨了,于是她就把你甩了(关闭链接)

这故事讲的好累。。。。

如果各位网友们还不懂,你告诉我,我去练练编故事

开个玩笑,看不懂就留言吧我看到回复你,虽然我不一定能看到,因为不经常看,万一有热心网友跟你互动呢,万一咱俩有缘分我就看到呢, 哈哈哈哈

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值