医疗行业网站建设/营销图片素材
计算机网络实验
目录
实验目的
实验环境
实验原理
1、UDP协议
2、TCP协议
实验具体步骤
-
实验目的
1、掌握使用wireshark工具对UDP协议进行抓包分析的方法,掌握UDP协议的报文格式,掌握UDP协议校验和的计算方法,理解UDP协议的优缺点,通过实验,进一步了解UDP协议;
2、掌握使用wireshark工具对TCP协议进行抓包分析的方法;通过实验,进一步了解TCP协议。
-
实验环境
- Windows11系统
- Ethereal、wireshark抓包工具
-
实验原理
1、UDP协议
UDP是一种简单的面向数据报的传输层协议,与TCP相比,它不提供可靠性、顺序传输或拥塞控制。
UDP的主要特点:
无连接。发送数据之前不需要建立连接。
使用尽最大努力交付。即不保证可靠交付。
面向报文。UDP 一次传送和交付一个完整的报文。
没有拥塞控制。网络出现的拥塞不会使源主机的发送速率降低。很适合多媒体通信的要求。
支持一对一、一对多、多对一、多对多等交互通信。
首部开销小,只有 8 个字节。
2、TCP协议
TCP是一种面向连接的、可靠的传输层协议,用于在网络上可靠地传输数据。
TCP特点:
TCP 是面向连接的运输层协议。
每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。
TCP 提供可靠交付的服务。
TCP 提供全双工通信。
字段 | 含义 |
源端口和目的端口 | 16位,表示数据包发送方\接收方的端口号 |
序号 | 32位,用于标识发送方发送的数据字节流的顺序, |
确认号 | 32位,表示接收方期望收到的下一个字节的序列号 |
数据偏移 | 4位,表示TCP首部的长度,以32位(4字节)为单位。 |
保留 | 6位,保留供将来使用,发送时设置为0 |
URG | 当设置为1时,表示紧急指针字段有效 |
此时该字节会被优先发送 | |
ACK | 当设置为1时,表示确认号字段有效 |
PSH | 当设置为1时,表示接收方应立即将数据提交给应用程序, |
RST | 当设置为1时,表示发送方要求重置连接 |
SYN | 当设置为1时,表示这是一个连接请求或连接接受报文,用于建立连接 |
FIN | 当设置为1时,表示发送方已完成数据发送,请求关闭连接 |
窗口 | 2位,表示发送方允许接收方发送的数据量,以字节为单位。 |
TCP各字段含义表
一、UDP
UDP报头由4个部分组成:源端口号、目标端口号、数据包长度和校验值,其中每个域各占用两个字节。UDP使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP正是采用这一机制实现对同一时刻内多项应用同时发送和接受数据的支持。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UDP报头使用两个字节存放端口号,所以端口号的有效范围是从0~65535。一般来说,大于49151的端口号都代表动态端口。
每个UDP报文称为一个用户数据报(User Datagram)。用户数据报分为两个部分:UDP首部和UDP数据区。
源端口 | 目的端口 |
报文长度 | 校验和 |
数据 | |
… |
图 UDP报文格式
二、TCP
TCP是面向连接的协议。在面向连接的环境中,开始传输数据之前,在两个终端之间必须先建立一个连接。对于一个要建立的连接,通信双方必须用彼此的初始化序列号seq和来自对方成功传输确认的应答号ack(指明希望收到的下一个八位组的编号)来同步,习惯上将同步信号写为SYN,应答信号写为ACK。整个同步的过程称为三次握手,如图下图所示。
图TCP连接的建立
对于一个已经建立的连接,TCP使用四次握手来结束通话(使用一个带有FIN附加标记的报文段),如图所示。
图TCP连接的释放
TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到期,但还没有收到确认,就要重传这一报文段。
16位源端口号 | 16位目的端口号 | |||||||
32位序号 | ||||||||
32位确认序号 | ||||||||
4位首部长度 | 保留 (6位) | U R G | A C K | P S H | R S T | S Y N | F I N | 16位窗口大小 |
16位校验和 | 16位紧急指针 | |||||||
选项 | ||||||||
数据 |
图TCP报文格式
-
实验具体步骤
1、抓取本机和远程计算机通讯使用的UDP数据报
在本机上安装并运行腾讯QQ即时聊天工具(腾讯QQ即时聊天软件采用UDP的方式进行数据传输),QQ登陆以后,启动wireshark协议分析工具,并选择“Capture”à“Start”,开始数据包的抓取。然后使用QQ软件和好友进行聊天对话,等待一段时间后停止wireshark的抓包工作。停止抓包后在wiresharkl窗口中除了希望的UDP数据包外,还会有其他一些数据包,所以需要在wiresharkl中的“Filter”域中输入关键字“UDP”,然后点击“Apply”按钮,将非UDP数据包过滤掉。
2、UDP协议分析
分析查看这些UDP协议数据包,回答以下问题:
- 这些UDP数据包的包头分为多少个部分?每个部分代表什么含义?
答:源端口:8000,代表发送方的端口号;
目的端口:55436,代表接收方的端口号;
长度:73,整个 UDP 数据包的长度;
校验和:用于检验数据包在传输过程中是否出现错误。
- 这些UDP数据包的源地址、目的地址分别是多少?通讯使用的源端口和目的端口号又分别是多少?
答:源地址为 36.155.207.242,目的地址为 10.102.91.91,源端口为 8000,目的端口为 55436。
- 观察这些发送的UDP数据包,有没有得到来自对方的回复?为什么?
答:没有回复,因为并没有从 10.102.91.91 的某个端口发往 36.155.207.242 的 8000 端口的数据包
3、UDP校验和的计算
图UDP校验和的计算
根据图5-2给出UDP计算校验和的步骤。
答:当计算UDP协议的校验和时,首先需要在UDP数据报前面添加一个伪首部,其中包含了源IP地址、目的IP地址、协议类型(UDP为17)和UDP数据报长度等信息。然后,将伪首部、UDP首部以及数据部分按照16位字节分割。如果数据部分字节数不是偶数,则需填充全零字节。接下来,对所有的16位字进行二进制反码求和。这意味着每一位进行异或操作,进位会在结果的最低位上被加上。最后,对求和结果取反,得到校验和值。在接收方收到UDP数据报后,也会按照同样的步骤计算校验和,并与接收到的校验和进行比较,以验证数据在传输过程中是否发生错误。
TCP
1、抓取本机和远程计算机进行文件传输时TCP数据包
在分析TCP之前,先通过HTTP POST的方式(通过HTTP方式传输数据有POST和GET两种方式,前者相对后者而言,更适合用于传输具有大量数据的文件),将本地的一个文件上传到一个远程的Web服务器上,然后使用Ethereal去捕获该文件传输过程中的TCP数据包。
(1)打开IE浏览器,在地址栏内输入
“http://gaia.cs.umass.edu/ethereal-labs/alice.txt”,
并复制其内容,然后在本地计算机上新建一个文本文件“alice.txt”,将刚才复制的内容粘贴到该文件中。
(2)在IE浏览器的地址栏中输入“http://gaia.cs.umass.edu/ethereal-labs/TCP-ethereal-file1.html”,出现如图所示的页面。
图 浏览器界面
(3)点击网页上的“浏览”按钮,选择需要上传的本地文件“alice.txt”。注意:在这一步不要点击网页最下面的“Upload alice.txt file”按钮。
(4)启动Ethereal协议分析工具,并点击程序上方“Capture”菜单下的“Start”开始数据包的抓取。
(5)返回到刚才打开的那个网页,点击网页上的“Upload alice.txt file”按钮,发送alice.txt文件。
(6)发送完文件以后,停止Ethereal的抓包工作,会看到如图6-2所示的Ethereal窗口。
图Ethereal抓取的TCP协议数据包
2、过滤无关的其他数据包
由于Ethereal抓包的时候,将网卡设为监听模式,因此在抓取的数据包中,会将网络上出现的所有数据包都抓下来,其中许多是与该实验无关的数据包,如ARP数据包、交换机的通讯包等,因此需要将这些抓到的无关数据包给过滤掉。过滤的步骤为:首先在Ethereal中的“Filter”域中输入关键字“TCP”,然后点击右边的“Apply”按钮,将捕获到的与传输无关的数据包过滤掉,剩下与本实验相关的部分。
在过滤后的数据包捕获窗口中,看到的是本机和gaia.cs.umass.edu之间的一系列的TCP和HTTP通讯信息,其中有初始化连接的含有“SYN”信息的3次TCP握手,一个HTTP POST信息和一系列的从本机发往gaia.cs.umass.edu的TCP包和HTTP包。查看捕获的数据包,回答以下问题:
- 本地计算机的IP地址是什么,通讯使用的TCP端口号是多少?
答:128.119.245.12 80
(2)gaia.cs.umass.edu的IP地址是多少,对方使用哪个端口发送和接收TCP数据包?
答:10.102.182.112 发送80 接受64829
3、TCP协议分析
由于这个实验是分析TCP协议,所以接下来需要将上述的窗口中的HTTP信息过滤掉,只留下TCP数据包。点击“Analyze” 菜单中的“Enableed Protocols”,在弹出的如图6-3所示的“Enabled Protocols”对话框中将“HTTP”的勾选去掉。
图 屏蔽HTTP信息
点击“确定”按钮以后,将会看到只有本机和gaia.cs.umass.edu之间通讯的TCP数据包。分析查看这些TCP数据包,回答以下问题:
- 用于初始化连接的TCP SYN数据包中的sequence号是多少?在该数据包中哪部分表明了该数据包数否为一个SYN数据包?
答:0 syn标志位
- gaia.cs.umass.edu回复的SYNACK数据包中的sequence号是多少?数据包中的哪部分表明了该数据包是否为一个SYNACK数据包?
答:sequence 号是1;
这个数据包中,Flags 字段的值为 0x01010000,其中第 16 位(从右往左数)为 ACK 位,第 17 位为 SYN 位,这两个位都被设置为 1,因此可以确定该数据包是一个 SYNACK 数据包。
- 包含HTTP POST指令的TCP数据包中的sequence号是多少?
答:1
- 如果将含有HTTP POST指令的TCP数据包作为连接建立后的第一个数据包,那么前6个数据包的sequence号是多少?并且它们分别是什么时间发送的?这些数据包的ACK确认包又是什么时候收到的?比较发送的TCP数据包和其确认包有什么不同。这6个数据包的RTT值是多少?在收到每一个ACK确认包后,RTT估计值又是多少?
答:前6个数据包的序列号分别是:1、15、12240、1360、5440和2720。
发送时间:4.439929。
收到时间:4.666633。
发送的TCP数据包包含数据,而ACK确认包只包含确认信息,不包含数据。
这6个数据包的RTT值是0.226704。
收到每个ACK确认包后,估计的RTT值也是0.226704。
(5)前6个TCP数据包的长度分别是多少?
答:分别是565、1460、1460、1460、1460、1460。
相关文章:

计算机网络--TCP、UDP抓包分析实验
计算机网络实验 目录 实验目的 实验环境 实验原理 1、UDP协议 2、TCP协议 实验具体步骤 实验目的 1、掌握使用wireshark工具对UDP协议进行抓包分析的方法,掌握UDP协议的报文格式,掌握UDP协议校验和的计算方法,理解UDP协议的优缺点&am…...

FreeRTOS的中断管理
前言 FreeRTOS的任务有优先级,MCU的硬件中断有中断优先级,这是两个不同的概念,FreeRTOS的任务管理要用到硬件中断,使用FreeRTOS时候也可以使用硬件中断,但是硬件中断ISR的设计要注意一些设计原则,在本节中我…...

JS加密=JS混淆?(JS加密、JS混淆,是一回事吗?)
JS加密、JS混淆,是一回事吗? 是的!在国内,JS加密,其实就是指JS混淆。 1、当人们提起JS加密时,通常是指对JS代码进行混淆加密处理,而不是指JS加密算法(如xor加密算法、md5加密算法、…...

hive-拉链表
目录 拉链表概述缓慢变化维拉链表定义 拉链表的实现常规拉链表历史数据每日新增数据历史数据与新增数据的合并 分区拉链表 拉链表概述 缓慢变化维 通常我们用一张维度表来维护维度信息,比如用户手机号码信息。然而随着时间的变化,某些用户信息会发生改…...

高并发内存池(六):补充内容
目录 有关大于256KB内存的申请和释放处理方法 处理大于256KB的内存申请 补充内容1 补充内容2 补充内容3 处理大于256KB的内存释放 新增内容1 新增内容2 测试函数 使用定长内存池替代new 释放对象时不传对象大小 补充内容1 补充内容2 补充内容3 补充内容4 测试…...

高性能存储 SIG 月度动态:优化 fuse 提升 AI 存储接入能力,erofs 工具发布新版本
本次月报综合了 SIG 在 7、8 两个月的工作进展,包含多项新特性、优化、Bugfix 等。 SIG 整体进展 fuse 支持 failover,并优化 background 读写公平性,提升 AI 存储接入场景的能力。 erofs page cache 共享特性已发到上游社区,re…...

2024 年最新 Protobuf 结构化数据序列化和反序列化详细教程
Protobuf 序列化概述 Protobuf(Protocol Buffers)是由Google开发的一种语言中立、平台中立、可扩展的序列化结构数据的方法。它用于在不同系统之间高效地交换数据。Protobuf使用定义文件(.proto)来描述数据结构,并通过…...

【小程序】微信小程序课程 -4 项目实战
目录 1、 效果图 2、创建项目 2.1 创建小程序端 2.1.1 先创建纯净项目 2.1.2 删除components 2.1.4 删除app.json红色部分 2.1.5 删除index.json红色部分 2.1.6 删除index.wxss全部内容 2.1.7 删除index.wxml全部内容 2.1.8 app.json创建4个页面 2.1.9 app.json添加…...

【期刊】论文索引库-SCI\SSCI\IE\南大核心\北大核心\CSCD等
外文期刊检索 SCI SCI即《科学引文索引》(Science Citation Index),是由美国科学信息研究所(Institute for Scientific Information)创建于1961年,收录文献的作者、题目、源期刊、摘要、关键词,不仅可以从文献引证的角度评估文章的学术价值,还可以迅速方便地组建研究课…...

开源链动 2+1 模式 S2B2C 商城小程序:社交电商团队为王的新引擎
摘要:本文深入探讨在社交电商领域中,团队的重要性以及如何借助开源链动 21 模式 S2B2C 商城小程序,打造具有强大竞争力的团队,实现个人价值与影响力的放大,创造被动收入,迈向财富自由之路,同时为…...

使用Fiddler Classic抓包工具批量下载音频资料
1. 通过F12开发者工具,下载音频文件 浏览器打开音频列表->F12快捷键->网络->媒体,播放一个音频文件,右边媒体下生成一个音频文件,右击“在新标签页中打开”,可以下载这个音频文件。 2.通过Fiddler Classic抓…...

QT开发:基于Qt实现的交通信号灯模拟器:实现一个带有倒计时功能的图形界面应用
介绍 本文将介绍如何使用Qt框架实现一个简单的交通信号灯控制程序。本程序包括一个图形界面,显示红、黄、绿三色信号灯,并通过定时器控制信号灯的切换。同时,我们还将实现一个带有按钮的界面,用于展示信号灯的状态。 1. 安装Qt开…...

【编程基础知识】网络I/O模型详解:从阻塞到异步
引言 网络I/O模型是网络编程的核心,它们决定了应用程序如何进行读写操作以与网络进行数据交换。了解不同的网络I/O模型对于设计高效、可扩展的网络应用程序至关重要。 一、阻塞I/O(Blocking I/O) 1. 定义 阻塞调用:当应用程序…...

yolo自动化项目实例解析(六)自建UI(主窗口、预览窗口)
前面我们大致把各个代码块梳理出来了,但是还是不知道从那块开始,我们这里主要先通过ui页面的元素去推理整个执行过程,我们首先需要知道ui功能里面有那些组件 qt设计师基础控件 Qt Designer 是一个图形界面设计工具,用于创建 Qt 应…...

Unity优质教程分类汇总 【持续更新中】
以下收录的均为作者自己看过的觉得比较好的教程 基础 Unity入门: https://www.bilibili.com/video/BV1HX4y1V71E?p13 生命周期 https://docs.unity.cn/cn/2022.3/uploads/Main/monobehaviour_flowchart.svg https://zhuanlan.zhihu.com/p/551294000 编程技巧…...

真正掌握left join on 和 where 的差别
总结 用 where 是先连接然后再筛选用 on 是先筛选再连接数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下: on条件是在生成临时表…...

神经网络在多分类问题中的应用
作者简介:热爱数据分析,学习Python、Stata、SPSS等统计语言的小高同学~个人主页:小高要坚强的博客当前专栏:Python之机器学习本文内容:神经网络在多分类问题中的应用作者“三要”格言:要坚强、要努力、要学习 目录 1. 引言 2.数据构造 3.划分数据集 4.神经网络实现多…...

nginx的安装和使用
源码安装 1.环境准备:卸载其他方式安装的web应用,防止端口冲突 2.下载nginx源码包 wget https://nginx.org/download/nginx-1.20.2.tar.gz 3.源码编译安装 yum install -y gcc pcre-devel zlib-devel #安装依赖包 useradd -M -s /sbin/nologin ngi…...

js采用覆盖键、覆盖鼠标滑动事件实现禁止网页通过 ctrl + +/- 和 ctrl + 滚轮 对页面进行缩放
一、兼容电脑端的禁止通过 ctrl /- 和 ctrl 滚轮 对页面进行缩放 const keyCodeMap {// 91: true, // command61: true,107: true, // 数字键盘 109: true, // 数字键盘 -173: true, // 火狐 - 号187: true, // 189: true, // -};二、覆盖ctrl||command ‘’/‘-’ // 覆…...

某客户Oracle RAC无法启动故障快速解决
某日,9:50左右接到好友协助需求,某个客户Oracle RAC无法启动,并发过来一个报错截图,如下: 和客户维护人员对接后,远程登录服务端进行故障分析。 查看hosts信息,首先进行心跳测试,测…...

【计算机网络 - 基础问题】每日 3 题(二十八)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...

探索甘肃非遗:Spring Boot网站开发案例
1 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前&#…...

产品管理- 互联网产品(6):产品测试
可用性测试 招募有代表性用户作为测试代表参与者,评估某产品符合特定可用性及符合程度。以具有代表性的用户为测试样本。 测试中多关注用户表情与动作。多鼓励与测试的用户更多的操作以用户角度发现问题。同时要做好询问工作,耐心聆听用户的意见&#x…...

奖金高达 110 万元,Spatial Joy 2024 全球 AR 应用开发大赛启动
今年是AR应用开发大赛第三届,恰逢Rokid成立十周年,我们推出全新的大赛品牌“Spatial Joy”,引领开发者享受开发乐趣,为其打造充满挑战和惊喜的开发之旅,逐渐成为空间计算时代全球最大AR应用开发大赛。回顾大赛发展&…...

git add成功后忘记commit的文件丢了?
本文目标:开发人员,在了解git fsck命令用法的条件下,进行git add成功但由于误操作导致丢失的文件找回,达到找回丢失文件的程度。 文章目录 1 痛点2 解决方案3 总结/练习 1 痛点 开发过程中,分支太多(基线分…...

Python Web 开发中的DevOps 实践与自动化运维
Python Web 开发中的DevOps 实践与自动化运维 📚 目录 🔧 基础设施即代码(IaC) 使用 Terraform、AWS CloudFormation 实现基础设施即代码使用 Python 进行云服务资源的管理与自动化配置编写和部署基础设施的自动化脚本 …...

探索私有化聊天软件:即时通讯与音视频技术的结合
在数字化转型的浪潮中,企业对于高效、安全、定制化的通讯解决方案的需求日益迫切。鲸信,作为音视频通信技术的佼佼者,凭借其强大的即时通讯与音视频SDK(软件开发工具包)结合能力,为企业量身打造了私有化聊天…...

性能调优知识点(mysql)三
SQL底层执行原理 MySQL的内部组件结构:大体来说,MySQL 可以分为 Server 层和存储引擎层store两部分 Server层:主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数…...

TinyWebSever项目面试题整理
TinyWebSever项目面试题整理 1.为什么要做这样一个项目? 满足高并发和高性能需求:现代Web应用面对大量用户,Web服务器需要高效处理并发连接。比如通过线程池、非阻塞I/O、事件驱动机制(如epoll),Web服务器…...

维修保养记录接口-维修保养记录API-汽车接口
维修保养记录接口的使用主要涉及到API对接和在线查询两种方式。以下是详细的使用步骤和注意事项: 一、API对接 注册与申请: 首先,你需要在提供维修保养记录接口的平台(如挖数据平台、第三方数据服务商等)进行注册&…...