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

实验名称:TCP 连接管理

目录

前言

TCP报文段格式

TCP建立连接

TCP释放连接

实验目的

实验原理

实验步骤

1. 启动WireShark,设置抓包状态

2. 访问指定服务器 ,通过Wireshark抓取通信数据报文

3. 分析TCP连接建立的三次握手和连接释放的四次握手过程

原始数据记录


实验目的

1) 掌握TCP连接建立的三次握手过程

2) 理解TCP连接释放的四次握手过程

实验原理

TCP协议工作原理

主要设备、器材:

1) 联网计算机

2) 协议分析软件Wireshark

实验步骤

1) 启动WireShark,设置抓包状态

2) 访问指定服务器 ,通过Wireshark抓取通信数据报文

3) 分析TCP连接建立的三次握手和连接释放的四次握手过程

本文提供抓取的数据包,供大家免费下载,分析

原始数据记录

连接建立的三个TCP数据包

本机IP地址:192.168.22.37

本机MAC地址:04-7c-16-5e-9f-26

连接建立的三个TCP数据包(第一个要求写出完整的帧,第二个和第三个只写TCP部分)

连接建立第一次握手数据包:

编号                                数据包

0000   04 7c 16 2a a9 c3 04 7c 16 5e 9f 26 08 00 45 02  

0010   00 34 72 de 40 00 80 06 00 00 c0 a8 16 25 c0 a8

0020   16 65 c6 be 00 50 f7 32 86 09 00 00 00 00 80 c2  

0030   fa f0 ae 01 00 00 02 04 05 b4 01 03 03 08 01 01   

0040   04 02                                             

连接建立第二次握手数据包:

编号                                数据包

0000   04 7c 16 5e 9f 26 04 7c 16 2a a9 c3 08 00 45 02   

0010   00 34 f4 1e 40 00 80 06 58 c8 c0 a8 16 65 c0 a8   

0020   16 25 00 50 c6 be eb 48 cb de f7 32 86 0a 80 52   

0030   ff ff c5 71 00 00 02 04 05 b4 01 03 03 08 01 01   

0040   04 02                                             

连接建立第三次握手数据包:

编号                                数据包

0000   04 7c 16 2a a9 c3 04 7c 16 5e 9f 26 08 00 45 00  

0010   00 28 72 df 40 00 80 06 00 00 c0 a8 16 25 c0 a8  

0020   16 65 c6 be 00 50 f7 32 86 0a eb 48 cb df 50 10  

0030   04 02 ad f5 00 00                                 

实验结果与分析:

1)对连接建立的第一个数据包的TCP部分逐字段分析,指出每个字段的值及其表示的意义;对第2个和第3个指出序号、确认号、SYN和ACK的值及其表示的意义。

2)理解TCP连接释放的四次握手的每个数据包。

连接建立第一次握手数据包分析

以太网帧

目的地址: 04 7c 16 2a a9 c3                            

源地址:  04 7c 16 5e 9f 26                                 

类型:0800 (IPv4)

IP数据报:

  45 02 00 34 72 de 40 00 80 06 00 00 c0 a8 16 25   

  c0 a8 16 65  

TCP报文段:

  1. 源端口:c6 be( 50878 )   
  2. 目的端口:00 50 :80                                 
  3. 序号:f7 32 86 09
  4. 确认号:0
  5. 数据偏移:占四位 8 –> 1000,4*8=32byte
  6. URG(urgent):0 紧急指针,无紧急数据发送  
  7. ACK(acknowledgment): 0 确认号无效
  8. PSH(push):  0
  9. RST(reset): 0 复位
  10. SYN(synchronization):同步,syn=1,ack=0为连接请求报文段
  11. FIN(finish): 0
  12. 窗口: fa f0 (64240) 指发送本报文段的一方接受窗口 ,从确认号0号算起,接收方目前允许我发送的数据量为   64240byte
  13. 检验和  :ae 01
  14. 紧急指针:0         

连接建立第二次握手数据包分析

以太网帧

目的地址:04 7c 16 5e 9f 26                            

源地址:  04 7c 16 2a a9 c3                                 

类型:0800 (IPv4)

IP数据报:

  45 02 00 34 f4 1e 40 00 80 06 58 c8 c0 a8 16 65   

  c0 a8 16 25   

                                     

TCP报文段:

  1. 源端口:00 50 :80    
  2. 目的端口:c6 be( 50878 )                              
  3. 序号:eb 48 cb de                                      
  4. 确认号: f7 32 86 0a                                       
  5. 数据偏移:占四位 8 –> 1000,4*8=32byte
  6. URG(urgent):0 紧急指针,无紧急数据发送  
  7. ACK(acknowledgment): 1
  8. PSH(push):  0
  9. RST(reset): 0 复位
  10. SYN(synchronization):同步,syn=1,ack=1表是我方同意建立连接
  11. FIN(finish): 0
  12. 窗口: ff ff (65535) 指发送本报文段的一方接受窗口 ,从确认号0号算起,接收方目前允许我发送的数据量为   65535byte
  13. 检验和  :c5 71
  14. 紧急指针:0       

连接建立第三次握手数据包分析

以太网帧

目的地址: 04 7c 16 2a a9 c3                            

源地址:  04 7c 16 5e 9f 26                                 

类型:0800 (IPv4)

IP数据报:

    45 00 00 28 72 df 40 00 80 06 00 00 c0 a8 16 25   

    c0 a8 16 65                                       

TCP报文段:

  1. 源端口:c6 be( 50878 )   
  2. 目的端口:00 50 :80                                 
  3. 序号:f7 32 86 0a
  4. 确认号:eb 48 cb df                                       
  5. 数据偏移:占四位 5 –> 0101
  6. URG(urgent):0 紧急指针,无紧急数据发送  
  7. ACK(acknowledgment): 1
  8. PSH(push):  0
  9. RST(reset): 0 复位
  10. SYN(synchronization):0
  11. FIN(finish): 0
  12. 窗口: 04 02 (1026) 指发送本报文段的一方接受窗口 ,从确认号0号算起,接收方目前允许我发送的数据量为   1026byte
  13. 检验和  :ad f5
  14. 紧急指针:0  

释放链接的三个TCP数据包

这是就有小伙伴会问了,怎么只有三个TCP数据包?不是4次分手吗?

其实在实际的环境中,服务器的2次返回合成一个数据包返回了。

相关文章:

实验名称:TCP 连接管理

目录 前言 TCP报文段格式 TCP建立连接 TCP释放连接 实验目的 实验原理 实验步骤 1. 启动WireShark,设置抓包状态 2. 访问指定服务器 ,通过Wireshark抓取通信数据报文 3. 分析TCP连接建立的三次握手和连接释放的四次握手过程 原始数据记录 实验…...

go语言map底层及扩容机制原理详解(上)

底层数据结构-哈希表 go语言map的底层数据结构是哈希表:通过哈希表来存储键值对,通过hash函数把键值对散列到一个个桶(bucket)中。 什么是哈希表? 在顺序结构以及平衡树中,元素与其的存储位置之间没有对应关系,因此…...

互联网职场说 | “领导找我谈话,原来是给我涨薪,但却只涨了200,还偷偷叮嘱我保密,这次只给我涨了薪”

职场中,一般当领导找你谈话时,心里总是会涌起两种心理活动:问责和表扬。不过很多人第一反应就是有点担心害怕,其次才会想有什么好事临到我了! 一位职场网友分享说,有天领导忽然找她谈话,当时心…...

Android 如何启用user版本的adb源码分析

Android调试桥(ADB, Android Debug Bridge)是一个Android命令行工具,包含在SDK 平台工具包中,adb可以用于连接Android设备,或者模拟器,实现对设备的控制,比如安装和调试应用。和Appium一样,adb也是基于C/S架…...

linux phpstudy 重启命令

[rootLinuxWeb phpstudy]# ./system/phpstudyctl restart 查看命令 1) phpstudy -start 启动小皮面板 2) phpstudy -stop 停止小皮面板 3) phpstudy -restart 重启小皮面板 4) phpstudy -status 查询面板状态 5) phpstudy -in…...

台式电脑屏幕亮度怎么调节?让你的眼睛更舒适!

在日常使用台式电脑时,调节屏幕亮度是一项常见的需求。不同的环境和个人偏好可能需要不同的亮度设置。因此,了解台式电脑屏幕亮度怎么调节是非常重要的。本文将介绍三种常见的方法,帮助您轻松调节台式电脑屏幕亮度,以满足您的需求…...

打造安全的 Linux 环境:实用配置指南

唠唠闲话 一开始接触服务器,我只是把它当博客的托管网站,源文件用 GitHub 备份,所以网站被黑了也没啥关系。但随着使用深入,网站逐渐加入我的日常工作流中,而且有了使用更多服务的需求。在这种情况下,服务…...

神经网络有哪些算法

神经网络算法是人工智能领域的重要组成部分,它通过模拟人类神经系统的结构和功能,实现对复杂问题的处理和分析。以下是对神经网络算法的详细概述,包括常见的算法和它们的特点、应用等,力求达到约2500字的篇幅。 一、神经网络算法概述 神经网络算法是一种基于人工神经元的…...

计算机网络期末试题

第一章 概述 一. 单选题(共13题,36.4分) 1. (单选题) 因特网起源于( )网络。 A. ARPANETB. EthernetC. CATVD. CERNET 我的答案: A:ARPANET;正确答案: A:ARPANET; 2.8分 2. (单选题)人们把( )年作为因特网的诞…...

Unity学习笔记---图层

渲染层级 1,调整Sprite Renderer中的Order in Layer可以调整图层层级。 2,在Edit--Project Setting--Graphics中,调整TransParency Sort Mode为Custom Axis, 并将TransParency Sort Axis中的Z值默认的1改为0,将Y改为…...

【简单探索微软Edge】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...

YOLOv5独家改进:backbone改进 | 微软新作StarNet:超强轻量级Backbone | CVPR 2024

💡💡💡创新点:star operation(元素乘法)在无需加宽网络下,将输入映射到高维非线性特征空间的能力,这就是StarNet的核心创新,在紧凑的网络结构和较低的能耗下展示了令人印象深刻的性能和低延迟 💡💡💡如何跟YOLOv5结合:替代YOLOv5的backbone 收录 YOL…...

概率密度函数pdf的某种解释与洞察

1.一个想法实验 我在想一个数,姑且称之为X,介于0和10之间(含0和10)。如果我不告诉你别的,你会想象X = 0的概率是多少?X = 4?假设我对任何特定的数字都没有偏好,你会想象十一个整数0,1,2,.….,10也是一样。因为所有的概率加起来必须是1,所以逻辑上的结论是给11个选项…...

【OceanBase诊断调优】—— 转储错误(错误代码 4138/ORA-01555)

当读事务很长时,租户进行转储会报 4138/ORA-01555 错误。本文介绍该错误的处理方法。 适用版本 OceanBase 数据库 V2.X 及以后的版本 问题现象 当读事务很长,租户进行转储时会出现以下错误。 Oracle 租户: ORA-01555:snapsho…...

Python面试题【数据结构和算法部分101-130】

Python面试题【数据结构和算法部分101-130】 Python面试题【数据结构和算法部分101-130】 Python面试题【数据结构和算法部分101-130】 问题:如何在Python中实现二分查找? 答案: def binary_search(arr, target):low, high 0, len(arr) - 1…...

Django中的日志处理

日志处理 1.日志级别 级别(Level)表示日志消息的优先级,从低到高分为以下几个级别: DEBUG: 详细的日志信息,通常用于调试。 INFO: 一般的信息性消息,用于说明程序运行情况。 WARNING: 警告消息&#xff0…...

FonePaw Data Recovery for Mac:轻松恢复丢失数据

FonePaw Data Recovery for Mac是一款功能强大的数据恢复软件,专为Mac用户设计,帮助用户轻松恢复因各种原因丢失的数据。该软件支持从硬盘驱动器、存储卡、闪存驱动器等存储介质中恢复丢失或删除的文件,包括照片、视频、文档、电子邮件、音频…...

C语言易错提醒选择题精选

Ⅰ 易错题 1.设有double p;&#xff0c;为变量p声明一个引用名称rp,则定义语句为 double& rpp; 2.已知‘A’一‘Z’的ASCII码为65—90&#xff0c;当执行“char ch14*52&#xff1b;cout<<ch<<endl;”语句序列后得到的输出结H &#xff0c;72对应ASCII码中…...

Android11系统去掉截屏功能

1. 去掉Settings里截屏菜单条目&#xff0c;packages/apps/Settings&#xff1a; diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml old mode 100644 new mode 100755 index a5e4d06..a9420bb --- a/res/xml/top_level_settings.xmlb/res/xml/t…...

测试驱动来学习 Promise

基础功能 测试案例&#xff1a;以同步的方式调用。 /*** v1: 基础功能*/ const p1 new MyPromise((resolve, reject) > {resolve(success)reject(error) })p1.then((value) > {console.log(v1: , value) }) 实现功能&#xff1a;在 status 和 value 的位置暂存值&…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...