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

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

3天内不再提示

TCP四次挥手过程分析

马哥Linux运维 来源:马哥Linux运维 2023-12-10 15:40 次阅读

TCP 四次挥手是为了关闭链接,TCP 连接是全双工的,因此每个方向都必须单独关闭,双方都可以主动关闭链接,首先发起关闭的一方执行主动关闭,而另一方执行被动关闭,关闭之后主机的资源将被释放。

四次挥手的过程如下:

b252de2e-9685-11ee-8b88-92fbcf53809c.jpg

第一次挥手:客户端发送一个 FIN=1,sep=u 的报文告诉服务器它打算关闭连接,不再发送数据,但可以接收数据,报文发出之后客户端将连接的状态变为 FIN_WAIT_1第二次挥手:服务端接收到客户端的 FIN 报文之后,返回一个 ACK=1,sep=v,ACKnum=u+1 的应答报文,接着服务端进入 CLOSE_WAIT 状态。客户端接收到服务端的 ACK 应答报文后进入 FIN_WAIT_2 状态第三次挥手:服务器处理完数据之后,向客户端发送 FIN 报文,表明它不再发送数据,接着服务端进入 LAST_ACK 状态。第四次挥手:客户端接收到 FIN 报文后,向服务端发送 ACK 应答报文,接着客户端进入 TIME_WAIT 状态,等待 2MSL 一段时间后客户端自动进入 CLOSED 状态,服务器收到 ACK 应答报文后进入 CLOSED 状态。

为什么挥手需要四次?

TCP 连接是全双工的,双方可以同时发送和接收数据。第一次客户端发送 FIN 报文后只表示它不再发送数据,但还是能接受数据。服务端接收到 FIN 报文,回一个 ACK 应答报文,这次服务端可以还有数据需要处理和发送,等它处理完成,发送一个 FIN 报文表示不再发送数据,客户端再回一个 ACK 应答报文。由于服务端处理数据需要时间,因此服务端的 ACK 和 FIN 报文是发送的,所以需要四次挥手。

TCP 四次挥手可以变成三次挥手吗?

如果被动关闭方没有数据需要发送,并且开启了TCP 延迟确认机制,那么第二次和第三次挥手就会合并传输,四次挥手变成三次挥手。

为什么主动关闭方需要等待 2MSL 后才关闭连接

MSL 是报文的最大生存时间,它是任何报文在网络上存在的最大时间,超过这个时间报文将丢失。如果第四次挥手的 ACK 报文丢失,被动关闭方将重发 FIN 报文,主动关闭方的 TIME_WAIT 时间为 2MSL 表示允许第四次挥手的 ACK 报文丢失一次

为什么主动关闭方需要 TIME_WAIT 状态

防止历史连接中的数据被后续相同四元组连接错误的接收:TIME_WAIT 设置成 2MSL 可以保证两个方向上发送的数据都能被丢失。

确保被动关闭方能正常关闭。

四元组指的是:目的地址、目的端口、源地址和源端口。通过四元组可以唯一确定一个连接。

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

    关注

    12

    文章

    9107

    浏览量

    85310
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1353

    浏览量

    79052
  • 端口
    +关注

    关注

    4

    文章

    962

    浏览量

    32043

原文标题:TCP 四次挥手过程分析

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问ADS1253E输入电压改变后,要连续采集5后,才能正常转换吗?

    、第四次电压一增加,但仍小于2.048V,知道第五开始,采样电压才接近于2.048V, 请问ADS1253E输入电压改变后,要连续采集5后,才能正常转换吗?
    发表于 12-02 07:56

    中微公司第四次荣膺2024福布斯中国创新力企业50强

    热烈祝贺中微公司第四次荣登福布斯中国创新力企业50强榜单! 近日,中微半导体设备(上海)股份有限公司(简称“中微公司”,股票代码:688012)第四次荣登福布斯中国创新力企业50强榜单。近3年来,此
    的头像 发表于 11-15 09:51 355次阅读

    芯昇科技参加IMT-2020(5G)推进组5G NTN工作组第四次会议

    近日,IMT-2020(5G)推进组5GNTN工作组第四次会议在北京北邮科技大厦召开,会议主要讨论了NTN技术研究和试验验证的课题进展,并同期举办了手机直连卫星技术研讨。芯昇科技有限公司(以下简称中
    的头像 发表于 10-23 08:05 439次阅读
    芯昇科技参加IMT-2020(5G)推进组5G NTN工作组第<b class='flag-5'>四次</b>会议

    深度解析TCP与UDP协议

    据传输之前,TCP要求双方通过三握手过程建立稳固的连接,确保数据传输的准确性。当数据传输完毕,双方需要通过四次挥手
    的头像 发表于 09-02 14:53 379次阅读
    深度解析<b class='flag-5'>TCP</b>与UDP协议

    简述TCP协议的三握手机制

    机制是建立一个可靠的连接的关键步骤。以下是对TCP协议三握手机制的介绍: 概述 TCP协议的三握手机制是一种用于在两个通信实体之间建立连接的过程
    的头像 发表于 08-16 10:57 915次阅读

    同一块板子上,摘取焊接了四次不同的比较器,比较器型号都是tlv3702,相同测试条件但结果却不同,为什么?

    测试,在该板上摘取焊接了个同型号比较器,四次测试结果偏差很大,且我自己排除了焊接问题,求问这是怎么一回事;个人猜测这几个比较器的功耗不同,只有功耗极低的比较器才能达到电路的理论输出,输出电压低的,功耗大,如果是我猜测的这个原因,那是不是我买的是假货;如果不是,请问有别的
    发表于 08-06 06:14

    MEMS 的第四次浪潮,来了!

    、小米、OPPO等各种消费电子品牌。 MEMS被业内人士号称“一辈子都做不完的产业”,迄今已经经历了三热潮:1990年~2000年汽车安全掀起第一热潮;2000年~2010年智能手机引发第二热潮
    的头像 发表于 07-25 16:46 548次阅读
    MEMS 的第<b class='flag-5'>四次</b>浪潮,来了!

    为什么ESP8266 TCP透传过程会丢包?

    为什么ESP8266 TCP透传过程会丢包?
    发表于 07-09 07:55

    四次工业革命已经到来

    每一人类的工业革命都伴随着新技术的诞生,蒸汽机,发电机,计算机。如果说存在第四次工业革命,那么一定是A1革命。自OpenAl发布以来,AI的智能训练推动了数据中心基础设施建设的快速增长。在IT设备
    的头像 发表于 04-08 09:51 373次阅读
    第<b class='flag-5'>四次</b>工业革命已经到来

    通信必备知识!TCP与UDP协议介绍及使用

    TCP与UDP是两个最常用的通讯协议。TCP是面向连接的协议,需要在收发数据前与对方建立可靠的连接,建立连接的过程为3握手,断开连接的过程
    的头像 发表于 03-15 08:19 1849次阅读
    通信必备知识!<b class='flag-5'>TCP</b>与UDP协议介绍及使用

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

    说说TCP握手的过程?为什么是三而不是两四次T
    的头像 发表于 02-04 11:03 664次阅读

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

    TCP协议致力于可靠的数据传输,即使在连接关闭时也不例外。在关闭连接之前,双方需要确保对方已经接收到了所有的数据,以避免数据丢失或不完整。
    的头像 发表于 02-03 16:51 5975次阅读
    <b class='flag-5'>tcp</b>协议<b class='flag-5'>四次</b><b class='flag-5'>挥手</b><b class='flag-5'>过程</b>及原因

    传输控制协议TCP特点及三握手过程

    TCP的主要功能包括分段、确认、重传、排序和流控等,以保证数据传输的可靠性和顺序性。TCP通过将数据流分割成适当长度的报文段,并对每个段进行编号,以便接收端实体按序接收并重组为原始数据流。
    的头像 发表于 02-03 16:38 1048次阅读
    传输控制协议<b class='flag-5'>TCP</b>特点及三<b class='flag-5'>次</b>握手<b class='flag-5'>过程</b>

    TCP和UDP协议有什么区别?如何通过网关实现TCP协议通信?

    四次握手就是指断开的过程。而UDP可以立即传输数据,并不需要建立三握手连接。两者相比,TCP就像是挂了专家号,可以保证及时看病;而UDP就像是挂了普通门诊,需要排队才能看病。 另一方
    的头像 发表于 01-24 11:07 595次阅读
    <b class='flag-5'>TCP</b>和UDP协议有什么区别?如何通过网关实现<b class='flag-5'>TCP</b>协议通信?

    浅谈TCP握手和四次挥手

    在计算机网络的基本概念中,分层次的体系结构是最基本的。计算机网络体系结构的抽象概念较多,在学习时要多思考。这些概念对后面的学习很有帮助。
    的头像 发表于 01-03 13:40 730次阅读
    浅谈<b class='flag-5'>TCP</b>三<b class='flag-5'>次</b>握手和<b class='flag-5'>四次</b><b class='flag-5'>挥手</b>