当前位置: 首页 > news >正文

【计算机网路】--tcp四次挥手关闭连接

文章目录

      • 目的:
      • 第一次挥手(Client → Server )
      • 第二次挥手(Server → Client)
      • 第三次挥手(Server → Client)
      • 第四次挥手(Client → Server)
      • 客户端TIME_WAIT 状态的作用

在这里插入图片描述

目的:

是为了双方都能可靠地关闭连接,并确保数据全部传输完毕。因为 TCP 是全双工通信(即两边都能独立发送数据),所以关闭时每一方都需要单独“说再见”。

第一次挥手(Client → Server )

  • 客户端 发送一个 FIN 报文段(Seq=u)给 服务端。

  • 表示:我已经没有数据要发了,但我还能接收。

  • Client: ESTABLISHED → FIN_WAIT_1

第二次挥手(Server → Client)

  • 服务端 收到 FIN 后,回复一个 ACK 报文(Ack=u+1)。
  • 表示:我知道你想关闭连接了。
  • Server: ESTABLISHED → CLOSE_WAIT
  • Client: FIN_WAIT_1 → FIN_WAIT_2

第三次挥手(Server → Client)

  • Server 在处理完剩下的业务后,也发出一个 FIN 报文(Seq=v)。
  • 表示:我也没有数据要发了,我们可以断开连接。
  • Server: CLOSE_WAIT → LAST_ACK

第四次挥手(Client → Server)

  • Client 收到 FIN 后,发送 ACK 报文(Ack=v+1)。
  • 表示:确认断开。
  • Client: FIN_WAIT_2 → TIME_WAIT(等待 2MSL) →CLOSED
  • Server: LAST_ACK → CLOSED(关闭连接)

客户端TIME_WAIT 状态的作用

  • 客户端并不会马上关闭连接,而是要等待2 倍最大报文生存时间(MSL),确保:

    1. 对方收到最后这个 ACK 报文(避免丢失);
    2. 避免之前连接残留的数据影响新的连接。

只有等到 TIME_WAIT 结束后,客户端才真正关闭连接(进入 CLOSED 状态)。

http://www.xdnf.cn/news/350299.html

相关文章:

  • pm2 list查询服务时如何通过name或者namespace进行区分
  • 文本文件的定义
  • CTF杂项入门(BUUCTF-Misc第一页)
  • Python机器学习中的字典列表特征提取
  • 基于vue3+QuillEditor的深度定制
  • [数据库之十四] 数据库索引之位图索引
  • 最短路径-Dijkstra及其堆优化版本
  • 指纹浏览器技术解析:从原理到实战的多账号管理解决方案
  • 数据清洗(ETL/ELT)原理与工具选择指南:企业数字化转型的核心引擎
  • 常用 svg ICON
  • FreeRTOS如何检测内存泄漏
  • Linux操作系统中的通知机制 - 监控文件事件 inotify
  • 印度股票市场API对接文档
  • 麒麟信安举办特种行业核心代理商中级技术认证培训班
  • 【计网】TCP/IP四层模型(一)
  • [硬件电路-18]:MCU - LPC1765FBD100是恩智浦(NXP)半导体推出的一款基于ARM Cortex-M3内核的高性能32位微控制器
  • 如果说开启的TIM3定时器有ccr1,ccr2,ccr3,我想要关闭ccr2的PWM输出,怎么通过代码实现
  • AI优化高频PCB信号完整性:猎板PCB的技术突破与应用实践
  • 多环串级PID
  • 主场景 工具栏 植物卡牌的渲染
  • 从“看不见”到“一目了然”:网络流量分析与监控大屏
  • 手撕基于AMQP协议的简易消息队列-6(服务端模块的编写)
  • 云计算运维
  • vue实现半圆转盘旋转(门户网页上)
  • 企业级UI测试的“双保险”:TestComplete的智能对象识别与详细报告功能
  • 二叉搜索树的插入操作(递归遍历)
  • 力扣-142.环形链表II
  • 引文索引数据库在科研中的应用
  • 问题 | 低空经济未来发展前景机遇及挑战
  • BFS算法的学习