0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

tcp协议四次挥手过程及原因

星星科技指导员 来源:网络整理 作者:网络整理 2024-02-03 16:51 次阅读

TCP协议的四次挥手过程如下:

第一次挥手:客户端发送一个FIN报文段给服务器,关闭客户端到服务器的数据传送,客户端进入FIN_WAIT_1状态。

第二次挥手:服务器收到FIN报文段后,发送一个ACK报文段给客户端,确认序号为收到序号+1,服务器进入CLOSE_WAIT状态。

第三次挥手:服务器发送一个FIN报文段给客户端,关闭服务器到客户端的数据传送,服务器进入LAST_ACK状态。

第四次挥手:客户端收到FIN报文段后,客户端进入TIME_WAIT状态,接着发送一个ACK报文段给服务器,确认序号为收到序号+1,服务器进入CLOSED状态。完成四次挥手。

其中,第二次挥手和第三次挥手都是为了确认双方都已经完成数据的发送和接收。在第二次挥手后,客户端可以继续向服务器发送数据,直到收到服务器的FIN报文段。同样地,在第三次挥手后,服务器也可以继续向客户端发送数据,直到收到客户端的ACK报文段。

连接释放(四次挥手)

①A,B都处于ESTABLISHED状态; ​

②客户进程A主动关闭连接,向B发送连接释放请求报文段(报文段不挟带数据),FIN=1,序列号=u,进入FIN-WAIT-1(终止等待1)状态; ​

③B收到A的连接释放报文段后,应答确认,ACK=1,确认号=u+1,序号=v,进入CLOSE-WAIT (关闭等待)状态,B仍然可以向A发送数据,A进入FIN-WAIT-2(终止等待2)状态; ​

④若B已经没有向A的数据,其应用进程通知TCP连接释放,B向A发送连接释放报文段,FIN=1,ACK=1,确认号=u+1,序号=w,进入LAST-ACK(最后确认)状态;

​ ⑤A收到B的链接释放报文段后,应答确认,ACK=1,确认号=w+1,序号=u+1,进入TIME-TIME-WAIT(时间等待)状态,B收到A的确认后,进入CLOSED状态。

A必须经过时间等待计时器设置的时间2MSL(默认2分钟)后,进入CLOSED状态:确保A发送的最后一个ACK报文段能够到达B;防止“已失效的连接请求报文段”出现在本连接中。

tcp协议为什么四次挥手

TCP协议的四次挥手是用于关闭连接的过程,与建立连接的三次握手不同。其原因可以总结为以下几点:

1. 全双工通信:TCP连接是全双工的,意味着双方都可以同时发送和接收数据。因此,在关闭连接时,客户端和服务端都需要发送一个报文来表示自己没有数据要发送了。

2. 确保数据完整性:TCP协议致力于可靠的数据传输,即使在连接关闭时也不例外。在关闭连接之前,双方需要确保对方已经接收到了所有的数据,以避免数据丢失或不完整。

3. 等待延迟数据:关闭连接时可能存在延迟的数据,这些数据可能还在传输中。通过四次挥手,每一方可以告知对方自己已经没有数据要发送,同时等待对方的确认,以确保关闭连接之前已经传输完所有的数据。

4. 保持连接的可靠性:在TCP连接关闭后,可能还会继续有来自网络中的延迟报文到达。发送方需要等待一个固定的时间,以确保自己收到了对方的确认,并且确认对方已经关闭了连接。

因此,四次挥手的过程主要是为了确保双方都能够正确地关闭连接,保证数据的完整性和可靠性。通过经过四次挥手,连接才能真正地关闭,并释放双方所占用的资源。

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据传输
    +关注

    关注

    9

    文章

    1530

    浏览量

    63567
  • 服务器
    +关注

    关注

    12

    文章

    8120

    浏览量

    82531
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1272

    浏览量

    78304
  • 客户端
    +关注

    关注

    1

    文章

    282

    浏览量

    16343
  • TCP协议
    +关注

    关注

    1

    文章

    83

    浏览量

    12004
收藏 人收藏

    评论

    相关推荐

    讲一讲的TCP三次握手和四次挥手

    如果你学过网络基础知识,那么你一定对TCP三次握手不陌生。今天我想用通俗的话来给大家讲一讲TCP三次握手和四次挥手。毕竟,这个知识点在面试时被问到的概率很高!
    的头像 发表于 02-03 10:43 2379次阅读
    讲一讲的<b class='flag-5'>TCP</b>三次握手和<b class='flag-5'>四次</b><b class='flag-5'>挥手</b>

    TCP协议如何优化

    TCP/IP协议经常在面试中会被问到,基础的会问三次握手和四次挥手,更深一点可能会问TCP如何优化等问题,下面我们来再详细了解一下这些问题。
    的头像 发表于 10-08 15:15 831次阅读
    <b class='flag-5'>TCP</b><b class='flag-5'>协议</b>如何优化

    TCP协议详细解析

    TCPTCP/IP协议族中一个最核心的协议,它向下使用网络层IP协议,向上为应用层HTTP、FTP、SMTP、POP3、SSH、Telne
    的头像 发表于 11-03 09:14 1752次阅读
    <b class='flag-5'>TCP</b><b class='flag-5'>协议</b>详细解析

    同一单脉冲四次采样问题

    对单脉冲四次采样,第一采样的时间是当脉冲到来时就采样,第二采样的时间是当第二脉冲到来时要延时一个时钟周期,第三采样的时间是第三个脉冲
    发表于 10-08 15:46

    这样讲TCP的恋爱和分手大家都懂了

    /IP协议握手与四次握手流程解析▪ TCP报文格式TCP/IP协议的详细信息参看《
    发表于 07-25 14:47

    分享个讲解TCP的,很好懂

    的close函数结束这段socket(骚)恋情,所以两close分别触发了两FIN包,导致没有和ACK合并为一个包,所以握手3,分手要4。下面来正经的,
    发表于 07-25 20:04

    握手,四次挥手你懂吗

    程序员面试被问到“三握手,四次挥手”怎么办?
    发表于 04-08 07:23

    TCP/IP协议连接指南

    中扮演什么角色了。文章目录ESP32 单片机学习笔记 - 07 - TCP连接一、例程实践1)建立TCP客户端 - tcp_client2)总结二、TCP/IP
    发表于 02-17 07:45

    TCP三次握手过程四次挥手过程说明

    连接 三次握手过程说明: 1. 由客户端发送建立 TCP 连接的请求报文,其中报文中包含 seq 序列号,是由发送端随机生成的,并且将报文中的 SYN 字段置为 1,表示需要建立 TCP 连接
    的头像 发表于 03-01 12:00 3943次阅读

    TCP三次握手和四次挥手以及11种状态资料下载

    电子发烧友网为你提供TCP三次握手和四次挥手以及11种状态资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-15 08:41 2次下载
    <b class='flag-5'>TCP</b>三次握手和<b class='flag-5'>四次</b><b class='flag-5'>挥手</b>以及11种状态资料下载

    TCP三次握手和四次挥手过程中的异常情况

    TCP 三次握手和四次挥手过程中,途中某一步的报文丢失了,会发生什么?
    的头像 发表于 09-05 10:23 957次阅读

    TCP建立连接概述及三次握手、四次挥手的流程

    具备上述四个条件后A获取B的信息是有要求的,根本上的要求是数据信道可靠,就是平时所说的可靠连接,那么如何保证连接的可靠性呢,TCP协议就是靠确认应答机制、超时重传机制等保证连接可靠性的,接下来就通过TCP
    的头像 发表于 03-23 15:57 769次阅读
    <b class='flag-5'>TCP</b>建立连接概述及三次握手、<b class='flag-5'>四次</b><b class='flag-5'>挥手</b>的流程

    TCP四次挥手过程与状态

    这样他们两个之间就没有什么关系。这样一个过程同样像极了TCP要断开连接的过程
    的头像 发表于 07-10 16:25 510次阅读
    <b class='flag-5'>TCP</b><b class='flag-5'>四次</b><b class='flag-5'>挥手</b>的<b class='flag-5'>过程</b>与状态

    关于TCP协议总结的硬核干货

    本文给出TCP报文格式的详细说明,介绍网络数据包传递中如何进行地址解析、建立TCP连接的三次握手过程以及断开TCP连接的四次
    发表于 11-17 09:26 237次阅读
    关于<b class='flag-5'>TCP</b><b class='flag-5'>协议</b>总结的硬核干货

    说说TCP三次握手的过程?为什么是三次而不是两次、四次

    三次而不是两次或四次。 首先,我们需要了解TCP是一种面向连接的协议。在进行数据传输之前,发送端和接收端需要建立一个可靠的连接。TCP三次握手就是用来建立这个连接的
    的头像 发表于 02-04 11:03 228次阅读