Wireshark分析tcp交互过程

news2024/12/27 13:43:11

三次握手

客户端发起请求

Tcp段长度为575字节,seq=1,ack=1,next_seq=576

服务器响应:

Tcp段长度为175字节,seq=1,ack=576,next_seq=176

客户端响应:

Tcp段长度523字节,seq=576,ack=176,next_seq=1099

服务端响应:

Tcp端长度176字节,seq=176,ack=1099,net_seq=352

客户端响应:

Tcp段长度494字节,seq=1099,ack=352,next_seq=1593

服务端响应:

Tcp段长度176字节,seq=352,ack=1593,next_seq=528

客户端响应:

Tcp段长度575字节,seq=1593,ack=528,next_seq=2168

……

客户端响应:

Tcp段长度464字节,seq=2610,ack=1338,next_seq=3074。

PSH标志位

单词PUSH,意思是“推”。

接收缓冲区和发送缓冲区

进程A发送数据时,并不是直接发送,而是先写到自己的发送缓冲区。接收进程B接收到TCP报文时,会先将数据放入接收缓冲区。

PSH作用

将发送缓冲区的数据发送出去,将数据从接收缓冲区读取的时间是不确定的。

发送端

TCP模块自行决定,什么时候将发送缓冲区中数据打包成TCP报文,但如果发送缓冲区满了TCP同样会将数据打包发送。由于有MSS(最大报文段长度)的限制,数据可能会被打包成一个或多个TCP报文段。最后一个报文段会标记为PSH。

接收端

如果接收方接收到的某个TCP报文段包含PSH标志,接收方就会立即将缓冲区的所有数据推给进程。同样的,接收缓冲区如果满了也会推。

总结

发送方发送数据进行打包时,会将最后一个打包的TCP报文加上PSH标志;

接收方收到含有PSH的报文,会立刻把接收缓冲区的数据推给进程。

观察以上tcp报文可知:

1条tcp报文中的tcp段长度==seq_next — seq。

发送方tcp报文中的seq_next == 接受方回应tcp报文中的ack,发送方tcp报文中的ack=接收方回应tcp报文中的seq。

四次挥手

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

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

相关文章

OpenGL_Learn08(坐标系统)

目录 1. 概述 2. 局部空间 3. 世界空间 4. 观察空间 5. 剪裁空间 6. 初入3D 7. 3D旋转 1. 概述 OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说,每个顶点的x,…

2023.11.7 Spring 依赖注入的三大方式

目录 前言 属性注入&#xff08;Autowired&#xff09; Setter 注入 构造方法注入 Resource Autowired 和 Resource 的区别 Autowired 和 Resource 查找 Bean 对象的区别 前言 配置文件 ​ <?xml version"1.0" encoding"UTF-8"?> <beans …

Park和UnPark底层原理

文章目录 1. 简介2. 底层原理3. 总结 1. 简介 park和unpark也是一个线程暂停技术&#xff08;让线程进入wait状态&#xff09;&#xff0c;与wait/notify不同的是&#xff0c;前者是LockSupport类中的方法&#xff0c;后者是Object类中的方法。其次&#xff0c;wait与notify和…

Makefile 介绍

目录 一、Makefile 的规则 二、一个示例 三、make 是如何工作的 四、makefile 中使用变量 五、让 make 自动推导 六、另类风格的 makefile 七、清空目标文件的规则 make 命令执行时&#xff0c;需要一个 Makefile 文件&#xff0c;以告诉 make 命令需要怎么样的去编译和…

1.docker linux离线环境安装 20.1.0.12

目录 概述下载解压docker 卸载docker 安装检查安装环境常用命令结束 概述 docker离线环境安装 20.1.0.12 , centos 7.x 下载 安装包下载 解压 [roothadoop01 soft]# unzip docker_20_1_0_12.zip [roothadoop01 soft]# cd docker_20_1_0_12 [roothadoop01 docker_20_1_0_1…

Java系统操作日志之数据修改变化记录

系统操作日志之数据修改变化记录 前言效果图如何实现总结 相信大家在自己的系统中都有记录日志吧&#xff0c;像登录日志、操作日志等等 但是一般来说&#xff0c;大家都是获取操作了什么东西&#xff0c;包括它的参数&#xff0c;模块等等&#xff0c;但是你有关心过他的数据变…

06【保姆级】-GO语言的运算符

之前我学过C、Java、Python语言时总结的经验&#xff1a; 先建立整体框架&#xff0c;然后再去抠细节。先Know how&#xff0c;然后know why。先做出来&#xff0c;然后再去一点点研究&#xff0c;才会事半功倍。适当的囫囵吞枣。因为死抠某个知识点很浪费时间的。对于GO语言&a…

使用MCU上的I2C总线进行传感器应用

使用MCU上的I2C总线进行传感器应用是嵌入式系统开发中常见的任务&#xff0c;本文将介绍在MCU上实现I2C总线传感器应用的相关技术和流程。 首先&#xff0c;I2C&#xff08;Inter-Integrated Circuit&#xff09;总线是一种常用的串行通信协议&#xff0c;用于连接多个设备&am…

2023/11/8JAVA学习

多个条件也可以&&放在一块,支持链式编程 map()数据加工,一个对象转化为另一个 不能这样写 不会去重报错

java入门,记一次mysql函数使用

一、前言 记一次mysql函数使用&#xff0c;要求给一个字段进行拼接&#xff0c;然后MD5加密&#xff0c;再转换成大写。这里都是有现成的函数&#xff0c;所以记录下来 二、函数使用 1、拼接函数&#xff1a; concat(字符串1,字符串2) select concat(字符串1,字符串2); 2、…

Postman使用方法详细攻略

一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的&#xff0c;用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网…

APISpace IP归属地查询接口案例代码

1.IP归属地查询API 1.1 API接口简介 IP归属地查询API&#xff1a;根据IP地址查询归属地信息&#xff0c;包含国家、省、市、区县和运营商等信息。APISpace 提供了IPv4 和 IPv6 的IP归属地查询接口&#xff0c;并且包含了各种归属地精度查询的接口。 1.2 IPv4 IPv4归属地查询…

数据结构与算法-(11)---有序表(OrderedList)

&#x1f308;个人主页: Aileen_0v0 &#x1f525;系列专栏:PYTHON学习系列专栏 &#x1f4ab;"没有罗马,那就自己创造罗马~" 目录 知识回顾及总结 有序表的引入 ​编辑 实现有序表 1.有序表-类的构造方法 2.有序表-search方法的实现 3.有序表-add方法的实现…

电气元器件的型号,符号,接线认识(一)

目录 按钮开关 类型 文字与图形符号 常开常闭触点 接线图 中间继电器 实物图 文字与图形符号 接线图 交流接触器 实物图 文字与图形符号 接线图 开关电源 图形 文字与图形符号 接线图 断路器 实物图 类型 文字与图形符号 接线图 今天让我们来认识一下电路元…

ci-cd的流程

1、项目在gitlab上&#xff0c;从gitlab上使用git插件获取源码&#xff0c;构建成war包&#xff0c;所以使用tomcat作为运行环境 发布 &#xff1a;使用maven插件发布&#xff0c;使用ssh连接。

大众动力总成构建全程数字化的数电票管理平台

客户简介 上海大众动力总成有限公司成立于2005年4月29日&#xff0c;是德国大众在中国的全资投资公司大众汽车&#xff08;中国&#xff09;投资有限公司和上海汽车集团股份有限公司合资组建的发动机生产企业&#xff0c;是世界上加工工艺和技术水平最先进的发动机生产基地之一…

kubernetes集群编排(8)

k8s资源监控 资源限制 上传镜像 [rootk8s2 limit]# vim limit.yaml apiVersion: v1 kind: Pod metadata:name: memory-demo spec:containers:- name: memory-demoimage: stressargs:- --vm- "1"- --vm-bytes- 200Mresources:requests:memory: 50Milimits:memory: 100…

使用EvoMap/Three.js模拟无人机灯光秀

一、创建地图对象 首先我们需要创建一个EM.Map对象&#xff0c;该对象代表了一个地图实例&#xff0c;并设置id为"map"的文档元素作为地图的容器。 let map new EM.Map("map",{zoom:22.14,center:[8.02528, -29.27638, 0],pitch:71.507,roll:2.01,maxPit…

在linux中配置固定ip

1、在虚拟机中配置网络&#xff0c;改ONBOOTyes后默认直接DHCP自动获取ip&#xff0c;但是这种方法会导致ip改变。这个时候&#xff0c;我们需要配置固定ip 2、进入/etc/sysconfig/network-scripts查看ifcfg-ens33 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOdh…

Flink之状态管理

Flink状态管理 状态概述状态分类 键控、按键分区状态概述值状态 ValueState列表状态 ListStateMap状态 MapState归约状态 ReducingState聚合状态 Aggregating State 算子状态概述列表状态 ListState联合列表状态 UnionListState广播状态 Broadcast State 状态有效期 (TTL)概述S…