2022年2022年计算机网络课程实验 .pdf
《2022年2022年计算机网络课程实验 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机网络课程实验 .pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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 适用于这样的进程,它需要简单的请求 响应通信, 而较少考虑流量控制和差名师资料总结 - - -精品资料欢迎下载 -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算机网络课程实验 2022 计算机网络 课程 实验
限制150内