实验四 TCP/UDP协议分析

目录

一、TCP连接建立过程分析

二、TCP关闭连接过程分析

三、6号报文分析

四、A方TCP报文序列号分析

五、计算

六、UDP协议分析


一、TCP连接建立过程分析

图 1 第一次握手

第一次握手:客户端将标志位 SYN 置为 1 ,随机产生一个值SEQ = X = 0,并将该数据包发送给服务器,等待服务器确认;

图 2 第二次握手

第二次握手:服务器收到数据包后由标志位SYN = 1,直到客户端请求建立连接,服务器将标志位 SYN ACK 都置为 1 ACK = X + 1 = 1,随机产生一个值SEQ = Y = 0,并将该数据包发送给客户端以确认连接请求;

图 3第三次握手

第三次握手:客户端收到确认后,检查 ACK 是否为X + 1= 1,如果正确则将标志位 ACK 置为 1 SEQ = 1,ACK = Y + 1 = 1,并将该数据包发送给服务器,服务器检查 ACK 是否为1 ,如果正确则连接建立成功,后续开始传输数据。

二、TCP关闭连接过程分析

图 4第一次挥手

第一次挥手:主动关闭方发送一个 FIN = 1 ,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:不会再给对方发送数据了;

图 5第二次挥手

第二次挥手:被动关闭方收到 FIN = 1包后,发送一个 ACK = 1 给对方,确认序号为:收到报文序号Seq +收到报文所携带数据长度len+ 1=1 。上一个报文可能捎带了主动关闭方发送的最后一块数据,其长度用字段len来表示。

图 6第三次挥手

第三次挥手:被动关闭方发送一个 FIN = 1 ,同时ACK=1,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发送数据了;

图 7第四次挥手

第四次挥手:主动关闭方收到 FIN 后,发送一个 ACK 给被动关闭方,确认序号为:收到报文的序号Seq + 收到报文所携带数据长度len+ 1 ,至此,完成四次挥手,双向连接关闭。

三、6号报文分析

图 8  6号报文

Source Port: 2000 //请求端端口:2000

Destination Port: 21098 //服务器端端口:21098

[Stream index: 0] //tcp流序号:0(wireshark中对源于同一tcp流的包的标记)

[TCP Segment Len: 0] //tcp报文长度:0

Sequence Number: 1(relative sequence number) //报文序列号:1(相对序号)

Sequence Number (raw): 1959254470 //报文序列号:1959254470(绝对序号)

[Next Sequence Number: 1(relative sequence number)] //下一序列号:1

Acknowledgment Number: 1717(relative ack number) //确认号:1717(相对序号)

Acknowledgment number (raw): 1749145722 //确认号:1749145722(绝对序号)

0101 … = Header Length: 20 bytes (5) //报文头部长度(数据偏移):20bytes

Flags : 0x010 (ACK) //报文类型:ACK

000… = Reserved: Not set //保留字段

…0… = Nonce: Not set//随机数:无效(随机数(Nonce)是任意的或非重复的值,它包括在经过一个协议的数据交换中,通常为保证活跃度以及避免受重复攻击)

…0… = Congestion window Reduced (CWR): Not set

//拥塞窗口减少戳:无标记(TCP拥塞控制)

…0… =ECN-Echo: Not set //显式拥塞戳:无效(ECN-Echo与TCP拥塞控制)

…0… = Urgent: Not set //紧急指针戳:无效

…1… = Acknowledgment: Set //确认号戳:有效

…0… = Push: Not set //推送戳:无效

…0… = Reset: Not set //复位戳:无效

…0. = Syn: Not set //同步戳:无效

…0 = Fin: Not set //结束戳:无效

[TCP Flags …… A……]

window: 256 //窗口大小:256(TCP接收者缓冲的字节大小)

[ Calculated window size: 65536] //计算出的窗口大小(窗口大小单位*窗口大小)

[window size scaling factor: 256] //窗口大小换算系数

Checksum: Oxd6a1 [unverified] //校验和

[Checksum Status : Unverified] //校验状态

Urgent Pointer: 0(如果设置了URG位,这个域将被检查作为额外的指令,告诉CPU从数据包的哪里开始读取数据)

[SEQ/ACK analysis]//序列号及确认号的分析结果,当且仅当数据中含有ACK时,才有此项!

[This is an ACK to the segment in frame: 5]//这是对5号报文的回应

[ The RTT to ACK the segment was: 0.00050900e seconds]//往返时延

[iRTT: 8.000343000 seconds]//互联网往返时延

[Timestamps]//时间戳

[Time since first frame in this TCP stream: 0.012839000 seconds]// 从此TCP流中的第一帧开始的时间:0.012839000秒

[ Time since previous frame in this TCP stream: 0.000509000 seconds]// 从此TCP流中的上一帧开始的时间:0.000509000秒

四、ATCP报文序列号分析

  1. A方第1个报文的序列号(相对值)是0

  1. 因为在TCP建立连接的第二次握手中的确认号为ack=X+1=1A方第2个报文作为TCP建立连接的第三次握手,其序列号seq=X+1=1

  1. 下一个报文序列号 = 其前一报文序列号 + 其前一报文所携带数据长度

  1. 在最后的TCP连接关闭时(第四次挥手),主动关闭方收到 FIN 后,会额外发送一个 ACK 给被动关闭方(这就是该26号报文的产生原因),此时26号报文(A方最后一个报文的序号)+110568+1得到最终的报文序列号为10569.

  1. 10567字节

五、计算

1. 如图,双方通信所用时间:0.085306s

2.A方发送的所有的帧的长度之和为过滤后lengh的数值总和A方发送的所有的帧的长度之和:11497字节

3.A->B连接的通信吞吐率:

A方发送的所有的帧的长度之和*8/10^6)Mb/双方通信所用的时间s
A->B连接的通信吞吐率:1.078Mbps

六、UDP协议分析

  1. UDP报文分析

User Datagram Protocol, Src Port: 41831,Dst Port: 8080//UDP协议

Source Port: 41831 //请求方端口:41831

Destination Port: 8080 //服务器端口:8080

Length: 20 //长度:20

Checksum: 0x46c2 [unverified] //校验和

[checksum Status: Unverified] //校验状态

[Stream index: 0] //流序号:0

  2. 分析TCPUDP协议主要特点

 填写下表:

序号

特性

TCP协议的特点

UDP协议的特点

1

连接

面向连接

面向无连接

2

可靠性

高可靠

较可靠

3

实时性

一般

较好

4

网络开销

较大

较小

5

数据负载边界

面向字节流,以整个待传输的数据为边界,保证数据正确性

基于数据报,以每段报文为边界,不保证传输的数据顺序

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

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

相关文章

Edge浏览器版本更新后Copilot按钮消失的解决应对方式

需求背景 今天突然发现Edge浏览器右上角的Copilot按钮不见了,排查了一下,发现可能是浏览器自动升级到120版本后,关闭了右上角的Copilot按钮。案发现场如下: 原因如下: 说实话,人家这个插件还是很好用的&…

计网 - LVS 是如何直接基于 IP 层进行负载平衡调度

文章目录 模型LVS的工作机制初探LVS的负载均衡机制初探 模型 大致来说,可以这么理解(只是帮助我们理解,实际上肯定会有点出入),对于我们的 PC 机来说,物理层可以看成网卡,数据链路层可以看成网卡…

HTML中常用表单元素使用(详解!)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍HTML中常用表单元素使用以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言 …

时序分解 | Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解

时序分解 | Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解 目录 时序分解 | Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解 可…

网神 SecGate3600 authManageSet.cgi信息泄露漏洞复现

漏洞概述 网神SecGate 3600 authManageSet.cgi 接口存在敏感信息泄露漏洞,未授权得攻击者可以通过此漏洞获取控制台管理员用户名密码等凭据,可登录控制整个后台,使系统处于极不安全的状态 复现环境 FOFA:body"sec_gate_im…

maui 调用文心一言开发的聊天APP 3

主要是对代码进行了优化 上一个版本写死了帐号跟密码 ,这一个帐本有户可以直接设置对相关的key以及secret如果设置错时,在聊天中也会返回提示。注册帐号时同时也设置了key及secrete升级到了net.8.0导出APK,上一个版本是导出abb.解决了变型问…

C# 使用异步委托获取线程返回值

写在前面 异步委托主要用于解决 ThreadPool.QueueUserWorkItem 没有提供获取线程执行完成后的返回值问题。异步委托只能在.Net Framework 框架下使用,.Net Core中会报平台错误,而且使用Task.Result来获取返回值,可以达成同样的目的&#xff…

无代码开发让合利宝支付与CRM无缝API集成,提升电商用户运营效率

合利宝支付API的高效集成 在当今快速发展的电子商务领域,电商平台正寻求通过高效的支付系统集成来提升用户体验和业务处理效率。合利宝支付,作为中国领先的支付解决方案提供者,为电商平台提供了一个高效的API连接方案。这种方案允许无代码开…

Linux----内核及发行版

1. Linux内核 Linux内核是操作系统内部操作和控制硬件设备的核心程序,它是由芬兰人林纳斯开发的。 内核效果图: 说明: 真正操作和控制硬件是由内核来完成的,操作系统是基于内核开发出来的。 2. Linux发行版 是Linux内核与各种常用软件的组合产品&am…

音乐制作软件Studio One mac软件特点

Studio One mac是一款专业的音乐制作软件,由美国PreSonus公司开发。该软件提供了全面的音频编辑和混音功能,包括录制、编曲、合成、采样等多种工具,可用于制作各种类型的音乐,如流行音乐、电子音乐、摇滚乐等。 Studio One mac软件…

网络安全项目实战(二)--报文检测

4. 源码管理系统 目标 了解源码管理了解源码管理的工具了解源码管理流程了解git源码管理的分支 4.1. 源码管理简述 在现代软件开发项目中,要成为一个有效的软件开发人员,我们必须能够与其他项目贡献者并行进行开发。 源代码管理(SCM&…

Python 自动化之处理docx文件(一)

批量筛选docx文档中关键词 文章目录 批量筛选docx文档中关键词前言一、做成什么样子二、基本架构三、前期输入模块1.引入库2.路径输入3.关键词输入 三、数据处理模块1.基本架构2.如果是docx文档2.1.读取当前文档内容2.2.遍历匹配关键字2.3.触发匹配并记录日志 3.如果目录下还有…

Linux shell编程学习笔记35:seq

0 前言 在使用 for 循环语句时,我们经常使用到序列。比如: for i in 1 2 3 4 5 6 7 8 9 10; do echo "$i * 2 $(expr $i \* 2)"; done 其中的 1 2 3 4 5 6 7 8 9 10;就是一个整数序列 。 为了方便我们使用数字序列,Linux提供了…

Python 小程序之PDF文档加解密

PDF文档的加密和解密 文章目录 PDF文档的加密和解密前言一、总体构思二、使用到的库三、PDF文档的加密1.用户输入模块2.打开并读取文档数据3.遍历保存数据到新文档4.新文档进行加密5.新文档命名生成路径6.保存新加密的文档 四、PDF文档的解密1.用户输入模块2.前提准备2.文件解密…

jmeter和postman的对比

1.创建接口用例集(没区别) Postman是Collections,Jmeter是线程组,没什么区别。 2.步骤的实现(有区别) Postman和jmeter都是创建http请求 区别1:postman请求的请求URL是一个整体,j…

玩转大数据15:常用的分类算法和聚类算法

前言 分类算法和聚类算法是数据挖掘和机器学习中的两种常见方法。它们的主要区别在于处理数据的方式和目标。 分类算法是在已知类别标签的数据集上训练的,用于预测新的数据点的类别。聚类算法则是在没有任何类别标签的情况下,通过分析数据点之间的相似性…

智能优化算法应用:基于帝国主义竞争算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于帝国主义竞争算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于帝国主义竞争算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.帝国主义竞争算法4.实验参数设定…

图论——二分图

图论——二分图 二分图通俗解释 有一个图,将顶点分成两类,边只存在不同类顶点之间,同类顶点之间设有边。称图 G 为二部图,或称二分图,也称欧图。 性质 二分图不含有奇数环图中没有奇数环,一定可以转换为二…

OpenAI Q* (Q Star)简单介绍

一、Q Star 名称由来 Q* 的两个可能来源如下: 1)Q 可能是指 "Q-learning",这是一种用于强化学习的机器学习算法。 Q 名称的由来*:把 "Q*"想象成超级智能机器人的昵称。 Q 的意思是这个机器人非常善于做决定…

pytest-fixtured自动化测试详解

fixture的作用 1.同unittest的setup和teardown,作为测试前后的初始化设置。 fixture的使用 1.作为前置条件使用 2.fixture的的作用范围 1.作为前置条件使用 pytest.fixture() def a():return 3def test_b(a):assert a3 2.fixture的作用范围 首先实例化更高范围的fixture…