实验四 用户数据报协议(UDP ) 3F
一、实验目的
1.掌握UDP协议的报文格式
2.掌握UDP协议校验和的计算方法 3.
理解UDP协议的优缺点
4.
理解协议栈对UDP协议的处理方法 5.
理解UDP上层接口应满足的条件
二、实验环境
该实验采用网络结构一
三、实验内容及实验结果
(一)练习1编辑并发送UDP数据报
各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。
本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。我们是以主机E,F。
1.主机E打开协议编辑器,编辑发送给主机F的UDP数据报。
MAC层:
目的MAC地址:接收方MAC地址
源MAC地址:发送方MAC地址
协议类型或数据长度:0800,即IP协议
IP层:
总长度:包括IP层、UDP层和数据长度
高层协议类型:17,即UDP协议
首部校验和:其它所有字段填充完毕后填充此字段
源IP地址:发送方IP地址
目的IP地址:接收方IP地址
UDP层:
源端口:1030
目的端口:大于1024的端口号
有效负载长度:UDP层及其上层协议长度
其它字段默认,计算校验和。
● UDP在计算校验和时包括哪些内容?
伪首部 UDP首部 从应用层来的数据
2.在主机F上启动协议分析器捕获数据,并设置过滤条件(提取UDP协议) 3.
主机A发送已编辑好的数据报。
4.
主机F停止捕获数据,在捕获到的数据中查找主机E所发送的数据报。
(二)练习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地址,以2488为端口,填写数据并发送。
4.察看主机B、C、D、E、F上的“UDP工具”接收的信息。 答: C 收到报文。
5.察看主机C协议分析器上的UDP报文,并回答以下问题: ● UDP是基于连接的协议吗?阐述此特性的优缺点。
UDP不是基于连接的协议。
缺点:UDP是面向事物的传输层协议,不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证他们能到达目的地。因而UDP协议不能防止报文的丢失,重复和乱序。
由于它的每个报文必须包括完整的与源地址的目的地址,因此开销较大。 优点:由于UDP在传输数据报前不用在客户和服务器间建立一个连接,且没有超时重发等机制,故灵活方便而且传输速度很快。由于它不属于连接型协议,因而具有资源消耗小、处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为他们即使偶尔丢失一两个数据包也不会对接受结果产生太大影响。比如我们聊天用的QQ和ICQ就是使用的UDP协议。
● UDP报文交互中含有确认报文吗?阐述此特性的优缺点。
答:没有确认报文。
缺点:不保证数据报一定能到达目的地,报文可能丢失。因此是不可靠的协议。
优点:不必对数据的到达顺序加以控制,控制逻辑比较简单,容易实现。
6.主机A上使用协议编辑器向主机E发送UDP报文,其中:
目的MAC地址:E的MAC地址
目的IP地址:主机E的IP地址
目的端口:2483
校验和:0 E收到数据包。UDP可以使用0做校验和。0 说明不进行校验。 7.
主机B、C、D、E、F关闭服务端,主机A关闭客户端。
(三)练习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工具”接收的信息。 实验结果:BCDEF都收到。
5.
察看协议分析器上捕获的UDP报文
主机发送的报文的目的MAC和目的IP的含义:目的IP地址定义了世界范围内唯一的一台主机。一个网卡会有一个全球唯一固定的MAC地址,一个网卡会有一个全球唯一固定的MAC地址。
四.思考题解析
练习一
1.为什么UDP协议的“校验和”要包含伪首部?
答:若校验和不包括伪首部,用户数据报也可能是安全和正确的,但是,若IP首部受到损伤,则它可能被交付到错误的主机。 2.
比较UDP和IP的不可靠程度? 答:IP负责主机到主机的通信。作为一个网络层协议,只能把报文交付给目的主机。这是一种不完整的交付,因为报文还没有送到正确的进程。
UDP协议是传输层协议,负责进程到进程的通信。UDP负责把报文交到正确的进程。但是由于是面向非连接的协议,不提供确认,报文可能丢失,且不能报告错误。 练习二
1.思考UDP的差错处理能力。
UDP不提供确认,不实现数据报的传送和重复检测,不能报告错误。但是UDP提供了某种程度的差错控制,如果UDP检测出在受到的分组中有差错,那么它就悄悄丢弃这个分组。 练习三
1.如果将目的Mac地址换成某一主机的MAC地址,所有主机仍然会收到这种报文。 2.结果是只有目的主机收到。
3. 在可靠性不是最重要的情况下,UDP可能是一个好的传输协议。试给出这种特定情况的一些示例。
UDP一般用于即时通信(QQ聊天 对数据准确性和丢包要求比较低,但速度必须快),在线视频(RTSP 速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的),网络语音电话(VoIP 语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题)等等。
4.UDP协议本身是否能确保数据报的发送和接收顺序?
不能。
五.实验体会
通过本次实验,我掌握了UDP协议的报文格式,掌握了UDP协议校验和的计算方法, 进一步理解了UDP协议的优缺点和协议栈对UDP协议的处理方法。学会了进程到进程的通信协议,进一步了解了IP和UDP协议的区别。更明确了MAC和Ip地址的含义。
但是由于实验时间有限,我了解的关于网络层的知识不够,很多关于UDP的知识还是没有弄清楚,因而有些思考题是通过查资料作出的,没有通过实验验证。 我想以后的网络实验中,自己还要好好做实验,相信会有更多的收获。