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

tcpdump入门——四次挥手

客户端断开tcp连接:

数据包分析:

上面抓到的四次挥手包确实展示了 TCP 连接终止的过程,但观察到的包顺序和标志位可能会和经典的四次握手示例稍有不同,这是因为在实际网络中,TCP 连接的终止过程可能会有一些优化或变化。我们来详细分析抓到的每个包:

抓包分析

  1. 第一个包

    • 时间: 08:00:44.589551
    • 内容:
IP VM-4-12-centos.53238 > 172.17.0.10.8090: Flags [F.], seq 3219806466, ack 1515373532, win 229, options [nop,nop,TS val 486610600 ecr 486600448], length 0

分析:

  • 这个包是由客户端 VM-4-12-centos 发送给服务器 172.17.0.10
  • 包含了 FINACK 标志位(Flags [F.]),表示客户端希望关闭连接,同时确认之前服务器发送的数据包。
  • seq 表示当前数据包的序列号,ack 表示确认号。
  • 这是客户端发起连接关闭的第一步,进入 FIN_WAIT_1 状态。

2. 第二个包

  • 时间: 08:00:44.589799
  • 内容:
IP 172.17.0.10.8090 > VM-4-12-centos.53238: Flags [F.], seq 1515373532, ack 3219806467, win 227, options [nop,nop,TS val 486610600 ecr 486610600], length 0

分析:

  • 这个包是服务器 172.17.0.10 发送给客户端 VM-4-12-centos 的。
  • 同时包含了 FINACK 标志位(Flags [F.]),表示服务器确认了客户端的 FIN 包,同时自己也要关闭连接。
  • 服务器进入 LAST_ACK 状态,等待客户端最后的确认包。

3. 第三个包

  • 时间: 08:00:44.589820
  • 内容:
IP VM-4-12-centos.53238 > 172.17.0.10.8090: Flags [.], ack 1515373533, win 229, options [nop,nop,TS val 486610600 ecr 486610600], length 0

分析:

  • 这是客户端 VM-4-12-centos 发送的 ACK 包,确认了服务器的 FIN 包。
  • 此时,客户端进入 TIME_WAIT 状态,等待一段时间以确保服务器收到了 ACK。
  • 最终,客户端和服务器都进入 CLOSED 状态,连接终止。

总结

  • 你抓到的包显示了一个 优化的四次挥手。在这种情况下,客户端和服务器各自的 FIN 包和对前一个 FIN 包的 ACK 一同发送,导致你看到的包中包含了 [F.] 标志位而不是单独的 F. 标志位。这是一种常见的 TCP 优化,减少了需要发送的包的数量,同时仍然遵循了 TCP 的协议要求。

  • 这种优化是在客户端和服务器都没有更多数据要发送时发生的,因此它们的 FINACK 包可以合并,节省了一个数据包的传输。

这种优化仍然符合 TCP 的四次挥手过程,只是减少了一个数据包。


http://www.mrgr.cn/news/747.html

相关文章:

  • 【大模型从入门到精通19】开源库框架LangChain LangChain文档加载器1
  • 对外提供开放式数据查询存储服务的成本考量
  • 网络丢包深度解析:影响、原因及优化策略
  • MySQL InnoDB中一个update语句从执行到提交的全过程(1)
  • 【242. 有效的字母异位词 简单】
  • 微服务:网关路由和登录校验
  • Angular网络请求
  • 显示窗口部件(Display Widgets)-Qt-思维导图-学习笔记
  • 从0开始搭建vue + flask 旅游景点数据分析系统(九):旅游景点管理之增删改查
  • Qt找不到QSound头文件,头文件QSoundEffect
  • 【面向对象】01类与对象及两者区别 简单认识方法
  • Python模块篇(五)
  • 推送本地windows环境镜像到阿里云镜像仓库
  • saas服务,对同一个功能,需要使用不同客户的接口。那么哪种设计模式可以解决我的问题?
  • 赋能未来制造:三品图文档管理软件在大连船推图文档管理中的深度应用与成效
  • CentOS 7的安装流程
  • jq8900-16p代码索引
  • Vue3+ElementUI中的Table组件的使用
  • 《SQL 中计算地理坐标两点间距离的魔法》
  • 《Ubuntu22.04环境下的ROS2学习笔记2》