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 可以保证两个方向上发送的数据都能被丢失。

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

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

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

    关注

    13

    文章

    10092

    浏览量

    90854
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1417

    浏览量

    82999
  • 端口
    +关注

    关注

    4

    文章

    1097

    浏览量

    33822

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    中微公司第四次蝉联客户满意度调查三冠王

    ”,上交所股票代码:688012)第四次荣获三冠王。今年5月,CSS公布了主要排名结果,此次白皮书披露了更多关于满意度调查的数据。
    的头像 发表于 07-21 14:39 1000次阅读

    TCP握手和四次挥手,这样解释太通俗易懂了!

    TCP连接的建立和释放分别通过“三握手”和“四次挥手”来完成。三握手过程
    的头像 发表于 04-24 19:33 1278次阅读
    <b class='flag-5'>TCP</b>三<b class='flag-5'>次</b>握手和<b class='flag-5'>四次</b><b class='flag-5'>挥手</b>,这样解释太通俗易懂了!

    揭秘TCP/IP三握手:深入探索网络通信的初始化过程

    网络连接状态 网络连接状态(11种)非常重要这里既包含三握手中的也包括四次断开中的,所以要熟悉。 LISTEN 被动打开,首先服务器需要打开一个socket进行监听,监听来自远方TCP端口的连接
    的头像 发表于 02-20 10:03 1008次阅读
    揭秘<b class='flag-5'>TCP</b>/IP三<b class='flag-5'>次</b>握手:深入探索网络通信的初始化<b class='flag-5'>过程</b>

    柔宇科技资产三流拍,第四次将分拆设备拍卖

    ,5天后将开启第四次拍卖,而这次拍卖与前三拍卖有所不同,这次将分拆设备来拍卖,起拍价为234.41万元。 柔宇科技最高时估值达到430亿元,而三流拍后,第四次流拍后,不再打包拍卖,
    的头像 发表于 01-09 18:25 1172次阅读

    如何监测TCP握手过程

    在计算机网络中,传输控制协议(TCP)是确保数据可靠传输的关键协议之一。TCP通过三握手过程来建立两个端点之间的连接,这个过程对于网络通信
    的头像 发表于 01-06 09:20 1274次阅读

    TCP握手的常见问题及解决方案

    TCP握手(Three-way Handshake)是TCP(传输控制协议)建立连接时的一个过程,它确保了两个端点在开始通信之前都准备好了。这个
    的头像 发表于 01-06 09:11 1828次阅读

    TCP握手与连接建立的关系

    在计算机网络中,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它负责在两个主机之间建立、维护和终止连接,确保数据的可靠传输。TCP连接的建立过程是通过三
    的头像 发表于 01-06 09:09 1152次阅读

    TCP握手的步骤详解

    1.TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。在两个主机之间建立通信之前,必须通过三握手过程来建立一个稳定的连接。这个过程确保了两个端点都准备好发送和接收数据。 2
    的头像 发表于 01-06 09:07 1562次阅读

    TCP握手的网络抓包分析

    在计算机网络中,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP通过三握手过程建立两个通信实体之间的连接,确保数据传输的可靠性和顺序性。
    的头像 发表于 01-06 09:05 1129次阅读

    TCP握手安全性分析

    TCP(传输控制协议)的三握手是建立可靠连接的重要机制,它确保了通信双方在数据传输前的连接状态是可靠和准确的。然而,从安全性的角度来分析TCP
    的头像 发表于 01-03 18:10 1547次阅读

    TCP握手与UDP的区别

    、连接管理、可靠性、效率等方面有着显著的区别。 1. TCP握手 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。在数据传输之前,TCP需要建立一个连接,这个
    的头像 发表于 01-03 17:35 1213次阅读

    TCP握手的基本原理

    ”的过程。这个过程不仅确保了双方准备好进行数据传输,而且还避免了一些网络攻击,如重放攻击。 什么是TCP握手? TCP
    的头像 发表于 01-03 17:25 1591次阅读

    TCP握手协议的作用

    连接,确保数据传输的可靠性。 TCP握手协议的基本概念 TCP握手协议是一种用于在两个网络实体之间建立连接的过程。这个
    的头像 发表于 01-03 17:15 1438次阅读

    TCP握手的详细过程

    TCP(传输控制协议)三握手是一种在互联网上建立一个可靠的、有序的和错误检测能力的连接的方法。这个过程确保了两个设备(通常是客户端和服务器)在数据传输开始之前能够相互确认对方的存在和状态。以下
    的头像 发表于 01-03 17:11 1815次阅读

    DHCP 四次握手

    DHCP的四次握手过程大白话大致如下: 客户端:刚开机,还没有IP地址,哪位佬能给个IP? 这个过程中,客户端就是一个网络小白,它也不知道自己IP是多少,就开始喊话,问有没有DHCP服务器能给它分配
    的头像 发表于 12-25 10:11 725次阅读