第一页共七页实验4用户数据报协议(UDP)【实验目的】1.掌握UDP协议的报文格式2.掌握UDP协议校验和的计算方法3.理解UDP协议的优缺点4.理解协议栈对UDP协议的处理方法5.理解UDP上层接口应满足的条件【实验步骤】练习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在计算校验和时包括哪些内容?答:协议字段(IP层的高层协议类型)、源IP地址、目的IP地址、长度(UDP数据总长度)、UDP首部、UDP数据。2.在主机B上启动协议分析器捕获数据,并设置过滤条件(提取UDP协议)。3.主机A发送已编辑好的数据报。4.主机B停止捕获数据,在捕获到的数据中查找主机A所发送的数据报。思考题1.为什么UDP协议的“校验和”要包含伪首部?(在UDP伪首部中,包含32位源IP地址,32位目的IP地址,8位协议,16位UDP长度。第三页共七页通过伪首部的校验,UDP可以确定该数据报是不是发给本机的,通过首部协议字段,UDP可以确认有没有误传。)答:若校验和不包括伪首部,用户数据报也可能是安全的和正确的。但是,若IP首部受到损伤,则他可能被交付到错误的主机。伪首部中包含高层协议类型字段是为了确保这个数据报是属于UDP而不是属于TCP的。使用UDP的进程和使用TCP的进程可以使用同一个端口号。UDP的高层协议类型字段是17.若在传输过程中这个值改变了,在接收端计算校验和时就可检测出来,UDP就可丢弃这个数据报,这样就不会交付给错误的协议。2.比较UDP和IP的不可靠程度?答:UDP是传输层协议,IP是网络层协议,都是不可靠的。练习2UDP单播通信练习内容:本练习将主机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报文?答:主机C5.察看主机C协议分析器上的UDP报文,并回答以下问题:●UDP是基于连接的协议吗?阐述此特性的优缺点。(连接协议提供的是可靠、有序、不重复的发送服务。对那些不允许数据丢失的应用程序来说,这种协议十分有用。为了提高性能并保证可靠性,“面向连接”协议在发送端和(或)接收端交换并维护状态信息。传输控制协议(TCP,TransmissionControlProtocol)是一种面向连接协议,它被运用于很多“面向会话(session-oriented)”的Internet应用中,如Web服务和电子邮件。)答:不是。优点:相对于面向连接的服务,UDP传送数据较快速,系统开销也少。缺点:它不能防止报文的丢失、重复和乱序。由于她的每个报文必须包括完整的源地址的目的地址,因此开销很大;每个请求必须足够小,使其能够装入到用户数据报中。●UDP报文交互中含有确认报文吗?阐述此特性的优缺点。答:没有。优点:提高传输效率;缺点:在传输过程中可能有丢失、重复、乱序的现象。6.主机A上使用协议编辑器向主机E发送UDP报文,其中:目的MAC地址:E的MAC地址第五页共七页目的IP地址:主机E的IP地址目的端口:2483校验和:0发送此报文,并回答以下问题:●主机E上的UDP通信程序是否接收到此数据包?UDP是否可以使用0作为校验和进行通信?答:是;可以。7.主机B、C、D、E、F关闭服务端,主机A关闭客户端。思考题1.思考UDP的差错处理能力。答:除校验和外,UDP没有差错控制机制。这就表示发送端不知道报文是丢失了还是重复地交付了。当接收端使用校验和并检测出差错时,就悄悄地将这个用户数据报丢掉。练习3UDP广播通信练习内容:本练习将主机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报文?答:BCDEF5.察看协议分析器上捕获的UDP报文,并回答以下问题:●主机A发送的报文的目的MAC地址和目的IP地址的含义是什么?答:目的MAC地址为FFFFFF-FFFFFF,是广播地址。目的IP地址为255.255.255.255,是受限广播地址。思考题1.如果将目的MAC地址换成某一个主机的MAC地址,是否所有主机还会收到这种报文?答:主机A发送的报文的目的MAC地址为某一主机的MAC地址,而目的IP地址无论是某一主机的IP地址,还是255.255.255.255,结果都是只有目的MAC地址所对应的主机可收到主机A所发送的报文。因为目的MAC地址对应主机才是真正接收数据的主机(前提是目的IP地址是有效的)。2.如果将目的MAC地址设成广播地址,目的IP设成某一主机的IP第七页共七页地址,结果怎样?答:有两种情况:如果目的MAC地址是广播地址,则结果为所有主机都收到A所发送的报文;如果目的MAC地址为某一主机的MAC,则主机A所发送的数据只能被该主机所接收。原因同上。3.在可靠性不是最重要的情况下,UDP可能是一个好的传输协议。试给出这种特定情况的一些示例。答:很多聊天软件使用UDP作为数据传输所使用的协议,因为聊天软件对于数据传输的可靠性要求一般很小。4.UDP协议本身是否能确保数据报的发送和接收顺序?答:不能。