实验3 UDP协议分析
1. 实验目的
- 掌握运输层UDP协议内容
- 理解UDP协议的工作原理
- 了解应用层和运输层协议的关系
2. 实验环境
- 硬件要求:阿里云云主机ECS 一台。
- 软件要求: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数据分析
利用wireshark抓取QQ网络通信数据包,分析UDP数据。
QQ客户端之间消息传送采用了UDP。国内网络环境非常复杂而且很多用户采用的方式是通过代理服务器共享一条线路上网方式,UDP包能够穿透大部分的代理服务器,因此QQ选择了UDP作为客户之间的通信协议。因此我们打开QQ聊天窗口开启捕获,与好友进行对话,停止捕获就得到了UDP数据包。
4. 实验结果与分析
- 需给出实验中相关命令、脚本或者代码以及运行截图。注意格式规范、截图清晰,大小合适;
- 对于中间过程和运行结果需给出必要分析说明;
4.1根据捕获的数据包,分析UDP的报文结构,将UDP协议中个字段名,字段值,字段信息填入下表:
4.1.1.1 由于系统没有dig命令,需要先进行下载
yum install dnf
dnf install bind-utils
如图所示,下载好dig命令,以遍后续实验使用。
4.1.1.2 利用dig解析新疆大学网站。
如图所示,图为dig解析新疆大学网站的DNS。
4.1.1.3 利用tcpdump抓取DNS查询网络通信数据包,以test.cap保存下来。
tcpdump -i eth0 -w test.cap
如图所示,共抓取330个数据包,通过XShell导出到本机,以便进一步的实验分析。
4.1.1.4 对导出的数据包在wireshark中,过滤出DNS。
如图所示,此为过滤出来的DNS数据包。
4.1.1.5 根据捕获的数据包分析获取UDP的各信息。
字段名 | 字段值 | 字段信息 |
---|---|---|
source port | 35332 | 源端口 |
destination | 53 | 目的端口 |
Length | 58 | UDP总长度 |
Checksum | 0x1640 | UDP校验和 |
UDP payload | 50 bytes | UDP 有效负载 |
4.1.2.1 运用Wireshark进行抓包。
如图为抓取的数据包。
4.1.2.2 对抓取的数据包进行过滤,过滤出QQ网络通信数据包。
如图所示,对该数据包进行分析,完成表格内容。
4.1.2.3对抓取的数据包进行QQ通信的UDP数据分析,填写表格内容。
字段名 | 字段值 | 字段信息 |
---|---|---|
source port | 8000 | 源端口 |
destination | 4020 | 目的端口 |
Length | 95 | UDP总长度 |
Checksum | 0xd459 | UDP校验和 |
UDP payload | 87 bytes | UDP 有效负载 |
4.2 通过分析实验结果,UDP报文结构由哪几部分组成,其功能是什么?
通过分析实验结果得出结论。UDP报文结构由源端口,目的端口,UDP总长度,以及UDP校验和组成。其功能分别为:
源端口号 : 一般是客户端程序请求时,由系统自动指定,端口号范围是 0 ~ 65535,0~ 1023为知名端口号。
目的端口 : 一般是服务器的端口,一般是由编写程序的程序员自己指定,这样客户端才能根据ip地址和 port 成功访问服务器
UDP 长度 : 是指整个UDP数据报的长度 , 包括 报头 + 载荷。
UDP校验和 : 用于检查数据在传输中是否出错,是否出现bit反转的问题,当进行校验时,需要在UDP数据报之前增加临时的 伪首部。
5. 实验小结
(包括遇到的特定问题和解决办法、心得体会、意见与建议等)