TCP三次握手、四次挥手,在面试这锅滚油里,可谓是炸了千百遍的老油条。

“三次握手,四次挥手”这么讲,确保你忘不了

咱们都知道TCP是面向联接的,三次握手就是用来建立联接的,四次握手就是用来服务器断开联接的。

三次握手

先上图:

“三次握手,四次挥手”这么讲,确保你忘不了

咱们来看一服务器租借下三次握手的进程:

  • 一开始,客户端和服务服务器操作体系端都处于 C服务器和电脑主机的区别LOS服务器租借ED 状况。客户端主动翻开联接,服务端被迫打卡联接,完毕CLOSED z状况,开始监听,进入 LISTEN 状况。

一次握手

  • 客户端会随机初始化序服务器内存和一般内存有什么区别号(client_isn),将此序号置于 TCP 首部的「序号」字段中面试毛遂自荐简略大方,一同把 SYN 标志方位为 1 ,标明 SYN 报文。接着把第一个 SYN 报文发送给服务端,标明向服务端建议联接,该报文不包服务器操作体系括应用层数据,服务器操作体系之后客户端处于 SYN-SENT 状况。

二次握手

  • 服务端收到客户端的 SYN 报文后,首要服务端也随机初始化自己的序号(server_is面试n),将此序号填入 TCP 首部的「序号」字段中,其次把 TCP 首部的「招认应对号」字段填入 client_is服务器租借n + 1, 接着把 SYNACK 标志方位为 1。毕竟把该报文发给客户端,该报文也服务器体系不包含应用层数据,之后服务端处于 SYN-RCVD 状况。

三次握手

  • 客户端收到服务端报文后,还要向服务端回应终面试技巧究一个应对报文,首要该应对报文 TCP 首部服务器租借多少钱一年 ACK 标志方位为 1 ,其次「招认应对号」字段填入 server_isn服务器是什么 + 1 ,毕竟把报面试毛遂自荐3分钟通用文发送给服务端,这次报文可以带服务器着客户到服务器的数据,之后面试毛遂自荐范文客户端处于 ESTABLISHED 状况。

好了,通过三次握手的进程,客户端和服务端之间的供面试认联接正常,接下来进入ESTA服务器地址在哪里看BLISHED状况,服务端和客户端就可以快乐地通讯了。

这里有个动态进程的图示:

“三次握手,四次挥手”这么讲,确保你忘不了

这里有个小细节,第三次握手是可以带着数据的,这是面试常问的点。

那么为什么要三次握手呢?两次不行吗?

  • 为了避免服务器端打开一些无用的联接增加服务器开支
  • 避免已失效的联接央求报文段忽然又传送到了服务端,因而产生差错。

因为网络面试问题大全及答案大全传输是有延时的(要通过网络光纤和各种中心代理服务器),在传输的进程中,比如客户端建议了 SYN=1 的第一次握手。

假定服务器端就直接创建了这个联接并回来包含 SYN、ACK 和 Seq面试技巧和注意事项 等内容的数据包给客户端,这个数据包因为网络传输的原因丢掉了,丢掉之后客户端就一向没有接纳到服务器回来的数据包。

假定没有第三次握手奉告服务器端客户端收的到服面试问题大全及答案大全务器端传输的数据的话,服务器端是不知道客户端有没有接纳到服务服务器cpu器端回来的信息的。服务端就以为这个联接是可用的,端口就一向开着,等到客户端因超时从头宣告央求时,服务器就会从头打开一个端口联接。

这样一来,就会有很多无效的联接端口白面试问题白地开着,导致资源的糟蹋。

这个进程可了解为:

“三次握手,四次挥手”这么讲,确保你忘不了

还有一种状况是现已失效的客户端宣告的央求信息,因为某种原因传输到了服务器面试毛遂自荐3分钟通用端,服务器端以为是客户端宣告的有用央求,接纳后产生差错。

“三次握手,四次挥手”这么讲,确保你忘不了

所以咱们需求“第三次握手”来招认这个进程:

通过第三次握手的数据奉告服务端,客户端有没有收到服务器“第2次握手”时传过去的数据,以及这个联面试技巧和注意事项接的序号是不是有用的。若发送的这个数据是“收到且没有问题”的信息,接纳后服务器就正常建立 TCP 联接,不然建立 TCP 联接失利,服务器封闭联接端口。由此削减服务器开支和接纳到失效央求产生的差错。

四次挥手

仍是先上图:

“三次握手,四次挥手”这么讲,确保你忘不了

聚散终有时,TCP 断开联接是通过四次挥手办法。

两端都可以主动断开联接,断开联接后主服务器租借机中的「资源」将被释放。

上图是客户端主动封闭联接 :

一次挥手

  • 客户端计划封闭联接,此刻会发送一个 TCP 首部 FIN 标志位被置为 1 的报文,也即 FIN 报文,之后客户端进入 FIN_WAIT_1 状况。

二次挥手

  • 服务端收到该报文后,就向客户端发送 ACK 应对报文,接着服务端进入 CLOSED_WAIT 状况。

三次挥手

  • 客户端收到服务端的 ACK 应对报文后,之后进入 FIN面试毛遂自荐范文_WAIT_2 状况。等候服务端处理完数据后,也向客户端发送 FIN 报文,之后服务端进入 LAST_ACK 状况。

四次挥手

  • 客户端收到服务端的 FIN 报文后,回一个 ACK 应对报文,之后进入 TIME_WAIT 状况
  • 服务器收到了 ACK面试毛遂自荐范文 应对报文后,就进入了 CLO面试技巧和注意事项SED 状况,至此服务端现已结束联接的封闭。
  • 客户端在通过 2M服务器是什么SL 一段时刻服务器体系后,主动进入 CLOSED 状况,至此客户端也结束联接面试问题大全及答案大全的封闭。

你可以看到,每个方向都需求一个 FIN面试毛遂自荐范文服务器地址在哪里看一个 ACK,因而一般被称为面试毛遂自荐范文次挥手

为什么要挥手四次?

再来回想下四次挥手两端发 FIN 包的进程,就能了解为什么需求四次了。

  • 封闭联接时,客户端向服务端发送 FIN 时,只是标明客户端不再发送数据了但是还能接纳数据。面试毛遂自荐3分钟通用
  • 服务器收面试毛遂自荐简略大方到客户端服务器租借FIN 报文时,先回一个 ACK 应对报文,面试技巧和注意事项而服务端或许还有数据需求处理和发送,等服务端服务器是什么不再发送数据时,才发送 FIN 报文给客户端来标明赞同现在封闭联接。

从上面进程可知,服务面试技巧端一般需求面试问题大全及答案大全等候结束数据的发送和处理,所以服务端的服务器租借多少钱一年 ACKFIN 一般都会分隔发送,从而比三次握手导致多了一次。

为什么客户端在TIME-WAIT阶段要等2MSL?

为的是招认服务器端是否收到客户端宣告的 ACK 招认报文,当客户端宣告毕竟的 ACK 招认报文时,并不能招认服务器端可以收到该段报文。

所以客户端在发送完 ACK 招认报文之后,会设置一个时长为 2MSL 的计时器。

MSL 指的是 Maximum Segment Lifetime:一段 TC服务器是什么P 报文在传输进程中的最大生命周期。

2MSL 就是服务器端宣告为 FIN 报文和客户端宣告的 ACK 招认报文所能坚持有用的最大时长。

服务器端在 1MSL 内没有收到客户端宣告的 ACK 招认报文,就会再次向客户端宣告 FIN 报文:

  • 假定客户端在 2M服务器cpuSL 内,再次收到了来自服务器端的 FIN 报文,阐明服务器端因为各种原因没有接纳到客户端宣告的 ACK 招认报文。

客户端再次向服务器端宣告 ACK 招认报文,计时器重置,从头开始 2MSL 的计时。

  • 服务器是什么则客户端服务器是什么在 2MSL 内没有再次收到来自服务器端的 FIN 报文,阐明服务器端正常接纳了 ACK 招认报文,客面试毛遂自荐范文户端可以进入 CLOSED 阶段,结束“四次挥手服务器怎么搭建”。

所以,客户端要经历时长为 2SML 的 TIME-WAIT 阶段;这也是为什么客户端比服务器端晚进入 CLOSED 阶段的原因。

服务器cpu里相同有个面试服务器内存和一般内存有什么区别态进程的图示:

“三次握手,四次挥手”这么讲,确保你忘不了

好了,咱们的文章到这就……

唉,不对,就这么完了,这会我如同知道了,但过会儿那就说不定了。

“三次握手,四次挥手”这么讲,确保你忘不了

没关系,我苦思冥想,找了两个大白话的比如,保准你忘不了服务器

大白话说三次握手

在二十年前的村庄,电话没有广泛,手机就更不用说了,面试常见问题及答复技巧所以,通讯根本靠吼。

老张和老王是邻居,这天老张下地了,成果家里有事,热心的邻居老王匆促跑到村口,开始叫唤老王。

  • 老王:老张唉!我是老王,你能听到吗?
  • 老张一听,是老王的声音:老王老王,我是老张,我能听到,你能听到吗?
  • 老王一听,嗯,没错,是老张:老张,我听到了,我有事要跟你说。

“你老婆要生了,匆促回家吧!”

老张风风服务器地址在哪里看火火地赶面试问题大全及答案大全回家,老婆顺利服务器租借多少钱一年地生了个带把的大服务器是什么胖小子。

握手的故事充满了幸福和满意。

“三次握手,四次挥手”这么讲,确保你忘不了

大白话说四次挥手

假定博主有一个女朋服务器cpu友——只是“假定”,该死的,这不争气的眼泪,怎样止不住地滴在键盘上。

因为博主上班九九六,下班肝博客,导致没有时刻陪女朋友,女朋友疾恶如仇。

  • 女朋服务器是什么友:臭男人,最近你都不理我,你是不是不爱我了?你是不是外面有其他狗子了?我要和你分手?
  • 服务器雕博主一愣,怒火攻心:分面试手就分面试毛遂自荐3分钟通用手,不陪你闹了,等我把东西收拾收拾。

沙雕博主小心谨慎地装起了自己的青轴机械键盘。

  • 哼,蠢女人,我现已收拾完了,我服务器体系先滚为敬,再会面试问题大全及答案大全面试毛遂自荐3分钟通用
  • 女朋友:滚,滚的远远的,越远越好,我一辈子都不想再会到你。

唉,挥手的故事总充满了哀痛和惋惜!

“三次握手,四次挥手”这么讲,确保你忘不了

好了,白话纯面试毛遂自荐简略大方属文娱!看在博主费了不少脑子的份上,点个赞再走呗!!


参阅:

【1】:两张动图-完全明白TCP的三次握手与四次挥手

【2】:35 张图解:被问千百遍的 TCP 三次握手和四次挥服务器cpu手面试题

【3】:三次握手+四次挥手,一文搞定全部!