目  录

1、实验目的

2、实验环境

3、实验内容

3.1 DNS查询UDP数据分析

3.2 QQ通信UDP数据分析

4、实验结果与分析

4.1 DNS查询UDP数据分析

4.2 QQ通信UDP数据分析

4.3 根据捕获的数据包,分析UDP的报文结构,将UDP协议中个字段名,字段值,字段信息填入下表

4.4 通过分析实验结果,UDP报文结构由哪几部分组成,其功能是什么

5、实验小结

5.1 问题与解决办法:

5.2 心得体会:


1、实验目的

        1、了解和掌握运输层UDP协议内容

        2、理解UDP协议的工作原理

        3、了解应用层和运输层协议的关系


2、实验环境

        1、硬件要求:阿里云云主机ECS 一台、笔记本电脑一台

        2、软件要求:Linux/ Windows 操作系统


3、实验内容

        UDP(User Datagram Protocol)用户数据报协议是一种无连接的运输层协议,提供面向事物的简单不可靠信息传送服务,服务于很多应用层协议包括网络文件系统(NFS),简单的网络管理协议(SNMP),域名系统(DNS)以及简单的文件传输系统(TFTP)。与TCP不同UDP并不提供对IP协议的可靠机制,控制以及错误恢复等。由于UDP比较简单,UDP头包含很少的字节,比TCP负载消耗少。

3.1 DNS查询UDP数据分析

        使用tcpdump抓取DNS查询网络通信数据包,利用wireshark分析UDP数据。

        例如:

dig www.xju.edu.cn

3.2 QQ通信UDP数据分析

        1. 利用wireshark抓取QQ网络通信数据包,分析UDP数据。

        2. QQ客户端之间消息传送采用了UDP。国内网络环境非常复杂而且很多用户采用的方式是通过代理服务器共享一条线路上网方式,UDP包能够穿透大部分的代理服务器,因此QQ选择了UDP作为客户之间的通信协议。因此我们打开QQ聊天窗口开启捕获,与好友进行对话,停止捕获就得到了UDP数据包。


4、实验结果与分析

4.1 DNS查询UDP数据分析

        1. 由于系统中没有dig命令,因此需要使用如下语句进行下载。

yum install dnf

dnf install bind-utils

        2. 如下图所示则为dig命令下载成功。

        3. 利用dig解析新疆大学网站的DNS。

dig www.xju.edu.cn

        4. 利用tcpdump抓取DNS查阅网络通信数据包,并以dns.cap文件保存下来。

tcpdump -i eth0 -w dns.cap

        5. 使用Xftp7将dns.cap文件移动到桌面上。

        6. 在Wireshark中打开桌面上的dns.cap文件进行分析。

        7. 在过滤器中输入以下语句过滤出DNS数据包。

dns

4.2 QQ通信UDP数据分析

        1. 打开Wireshark,由于笔记本电脑连接的是WIFI,所以点击WLAN进行数据包捕获。

        2. 正在进行数据包的抓取。

        3. 点击Wireshark左上方的红色方框按钮,停止抓包。

        4. 使用过滤器得到QQ网络通信数据包时在应用显示过滤器输入以下语句。

oicq

        5. 点击OICQ后数据段中的QQ为十六进制。

        6. 使用过滤器得到UDP数据包时在应用显示过滤器输入以下语句。

udp

        7. 点击Internet Protocol Version后进行UDP相关数据的查看。

4.3 根据捕获的数据包,分析UDP的报文结构,将UDP协议中个字段名,字段值,字段信息填入下表

        1. 对抓取的数据包进行网站通信的UDP数据分析,填写表格内容。

        2. 对抓取的数据包进行QQ通信的UDP数据分析,填写表格内容。

4.4 通过分析实验结果,UDP报文结构由哪几部分组成,其功能是什么

        源端口:需要对方回信时选用,不需要时全部置0;客户端程序请求时,由系统自动指定,端口号范围是 0~65535,0~1023为知名端口号。

        目的端口:服务器的端口,由编写程序的程序员自己指定,这样客户端才能根据ip地址和 port 成功访问服务器,在终点交付报文的时候需要用到。

        UDP总长度:UDP的数据报的长度(包括首部和数据)其最小值为8(只有首部),整个UDP数据报的长度 ,包括报头+载荷。

        UDP校验和:检查数据在传输中是否出错,是否出现bit反转的问题,当进行校验时,需要在UDP数据报之前增加临时的伪首部。


5、实验小结

5.1 问题与解决办法:

        1. 问题一:使用dig命令时出现如下提示此命令未找到:

解决方法:由于系统中没有dig命令所导致,需要在使用此命令前通过 yum install dnf 以及 dnf install bind-utils 命令进行安装。

        2. 问题二:使用tcpdump进行数据包的抓取时出现如下提示此命令未找到:

解决方法:由于命令输入错误导致,数据包的抓取命令为tcpdump,而不是tcpdnmp,将对应命令进行更改后错误消失。

        3. 问题三:对指定网络接口的数据包进行抓取时出现如下提示语法错误:

解决方法:由于命令键入不完整所导致,指定网络接口所需要的参数是-i,在eth0前方添加-i后错误消失。

        4. 问题四:使用tcpdump抓取所有的数据包时一直在抓取,不能够自动停止抓包:

解决方法:使用Ctrl+c就可以终止运行的命令,进而就可以停止抓包。

5.2 心得体会:

        1、由于UDP无需建立连接,因此UDP不会引入建立连接的时延。

        2、UDP不维护连接状态,也不跟踪参数,因此某些专用应用服务器使用UDP时,一般都能支持更多的活动客户机。

        3、分组首部开销更小,UDP只有8个字节的首部开销。

        4、应用层能够更好地控制要发送的数据和发送时间。UDP没有拥塞控制,因此网络中的拥塞也不会影响主机的发送效率。某些实时应用(如直播)要求以稳定的速度发送,能容忍一些数据的丢失,但不允许有较大的时延,而UDP正好可以满足这些应用的需求。

        5、UDP提供尽最大努力的交付,即不保证可靠交付,但并不意味着应用对数据的要求是不可靠的,因此需要维护传输可靠性的工作需要用户在应用层来完成。应用实体可以根据应用需求来灵活设计自己的可靠性机制。

        6、UDP是面向报文的,发送方UDP对应用层交下来的报文,在添加首部后就交付给IP层,既不合并,也不拆分,而是保留这些报文的边界;接受方UDP对IP层交上来的用户数据报,在去除首部后就原封不动的交付给上层的应用进程,一次交付一个完整的报文,因此报文不可分割,是UDP数据处理的最小单位。

        7、UDP常用于一次性传输比较小数据的网络应用,如DNS、SNMP等,因为对于这些应用,若采用TCP,则将为创建连接、维护和拆除而带来不小的开销。UDP也常用于多媒体应用(如IP电话、实时视频会议、流媒体等),显然,可靠数据传输对于这些应用来说并不是最重要的,但TCP的拥塞控制会导致数据出现较大的延迟,这是它们不可容忍的。

        8、当传输层从IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交给应用进程。如果接收方UDP发现收到的报文中的目的端口号不正确(不存在对应端口号的应用进程0),就丢弃该报文,并由ICMP发送“端口不可达”差错报文给对方。

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

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

相关文章

Mysql 学习总结(90)—— Mysql 8.0 25 条性能优化实战指南

1. 内存配置优化 # my.cnf 关键内存参数 innodb_buffer_pool_size = 8G # 建议设置为物理内存的70-80% innodb_log_buffer_size = 64M # 日志缓冲区大小 query_cache_size = 0 # MySQL 8.0已移除,确保关闭 tmp_table_size = 256M # 临时表大小 max_…

嵌入式通信DQ单总线协议及UART(一)

文章目录一、DS18B20--DQ单总线1.1 单总线时序结构分析1.1.1 初始化:1.1.2 发送一位1.1.3 接收一位1.1.5 发送字节1.1.6 操作流程1.1.7 数据帧的理解1.1.8 数据帧的理解二、UART2.1 同步通信和异步通信2.2 双工通信2.3 串行通信常用数据校验方式2.3.1 奇偶检验2.3.2…

2025年SEVC SCI2区,利用增强粒子群算法(MR-MPSO)优化MapReduce效率和降低复杂性,深度解析+性能实测

目录1.摘要2.MapReduce-Modified Particle Swarm Optimization (MR-MPSO)3.结果展示4.参考文献5.算法辅导应用定制读者交流1.摘要 大数据的迅猛增长带来了严峻的数据管理挑战,尤其是在数据分布不均的庞大数据库中。由于这种不匹配,传统软件系统的效率大…

10-day07文本分类

文本分类使用场景文本分类任务 文本分类-机器学习贝叶斯算法应用在NLP中的应用 用贝叶斯公式处理文本分类任务 一个合理假设: 文本属于哪个类别,与文本中包含哪些词相关 任务: 知道文本中有哪些词,预测文本属于某类别的概率 贝叶斯…

Apache SeaTunnel详解与部署(最新版本2.3.11)

目录 一、概述 1.1、软件介绍 1.2、解决问题​ 1.3、软件特性​ 1.4、使用用户 1.5、产品对比 二、架构 2.1、运行流程 2.2、连接器​ 2.3、引擎 2.3.1、设计理念 2.3.2、集群管理​ 2.3.3、核心功能​ 2.3.4、引擎对比 三、软件部署 3.1、Docker部署 3.2、发…

pytorch | minist手写数据集

一、神经网络神经网络(Neural Network)是一种受生物神经系统(尤其是大脑神经元连接方式)启发的机器学习模型,是深度学习的核心基础。它通过模拟大量 “人工神经元” 的互联结构,学习数据中的复杂模式和规律…

[C/C++安全编程]_[中级]_[如何避免出现野指针]

场景 在Rust里不会出现野指针的情况,那么在C里能避免吗? 说明 野指针是指指向无效内存地址的指针,访问它会导致未定义行为,可能引发程序崩溃、数据损坏或安全漏洞。它是 C/C 等手动内存管理语言中的常见错误,而 Rust…

机器学习基础:从数据到智能的入门指南

一、何谓机器学习​ 在我们的日常生活中,机器学习的身影无处不在。当你打开购物软件,它总能精准推荐你可能喜欢的商品;当你解锁手机,人脸识别瞬间完成;当你使用语音助手,它能准确理解你的指令。这些背后&a…

steam游戏搬砖项目超完整版实操分享

大家好,我是阿阳,今天再次最详细的给大家综合全面的分析讲解下steam搬砖,可以点击后面跳转往期文章了再次解下阿阳网客:关于steam游戏搬砖项目,我想说!最早是21年5月份公开朋友圈,初次接触是在2…

vue2 面试题及详细答案150道(21 - 40)

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

原生前端JavaScript/CSS与现代框架(Vue、React)的联系与区别(详细版)

原生前端JavaScript/CSS与现代框架(Vue、React)的联系与区别,以及运行环境和条件 目录 引言原生前端技术概述 JavaScript基础CSS基础 现代框架概述 Vue.jsReact 联系与相似性主要区别对比运行环境和条件选择建议总结 引言 在现代Web开发中&…

基于机器视觉的迈克耳孙干涉环自动计数系统设计与实现

基于机器视觉的迈克耳孙干涉环自动计数系统设计与实现 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 摘要 本文设计并实现了一种基于机器视觉的迈克耳孙干涉环自动计数系统。该系统…

设计模式笔记(1)简单工厂模式

最近在看程杰的《大话设计模式》,在这里做一点笔记。 书中主要有两个角色: 小菜:初学者,学生; 大鸟:小菜表哥,大佬。 也按图中的对话形式 01 简单工厂模式 要求:使用c、Java、C#或VB…

Vue3 学习教程,从入门到精通,Vue 3 声明式渲染语法指南(10)

Vue 3 声明式渲染语法指南 本文将详细介绍 Vue 3 中的声明式渲染语法,涵盖所有核心概念,并通过一个完整的案例代码进行演示。案例代码中包含详细注释,帮助初学者更好地理解每个部分的功能和用法。 目录 简介声明式渲染基础 文本插值属性绑…

React hooks——useReducer

一、简介useReducer 是 React 提供的一个高级 Hook,用于管理复杂的状态逻辑。它类似于 Redux 中的 reducer 模式,适合处理包含多个子值、依赖前一个状态或逻辑复杂的状态更新场景。与 useState 相比,useReducer 提供更结构化的状态管理方式。…

SEO中关于关键词分类与布局的方法有那些

前边我们说到关键词挖掘肯定很重要,但如何把挖掘出来的关键词用好更为重要,下边我们就来说说很多seo刚入行的朋友比较头疼的关键词分类问题,为了更直观的感受搭配了表格,希望可以给大家一些帮助!SEO优化之关键词分类​挖掘出的关键…

考研最高效的准备工作是什么

从性价比的角度来说,考研最高效的准备工作是什么呢? 其实就是“卷成绩”。 卷学校中各门课程的成绩,卷考研必考的数学、英语、政治和专业课的成绩。 因为现阶段的考研,最看重的仍然是你的成绩,特别是初试成绩。 有了…

【Linux】基于Ollama和Streamlit快速部署聊天大模型

1.环境准备 1.1 安装Streamlit 在安装Streamlit之前,请确保您的系统中已经正确安装了Python和pip。您可以在终端或命令行中运行以下命令来验证它们是否已安装 python --version pip --version一旦您已经准备好环境,现在可以使用pip来安装Streamlit了。…

Jetpack - ViewModel、LiveData、DataBinding(数据绑定、双向数据绑定)

一、ViewModel 1、基本介绍 ViewModel 属于 Android Jetpack 架构组件的一部分,ViewModel 被设计用来存储和管理与 UI 相关的数据,这些数据在配置更改(例如,屏幕旋转)时能够幸存下来,ViewModel 的生命周期与…

Go并发聊天室:从零构建实战

大家好,今天我将分享一个使用Go语言从零开始构建的控制台并发聊天室项目。这个项目虽然简单,但它麻雀虽小五脏俱全,非常适合用来学习和实践Go语言强大的并发特性,尤其是 goroutine 和 channel 的使用。 一、项目亮点与功能特性 …