1、石家庄理工职业学院教案首页章节课题: 课时: 书写时间: 教师:本章节在课程教学中的地位作用及前后联系:德育目标要求:知识、技能传授目标要求:教学重点与难点及解决方法:教学方法手段实施设计:作业与辅导设计:课堂教学小结: 课后札记: 系领导审签:年 月 日 年 月 日 年 月 日第 6 章 用户数据报协议 UDP 4 2008.9 刘正华前面几章讲的知识是网络基础,特别是网络层把数据报分组送到目的主机,实现了主机之间的通信。但网络中两台主机相互传输的数据包的真正目的地是运行于主机上的应用进程,网络层并没有解决这个问题,传输层引入端口的概念,利用端口来标识不同的应用进程。从而能够把数据分送给不同
2、的应用程序。1、理解传输层在 TCP/IP 协议分层模型中的位置及作用 2、了解 UDP 数据传输服务的特点3、理解端口机制 4、了解 UDP 数据报格式 5、了解 UDP 的封装和复用1、网络传输层可以说是关键的一层,它是网络层和应用层之间的桥梁,不掌握好这一层就无法正确理解应用进程的实现。2、理解的难点:传输层实现的功能,什么是套接字,端口为什么要与协议无关为了讲好本章及下一章的内容,补讲了:通信子网和资源子网的概念,各层协议,控制流向的方法,数据传输过程,OSI 的 7 层与 TCP/IP 的 4 层的关系 ,使学生们进一步理解下一层为上一层提供服务的概念。辅导作业完成,特别问题进一步解
3、答,给出课后习题的正确答案。由于用 2 学时讲解了层与层之间的关系,使学生对数据传输过程及端口机制有了比较清楚的理解。教 案 续 页教学程序及讲授提纲或讲稿 方法手段 时间第 6 章 用户数据报协议 UDP网络层不能决定数据包的接受者是哪个进程或应用程序,而 UDP 和 TCP两个传输层协议使用端口机制标识不同的进程,使得网络上两台计算机上的对等层的实体能够进行通信。本章讲的 UDP 提供的是无连接的、不可靠的,但可提供快速的端到端的数据传送服务。6.1 传输层协议概述网络层把数据报分组送到目的主机,实现了通信。一、定义:传输层:位于应用层和网络层中间,它把网络的底层对高层屏蔽起来,向应用层提
4、供统一的数据通信服务接口。传输层在 TCP/IP 协议中的位置见下图传输层在 TCP/IP 协议中的位置二、功能:1、提供应用进程之间的通信:两台主机相互传输的数据包的真正目的地是运行于主机上的应用进程(FTP,Telnet,SMTP,TFTP, DNS) 。传输层引入了端口概念:利用不同的端口号来标识不同的应用进程。从而能够把数据分送给不同的应用程序。2、流控与差控:UDP 协议无反馈信息,只用校验和校验,只具备很低层次的差控;TCP 收端能返回响应并对发端发送数据的多少进行控制,对错包丢弃并要求重发,TCP 提供可靠的传输。3、连接管理:UDP 是无连接的。TCP 是面向连接的服务,它负责
5、收、发连接的建立,在数据传输过程中,对连接进行监控,关闭连接。6.2 端口机制网络层把数据包送到目的主机,为了在目的主机上对数据做进一步的处理,网络层就无能为力了。一、端口机制传输层必须采用一种方法来标识不同的应用进程。传输层要想将数据分配补充数据传输过程IP TCP FTP、 Telnet、 SMTP、 TFP、 DNS FDI、 Ethernet、 ATM、 同 轴 电 缆 、 光 纤 、 双 绞 线 UDP 物 理 层 链 路 层 网 络 层 传 输 层 应 用 层 ARP、 RAP ICMP、 IGMP 教 案 续 页教学程序及讲授提纲或讲稿 方法手段 时间给相应的进程,其方法必须具备
6、通用性,不依赖于某个操作系统,即用一个正整数的端口号来标识不同的进程。二、端口(port)的特点1 每个端口都有一个端口号2 端口号是对进程的标识3 端口号是一个 16bit 的数字4 总共有 65536 个端口号5 IP 地址+端口号 =套接字(socket) 。套接字(socket)就可以利用该端口和远端进程实现双向的通信。三、端口的分配方式端口号在协议首部中占 16bit 长度,共有 216=65536 个端口号。当某个进程需要和远端进程通信时,它可以和操作系统协商并取得一个端口号。端口的分配通常有两种方式:1、统一分配:由权威机构分给每个应用程序端口号并发布出来,所有的协议软件都遵守这
7、些分配,其范围 01023,称其为熟知端口。 熟知端口示例2、动态绑定:当应用软件有需要时分配一个端口号。此时远端要与其通信的软件得预先知道它的端口号。6.3 UDP 的特点提供无连接的、不可靠的、快速的端到端的数据传输。1、与对方不建立连接,即 UDP 是无连接的,只是相互交换信息使双方同步。2、UDP 报文的首部没有数据顺序的信号,收端无法排序,不排序。TCP/IP 协议这两种方法都采用。权威机构:ICANN(Internet Corporation for Assigned Names and Numbers)UDP 对网络可靠性没采取措施,但是由于底层网络是不可靠的,主机种类繁多,延时
8、不同,造成数据包乱序到达。所以是不可靠的数据传输方式,是一种尽力而为的数据交付服务。无连接:发、收两方不同时处于激活状态,进行数据传输时也不存在建立连接、传输数据、删除连接的三个过程。如邮件传输。教 案 续 页教学程序及讲授提纲或讲稿 方法手段 时间3、收端不发确认信号,发端不知是否正确接收,也不重发数据。4、较 TCP 数据传输的速度快,系统开销也少。6.4 UDP 数据报的格式UDP 数据报包含两部分:UDP 头部和 UDP 数据区 。UDP 数据报的格式如下图所示。UDP 数据报格式一、UDP 数据报格式的说明1、源端口号:标识主机应用程序所使用的端口号;是可选项,没用到时全置为 0.若
9、源主机是客户端,此端口号通常是进程向协议软件请求而得到的临时端口号;若源主机是服务器,此端口号一般是熟知端口号(0-1023) 。2、目的端口号:标识了此数据报接收端的应用程序所使用的端口号。3、数据报长度:表示数据报的长度,包含首部和数据区;单位是字节;最小值为 8(即没有数据时的长度) 。4、校验和不用时全置为 0,减少计算机的计算开销(此项为可选项)二、伪首部伪首部只用于计算校验和,在发送 UDP 数据报中并不包括它。其格式如下图。UDP 伪首部格式1、伪首部的作用:从伪首部格式中看到,它包含了通信双方的 IP 地址,这是因为 IP 地址加端口号才能完全标识一个 UDP 数据报的报数。而
10、伪首部中0 15 6 31 UDP 源 端 口 号 UDP 目 的 端 口 号 UDP 数 据 报 长 度 UDP 校 验 和 UDP 数 据 区 图 6-2 UDP 数 据 报 格 式 0 15 6 31 源 IP 地 址 目 的 IP 地 址 0 协 议 标 识 符 UDP 长 度 图 6-3 UDP 伪 头 部 格 式 教 案 续 页教学程序及讲授提纲或讲稿 方法手段 时间包含了 UDP 数据报中所没有的 IP 地址信息,这样校验和可以用于检验数据报是否到达正确的目的地。2、伪首部格式说明:1) 、伪首部的 UDP 长度指 UDP 数据报的长度,不含伪首部。2) 、计算前 UDP 数据报
11、中的校验和置为 0+伪首部后计算3) 、总字节数为奇数则安排一个字节的零(计算完校验和会丢弃)4) 、伪首部只用于计算校验和,发送的 UDP 数据报中不含它。3、计算校验和得方法:把所有比特分成一个一个的 16 比特字,按照上述说明,把所有的字相加(二进制反码求和) ,对相加的结果取补码得到校验和。结果若刚好为全 0,则应置为全 1。在接收端也按上面的过程计算,如果所得结果为全 0,则此数据报是正确的。以书中所给数值为例,试计算校验和。6.5 UDP 的操作一、UDP 的封装和解封装原理同 OSI 的分层传输的发、收相同,只是把数据从上到下加协议的过程称为封装,接收端去掉首部的过程称其为解封装
12、。UDP 数据报的封装二、UDP 多路复接和多路分解解决多个进程同时与远端主机的相应进程的通信问题。解决的方法:通过端口机制对应用层多个用户数据进行复接下传,接收端对 IP 层传上来的数据根据端口分配给相应的进程使用。如下图所示。校验和的计算方法:正数的反码等于原码二进制求和运算注意各列相加时的进位。UDP多 路 分 解 UDP复 接 IP 层 IP层 数 据 链 路 层 数 据 链 路 层 其 它 进 程 TFP 69 DNS 53 DNS 53 TFP 69 其 它 进 程 教 案 续 页教学程序及讲授提纲或讲稿 方法手段 时间UDP 的多路复接和多路分解6.6 UDP 的应用根据其简单、
13、弱检错、无连接、占用存储空间和系统资源少等特点,决定其应用:1、在只需要简单的数据交换应用中,如 DNS 服务,它不需要复杂的可靠性保证机制,用其来传输请求和响应数据包即节省系统开销又提高网络效率。2、在不需要关心数据的差控和流控的应用中,这是因为高层已提供了这些机制,如 TFTP(Trivial File Transfer Protocol) 。3、在要求实时性高而可承受一定的数据错误的应用中,如语音传输。4、在广播和组播服务中 也使用 UDP。本章小结 UDP 是一种简单的数据传输协议。 它只提供很弱的检错功能 ,不建立连接;但 UDP 协议较简单,占用较少的系统资源。补讲:TFTP 工作原理网管与维护