UDP协议抓包分析

UDP协议抓包分析一、什么是UDPUDP就是一种无连接的协议。该协议用来支撑那些需要在计算机之间传输数据的网络应用,包括网络视频会议系统在内的众多客户/服务器模式的应用。二、UDP协议的特点UDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接传输服务。他也不提供报文到达确认、排序及流量控制等功能。(1)UDP是一个无连接协议,也就是传输数据之前源端口和目标端口不能建立连接。当它想传输时,就简单…

大家好,又见面了,我是你们的朋友全栈君。

一、什么是UDP
UDP就是一种无连接的协议。该协议用来支撑那些需要在计算机之间传输数据的网络应用,包括网络视频会议系统在内的众多客户/服务器模式的应用。
二、UDP协议的特点
UDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接传输服务。他也不提供报文到达确认、排序及流量控制等功能。
(1)UDP是一个无连接协议,也就是传输数据之前源端口和目标端口不能建立连接。当它想传输时,就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传输数据的速度仅仅是受应用程序生成数据的速度,,计算机的能力和传输带宽的限制。在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
(2)由于传输数据不建立连接,因此也就不需要维护连接状态。因此,一台服务器可能同时向多个客户机传输相同的信息。
(3)UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很少。
(4)吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和目标端主机性能的限制。
(5)UDP使用尽最大努力交付,既不保证可靠交付,因此主机不需要维持复杂的链接状态表
(6)UDP是面向报文的。发送方的UDP对应用程序传输下来的报文,添加首部后就想下传送给IP层。既不拆分,也不合并,而是保留这些报文的边界。因此,应用程序需要选择合适的报文大小。
三、捕获ARP协议包
实验环境
PC:物理机WIN10(IP:10.175.139.213)[在此启动wireshark]
使用捕获过滤器
根据实验环境选择捕获选项
在这里插入图片描述
进入如下界面,当前没有捕获到任何包。因为这里使用了捕获过滤器,仅捕获UDP包
在这里插入图片描述
在PC上执行QQ程序,这时候只需要简单地登陆一下,将会捕获到大量的UDP数据包;
在wireshark中查看抓包记录
在这里插入图片描述
其中,我们会看到许多QICQ协议,这里的QICQ协议表示是运行的QQ程序;
在分析UDP数据包之前我们先介绍一下格式,以清楚地理解每个包
UDP数据报首部格式如下:
在这里插入图片描述
源端口:用来传输数据包的端口
目标端口:数据包将要被传输到的端口
数据报长度:数据报的字节长度
校验和:用来确保UDP首部和数据到达时的完整性
数据:被UDP封装进去的数据,包含应用层协议头部和用户发出的数据

查看捕获的UDP数据包。可以看到共有五行详细信息。其中,第四行信息是UDP协议的详细信息。
在这里插入图片描述
其中,以下内容表示这是第1570帧数据报的详细信息。其中包的大小为712个字节
在这里插入图片描述
以下内容表示以太网帧头部信息。其中源MAC地址为52:ce:c2:12:8b:ef,目标MAC地址为94:db:da:3e:8f:cf。
在这里插入图片描述
以下信息是IPV4首部信息。其中源IP地址为10.175.139.213,目标IP地址为123.151.78.110。
在这里插入图片描述
以下信息是表示传输层的数据报首部信息,此处是UDP协议。其中源端口号为56429,目标端口为。以下为对该部分内容展开介绍。
在这里插入图片描述
以下信息是被UDP封装进去的数据,其大小为47bytes
在这里插入图片描述
关于以上UDP首部格式,我们可以构造出下表:
在这里插入图片描述

嗯嗯~~就酱紫!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143818.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)
blank

相关推荐

  • c# 进度条的使用(例子)[通俗易懂]

    c# 进度条的使用(例子)[通俗易懂]2012-05-2320:21在用c#做WinFrom开发的过程中。我们经常需要用到进度条(ProgressBar)用于显示进度信息。这时候我们可能就需要用到多线程,如果不采用多线程控制进度条,窗口很容易假死(无法适时看到进度信息)。下面我就简单结合一个我写的例子给大家做一个介绍。首先看一下程序界面第一步:设计界面不说了…注意需要引用usingSyst

  • SpringBoot 源码编译「建议收藏」

    SpringBoot 源码编译「建议收藏」SpringBoot源码编译1、从GitHub上下载源码https://github.com/spring-projects/spring-boot/tree/2.1.x下载源码的下面有关于编译源码的介绍:SpringBoot官方建议使用./mvnwcleaninstall或者标准的mvncleaninstall命令来编译源代码,如果要使用标准的mvn命令的话…

  • 解决8080端口被占用问题「建议收藏」

    解决8080端口被占用问题「建议收藏」问题叙述在IDEA中运行项目时会出现8080端口被占用的情况,可能是运行tomcat的时候,也可能是在用vue进行前后端分离项目,运行后端代码时出现端口被占用。这里以运行tomcat显示占用举例,如下图所示;解决方法1、按快捷键windows+R,在运行框里输入cmd,如图所示,2、在dos命令中输入netstat-aon|findstr“8080”,查看端口。3、找到8080端口,查看正在运行程序的pid,如图所示。4、回到桌面,任务栏,右键,任务管理器,如图所示会显示正在运行的

    2022年10月30日
  • PowerBI通过gateway连接多维数据库

    PowerBI通过gateway连接多维数据库

    2021年11月26日
  • hashmap的扩容原理_HashMap

    hashmap的扩容原理_HashMap本篇文章分别讲解JDK1.7和JDK1.8下的HashMap底层实现原理文章目录一、什么是HashMap?二、为什么要使用HashMap?三、HashMap扩容为什么总是2的次幂四、JDk1.7扩容死循环问题五、JDK1.8的新结构1.为什么非要使用红黑树呢?2.什么是红黑树?3.红黑树的特性一、什么是HashMap?HashMap数据结构为数组+链表(JDk1.7),JDK1.8中增加了红黑树,其中:链表的节点存储的是一个Entry对象,每个Entry对象存储四个属性(hash,key,v

  • 数据库建立

    数据库建立1, 在我们写完计划表后开始建立数据库,数据库的建立不是说建立完了就可以了,到后面是需要不断地改善的,因为前期的数据我们可能列举出表时不够完整,或者表与表之间的关系链接错误,重复。2, 随着项目的功能实现,渐渐的数据库的数据显示出不足,我们就要进行改善1, 数据库的建立要先对项目的功能有足够的理解,要熟悉项目,把项目的表列举出来,那些数据是属于那个表的,一个表里面需要获取到那些表的信息,确定…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号