预备知识
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首部格式: todo 在上图中,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首部格式中,结果如下: todo
|