TCP_握手+挥手过程状态变化分析

TCP状态解读

握手+挥手过程状态变化

在这里插入图片描述

同时握手

双发同时发起syn请求,状态变化过程如下:
在这里插入图片描述
图片来源:http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh-4.htm

同时挥手

4次挥手,可以理解为2次;TCP是全双工协议,双方各进行了两次处理,均需要Fin和Ack。
下面是双方同时发起关闭是的状态变化过程。
在这里插入图片描述
图片来源:http://www.tcpipguide.com/free/t_TCPConnectionTermination-4.htm

状态机

对比了《TCP/IP详解*卷一》、TCP RFC、The TCP/IP Guide这三份资料里面的状态变化图,
个人觉得TCP RFC、The TCP/IP Guide里面的相对好理解一些。
TCP/IP Guide:
在这里插入图片描述
图片来源:http://www.tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF-2.htm

TCP RFC:
在这里插入图片描述

抓包分析

握手

参见《TCP报文格式解读》中的TCP握手过程抓包分析

挥手

参见《TCP报文分析》中的挥手抓包分析

案例分析

分享几个自己工作中碰到的具体问题

SYN被拒绝

问题现象,web访问内部的文档库(同网段),笔记本用无线可以正常访问,台式机用有线网页显示异常,笔记本切有线也正常,没有头绪,抓包分析;
台式机抓包,发送syn后收到了服务端的RST包,在服务端抓包,没有看到台式机发起的请求;
查看服务器的mac,发现和连接目标mac地址不一致。基于这个信息再排查,有两台设备配置了这个ip。
在这里插入图片描述

连接异常断开

问题现象,使用定向4G流量卡上网,和服务器交互时连接一直无法建立,本地抓包发现请求被服务端重置;而使用普通的流量卡上网正常;
基于这个现象大概率是定向流量卡有问题;
服务端、本地同时抓包分析同一次请求过程,上面部分是server、下面部分是本地;果不其然,服务端也收到了RST的包,符合预期。
在这里插入图片描述

参考资料

  • The TCP/IP Guide
  • tcp rfc
  • TCP的那些事(上)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/191916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux的权限(一)

目录 权限的本质 Linux权限的概念 如何创建与删除普通用户 创建普通用户: 设置用户密码: 删除普通用户: 删除与该用户关联的主目录和邮件目录 : su指令 sudo指令 Linux权限管理 Linux中文件访问者有三种“人” Linux…

使用 Go 构建高性能的命令行工具

命令行工具(CLI)在软件开发中扮演着重要的角色,尤其是在自动化工具、开发工具链和服务器管理等领域。Go 语言以其简洁性和高性能而闻名,非常适合用来创建强大且高效的 CLI 工具。本文将详细介绍如何使用 Go 语言来构建 CLI 应用&a…

DL中的GPU使用问题

写在前面 在使用GPU进行深度学习训练经常会遇到下面几个问题,这里做一个解决方法的汇总。 🐕Q1🐕:在一个多卡服务器上,指定了cuda:1,但是0号显卡显存还是会被占用一定量的显存。 这个问题很经典的出现场景就…

甄知黄建华:从“天赋平平”到IT行业“六边形战士”,探索出企业数智化转型的“强IT”之路

本期我们先抛开人物和主体不表,从大环境开始谈起。随着科技的快速发展和全球商业环境的不断变化,中国企业对灵活性、创新性、全球化和效率的需求是迫切的,进行数字化转型来支撑企业的业务变革、组织优化已是业界共识。如何根据企业的实际情况…

【Element-ui】Element-ui是什么?如何安装

文章目录 前言一. 什么是Element UI?二. 安装Element UI2.1 安装方法12.2 安装方法2 三、引入Element3.1 完整引入3.2 按需引入 总结 前言 在Web开发中,使用现成的UI组件库能够极大地提高开发效率。而Element UI(饿了么团队开发的一套基于Vue.js的UI组…

锐捷EWEB网管系统 RCE漏洞复现

0x01 产品简介 锐捷网管系统是由北京锐捷数据时代科技有限公司开发的新一代基于云的网络管理软件,以“数据时代创新网管与信息安全”为口号,定位于终端安全、IT运营及企业服务化管理统一解决方案。 0x02 漏洞概述 Ruijie-EWEB 网管系统 flwo.control.ph…

定时任务特辑 | Quartz、xxl-job、elastic-job、Cron四个定时任务框架对比,和Spring Boot集成实战

专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9 Python 专栏:http://t.csdnimg.cn/hMwPR Redis 专栏:http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏:http://t.csdni…

Docker从入门到实战:Docker快速部署、Dockerfile编写、容器间通信及共享数据实战、Docker-compose详解

文章目录 一、基本概念1、体系结构2、容器与镜像1&#xff09;镜像2&#xff09;容器a、容器内部结构b、容器生命周期 3、执行流程 二、常用命令docker pull 镜像名<:tags> &#xff1a;从远程仓库抽取镜像docker images&#xff1a;查看本地镜像docker run 镜像名<:t…

达梦8搭建DataWatch集群

一、集群配置 官方文档本次配置集群需要两台服务器主库&#xff1a;dmdw1&#xff0c;10.0.0.100备库&#xff1a;dmdw2&#xff0c;10.0.0.110确认监视器&#xff1a;10.0.0.110普通监视器&#xff1a;10.0.0.100 二、初始化数据库 2.1 主库执行 su - dmdba cd /opt/dmdbm…

利用Python爬虫爬取豆瓣电影排名信息

可以使用第三方库Beautiful Soup和Requests来编写一个简单的爬虫&#xff0c;从豆瓣电影Top100页面获取信息 import requests from bs4 import BeautifulSoupdef get_douban_top100():url https://movie.douban.com/top250headers {User-Agent: Mozilla/5.0 (Windows NT 10.…

C++11入门

目录 C11简介 统一的列表初始化 声明 范围for循环 STL中一些变化 C11简介 在2003年C标准委员会提交了一份技术勘误表(简称TC1).使得C03这个名字取代了C98成为C11之前的最新C标准名称.但由于C03主要是对C98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯的把…

给定一组经纬度如何判断某点是否在这组经纬度的范围之内(电子围栏实现代码)

方法一&#xff1a; 使用JTS Topology Suite 是 Java 的空间数据模型和空间分析操作的库&#xff0c;用于处理地理空间数据和进行空间分析。 1.1引入maven <dependency><groupId>org.locationtech.jts</groupId><artifactId>jts-core</artifactId…

代数学笔记6: 群同态基本定理,循环群结构定理

群同态 ρ : G 1 ( , ⋅ ) → G 2 ( , ∘ ) g ↦ ρ ( g ) \rho:G_1(\ ,\cdot)\to G_2(\ ,\circ)\\ \qquad\ \ g\mapsto \rho(g) ρ:G1​( ,⋅)→G2​( ,∘) g↦ρ(g) ∀ g 1 , g 2 ∈ G \forall g_1,g_2\in G ∀g1​,g2​∈G, 有 ρ ( g 1 ⋅ g 2 ) ρ ( g 1 ) ∘ ρ ( g 2 …

解决报错:error: (-215:Assertion failed) inv_scale_x > 0 in function ‘cv::resize‘

需求背景 欲使用opencv的resize函数将图像沿着纵轴放大一倍&#xff0c;即原来的图像大小为(384, 512), 现在需要将图像放大为(768, 512)。 源码 import cv2 import numpy as np# 生成初始图像 img np.zeros((384, 512), dtypenp.uint8) img[172:212, 32:-32] 255 H, W …

卷积神经网络-3D医疗影像识别

文章目录 一、前言二、前期工作1. 介绍2. 加载和预处理数据 二、构建训练和验证集三、数据增强四、数据可视化五、构建3D卷积神经网络模型六、训练模型七、可视化模型性能八、对单次 CT 扫描进行预测 一、前言 我的环境&#xff1a; 语言环境&#xff1a;Python3.6.5编译器&a…

题目:DNA序列修正(蓝桥OJ 3904)

题目描述&#xff1a; 解题思路&#xff1a; 从左到右扫描第一条 DNA 序列和第二条 DNA 序列的每一个位置&#xff0c;检查它们是否互补。 如果某个位置不互补&#xff0c;我们需要寻找第二条 DNA 序列中后续位置的碱基&#xff0c;看是否可以通过交换使这两个位置都互补。如果…

〖大前端 - 基础入门三大核心之JS篇㊹〗- DOM事件委托

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;不渴望力量的哈士奇(哈哥)&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

ssl下载根证书和中间证书

为了保证客户端和服务端通过HTTPS成功通信&#xff0c;您在安装SSL证书时&#xff0c;也需要安装根证书和中间证书。本文介绍如何获取根证书和中间证书。 使用说明 如果您的业务用户通过浏览器访问您的Web业务&#xff0c;则您无需关注根证书和中间证书&#xff0c;因为根证书…

ELK高级搜索,深度详解ElasticStack技术栈-下篇

前言&#xff1a;ELK高级搜索&#xff0c;深度详解ElasticStack技术栈-上篇 14. search搜索入门 14.1. 搜索语法入门 14.1.1 query string search 无条件搜索所有 GET /book/_search结果&#xff1a; {"took" : 969,"timed_out" : false,"_shar…

头歌JUnit单元测试相关实验进阶

JUnit是一个由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架&#xff08;regression testing framework&#xff09;&#xff0c;主要供 Java 开发人员编写单元测试。Junit在极限编程和重构中被极力推荐使用&#xff0c;因为它可以大大地提高开发的效率。 Junit的特性&…