当前位置: 首页 > 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 的位置暂存值&…...

SAP MM新手避坑指南:手把手教你搞定UB型STO库存调拨(从ME21N到MIGO全流程)

SAP MM新手避坑指南&#xff1a;手把手教你搞定UB型STO库存调拨&#xff08;从ME21N到MIGO全流程&#xff09; 刚接触SAP MM模块的新手&#xff0c;面对库存转储订单&#xff08;STO&#xff09;这个看似简单实则暗藏玄机的功能时&#xff0c;往往会在UB型订单的创建和操作过程…...

用Python可视化回溯算法:一步步动画演示八皇后问题的92种解法

用Python动画拆解八皇后问题&#xff1a;可视化回溯算法的92种解法 国际象棋盘上的八个皇后如何互不攻击&#xff1f;这个1848年提出的经典问题&#xff0c;曾让数学家高斯误算为76种解法。如今借助Python的可视化能力&#xff0c;我们可以将回溯算法的"试错-回退-重试&qu…...

高压电源软启动:从浪涌抑制到系统可靠性的工程实践

1. 高压电源软启动的必要性 第一次见到整流二极管炸裂的场景&#xff0c;至今记忆犹新。那是在一个工业电源调试现场&#xff0c;工程师刚合上电闸就听到"啪"的一声脆响&#xff0c;随后便闻到焦糊味——价值数百元的整流模块瞬间报废。罪魁祸首就是电容滤波电路带来…...

linux (CentOS 7) 一次性安装中文手册的完整命令

一&#xff0c;一次性第一步&#xff1a;安装 CentOS 7 专属的中文语言包 man 手册包yum install -y kde-l10n-Chinese man-pages-zh-CN第二步&#xff1a;刷新语言环境&#xff0c;让配置生效export LANGzh_CN.UTF-8第三步&#xff1a;验证&#xff0c;直接执行中文 man lsma…...

Go输入输出格式化技巧大全,深入理解操作系统中的线程。

Go基础&#xff1a;输入与输出格式化详解 标准输入与输出 Go语言通过fmt包提供丰富的输入输出功能。标准输出常用Print、Println和Printf函数。Print直接输出内容&#xff0c;Println自动添加换行符&#xff0c;Printf支持格式化输出。 fmt.Print("Hello") // …...

OpenSpeedy终极指南:5分钟掌握免费开源游戏加速工具

OpenSpeedy终极指南&#xff1a;5分钟掌握免费开源游戏加速工具 【免费下载链接】OpenSpeedy &#x1f3ae; An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy 你是否曾经在游戏中遇到过这样的烦恼&#xff1f;剧情推进太慢…...

CCLE数据库实战指南:从数据下载到肝癌细胞系分析

1. CCLE数据库入门指南 第一次接触CCLE数据库时&#xff0c;我和大多数新手一样感到无从下手。这个由Broad研究所维护的癌症细胞系百科全书&#xff0c;包含了超过1000种人类癌症细胞系的基因组、转录组和药理学数据。对于肝癌研究者来说&#xff0c;它就像一座待挖掘的金矿。 …...

AtCoder Beginner Contest 433

AtCoder Beginner Contest 433 ABCD https://www.bilibili.com/video/BV1srUTBEEfa/ AtCoder Beginner Contest 433 https://www.bilibili.com/video/BV14xUWBYELd/ https://blog.csdn.net/2503_93669452/article/details/155140717 【实况】AtCoder Beginner Contest 433&…...

3步搞定小红书内容采集:XHS-Downloader免费无水印下载终极指南

3步搞定小红书内容采集&#xff1a;XHS-Downloader免费无水印下载终极指南 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果作品、用户…...

Java自定义注解创建详解

一、什么是自定义注解注解&#xff08;Annotation&#xff09;​ 是一种元数据&#xff0c;用来为代码提供额外信息&#xff0c;但本身不改变代码逻辑。Java 内置注解如&#xff1a;OverrideDeprecatedSuppressWarnings而 自定义注解​ 就是开发者自己定义的注解类型&#xff0…...