吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2956|回复: 17
收起左侧

[Java 转载] JAVA面试-计算机网络-TCP四次挥手

  [复制链接]
阿里灵灵 发表于 2021-3-29 22:05
本帖最后由 阿里灵灵 于 2021-3-31 11:32 编辑

学习原因

TCP四次挥手是常面试的考点,所以要好好掌握。

通俗示例

小明和小红是网上认识的网友,两个人关系非常好。

小明喜欢吃土鸡蛋,所以小红经常给小明寄家里的土鸡蛋,小红喜欢吃苹果,所以小明经常给小红寄家里种的苹果。

这一次,由于小红家要搬去外国,以后没办法再寄鸡蛋了,小红就发消息跟小明说,“我全家都要搬去国外了,我发完最后这一框鸡蛋后,我就不再给你寄鸡蛋了。”,发完信息后,小红寄完最后的鸡蛋后,就不再寄鸡蛋了。这是第一次信息交互,小红发送完最后的数据,同时让小明知道她要搬家了,以后不再寄鸡蛋了。这就是第一次挥手,客户端向服务端发送完最后数据后,停止发送数据,并发送消息让服务端知道。

注意:第一次挥手后,客户端但是仍然可以进行信息交互,接收数据和发送数据,不是不能发送数据,只是不发数据;服务端依旧可以发送、接收数据,同时可以进行信息交互。

小明接收到小红的消息后,并不会立即回复消息,而是等接收到到小红最后寄来的鸡蛋后,就给小红回个消息,“你最后的鸡蛋我收到了,但是我家里的还有很多苹果没有寄过去,你先别搬家,等我寄完了,我会和你说一声的”。这就是第二次信息交互,是小明回应小红的答复,同时跟小红表达,自己还寄了很多苹果过去,先别搬家。这就是第二次挥手,在接收客户端停止发送数据的请求和接收完最后的数据后,服务端向客户端发送请求表示已经知晓客户端停止发送数据了。但是服务端还有数据给客户端发送过去,所以,服务端在第二次挥手的时候同时也会表示,自己的数据还没发送完毕,所以先不要关闭数据接收功能。

注意:第二次挥手后,客户端可以进行信息交互,和接收数据,但是不可以发送数据;服务端依旧可以发送、接收数据,同时可以进行信息交互。

一个月过后,小明家里的苹果也没有了,这时候小明停止发送苹果,并给小红发送消息说,“小红,我家里的苹果没有了,所以我之后不会再给你发苹果了,你可以去国外了。”。这就是第三次信息交互,小明的苹果发完了,并且同时让小红可以离开了。这也是第三次挥手的作用,在服务端发送完所有请求后,就停止发送数据,并通知客户端不用再接收数据了。

注意:第三次挥手后,客户端仍然可以进行信息交互,和接收数据;服务端不能再发送数据,但是可以接收数据和进行信息交互。

小红接收到小明的信息后,就给小明发送消息,“我接收到你最后的苹果了,谢谢你,再见。”,小明看到消息后,就不再发送信息了,而小红也不再发送信息,搬家去了国外。这就是第四次信息交互,小红让小明知道她已经收到小明不再寄苹果的消息。这就是第四次挥手,客户端确认服务端没有数据发送后,就向服务端发送断开连接的请求,服务端接收到后,断开连接,客户端在没有接收到数据后也断开连接。

注意:第四次挥手之后,双方断开连接,都无法互相发送数据和信息。除非重新发起请求,进行三次握手,才能再互相发送数据。
未命名文件.png

为什么不可以把第二次和第三次挥手合并成一次发送,毕竟都是同一个端发送的信息?

其实在清楚了解四次挥手的原理和机制之后,我们就可以清楚的明白为什么不可以把第二次和第三次挥手合并。

客户端虽然停止发送数据,但是服务端还有数据要发送,所以第二次只是通知客户端要继续接收数据;而服务端发送完数据后,就发送第三次挥手,停止发送数据。就比如小红虽然停止寄鸡蛋,但是小明还有苹果没给小红寄过去,所以第二次是为了提醒小红还有苹果没有传过去,所以先不要搬家,再寄完苹果后,小明又发送信息通知小红说没有苹果了,我也不寄了。这个也是面对这个问题的时候常用的解释。

那如果先不发送第二次挥手,而是等到服务端也发送完数据后,直接发送第三次挥手信息给客户端,这不就即可以实现三次挥手,又可以保证服务端数据可以全部发送完毕?

可以的,这在理论上是可行的,通过延迟确定,可以让服务端的第二次请求延迟,等到数据发送完毕后,直接发送第三次挥手一块发送给客户端。从而实现三次握手。但是这样导致的一个问题就是,如果第三次挥手迟迟未到,客户端发送数据功能迟迟不能关闭,可能导致资源浪费。因为客户端要在接收到服务端的第二次挥手才停止发送数据功能。

四次挥手只能是客户端发起吗?

很显然不是,TCP中断的请求,任意一方都可以发起,所以四次挥手的发起任意一方都可以先进行。

结语

以上就是四次挥手的知识点讲解。四次挥手在是否能实现三次挥手的问题上是可以进行探讨,之后会继续补充,如果哪位小伙伴有什么奇思妙想和建议,可以提出,我会及时收集和改正。

aHR0cHM6Ly9zczEuYmRzdGF0aWMuY29tLzcwY0Z1WFNoX1ExWW54R2twb1dLMUhGNmhoeS9pdC91PTQw.png

免费评分

参与人数 7吾爱币 +9 热心值 +6 收起 理由
chai1024 + 1 + 1 我很赞同!
逸帅 + 1 + 1 用心讨论,共获提升!
剑来…… + 1 谢谢@Thanks!
PASSERFBER + 1 谢谢@Thanks!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
elijgnaw + 1 热心回复!
独角兽漫长岁月 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 阿里灵灵 发表于 2021-3-29 22:46
zd14785 发表于 2021-3-29 22:45
我好像还没被问过这问题……

好家伙,我当初找实习的时候就被问了。
leileiwoaini 发表于 2021-3-29 22:17
 楼主| 阿里灵灵 发表于 2021-3-29 22:35
zd14785 发表于 2021-3-29 22:45
我好像还没被问过这问题……
cixihpf 发表于 2021-3-29 23:23
看的有点累,
就不能弄一张结构逻辑图表达一下吗?
masaminaomi 发表于 2021-3-30 00:47
很清晰,小白看懂了
wr01020304 发表于 2021-3-30 03:41
感谢总结
wenweiqun 发表于 2021-3-30 16:28
很清晰,小白看懂了
bandishui 发表于 2021-3-30 19:21
解释的意思,
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 03:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表