-
2021-08-21 16:40:53更多相关内容
-
Wireshark数据抓包分析之UDP协议
2022-02-17 16:37:17分析UDP数据包 预备知识 1.UDP协议概述 UDP是User Datagram Protocol(用户数据协议)的简称,是一种无连接的协议,该协议工作在OSI模型中的第四层(传输层),处于IP协议的上一层。传输层的功能就是建立“端口到...目录
预备知识
1.UDP协议概述
UDP是User Datagram Protocol(用户数据协议)的简称,是一种无连接的协议,该协议工作在OSI模型中的第四层(传输层),处于IP协议的上一层。传输层的功能就是建立“端口到端口”的通信,UDP提供面向事务的简单的不可靠信息传送服务。
2.什么是UDP协议
UDP协议是一种无连接的协议,该协议用来支撑那些需要在计算机之间传输数据的网络应用,包括网络视频会议系统在内的众多客户/服务器模式的网络应用。
UDP协议的主要工作就是将网络数据流量压缩成数据包的形式。一个经典的数据包就是一个二进制数据的传输单位。每一个数据包的前8字节用来包含包头信息,剩余字节则用来包含具体的传输数据。3.UDP协议的特点
UDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接传输服务。它也不提供报文到达确认、排序及流量控制等功能。下面详细介绍UDP协议的特点,如下所示:
1.UDP是一个无连接的协议,也就是传输数据之前,源端口和目标端口不能建立连接。当它想传输时,就简单地抓取来自应用程序的数据,并尽可能快的把它扔到网络上。在发送端,UDP传输数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽限制。在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
2.由于传输数据不建立连接,因此也就不需要维护连接状态。所以,一台服务器可同时向多个客户机传输相同的消息。
3.UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
4.吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端口和目标端口主机性能的限制。
5.UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表。
6.UDP是面向报文的。发送方的UDP对应用程序传输下来的报文,添加首部后就向下传送给IP层。既不拆分,也不合并,而是保留这些报文的边界。因此,应用程序需要选择合适的报文大小。
虽然UDP是一个不可靠的协议,但它是分发信息的一个理想协议。例如,在屏幕上报告股票市场,在屏幕上显示航天信息等等。UDP也用在路由信息协议RIP(Routing Information Protocol)中修改路由表。在这些应用场合下,如果有一个消息丢失,几秒之后另一个新的消息就会替换它。UDP广泛用在多媒体应用中,例如,Progressive Networks公司开发的RealAudio软件,它是在因特网上把预先录制的或者现场音乐实时传送给客户机的一种软件。该软件使用的RealAudio audio-on-demand protocol协议就是运行在UDP之上的协议。大多数因特网电话软件产品也都运行在UDP之上,如QQ聊天、视频、网络电话、迅雷等。实验目的
1)熟悉并掌握Wireshark的基本操作。
2)加深对常用网络协议的理解,提高就业机会。
3)培养学生理论联系实践的研究兴趣。实验环境
服务器:windows系统,IP地址:10.1.1.33
测试者:windows系统,IP地址:10.1.1.142实验步骤一
根据实验环境,本实验的步骤如下:
1.安装发包工具,并与Wireshark配合使用,获取UDP数据包。
2.分析获取的UDP数据包。
任务描述:安装发包工具,并配置UDP客户端,服务端,与Wireshark配合使用。1.配置TCP&UDP测试工具
实验室环境中,我们使用“TCP&UDP测试工具”来制作和发送UDP数据包。双击测试者机器桌面的“TCP&UDP测试工具”,会出现下图显示页面:
下面我们需要配置UDP的服务端以及客户端。2.配置服务器端
选择10.1.1.33的机器,双击桌面的“TCP&UDP测试工具”,右键点击服务器模式,在下拉列表中,选择创建服务器,如下图:
选择“创建服务器”之后,会弹出服务器端口设置,本次使用默认工具给的6000端口即可,点击“确定”按钮。
点击“确定”按钮之后,在左侧的服务器模式列表中,会出现创建的列表,选择我们创建的服务器,右键点击,选择“启动服务器”,即完成了服务器端的配置:
配置完毕后,可以在实验机观察看,上图中,服务器模式下的红色标志消失。打开Wireshark,选择抓包网卡,在Filter里输入udp,并点击Apply按钮,准备抓包,如下:
3.配置客户端
选择10.1.1.142的机器,双击桌面的“TCP&UDP测试工具”,右键点击客户端模式,在下拉列表中,选择“创建连接”,如下图:
在弹出的窗口中,选择UDP协议,服务器IP为10.1.1.33。端口6000,本机随意IP,如下图:
点击创建后,如下图:
点击上图中,红色的创建按钮,并启动Wireshark抓包,与服务器端配置Wireshark相同,选择UDP协议,准备抓包:
4.获取UDP数据包
在10.1.1.142的UDP客户端,输入“hetianlab”,点击下图红色标注的发送按钮,即可产生UDP数据,并发送到10.1.1.33的服务器端,如下图:
客户端发送UDP数据,Wireshark截图如下(190帧数据):
服务端接收UDP数据,Wireshark截图如下(51帧数据):
实验步骤二
任务描述:分析UDP数据包。
1.UDP首部格式
UDP数据报也是由首部和数据两部分组成。在首部定义了发出端口和接收端口,数据部分就是具体的内容。其中,UDP数据报首部部分共有8个字节,总长度不超过65535字节,正好可以放入一个IP数据报。为了使学习者对UDP数据报有一个更清晰的认识,下面将接收UDP首部格式,如下图:
UDP首部格式:
在上图中,UDP首部每个字段的含义如下所示。
Source port:用来传输数据包的端口。
Destination port:数据报将要被传输到的端口。
Length:数据报的字节长度。
Checksum:用来确保UDP首部和数据到达时的完整性。
Data:被UDP封装进去的数据,包含应用层协议头部和用户发出的数据。2.分析UDP数据包
通过前面对UDP协议的详细介绍及数据包的捕获,现在就可以来分析UDP协议,以10.1.1.142发送的UDP数据报为对象。如下图:
从Wireshark的Packet Details面板中,可以看到共有5行详细信息。其中,第4行信息是UDP协议的详细信息。下面依次介绍Packet Details面板中的详细信息。
以上信息表示是第190帧信息,其中包的大小为51个字节。
以上信息表示是以太网帧首部的详细信息。其中,源MAC地址为02:00:04:78:01:7b,目标MAC地址为02:00:7b:16:02:43。
以上信息表示IPv4首部信息。其中源IP地址为10.1.1.142,目标IP地址为10.1.1.33。
以上信息表示传输层的数据报首部信息,此处是UDP协议。其中,源端口号为50262,目标端口号为6000(与服务器段配置一致)。该行信息,就是本章介绍的UDP协议包详细信息,下面对该部分内容展开介绍,如下所示:User Datagram Protocol, Src Port: 50262 (50262), Dst Port: 6000 (6000) Source Port: 50262 (50262) #源端口 Destination Port: 6000 (6000) #目标端口 Length: 17 #数据报长度 Checksum: 0x16d3 [validation disabled] #校验和 Good Checksum: False Bad Checksum: False
以上信息就是UDP首部中对应的每个字段。最后一行信息是应用层数据报大小,如下所示。
Data (9 bytes) #数据包 Data: 68657469616e6c6162 Length: 9 #数据长度为9个字节
该行信息就是被UDP封装进去的数据,其大小为71个字节。
将UDP协议首部的数据包详细信息对应到UDP首部格式中,结果如下:
-
C#使用TCP/UDP协议通信并用Wireshark抓包分析数据
2021-01-27 11:19:27进行通信,使用Wireshark抓包软件抓取发送的包并分析数据结构,由于涉及到客户端和通信端,可以使用两台电脑,一台电脑编写客户端代码,一台电脑编写服务器端代码,也可以在一台电脑上开两个 VS2019同时编译两个端,... -
wireshark抓包分析UDP
2020-06-27 12:10:531、什么是UDP? 传输层有两个协议,之前讨论过的TCP协议和现在要说的UDP协议。二者互为补充,UDP是无连接的协议,它无需经过繁琐的握手就能建立连接并且发送已封装的IP数据包,它能做的事情很少。而面向连接的TCP...1、什么是UDP?
传输层有两个协议,之前讨论过的TCP协议和现在要说的UDP协议。二者互为补充,UDP是无连接的协议,它无需经过繁琐的握手就能建立连接并且发送已封装的IP数据包,它能做的事情很少。而面向连接的TCP协议几乎可以做所有事情。
特点:
UDP最大的三个特点是无连接、不可靠、快速传输
UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责。常用的UDP端口号有:53(DNS)、69(TFTP)、161(SNMP)
UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差
应用:
- 包总量较少的通信(DNS、SNMP等)
- 视频、音频等多媒体通信(即时通信)
- 限定于 LAN 等特定网络中的应用通信
- 广播通信(广播、多播)
2、UDP报文首部信息分析
UDP报文格式:
源端口:16位,源主机运行的进程对应的端口号
目的端口:16位,目的主机运行的进程对应的端口号
多数情况下,服务器对应的进程端口号一般为熟知端口号,客户端/源主机对应的进程端口号一般为临时端口号
长度:16位,包括首部在内的UDP报文的总长度
校验和:16位,主要检验UDP报文在传输过程中是否出错
wireshark抓包获取首部信息:
-
wireshark抓取分析UDP数据包
2020-01-17 15:13:48回到wireshark,双击vnet0,开始监听。执行 UDPTestClient 类,找到发送的数据包。 其中Source 10.1.1.64->Destination 192.168.122.217就是我们发送的数据包。双击查看数据包详细信息。 第一个目录下的...在命令行输入ifconfig,查看本机网络接口。
$ ifconfig
enp4s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether c8:5b:76:f6:44:d2 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 391 bytes 61933 (60.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 391 bytes 61933 (60.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:a7:e6:9c txqueuelen 1000 (Ethernet)
RX packets 31 bytes 3291 (3.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 18 bytes 2571 (2.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::fc54:ff:fe15:2983 prefixlen 64 scopeid 0x20<link>
ether fe:54:00:15:29:83 txqueuelen 1000 (Ethernet)
RX packets 31 bytes 3725 (3.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 39 bytes 4941 (4.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.1.1.64 netmask 255.255.255.0 broadcast 10.1.1.255
inet6 fe80::40df:807c:eb38:8b78 prefixlen 64 scopeid 0x20<link>
ether a8:6b:ad:54:d5:3d txqueuelen 1000 (Ethernet)
RX packets 10965 bytes 11639278 (11.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3369 bytes 513997 (501.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
运行一段Java代码,往内网ip192.168.122.217发送UDP数据
package UDPtest;
import java.io.IOException;
import java.net.*;
public class UDPTestClient {
private static final int PORT = 8800;
private static final String HOSTNAME = "192.168.122.217";
public static void main(String[] args){
try (DatagramSocket ds = new DatagramSocket(8801)){
/**
* 这里是发送数据到服务端
*/
//这里定义地址信息
InetAddress id = InetAddress.getByName(HOSTNAME);
//要发送的数据
byte[] buffer = "这里是客户端发送的数据".getBytes();
//将数据打包成udp数据包
DatagramPacket dp = new DatagramPacket(buffer, buffer.length,id,PORT);
//发送数据包
ds.send(dp);
/**
* 这里是从服务端接收数据
*/
byte[] data2 = new byte[1024];
DatagramPacket packet2 = new DatagramPacket(data2,data2.length);
ds.receive(packet2);
String info = new String(data2,0,packet2.getLength());
System.out.println("我是客户端 从服务端收到的数据 info = " + info);
} catch (IOException e) {
e.printStackTrace();
}
}
}
在所有列出的网卡中找到正在运行的网卡,即
flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
有RUNNING字段的网卡。这里有lo,wlp5s0,vnet0,显然lo是本地回环接口,vnet0才是我们要找到的网卡。回到wireshark,双击vnet0,开始监听。执行
UDPTestClient
类,找到发送的数据包。其中Source 10.1.1.64->Destination 192.168.122.217就是我们发送的数据包。双击查看数据包详细信息。
第一个目录下的Interface看到是无线网卡接口
Interface id: 0 (vnet0) Interface name: vnet0
第二个目录,以太网口
Ethernet II, Src: HonHaiPr_54:d5:3d (a8:6b:ad:54:d5:3d), Dst: Tp-LinkT_06:67:7d (74:05:a5:06:67:7d) Destination: Tp-LinkT_06:67:7d (74:05:a5:06:67:7d) Address: Tp-LinkT_06:67:7d (74:05:a5:06:67:7d) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) Source: HonHaiPr_54:d5:3d (a8:6b:ad:54:d5:3d) Address: HonHaiPr_54:d5:3d (a8:6b:ad:54:d5:3d) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) Type: IPv4 (0x0800)
Src代表源设备,Dst指目的设备,这里是从 HonHaiPr_54:d5:3d的MAC地址发送到Tp-LinkT_06:67:7d 路由器的MAC地址。
第三个目录
Internet Protocol Version 4, Src: 10.1.1.64, Dst: 192.168.122.217
下的目录Destination GeoIP: CN
[Destination GeoIP: CN] [Destination GeoIP Country: China] [Source or Destination GeoIP Country: China] [Destination GeoIP ISO Two Letter Country Code: CN] [Source or Destination GeoIP ISO Two Letter Country Code: CN] [Destination GeoIP Latitude: 34.7725] [Source or Destination GeoIP Latitude: 34.7725] [Destination GeoIP Longitude: 113.7266] [Source or Destination GeoIP Longitude: 113.7266]
GeoIP是基于IP查询地理位置。
找到UDP首部目录
User Datagram Protocol, Src Port: 8801, Dst Port: 8800
User Datagram Protocol, Src Port: 8801, Dst Port: 8800 Source Port: 8801 Destination Port: 8800 Length: 41 Checksum: 0x16bc incorrect, should be 0x7c26 (maybe caused by "UDP checksum offload"?) [Expert Info (Error/Checksum): Bad checksum [should be 0x7c26]] [Bad checksum [should be 0x7c26]] [Severity level: Error] [Group: Checksum] [Calculated Checksum: 0x7c26] [Checksum Status: Bad] [Stream index: 0]
依次看到RFC 768定义的UDP首部,Source Port、Destination Port、Length、Checksum的信息。可以看到checksum错误,获取的包的checksum与计算出来的checksum不一致。这是因为有些路由器会参与checksum的计算,但上层协议栈并不知情,所以二者算出的checksum值不一样。
检验和计算可能由网络网络驱动,协议驱动,甚至是硬件完成。高层校验通常是由协议执行,并将完成后的包转交给硬件。比较新的网络硬件可以执行一些高级功能,如IP检验和计算,这被称为checksum offloading。网络驱动不会计算校验和,只是简单将校验和字段留空或填入无效信息,交给硬件计算。
注:本文为小yip原创,未经许可不得在任何平台转载。如需转载,与作者联系~
欢迎加入linux交流群:734638086,分享工作经验。
关注微信公众号:技术训练营(微信ID:TechBootcamp),获取更多资讯~
微信扫一扫,发现更精彩。
-
wireshark分析UDP协议
2020-03-15 15:22:34UDP概念 用户数据报协议(User Datagram Protocol,UDP)是开放系统互联模型(Open System Interconnection,OSI...这种协议自身提供最小功能,因此使用它的应用程序要做许多关于数据报如何发送和处理的控制工作。... -
wireshark的使用与分析(以TCP和UDP为例)
2022-03-17 22:11:23使用 wireshark 软件对协议进行还原 需要一些计算机网络的基础,还是比较容易分析的 实验基本信息: 实验环境:Windows10 x64 , WireShark3.6.2 先进行抓包,抓包过程在此不赘述,参考链接:... -
Wireshark协议分析之UDP
2020-03-13 18:29:29用户数据包协议(UserDatagram Protocao,UDP)是在现代网络中较常使用的另外一种第4层协议。如果说TCP是为了满足带有内在错误检测的可靠数据传输,那么UDP主要是为了提供高速的传输。UDP是一种尽力服务,通常会被... -
wireshark分析udp分片
2022-03-23 14:30:47wireshark默认会组装分片的包,所以抓不到。需要进行设置 编辑-》首选项-》protocols,取消组装 帧结构 分片 第一包 第二包 -
【计算机网络】利用WireShark分析TCP/UDP协议
2021-12-07 12:08:51WireShark网络协议解析器 Version 2.4.13 (v2.4.13-0-gf2c6a94a3f) 查询本地回环的工具RawCap 分析过程: 1、对TCP协议进行分析 (1)利用java编写TCP服务端和客户端(略) (2)打开抓包软件 &... -
wireshark 抓取udp包 --- 记录
2019-04-17 13:17:54转:https://blog.csdn.net/u011416247/article/details/80868133 -
wireshark分析UDP数据包
2017-09-09 20:42:20这里利用wireshark抓捕QQ登陆时候的UDP数据包,分析其中的协议,仅仅分析众多数据包中的一帧。因为不是为了破译啥,仅仅是为了抓包看看具体的UDP协议而已。 其中上面QICQ就是其中一条UDP数据包。QICQ - IM是QQ... -
linux系统内核UDP丢包原因分析
2021-02-05 01:12:52linux系统内核UDP丢包原因分析1、UDP校验和错误现象:可以用netstat -su 查看到有UDP错包。tcpdump捕包,在wireshark打开捕获的udp报文,开启校验和选项,有错包。方案:查找链路故障 www.ahlinux.com2、防火墙开启... -
UDP协议抓包分析 -- wireshark
2020-10-03 20:20:35UDP协议抓包分析 – wireshark UDP是User Datagram Protocol用户数据报协议的简称。他是OSI七层模型中一种无连接的传输层协议,提供面向事务的简单的不可靠信息传送服务。 UDP协议就是一种无连接协议,该协议用来... -
Wireshark将udp包作为rtp包解析
2018-05-17 10:48:10最近在使用 Wireshark的时候,由于想要分析一下 rtp数据包的 Seq值,...并提取相关的值,如下图所示:但是如果 Wireshark没有抓取到 最开始建立连接时的交互信息,那么之后抓取的数据包只会当做普通的 udp包进行处理... -
使用TCP/UDP协议通信并用Wireshark抓包分析数据
2021-11-24 19:51:19一.Socket、TCP、UDP 1. Socket 我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突... -
Wireshark抓包:详解udp协议
2022-04-20 00:57:30通过wireshark这个抓包工具抓取udp协议的报文进行详细的分析。dns默认是基于udp协议的。 访问一个域名的过程中,其实就是会做一个域名解析。域名解析用到的就是dns协议(应用层协议)。下面就触发dns的流量,抓取... -
wireshark抓包分析
2015-10-01 10:44:39计算机网络wireshark抓包分析,包括udp tcp http qq协议qicq dns arp等协议。。。 -
Wireshark 分析用户数据报UDP
2020-09-12 15:10:40使用wireshark这款软件来分析UDP包,UDP报文为了方便读者复现,直接使用官网提供的包文件说明 准备UDP分析报文 从wireshark官网下载UDP分析包:tpncp_udp.pcap,使用wireshark打开tpncp_udp.pcap,这里我们选择第4个... -
使用wireshark分析TCP及UDP协议
2018-02-28 17:50:30最近在工作中涉及到使用一种4G 的DTU 模块与服务器后台通信。因在部分场景下需要在消息中传输文件(通过base64),因此考虑到以下两个问题: 1) TCP连接 是否保证多次send(发送)... 为方便采用wireshark 分析TC... -
计算机网络实验-使用Wireshark分析TCP和UDP协议
2021-07-29 03:35:27《计算机网络实验-使用Wireshark分析TCP和UDP协议》由会员分享,可在线阅读,更多相关《计算机网络实验-使用Wireshark分析TCP和UDP协议(6页珍藏版)》请在人人文库网上搜索。1、实验3 Wireshark抓包分析TCP和UDP协议... -
wireshark简单使用抓包分析
2022-01-05 20:38:35前几天供应商的机器与我们公司的RMS软件无法连接上,使用wireshark这软件进行分析截取网络数据包,并查看显示数据包详细信息 文章目录前言一、wireshark是什么?二、wireshark使用步骤1.WireShark主界面2.WireShark... -
10. WireShark学习-分析UDP Flooding攻击
2020-07-13 22:08:3810. 分析UDP Flooding攻击 UDP,虽然与TCP一样位于传输层, UDP协议却不需要建立连接就可以传输数据,而且少了很多的控制机制,因而传输速度高于TCP协议,所以也得到了广泛的使用。不过, UDP协议也面临着一个和TCP协议... -
WireShark 分析 UDP 协议
2019-04-14 19:00:18UDP协议主要包括如下: 源端口和目的端口:(端口是用来指明数据的来源(应用程序)以及数据发往的目的地(同样是应用程序))字段包含了16比特的UDP协议端口号,它使得多个应用程序可以多路复用同一个传输层协议及... -
玩转wireshark系列第三篇-抓取udp包
2018-06-30 17:11:04(首先声明一下我也是一名小白,初学wireshark没多久,我也...此时会有海量的数据包,为了便于分析,我们使用过滤器输入“udp”以筛选出udp报文。但是为什么输入udp之后出现那么多种协议呢?原因就是oicq以及dns都是... -
5-wireshark网络安全分析——UDP Flooding攻击
2020-03-17 20:51:34UDP Flooding攻击也是基于传输层的UDP协议来实现的,但与TCP协议不同的是,UDP协议是面向无连接的,即客户端和服务端之间直接进行通信,无需建立连接。因此恶意攻击者利用UDP协议面向无连接的特点,发送大量恶意的... -
利用Wireshark分析UDP数据包
2019-07-18 11:33:04 -
wireshark——TCP&UDP协议
2022-04-11 21:59:04文章目录TCP协议TCP三次握手TCP通信断开TCP 通信重置UDP协议 TCP协议 定义: Transmission Control Protocol,即传输控制协议。是一种面向连接(连接导向)的、可靠的、基于字节流的运输层通信协议,由IETF的RFC793...