柯侧耳倾听者 - 云代码空间
—— 翱翔在Java世界的海洋之上
UDP协议
一、实验目的与要求
1.掌握UDP协议的报文格式;
2.掌握UDP协议校验和的计算方法;
3.理解UDP协议的优缺点;
4.理解协议栈对UDP协议的处理方法;
5.理解UDP上层接口应满足的条件。
二、实验原理
三、预习与准备
预习有关UDP协议的原理及其工作机制,准备好安装有Windows XP或Window 7系统的 PC机一台,搭建好实验所需的网络拓扑结构一。
四、实验过程记载
练习1 编辑并发送UDP数据报
各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。
本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。
1. 主机A打开协议编辑器,编辑发送给主机B的UDP数据报。
MAC层:
目的MAC地址:接收方MAC地址
源MAC地址:发送方MAC地址
协议类型或数据长度:0800,即IP协议
IP层:
总长度:包括IP层、UDP层和数据长度
高层协议类型:17,即UDP协议
首部校验和:其它所有字段填充完毕后填充此字段
源IP地址:发送方IP地址
目的IP地址:接收方IP地址
UDP层:
源端口:1030
目的端口:大于1024的端口号
有效负载长度:UDP层及其上层协议长度
其它字段默认,计算校验和。
● UDP在计算校验和时包括哪些内容?
答:伪首部,UDP首部,UDP数据
2. 在主机B上启动协议分析器捕获数据,并设置过滤条件(提取UDP协议)。
3. 主机A发送已编辑好的数据报。
4. 主机B停止捕获数据,在捕获到的数据中查找主机A所发送的数据报。
思考问题:
1. 为什么UDP协议的“校验和”要包含伪首部?
答:为了防止在IP首部错误的情况下数据包交付给错误的协议
2. 比较UDP和IP的不可靠程度?
答:UDP相对于TCP可靠度要小
练习2 UDP单播通信
本练习将主机A、B、C、D、E、F作为一组进行实验。
1. 主机B、C、D、E、F上启动“实验平台工具栏中的UDP工具”,作为服务器端,监听端口设置为2483,“创建”成功。
2. 主机C、E上启动协议分析器开始捕获数据,并设置过滤条件(提取UDP协议)。
3. 主机A上启动“实验平台工具栏中的UDP工具”,作为客户端,以主机C的IP为目的IP地址,以2483为端口,填写数据并发送。
4. 察看主机B、C、D、E、F上的“UDP工具”接收的信息。
● 哪台主机上的“UDP工具”能够接收到主机A发送的UDP报文?
答:主机C
5. 察看主机C协议分析器上的UDP报文,并回答以下问题:
● UDP是基于连接的协议吗?阐述此特性的优缺点。
答:不是,传输的快,系统开销少,但是安全性低。
● UDP报文交互中含有确认报文吗?阐述此特性的优缺点。
6. 主机A上使用协议编辑器向主机E发送UDP报文,其中:
目的MAC地址:E的MAC地址
目的IP地址:主机E的IP地址
目的端口:2483
校验和:0
发送此报文,并回答以下问题:
● 主机E上的UDP通信程序是否接收到此数据包?UDP是否可以使用0作为校验和进行通信?
答:主机E可以接收到数据包,可以使用0作为校验和进行通信
7. 主机B、C、D、E、F关闭服务端,主机A关闭客户端。
思考问题:
1. 思考UDP的差错处理能力。
练习3 UDP广播通信
本练习将主机A、B、C、D、E、F作为一组进行实验。
1. 主机B、C、D、E、F上启动“实验平台工具栏中的UDP工具”,作为服务器端,监听端口设为2483。
2. 主机B、C、D、E、F启动协议分析器捕获数据,并设置过滤条件(提取UDP协议)。
3. 主机A上启动“实验平台工具栏中的UDP工具”,作为客户端,以255.255.255.255为目的地址,以2483为端口,填写数据并发送。
4. 察看主机B、C、D、E、F上的“UDP工具”接收的信息。
● 哪台主机能够接收到主机A发送的UDP报文?
答:主机B,C,D,E,F
5. 察看协议分析器上捕获的UDP报文,并回答以下问题:
● 主机A发送的报文的目的MAC地址和目的IP地址的含义是什么?
答:MAC地址:广播的物理地址 IP地址:广播的IP地址
五、实验结论(或总结)
在这次的实验中我学会了UDP协议的报文格式;掌握UDP协议校验和的计算方法;理解UDP协议的优缺点理解UDP上层接口应满足的条件。
六、实验思考与讨论
1. 如果将目的MAC地址换成某一个主机的MAC地址,是否所有主机还会收到这种报文?
答:只有对应的MAC地址的主机才能收到报文
2. 如果将目的MAC地址设成广播地址,目的IP设成某一主机的IP地址,结果怎样?
答:所有的主机都将收到这种报文
3. 在可靠性不是最重要的情况下,UDP可能是一个好的传输协议。试给出这种特定情况的一些示例。
答:一些社交软件里面的视频聊天就是UDP协议
4. UDP协议本身是否能确保数据报的发送和接收顺序?
答:不能,它本身就容易出现丢失,乱序等问题。