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

计网 - TCP四次挥手原理全曝光:深度解析与实战演示

文章目录

  • Pre
  • 导图
  • 过程分析
  • 抓包实战
    • 第一次挥手 【FIN +ACK】
    • 第二次挥手 【ACK】
    • 第三次挥手 【FIN+ACK】
    • 第四次挥手 【ACK】
  • 小结

在这里插入图片描述


Pre

计网 - 传输层协议 TCP:TCP 为什么握手是 3 次、挥手是 4 次?

计网 - TCP三次握手原理全曝光:深度解析与实战演示


导图

在这里插入图片描述


过程分析

在这里插入图片描述

  • 客户端打算关闭连接,此时会发送一个 TCP 首部 FIN 标志位被置为 1 的报文,也即 FIN 报文,之后客户端进入 FIN_WAIT_1 状态。
  • 服务端收到该报文后,就向客户端发送 ACK 应答报文,接着服务端进入 CLOSE_WAIT 状态。
  • 客户端收到服务端的 ACK 应答报文后,之后进入 FIN_WAIT_2 状态。
  • 等待服务端处理完数据后,也向客户端发送 FIN 报文,之后服务端进入 LAST_ACK 状态。
  • 客户端收到服务端的 FIN 报文后,回一个 ACK 应答报文,之后进入 TIME_WAIT 状态
  • 服务端收到了 ACK 应答报文后,就进入了 CLOSE 状态,至此服务端已经完成连接的关闭。
  • 客户端在经过 2MSL 一段时间后,自动进入 CLOSE 状态,至此客户端也完成连接的关闭。

抓包实战

在这里插入图片描述

在这里插入图片描述

120.221.143.6 是服务器的ip , 20.10.40.179是客户端的ip , 由此可知 这一次挥手是由 服务器 发起的 。


看之前再看一下这个图哈

在这里插入图片描述

第一次挥手 【FIN +ACK】

【数据链路层 】

在这里插入图片描述


【网络层 IP】

在这里插入图片描述


【传输层TCP】

在这里插入图片描述


第二次挥手 【ACK】

在这里插入图片描述


第三次挥手 【FIN+ACK】

在这里插入图片描述


第四次挥手 【ACK】

在这里插入图片描述


小结

再来回顾下四次挥手双方发 FIN 包的过程,就能理解为什么需要四次了。

  • 关闭连接时,客户端向服务端发送 FIN 时,仅仅表示客户端不再发送数据了但是还能接收数据。 服务端收到客户端的 FIN 报文时,先回一个
  • ACK 应答报文,而服务端可能还有数据需要处理和发送,等服务端不再发送数据时,才发送 FIN 报文给客户端来表示同意现在关闭连接。

从上面过程可知,服务端通常需要等待完成数据的发送和处理,所以服务端的 ACK 和 FIN 一般都会分开发送,因此是需要四次挥手

TCP 由于是全双工的,故断开链接需要四次挥手 。

在这里插入图片描述

http://www.lryc.cn/news/259897.html

相关文章:

  • 个人养老金知多少?
  • gpt3、gpt2与gpt1区别
  • PyQt6 QDateEdit日期控件
  • 【无线网络技术】——无线城域网(学习笔记)
  • RK3568平台 OTA升级原理
  • mysql迁移步骤
  • 计算机网络应用层(期末、考研)
  • Jenkins离线安装部署教程简记
  • 如果一个嵌套类需要在单个方法之外仍然是可见,或者它太长,不适合放在方法内部,就应该使用成员类。
  • Vue3 中的 Proxy--读懂ES6中的Proxy
  • zk_dubbo
  • Windows 安全基础——NetBIOS篇
  • 【基础知识】Hadoop生态系统
  • [Linux] LAMP架构
  • HPM5300系列--第二篇 Visual Studio Code开发环境以及多种调试器调试模式
  • LeetCode2697. Lexicographically Smallest Palindrome
  • Leetcode 40 组合总和 II
  • 智慧灯杆技术应用分析
  • 手动搭建koa+ts项目框架(ts项目实现开发阶段实时查看)
  • 在Nexus上配置Docker镜像仓库
  • 深入理解C语言的函数参数
  • 【C++】策略模式
  • 什么时候使用匿名类,匿名类解决了什么问题?为什么需要匿名类 ?
  • 怎么让gpt帮忙改文章 (1) 快码论文
  • Android源码下载流程
  • ArrayList与顺序表(带完整实例)
  • 智能冶钢厂环境监控与设备控制系统(边缘物联网网关)
  • 【Python】conda镜像配置,.condarc文件详解,channel镜像
  • 实战章节:在Linux上部署各类软件
  • 铭飞CMS list 接口 SQL注入漏洞复现