TCP 三次握手和四次挥手

抓包分析TCP三次握手和四次挥手 抓包分析 实验主要两个内容: TCP三次握手和四次挥手过程 分析HTTPS的TLS握手过程 TCP三次握手 windows10下wireshark工具,浏览器访问47.93.242.17端口443,即HTTPS协议,源端口54407 过滤规则 ip.dst ==47.93.242.17 or ip.src == 47.93.242.17 过滤ip tcp.port == 80 过滤端口,无论是源端口还是目的端口 三次握手过程 第一次握手tcp报文段 报文段分析: 源端口:544 阅读详情

常见的 HTTP 请求类型

一、TCP 报文格式

其中比较重要的字段有:

1️⃣序号(sequence number):Seq,占 32 位,用来标识从 TCP 源端向目的端发送的字节流,发起方发送数据时对此进行标记。
2️⃣确认号(acknowledgement number):Ack,占 32 位,只有 ACK 标志位为 1 时,确认序号字段才有效,Ack=Seq+1。
3️⃣标志位(Flags):共 6 个,即 URG、ACK、PSH、RST、SYN、FIN 等。具体含义如下:

  1. URG:紧急指针(urgent pointer)有效。
  2. ACK:确认序号有效。
  3. PSH:接收方应该尽快将这个报文交给应用层。
  4. RST:重置连接。
  5. SYN:发起一个新连接。
  6. FIN:释放一个连接。

注意:切记不要将确认号 Ack 与标志位中的 ACK 搞混了。确认方Ack=发起方Seq+1,两端配对。

二、TCP 三次握手(Three-Way Handshake)

TCP 名为传输控制协议,是一种可靠的传输层协议,IP 协议号为 6。原则上任何数据传输都无法确保绝对可靠,三次握手只是确保可靠的基本需要。在 TCP/IP 中,TCP 提供可靠的连接服务,采用三次握手建立一个连接。这个连接必须是一方主动打开,另一方被动打开的。握手之前主动打开连接的客户端结束 CLOSED 阶段,被动打开的服务器也结束 CLOSED 阶段,并进入 LISTEN 阶段。随后开始“三次握手”:

1️⃣第一次握手:客户端向服务器发送一段 TCP 报文,包括:

  1. 标志位为 SYN,表示“请求建立新连接”。
  2. 序号为 Seq=x (x一般为1)。
  3. 随后客户端进入 SYN_SENT 阶段,等待服务器确认。

2️⃣第二次握手:服务器接收到来自客户端的 TCP 报文之后,结束 LISTEN 阶段。并返回一段 TCP 报文,包括:

  1. 标志位为 SYN 和 ACK,表示“确认客户端的报文 Seq 有效,服务器能正常接收客户端发送的数据,并同意创建新连接”。
  2. 序号为 Seq=y。
  3. 确认号为 Ack=x+1表示收到客户端的 Seq 并将其值 +1 作为自己确认号 Ack 的值。随后服务器进入 SYN-RCVD 阶段。

3️⃣第三次握手:客户端接收到来自服务器的确认收到数据的 TCP 报文之后,明确了从客户端到服务器的数据传输是正常的,结束 SYN-SENT 阶段。并返回最后一段 TCP 报文。其中:

  1. 标志位为 ACK,表示“确认收到服务器同意连接的信号”
  2. 序号为 Seq=x+1表示收到服务器的确认号 Ack,并将其值作为自己的序号值;
  3. 确认号为 Ack=y+1表示收到服务器序号 Seq,并将其值 +1 作为自己的确认号 Ack 的值;
  4. 随后客户端进入 ESTABLISHED 阶段。

服务器收到来自客户端的“确认收到服务器数据”的 TCP 报文之后,明确了从服务器到客户端的数据传输是正常的。结束 SYN-SENT 阶段,进入 ESTABLISHED 阶段。

在客户端与服务器传输的 TCP 报文中,双方的确认号 Ack 和序号 Seq 的值,都是在彼此 Ack 和 Seq 值的基础上进行计算的,这样做保证了 TCP 报文传输的连贯性。一旦出现某一方发出的 TCP 报文丢失,便无法继续“握手”,以此确保了“三次握手”的顺利完成。

此后客户端和服务器进行正常的数据传输。这就是“三次握手”的过程。通过这样的三次握手,客户端与服务端建立起可靠的双工的连接,开始传送数据。 三次握手的最主要目的是保证连接是双工的,可靠更多的是通过重传机制来保证的。

TCP三次握手

为什么一定要进行三次握手来保证连接是双工的呢,一次或两次不行么?举个例子:把客户端比作男孩,服务器比作女孩。用他们的交往来说明“三次握手”过程:

  1. 男孩喜欢女孩,写了一封信告诉女孩:请和我交往吧。写完信之后,男孩焦急地等待,因为不知道信能否顺利传达给女孩。

  2. 女孩收到男孩的情书后,心花怒放,于是给男孩写了一封回信:我收到你的情书了,我也喜欢你,我愿意和你交往。写完信之后,女孩也焦急地等待,因为不知道回信能否能顺利传达给男孩。

  3. 男孩收到回信之后很开心,因为发出的情书女孩收到了,并且从回信中知道了女孩喜欢自己,并且愿意和自己交往。然后男孩又写了一封信告诉女孩:你的心意和信我都收到了,谢谢你,还有我爱你!

女孩收到男孩的回信之后,也很开心,因为发出的情书男孩收到了。由此男孩女孩双方都知道了彼此的心意,之后就快乐地交流起来了。

这就是通俗版的“三次握手”,期间一共往来了三封信也就是“三次握手”,以此确认两个方向上的数据传输通道是否正常。

同理对于 TCP 为什么需要进行三次握手,可以这样理解:为了保证服务端能收接受到客户端的信息并能做出正确的应答而进行前两次(第一次和第二次)握手,为了保证客户端能够接收到服务端的信息并能做出正确的应答而进行后两次(第二次和第三次)握手。

三、为什么要进行第三次握手

为了防止服务器开启一些无用的连接增加服务器开销以及防止已失效的连接请求报文段突然又传送到了服务端产生错误。

由于网络传输是有延时的(要通过网络光纤和各种中间代理服务器),在传输的过程中,比如客户端发起了 SYN=1 创建连接的请求(第一次握手)。

如果服务器就直接创建了这个连接并返回包含 SYN、ACK 和 Seq 等内容的数据包给客户端,这个数据包因为网络传输的原因丢失了,丢失之后客户端就一直没有接收到服务器返回的数据包。

客户端可能设置了一个超时时间,时间到了就关闭了连接创建的请求。再重新发出创建连接的请求,而服务器是不知道的,如果没有第三次握手告诉服务器“客户端收得到服务器响应的数据”的话,服务器是不知道“客户端有没有接收到服务器返回的信息”的。这个过程可理解为:

这样没有给服务器一个创建还是关闭连接端口的请求,服务器的端口就一直开着,等到客户端因超时重新发出请求时,服务器就会重新开启一个端口连接。那么服务器上没有接收到请求数据的上一个端口就一直开着,长此以往,这样的端口多了,就会造成服务器开销的严重浪费。

还有一种情况是已经失效的客户端发出的请求信息,由于某种原因传输到了服务器,服务器以为是客户端发出的有效请求,接收后产生错误。

所以需要“第三次握手”来确认这个过程,让客户端和服务器能够及时地察觉到因为网络等一些问题导致的连接创建失败,这样服务器的端口就可以关闭了不用一直等待。

也可以这样理解:“第三次握手”是客户端向服务器发送数据,这个数据就是要告诉服务器,客户端有没有收到服务器“第二次握手”时传过去的数据。若发送的这个数据是“收到了”的信息,接收后服务器就正常建立 TCP 连接,否则建立 TCP 连接失败,服务器关闭连接端口。由此减少服务器开销和接收到失效请求发生的错误。

四、TCP 四次挥手(Four-Way Wavehand)

所谓的四次挥手即 TCP 连接的释放(解除)。连接的释放必须是一方主动释放,另一方被动释放。客户端主动释放连接图解:

挥手之前主动释放连接的客户端结束 ESTABLISHED 阶段。随后开始“四次挥手”:

1️⃣首先客户端想要释放连接,向服务器发送一段 TCP 报文,其中:

  1. 标记位为 FIN,表示“请求释放连接”。
  2. 序号为 Seq=U。
  3. 随后客户端进入 FIN-WAIT-1 阶段,即半关闭阶段。并且停止在客户端到服务器方向上发送数据,但是客户端仍然能接收从服务器传输过来的数据。

注意:这里不发送的是正常连接时传输的数据(非确认报文),而不是一切数据,所以客户端仍然能发送 ACK 确认报文。

2️⃣服务器接收到从客户端发出的 TCP 报文之后,确认了客户端想要释放连接,随后服务器结束 ESTABLISHED 阶段,进入 CLOSE-WAIT 阶段(半关闭状态)并返回一段 TCP 报文,其中:

  1. 标记位为 ACK,表示“接收到客户端发送的释放连接的请求”。
  2. 序号为 Seq=V。
  3. 确认号为 Ack=U+1,表示是在收到客户端报文的基础上,将其序号 Seq 的值 +1 作为本段报文确认号 Ack 的值。
  4. 随后服务器开始准备释放服务器到客户端方向上的连接。

客户端收到从服务器发出的 TCP 报文之后,确认了服务器收到了客户端发出的释放连接请求,随后客户端结束 FIN-WAIT-1 阶段,进入 FIN-WAIT-2 阶段。

前"两次挥手"既让服务器知道了客户端想要释放连接,也让客户端知道了服务器收到了自己想要释放连接的请求。于是,可以确认关闭客户端到服务器方向上的连接了。

3️⃣服务器自从发出 ACK 确认报文之后,经过 CLOSED-WAIT 阶段,做好了释放服务器到客户端方向上的连接准备,再次向客户端发出一段 TCP 报文,其中:

  1. 标记位为 FIN,ACK,表示“已经准备好释放连接了”。注意:这里的 ACK 并不是确认收到服务器报文的确认报文。
  2. 序号为 Seq=W。
  3. 确认号为 Ack=U+1。表示是在收到客户端报文的基础上,将其序号 Seq 值 +1 作为本段报文确认号 Ack 的值。

随后服务器结束 CLOSE-WAIT 阶段,进入 LAST-ACK 阶段。并且停止在服务器到客户端的方向上发送数据,但是服务器仍然能够接收从客户端传输过来的数据。

4️⃣客户端收到从服务器发出的 TCP 报文,确认了服务器已做好释放连接的准备,结束 FIN-WAIT-2 阶段,进入 TIME-WAIT 阶段,并向服务器发送一段报文,其中:

  1. 标记位为 ACK,表示“接收到服务器准备好释放连接的信号”。
  2. 序号为 Seq=U+1。表示是在收到了服务器报文的基础上,将其确认号 Ack 值作为本段报文序号的值。
  3. 确认号为 Ack=W+1。表示是在收到了服务器报文的基础上,将其序号 Seq 值作为本段报文确认号的值。

随后客户端开始在 TIME-WAIT 阶段等待 2MSL。

服务器收到从客户端发出的 TCP 报文之后结束 LAST-ACK 阶段,进入 CLOSED 阶段。由此正式确认关闭服务器到客户端方向上的连接。

客户端等待完 2MSL 之后,结束 TIME-WAIT 阶段,进入 CLOSED 阶段,由此完成“四次挥手”。

后“两次挥手”既让客户端知道了服务器准备好释放连接了,也让服务器知道了客户端收到了自己准备好释放连接了。于是,可以确认关闭服务器到客户端方向上的连接了,由此完成“四次挥手”。

与“三次挥手”一样,在客户端与服务器传输的 TCP 报文中,双方的确认号 Ack 和序号 Seq 的值,都是在彼此 Ack 和 Seq 值的基础上进行计算的,这样做保证了 TCP 报文传输的连贯性,一旦出现某一方发出的 TCP 报文丢失,便无法继续"挥手",以此确保了"四次挥手"的顺利完成。

把客户端比作男孩,服务器比作女孩。通过他们的分手来说明“四次挥手”过程。

  1. “第一次挥手”:日久见人心,男孩发现女孩变了,于是决定分手,随即写了一封信告诉女孩。
  2. “第二次挥手”:女孩收到信之后,知道了男孩要和自己分手,立马给男孩写了一封回信:分手就分手,给我点时间,我要把你的东西整理好,全部还给你!男孩收到女孩的第一封信之后,明白了女孩知道自己要和她分手。随后等待女孩把自己的东西收拾好。
  3. “第三次挥手”:过了几天,女孩把男孩送的东西都整理好了,于是再次写信给男孩:你的东西我整理好了,快把它们拿走。
  4. “第四次挥手”:男孩收到女孩第二封信之后,知道了女孩收拾好东西了,可以正式分手了,于是再次写信告诉女孩:我知道了,这就去拿回来!这里双方都有各自的坚持。女孩自发出第二封信开始,限定一天内收不到男孩回信,就会再发一封信催促男孩来取东西!男孩自发出第二封信开始,限定两天内没有再次收到女孩的信就认为,女孩收到了自己的第二封信;若两天内再次收到女孩的来信,就认为自己的第二封信女孩没收到,需要再写一封信,再等两天……

倘若双方信都能正常收到,最少只用四封信就能彻底分手!这就是“四次挥手”。

五、为什么建立连接是三次握手,而关闭连接却是四次挥手?

TCP 建立连接时之所以“三次握手”,是因为在第二次“握手”过程中,服务器发送给客户端的 TCP 报文是以 SYN 与 ACK 作为标志位的。SYN 是请求连接标志,表示服务器同意建立连接;ACK 是确认报文,表示告诉客户端,服务器收到了它的请求报文。即 SYN 建立连接报文与 ACK 确认接收报文是在同一次“握手”当中传输的,所以“三次握手”不多也不少,正好让双方明确彼此信息互通。

TCP 释放连接时之所以需要“四次挥手”,是因为 FIN 释放连接报文与 ACK 确认接收报文是分别由第二次和第三次“握手”传输的。为何建立连接时一起传输,释放连接时却要分开传输?

建立连接时,被动方服务器结束 CLOSED 阶段进入“握手”阶段并不需要任何准备,可以直接返回 SYN 和 ACK 报文,开始建立连接。释放连接时,被动方服务器,突然收到主动方客户端释放连接的请求时并不能立即释放连接,因为还有必要的数据需要处理,所以服务器先返回 ACK 确认收到报文,经过 CLOSE-WAIT 阶段准备好释放连接之后,才能返回 FIN 释放连接报文。所以是“三次握手”,“四次挥手”。

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

为的是确认服务器是否收到客户端发出的 ACK 确认报文。

当客户端发出最后的 ACK 确认报文时,并不能确定服务器能够收到该段报文。所以客户端在发送完 ACK 确认报文之后,会设置一个时长为 2MSL 的计时器。MSL 指的是 Maximum Segment Lifetime:一段TCP报文在传输过程中的最大生命周期。2MSL 即是服务器发出为 FIN 报文和客户端发出的 ACK 确认报文所能保持有效的最大时长。

服务器在 1MSL 内没有收到客户端发出的 ACK 确认报文,就会再次向客户端发出 FIN 报文;

  1. 如果客户端在 2MSL 内,再次收到了来自服务器的 FIN 报文,说明服务器由于各种原因没有接收到客户端发出的 ACK 确认报文。客户端再次向服务器发出 ACK 确认报文,计时器重置,重新开始 2MSL 的计时。
  2. 否则客户端在 2MSL 内没有再次收到来自服务器的 FIN 报文,说明服务器正常接收了 ACK 确认报文,客户端可以进入 CLOSED 阶段,完成“四次挥手”。

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

从POI兴趣点获取到ArcGIS中热力图制作 1. POI获取及坐标点转换 POI获取我们要借助下面这个网站↓↓↓ 规划云http://guihuayun.com/poi/ 搜索POI兴趣点并复制兴趣点, 图 新建txt文本文档,粘贴兴趣点 图片 查看后得知,lng为横坐标,lat为纵坐标 文件,另存为csv格式文件,编码为utf—8 打开QGIS,因为我们pol点是从百度地图上获取的,为BD09坐标系,与WGS84有一定偏移【GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。 BD09:为. 阅读详情

相关推荐

复现论文报错解决

博主复现论文代码过程中遇到的各种报错及解决方案~

rellvera的博客 1058

【通俗易懂】三次握手与四次挥手

三次握手 1.1三次握手(Three-way Handshake)是指在建立一个TCP连接时,客户端和服务器会一共发送三个报文段。 初始时客户端和服务器都处于CLOSED状态,当服务器应用程序创建一个监听套接字时,服务器处于LISTEN状态。 1.第一次握手:客户端向服务器发送一个SYN报文段,报文段的首部中的标志位SYN置为1,另外还会指明客户端的初始化序列号ISN(seq=x),此时客户端处于SYN_SENT状态。 2.第二次握手:服务器收到SYN的报文段后,会以自己的SYNACK报文进行应答。该应答报

m0_52373742的博客 5万+

高等数学/概率论/数理统计/线性代数/离散数学面试-核心概念-问题理解

特征值与特征向量是线性代数中的概念,它们与线性变换有关。在线性变换中,如果存在非零向量 v ,使得当该向量通过变换后,其方向不变,只是长度发生了变化,那么这个向量 v 就是特征向量。而这个长度变化的比例因子,即变换前后向量长度的比值,称为特征值。数学公式表示:通俗易懂的解释:想象一下,你有一个可以伸缩的橡皮筋,这个橡皮筋可以代表一个向量。现在,你有一个特殊的机器,它可以改变橡皮筋的形状,但不会改变它延伸的方向。当你把橡皮筋放入机器中,机器会拉伸或压缩橡皮筋,但橡皮筋的方向保持不变。

m0_64198455的博客 2292

一文搞懂TCP的三次握手和四次挥手

一文搞懂TCP的三次握手和四次挥手

不脱发的程序猿 19万+

别再一个个BAPI调了!用CVI_EI_INBOUND_MAIN一次性搞定SAP BP主数据(附完整ABAP代码)

本文详细介绍了如何使用SAP标准函数CVI_EI_INBOUND_MAIN高效维护业务伙伴(BP)主数据,替代传统的多BAPI调用方式。通过完整ABAP代码示例,展示了如何一站式处理供应商、客户、公司代码等所有视图的创建与更新,提升数据一致性和开发效率。

weixin_29204205的博客 291

雷电模拟器+Python 3.11:手把手教你用Frida-dexdump给安卓APK脱壳(附GDA查壳)

本文详细介绍了如何使用雷电模拟器和Python 3.11配合Frida-dexdump工具进行安卓APK脱壳的全流程。从环境配置、工具安装到脱壳操作和问题排查,提供了包含30+关键截图的保姆级教程,适合零基础用户快速上手。重点讲解了Frida工具链的使用技巧和GDA查壳方法,帮助读者掌握移动应用安全分析的基础技能。

weixin_42568801的博客 326

【转】计算机网络——三次握手与四次挥手

【转】计算机网络——三次握手与四次挥手

NRWHF的博客 8851

UFS总体介绍及FPGA开发

通过实现UFS的主控制器、设备控制器等组件,我们可以在FPGA上进行UFS开发,并实现高速数据传输和低功耗特性的存储解决方案。物理层负责传输物理信号,数据链路层提供数据包的传输和错误检测功能,传输层处理数据包的分段、重组和重传,逻辑层管理设备和主控制器之间的命令和数据传输,文件系统层负责文件管理和数据存储。在本文中,我们将介绍UFS的总体架构和特性,并探讨如何在FPGA上进行UFS开发。这些组件的实现涉及到UFS协议的具体细节和硬件平台的特性,因此需要参考UFS协议规范和FPGA开发平台的相关文档。

PodProgram的博客 2135

TCP三次握手与四次挥手详解

本文详细介绍了TCP连接中的三次握手和四次挥手的原理,并在此基础上,详细介绍了其衍生的十多个面试问题。

青灯文案的博客 1万+

YOLOv11涨点改进 | 全网创新首发、主干改进篇 | CVPR 2025 | RAVLT主干让 YOLOv11 更加强大!通过增强线性注意力机制,特别在小目标和复杂背景的检测上表现突出

本文提出RAVLT主干网络,通过改进YOLOv11的空间特征建模能力,显著提升小物体和复杂背景检测性能。RAVLT采用秩增强线性注意力(RALA)机制,在保持线性计算复杂度的同时解决传统线性注意力低秩问题。RALA通过增强KV缓冲区和输出特征矩阵的秩,提高特征多样性和建模能力。实验表明,RAVLT在ImageNet-1k上达到84.4% Top-1准确率,仅需2600万参数和4.6GFLOPs,性能优于现有线性注意力模型。文章详细介绍了RAVLT模块结构、实现原理及在YOLOv11中的集成方法,包含四种主干

Ai缝合怪、助力小伙伴高效发论文 637

Android Framework 开发工程师职位深度解析与面试指南

摘要:博泰车联网科技(上海)股份有限公司招聘Android Framework开发工程师,负责车载系统的底层开发与优化。岗位要求5年以上经验,深入掌握Android Framework机制(WindowManager、PowerManager等模块),熟悉高通平台中间件架构及NDK/JNI开发,具备性能优化(启动时间、ANR处理)、OTA升级等能力。需熟练使用Android Studio、Git等工具,有车载开发经验者优先。工作内容包括Framework定制开发、问题排查及技术文档编写。

郑伟强dev的专栏 551

TCP三次握手和四次挥手过程

转载学习记录 首先先介绍什么是传输层: 1、三次握手 (1) 三次握手的详述 首先Client(客户)端发送连接请求报文,Server(服务器)段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。 最初两端的TCP进程都处于CLOSED关闭状态,A主动打开连接,而B被动打开连接。 (A、B关闭状态CLOSED——B收听状态LISTEN——A同步已发送状态SYN-SENT——B同步收到状态SYN-RCVD—

VictorFuture的博客 2万+

Unity零基础到入门 ☀️| 基础知识入门篇章,看完就可以做游戏啦! | 寻找C站宝藏

Unity入门基础知识。本篇文章介绍了关于Unity入门的一些基础知识,包括基本概念和使用实例。简单易上手,轻松实现Unity入门操作!

努力前行,总会成为自己心中的那道光 1万+

TCP协议——三次握手和四次挥手

理解tcp三次握手、四次挥手及相关问题

Dirty_artist的博客 1488

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TCP的三次握手和四次挥手

一、三次握手 三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包 主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备 过程如下: 第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN©,此时客户端处于 SYN_SENT 状态 第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,为了确认客户端的 SYN,将客户端的 ISN+1作为.

Silvia 9564

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

tcp三次握手和四次挥手的过程

TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号 并交换 TCP窗口大小信息。 1.第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认; 2.第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确.

weixin_51930116的博客 4926

TCP的三次握手和四次挥手实现过程。以及为什么需要三次握手?四次挥手?

TCP连接的三次握手和四次挥手实现原理

weixin_51380508的博客 6000

tcp三次握手和四次挥手

liTCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。 无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。 同时由于TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是全双工模式,所以需要四次挥手关闭连接。

chinusyan的专栏 3384

TCP三次握手和四次挥手

TCP 三次握手和四次挥手

热爱C++和golang的学生 2905

tcp的三次握手和四次挥手

1.第一次握手:第一次握手就是客户端发送一条tcp数据包,数据包里面将SYN标志位置为1,选择一个初始序列号J。2.第二次握手:当服务端接收到客户端发来的这条tcp数据包以后,会将SYN标志位置为1,ACK标志位也置为1,表示确认接收到你刚刚发来的这条信息并且也和你建立连接,然后将确认应答号置为J+1,然后也选择一个初始序列号K。

weixin_74994990的博客 1613

TCP—三次握手和四次挥手

客户端先向服务端发送 SYN 包请求建立连接,然后服务端向客户端发送 SYN+ACK 包同意连接,客户端收到 SYN+ACK 包后发送 ACK 包,服务端收到这个 ACK包 后,连接建立。因为这个过程中互相发送了三包数据,所以称之为三次握手。下面假设主动关闭方为客户端,被动关闭方为服务端。发送一个 FIN 包,表示它已经完成了数据发送,并希望关闭连接。发送一个 ACK 包来确认收到的 FIN 包。发送一个 FIN 包,表示它也准备好关闭连接。发送一个 ACK 包来确认收到的 FIN 包。

naozibuok的博客 1287
上一篇: HTTP 响应码大全
下一篇: TCP、UDP、HTTP、SOCKET
JFS_Study
博客等级 码龄6年 363粉丝 359原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值