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首部格式,我们可以构造出下表:
在这里插入图片描述

嗯嗯~~就酱紫!!!

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 递归 迭代

    递归 迭代递归:A调用B,B调用C,……都在等待上一步结果返回迭代:A问B,B不知道,A再问C,……每次结果都依赖于上一次迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走不能往前退)可迭代对象:在内部定义有__iter__()#可使用__next__()next(iter_l)#内置方法,即调用l.__ite…

    2022年7月13日
    17
  • navicate15最新激活码_在线激活

    (navicate15最新激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsa…

    2022年3月27日
    100
  • leetcode最长回文子串_kmp算法题

    leetcode最长回文子串_kmp算法题实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题

    2022年8月9日
    4
  • mybatis 原理[通俗易懂]

    mybatis 原理[通俗易懂]问题:mybatis是基于mapper接口开发的,mapper接口是执行SQL语句的呢?mybatis对mapper代码的包装主要包含了4个类。1.首先mapper需要将接口进行注册,并且需要获得mapper代理工厂(mapperregistry)mapperregistry类将mapper接口进行注册,并获取mapper代理工厂的工具类(mapperproxyfactory)2.加载mapp…

    2025年6月23日
    3
  • 走进webpack(3)– 小结「建议收藏」

    写这一系列的文章,本意是想要梳理一下自己凌乱的webpack知识,只是使用过vue-cli,修改过其中的一部分代码,但是对于一个简单项目从0开始搭建webpack的流程和其中的依赖并不是十分清楚。所以

    2022年3月25日
    39
  • es6 — 与解构赋值默认值结合使用[通俗易懂]

    es6 — 与解构赋值默认值结合使用

    2022年3月12日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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