2022年2022年计算机网络课程实验 .pdf

上传人:C****o 文档编号:33381960 上传时间:2022-08-10 格式:PDF 页数:22 大小:1.77MB
返回 下载 相关 举报
2022年2022年计算机网络课程实验 .pdf_第1页
第1页 / 共22页
2022年2022年计算机网络课程实验 .pdf_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《2022年2022年计算机网络课程实验 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机网络课程实验 .pdf(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机网络课程实验报告用户数据报协议( UDP )一、实验内容IPV4 协议实验六:用户数据报协议UDP 二、实验原理一. 进程到进程的通信在学习 UDP 协议之前,首先应该了解主机到主机的通信和进程到进程的通信,以及这两种通信之间的区别。IP 协议负责主机到主机的通信。作为一个网络层协议,IP 协议只能把报文交付给目的主机。这是一种不完整的交付,因为这个报文还没有送交到正确的进程。像UDP 这样的传输层协议负责进程到进程的通信。UDP 协议负责把报文交付到正确的进程。下图描绘了IP 协议和 UDP 协议的作用范围。图 6-1 UDP 与 IP 的区别名师资料总结 - - -精品资料欢迎下载

2、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - 1. 端口号在网络中,主机是用IP 地址来标识的。而要标识主机中的进程,就需要第二个标识符,这就是端口号。在TCP/IP 协议族中,端口号是在065535 之间的整数。在客户 /服务器模型中,客户程序使用端口号标识自己,这种端口号叫做短暂端口号,短暂的意思是生存时间比较短。一般把短暂端口取为大于1023 的数,这样可以保证客户程序工作得比较正常。服务器进程也必须用一个端口号标识自己。但是这个端口号不能随机选取。如果服务器

3、随机选取端口号, 那么客户端在想连接到这个服务器并使用其服务的时候就会因为不知道这个端口号而无法连接。TCP/IP 协议族采用熟知端口号的办法解决这个问题。每一个客户进程都必须知道相应的服务器进程熟知端口号。UDP 的熟知端口号如下表所示:表 6-1 UDP 的熟知端口号名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - 在一个 IP 数据包中,目的IP 地址和端口号起着不同的寻址作用。目的IP 地址定义了在世界范围内惟一的一台主

4、机。当主机被选定后, 端口号定义了在这台主机上运行的多个进程中的一个。2. 套接字地址一个 IP 地址与一个端口号结合起来就叫做一个套接字地址。客户套接字地址惟一地定义了客户进程,而服务器套接字地址惟一地定义了服务器进程。要使用 UDP 的服务,就需要一对套接字地址:客户套接字地址和服务器套接字地址。客户套接字地址指定了客户端的IP 地址和客户进程,服务器套接字地址指定了服务器的IP 地址和服务器进程。二. 面向连接的服务与面向无连接的服务从通信的角度来看,在OSI 参考模型中,下层能向上层提供两种不同形式的服务:面向连接的服务和面向无连接的服务。1. 面向连接的服务所谓连接,就是两个对等实体

5、为进行数据通信而进行的一种结合。面向连接服务在进行数据交换前,先建立连接。当数据传输结束后,应释放这个连接。因此,采用面向连接的服务进行数据传送要经历三个阶段:(1)建立连接阶段:在有关的服务原语以及协议数据单元中,必须给出源用户和目的用户的完整地址。同时可以协商服务质量和其它一些选项。(2)数据交换阶段:在这个阶段,每个报文中不必包含完整的源用户和目的用户的完整地址, 而是使用一个连接标识符来代替。由于连接标识符相对于地址信息要短得多,因此使控制信息在报文中所占的比重相对减小,从而可减小系统的额外开销,提高信道的有效利用率。另外,报文的发送和接收都是按固定顺序的,即发送方先发送的报文,在接受

6、方先收到。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - (3)释放连接阶段:通过相应的服务原语完成释放操作。从面向连接服务的三个阶段来看,连接就像一个管道,发送端在其一端依次发送报文,接收者依次在其另一端按同样的顺序接收报文。这种连接又称虚拟电路。它可以避免报文的丢失、重复和乱序。若两个用户经常需要通信,则可以建立永久虚电路。这样可以免除每次通信时建立连接和释放连接这两个阶段。这点与电话网中的专线很相似。2. 面向无连接的服

7、务在面向无连接服务的情况下,两个实体之间的通信不必事先建立一个连接。相对于面向连接的服务,面向无连接服务灵活方便且快速。但它不能防止报文的丢失、重复和乱序。由于它的每个报文必须包括完整的源地址的目的地址,因此开销较大。面向无连接服务主要有三种类型:(1)数据报:它的特点是发完报文就结束,而对方不做任何响应。数据报的服务简单,额外开销少, 但可靠性差, 它比较适合于数据具有很大的冗余度以及要求有较高的实时性的通信场合。(2)证实交付:又称可靠的数据报。这种服务对每一个报文产生一个证实给发送方,不过这种证实不是来自对应方用户,而是来自提供服务的层。这种证实只能保证报文已经发给目的站了,而不能保证对

8、应方用户正确地接收到报文。(3)请求回答:这种类型服务是接收端用户每收到一个报文,即向发送端用户发送一个应答报文。 但是双方发送的报文都有可能丢失。如果接收端发现报文有错误,则回送一个表示有错误的报文。三. UDP 协议简介UDP(用户数据报协议),主要用来支持那些需要在计算机之间传输数据的网络应用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP 协议

9、。UDP 协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似的协议所掩盖,但是即使是在今天,UDP 仍然不失为一项非常实用和可行的网络传输层协议。UDP 协议直接位于IP 协议的上层。 根据 OSI 参考模型, UDP 和 TCP 都属于传输层协议。UDP协议不提供端到端的确认和重传功能,它不保证数据包一定能到达目的地,因此是不可靠协议。 UDP协议有以下特点: UDP 是面向事务的协议,它用最少的传输量为应用程序向其它程序发送报文提供了一个途径。 UDP 是无连接的、不可靠的传输机制。在发送数据报前,UDP在发送和接收两者之间不建立连接。 UDP 让应用程序能直接访问网络层的数

10、据报服务,例如分段和重组等网络层所提供的数据报服务。 UDP 使用 IP 协议作为数据传输机制的底层协议。 UDP 报头和数据都以与最初传输时相同的形式被传送到最终目的地。 UDP 不提供确认,也不对数据的到达顺序加以控制。因此UDP报文可能会丢失。不实现数据包的传送和重复检测。当数据包在传送过程中发生错误时,UDP不能报告错误。吞吐量不受拥塞控制算法的调节,只受应用程序生成数据的速率、传输带宽、 发送端和接收端主机性能的限制。四. UDP 报文格式下图显示了UDP 报文格式。每个UDP 报文称为一个用户数据报(User Datagram),用名师资料总结 - - -精品资料欢迎下载 - -

11、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 户数据报分为两个部分:UDP 首部和 UDP 数据。首部被分为四个16 位的字段,分别代表源端口号目的端口号报文的长度以及UDP 校验和。图 6-2 UDP 报文格式源端口:该字段表示发送端的端口号。如果源端口没有使用,那么此字段的值就被指定为 0。这是一个可选的字段。不同的应用程序使用不同的端口号,UDP协议使用端口号为不同的应用程序保留其各自的数据传输通道,从而实现了同一时间段内多个应用程序可以一起使用网络进行数据的发送和接

12、收。目的端口:该字段表示数据包被发往的目的端的端口号。有效负载长度: 该字段表示包括UDP 首部和 UDP 数据在内的整个用户数据报的长度。该字段的最小值是8。数据报的最大尺寸随操作系统的不同而不同。在两字节字段中,理论上数据报最多可达65535 字节。然而,一些UDP实现将数据报的大小限制到了8192 字节。校验和:UDP的校验的校验范围包括伪首部(IP 首部一部分字段) 、UDP首部和 UDP数据,该字段是可选的。如果该字段值为零就说明不进行校验。五. UDP 封装当进程有报文要通过UDP 发送时,它就把这个报文连同一对套接字地址以及数据的长度传递给 UDP。UDP 收到数据后就加上UDP

13、 首部。然后UDP 就把这用户数据报连同套接字地址一起传递给IP。IP 加上自己的首部,在高层协议类型字段使用值17,指出该数据是从UDP 协议来的。 这个 IP 数据报再传递给数据链路层。数据链路层接收到IP 数据报后, 加上名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 自己的首部(可能还有尾部),再传给物理层。物理层把这些位编码为电信号或光信号,把它发送到远程的主机。如下图所示:图 6-3 UDP 封装六. UDP 校验

14、和UDP 校验和的计算与IP 和 ICMP 校验和的计算不同。 UDP 校验和校验的范围包括三部分:伪首部、 UDP 首部以及从应用层来的数据。伪首部是IP 首部的一部分,其中有些字段要填入0。用户数据报封装在IP 数据包中。如下图所示:图 6-4 伪首部添加在UDP 数据报上若校验和不包括伪首部,用户数据报也可能是安全的和正确的。但是,若IP 首部受到损伤,则它可能被交付到错误的主机。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - -

15、- - 伪首部中包含高层协议类型字段是为了确保这个数据包是属于UDP 而不是属于TCP(参见实验七)的。使用UDP 的进程和使用TCP 的进程可以使用同一个端口号。UDP 的高层协议类型字段是17。若在传输过程中这个值改变了,在接收端计算校验和时就可检测出来,UDP 就可丢弃这个数据包。这样就不会交付给错误的协议。1. 在发送端的校验和计算在发送端按以下步骤计算校验和:(1)把伪首部填加到UDP 用户数据报上。(2)把校验和字段填入零。(3)按 16 位长度将数据报分段。(4)若分段总数不是偶数,则增加一个分段的填充(全0)。填充只是为了计算校验和,计算完毕后就把它丢弃。(5)把所有16 位的

16、分段使用反码算术运算相加。(6)把得到的结果取反码,它是一个16 位的数,把这个数插入到校验和字段。(7)把伪首部和填充丢掉。(8)把 UDP 用户数据报交付给IP 进行封装。在伪首部中的各行的顺序对校验和的计算没有任何影响。此外,增加0 也不影响计算的结果。下图给出了一个计算UDP 校验和的例子。这里假定用户数据报的长度是15 字节,因此要添加一个全0 的字节。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - - - - - - - 图 6-5 UD

17、P 校验和的计算过程2. 在接收端的校验和计算接收端按以下6 个步骤计算校验和是否正确:(1)把伪首部加到UDP 用户数据报上。(2)若需要,就增加填充。(3)把数据报按16 位长度分段。(4)把所有 16 位的分段使用反码算术运算相加。(5)把得到的结果取反码。(6)若得到的结果是全零,则丢弃首部和填充,并接受这个用户数据报。若结果是非零,就丢弃这个用户数据报。校验和是可选使用的,若不计算校验和,则校验和字段就填入0。七. UDP 应用下面列出了UDP 协议的一些用途: UDP 适用于这样的进程,它需要简单的请求 响应通信, 而较少考虑流量控制和差名师资料总结 - - -精品资料欢迎下载 -

18、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - 错控制。对于需要传送成块数据的进程,如FTP,则通常不使用UDP; UDP 适用于具有内部流量控制和差错控制机制的进程; 对多播和广播来说,UDP 是个比较合适的传输层协议; UDP 可用于管理进程,如SNMP 协议; UDP 可用于某些路由选择更新协议,如路由信息协议(RIP 协议,参考实验17)。八. 协议栈实现代码解析本实验将通过对netproto_udp_student.h、 netproto_udp_shuden

19、t.c、netproto_udpif_student.h 、netproto_udpif_student.c 四个文件进行编码,完成协议栈中UDP 协议的实现。netproto_udp_student.h 和 netproto_udp_shudent.c 文件用于实现UDP 数据包发送和接收。其中, netproto_udp_student.h 文件中定义了UDP 协议实现相关数值以及UDP 的负载内容、负载长度,关键代码如下所示:这段代码定义了5 个宏,他们代表的含义如下表所示:表 6-2 netproto_udp_student.h 中定义的宏名师资料总结 - - -精品资料欢迎下载 -

20、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 在实验的编码过程中,应该使用这些宏对相应的变量进行赋值。netproto_udp_shudent.c 文件是协议栈中UDP 数据包发送和接收的实现部分,其中定义了2 个函数。下面介绍这些协议栈的实现部分。函数 netp_udp_output_student 的功能是构造并发送一个UDP 数据包,其高层协议为自定义协议类型,负载内容为自定义负载。这个函数的编码工作需要由学生完成。当有数据到达本机网络接口时,函数netp_ud

21、p_input_student 将被调用,并传递给这个函数原始数据。 在该函数中, 需要判断一些条件值来确定接收到的数据包为自定义UDP 数据,如果是自定义UDP 数据包,则输出负载内容,如果不是,则返回NETP_PUSH_TO_LWIP交给协议栈继续处理。netproto_udpif_student.h 和 netproto_udpif_shudent.c 文件用于实现UDP 上层投递的功能,即为高层使用UDP 协议提供了接口。其中,netproto_udpif_student.h 文件中并没有定义太多内容。netproto_udpif_shudent.c 文件是协议栈中UDP 上层投递的功

22、能的实现部分,其中定义了一个全局变量recv_port 和 2 个函数。全局变量 recv_port 的作用很简单, 它记录了发送UDP 数据报时的源端口号作为接收UDP数据报的过滤条件。函数 netp_send_udp 通过 IP 层接口发送UDP 数据报,该函数功能需要学生完成。函数 netp_udp_input_student 处理输入数据包,如果输入的数据报满足过滤条件,则投递给上层协议使用。该函数功能需要学生完成。在编码过程中可能会设计到一些结构体、宏和函数,下表是对他们进行和介绍:表 6-3 实验涉及的结构体、宏和函数名师资料总结 - - -精品资料欢迎下载 - - - - - -

23、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 22 页 - - - - - - - - - 九. 各模块推荐流程1. UDP 数据包发送流程编码实现UDP 数据包发送推荐使用如下流程:图 6-6 UDP 数据包发送推荐流程2. 输入 UDP 数据包处理流程编码实现处理UDP 输入数据包推荐使用如下流程:名师资料总结

24、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 22 页 - - - - - - - - - 图 6-7 处理 UDP 输入数据包推荐流程3. UDP 发送接口实现流程编码实现 UDP 发送接口推荐使用如下流程:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 22 页 - - - - - - - - - 图 6-8 UDP 发送接口实现推荐流程4. UDP

25、接收接口实现流程编码实现 UDP 接收接口推荐使用如下流程:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 22 页 - - - - - - - - - 图 6-9 UDP 接收接口实现推荐流程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 22 页 - - - - - - - - - 三、实验拓扑结构图四、实验内容及过程1、练习 1 (1)内容

26、编辑并发送UDP数据报(2)过程各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。本练习将主机A和 B作为一组, 主机 C和 D作为一组, 主机 E和 F作为一组。 现仅以主机 A、B所在组为例,其它组的操作参考主机A、B所在组的操作。1. 主机 A打开协议编辑器,编辑发送给主机B的 UDP数据报。 MAC层:目的 MAC地址:接收方MAC 地址源 MAC 地址:发送方MAC 地址协议类型或数据长度:0800,即 IP 协议 IP层:总长度:包括IP 层、 UDP层和数据长度名师资料总结 - -

27、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 22 页 - - - - - - - - - 高层协议类型:17,即 UDP协议首部校验和:其它所有字段填充完毕后填充此字段源 IP 地址:发送方IP 地址目的 IP 地址:接收方IP 地址 UDP层:源端口: 1030 目的端口:大于1024 的端口号有效负载长度:UDP层及其上层协议长度其它字段默认,计算校验和。 UDP 在计算校验和时包括哪些内容?2. 在主机 B上启动协议分析器捕获数据,并设置过滤条件(提取UDP协议)。3. 主机 A发

28、送已编辑好的数据报。4. 主机 B停止捕获数据,在捕获到的数据中查找主机A所发送的数据报。(3)结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 22 页 - - - - - - - - - 2、练习 2 (1)内容UDP单播通信(2)过程本练习将主机A、B、C、 D、E、F 作为一组进行实验。1. 主机 B、C、D、E、F 上启动“实验平台工具栏中的UDP工具”,作为服务器端,监听端口设置为2483,“创建”成功。2. 主机 C、E上启动协议分析器开始捕获数据,并设

29、置过滤条件(提取UDP协议)。3. 主机 A上启动“实验平台工具栏中的UDP工具”,作为客户端,以主机C的 IP 为目的IP 地址,以2483 为端口,填写数据并发送。4. 察看主机 B、C、D、 E、F上的“ UDP工具”接收的信息。哪台主机上的“ UDP 工具”能够接收到主机A发送的 UDP报文?5. 察看主机 C协议分析器上的UDP报文,并回答以下问题: UDP 是基于连接的协议吗?阐述此特性的优缺点。 UDP 报文交互中含有确认报文吗?阐述此特性的优缺点。6. 主机 A上使用协议编辑器向主机E发送 UDP报文,其中:目的 MAC 地址: E的 MAC 地址目的 IP 地址:主机E的 I

30、P 地址目的端口: 2483 校验和: 0 发送此报文,并回答以下问题:主机 E上的 UDP通信程序是否接收到此数据包?UDP是否可以使用0 作为校验和进行通信?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 22 页 - - - - - - - - - 7. 主机 B、C、 D、E、F 关闭服务端,主机A关闭客户端。(3)结果3、练习 3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -

31、 - - - - - - 第 20 页,共 22 页 - - - - - - - - - (1)内容UDP广播通信(2)过程本练习将主机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工具”接收的信息。哪台

32、主机能够接收到主机A发送的 UDP报文?5. 察看协议分析器上捕获的UDP报文,并回答以下问题:主机 A发送的报文的目的MAC 地址和目的IP 地址的含义是什么?(3)结果五、思考题练习 1 1. 为什么 UDP协议的“校验和”要包含伪首部?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 22 页 - - - - - - - - - 答:若校验和不包括伪首部,用户数据报也可能是安全的和正确的。但是,若IP 首部受到损伤, 则它可能被交付到错误的主机。伪首部中包含高层协议

33、类型字段是为了确保这个数据包是属于UDP 而不是属TCP 的。 使用UDP 的进程和使用TCP 的进程可以使用同一个端口号。 UDP 的高层协议类型字段是17。若在传输过程中这个值改变了,在接收端计算校验和时就可检测出来,UDP 就可丢弃这个数据包。这样就不会交付给错误的协议。2. 比较 UDP和 IP 的不可靠程度?答: UDP 是传输层协议,IP 是网络层协议,都是不可靠的。练习 2 1. 思考 UDP的差错处理能力。答:UDP 和 TCP使用端口来完成这种通信。另一种责任就是在运输层提供控制机制。UDP在一个非常低的水平上完成这个功能。UDP没有流量控制机制,在收到分组时也没有确认。但是

34、,UDP提供了某种程度的差错控制。如果UDP检测出在收到的分组中有差错,它就悄悄地丢弃这个分组练习 3 1. 如果将目的MAC 地址换成某一个主机的MAC 地址,是否所有主机还会收到这种报文?答: 不会,只是对应MAC 地址的主机才会收到。2. 如果将目的MAC 地址设成广播地址,目的IP 设成某一主机的IP 地址,结果怎样?答:所有的主机都会接收到该报文。3. 在可靠性不是最重要的情况下,UDP可能是一个好的传输协议。试给出这种特定情况的一些示例。答:例如视频电话会议系统、某些路由选择更新协议等。4. UDP 协议本身是否能确保数据报的发送和接收顺序?答:不能。六、实验体会通过这次实验我掌握了UDP 协议的报文格式、UDP 协议校验和的计算方法和理解UDP 协议的优缺点,并了解UDP 可运用的场合。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 22 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁