1传输层----UDP协议2主要内容:•分布式进程通信•传输层的基本功能•网络服务质量•用户报文协议UDP3传输层的位置•从通信和信息处理的角度看,传输层属于面向通信部分的最高层,同时也是用户功能中的最低层。•传输层为高层用户提供端到端的可靠的逻辑通信ApplicationTransportNetworkDataLinkPhysical面向信息处理面向通信用户功能网络功能传输虚电路4OSI环境TCP/IP体系中的传输层协议TCPUDPIP应用层与各种网络接口传输层6网络层与传输层协议作用范围:7简化的网络协议体系传输层与其上下层之间的关系的OSI表示法传输实体传输实体传输协议传输层层接口传输服务用户(应用层实体)传输服务用户(应用层实体)层接口网络层(或网际层)应用层主机A主机B传输层服务访问点TSAP网络层服务访问点NSAP9传输层存在的必要性对于网络用户来说:希望通信双方的主机能得到端到端的可靠通信服务。但是,网络层提供的分组传输服务往往是不可靠的。要保证数据既不丢失也不重复,传输层是必不可少的。10了解在不同地理位置、受不同操作系统控制的、独立的计算机系统之间是如何实现协同工作的?学习传输层目的:11网络层及以下的各层实现了网络中主机之间的通信,但数据通信不是最终的目的;计算机网络最本质的活动是主机之间的进程通信,以实现网络服务功能;设置传输层的主要目的就是要实现分布式进程通信。网络环境中分布式进程通信的基本概念12•进程和进程通信是操作系统中的最基本的概念;•程序是一个在时间上按照严格次序的前后相继的操作序列,是一个静态的概念;•进程是一个动态的概念,它是一个程序对某个数据集的执行过程;13•进程状态反映出进程执行过程的变化;•要保证系统正常地工作,操作系统必须对进程的创建、撤消与状态转换进行控制;•从进程的观点看,操作系统核心是控制和协调进程的运行,解决进程之间的通信。14在解决单机环境下操作系统的进程通信中:•BSDUNIX引入了管道(pipe)、命名管道(namedpipe)和软中断信号(signal)机制;•AT&TUNIX引入了消息(message)、共享存储区(sharedmemory)和信号量(semaphore)等;•UNIX系统的消息、共享存储区和信号量统称为进程通信(interprocesscommunication,IPC)机制;•IPC机制也不适应于网络环境中的进程通信。15用最简单的语言描述计算机网络的功能:计算机网络最根本的目的是要实现网络环境中联网计算机之间的分布式进程通信,以实现各种网络服务功能。16网络环境中分布式进程通信的特点•计算机网络是分布在不同地理位置的多台独立的计算机系统的集合;•“独立的计算机系统”意味着连网的每一台计算机的操作与资源是由自己的操作系统所管理;•用户共享的网络资源及网络所能提供的服务功能最终是通过网络环境中的分布式进程通信来实现的;17•网络环境中的进程通信与单机系统内部的进程通信的主要区别:网络中主机的高度自治性;•不同的主机系统之间,没有一个统一的高层操作系统进行全局控制、调度与管理;•网络中一台主机对其它主机的•活动状态•位于其它主机系统中的各个进程状态•这些进程什么时间参与网络活动•希望与网络中哪一台主机的什么进程通信一概无从知道181.网络环境中分布式进程通信需要解决:•进程命名与寻址方法•多重协议的识别•进程间相互作用的模式192.网络环境中进程标识•在一台计算机中,不同的进程用进程号或进程标识(processID)惟一地标识出来;•网络环境中完整的进程标识应该是:•本地主机地址-本地进程标识•远程主机地址-远程进程标识•进程地址也叫做端口号(portnumber)203.多重协议的识别•UNIX操作系统的TCP/IP的传输层就有TCP协议和UDP协议;•网络环境中一个进程的全网惟一的标识需要一个三元组来表示:协议,本地地址,本地端口号。21•网络环境中一个完整的进程通信标识需要一个五元组来表示:协议本地地址本地端口号远地地址远地端口号•在UNIX操作系统中:三元组又叫做半相关half-association五元组叫做一个相关association22进程间相互作用模式:Client/Server模型1.Client/Server模型的基本概念•网络中计算机既为本地用户提供服务,也为网络的其它主机的用户提供服务;•网络中计算机的硬件、软件与数据资源应该既是本地用户可以使用的资源,也是网络的其它主机的用户可以共享的资源;•每一项网络服务都对应一个“服务程序”进程;•“服务程序”进程要为每一个获准的网络用户请求执行一组规定的动作,以满足用户网络资源共享的需要;23•在TCP/IP协议体系中,进程间的相互作用采用客户/服务器(Client/Server)模型;•客户与服务器分别表示相互通信的两个应用程序的进程;•客户向服务器发出服务请求,服务器响应客户的请求,提供客户机所需要的网络服务;242.为什么要采用客户/服务器模型?网络资源分布的不均匀性•网络资源分布的不均匀性表现在硬件、软件和数据等三个方面;•网络资源分布的不均匀性是客观存在的,同时也是网络应用系统设计者的设计思想的体现;•“资源共享”是因为网络不同结点之间在硬件配置、计算能力、存储能力,以及数据分布等方面存在着差距与不均匀性;•能力强、资源丰富的充当服务器,能力弱或需要某种资源的成为客户。25网络环境中进程通信的异步性•不同主机系统中进程什么时间发出通信请求,希望和哪一台主机的哪一个进程通信,以及对方进程是否能接受通信请求是不确定的;•网络分布式进程之间不存在一个高层、全局性的调度与协调机制;•必须要建立一个机制,为准备通信的进程之间建立起连接,在进程交换数据的过程中维护连接,为数据交换提供同步等控制与协调功能。26注意的几个术语:•客户—一次进程通信中发起的一方;•服务器—接受进程通信的请求,提供服务的一方;•与硬件的区别:服务器—服务器级计算机•与数据库的区别:client/servermodelclient—SQLserver27进程通信中Client/Server模型实现方法•客户/服务器模型的工作实质是“请求驱动”;•在网络环境中,客户进程发出请求完全随机。•为了实现服务器的功能,在服务器的设计中要解决服务器的:并发请求处理能力并发服务器的进程标识服务器安全28解决服务器处理并发请求的基本方案:•并发服务器•重复服务器29并发服务器(concurrentserver)•并发服务器的核心是使用一个守护程序(daemon);•守护程序在系统启动的时候随之启动,在没有客户的服务请求到达时,并发服务器处于等待状态;•一旦客户机的服务请求到达,服务器根据客户的服务请求的进程号,去激活相应的子进程,而服务器回到等待状态;•并发服务器叫做主服务器(master),把子服务器叫做从服务器(slave);•主服务器必须拥有一个全网熟知的进程地址;•网络中的客户进程可以根据服务器进程的熟知地址,向服务器提出服务请求。30客户与并发服务器建立传输连接的过程31传输层的基本功能传输层的端-端通信32传输层协议的基本功能1.传输层在协议层次结构中的位置•传输层的目标是向应用层应用程序进程之间的通信,提供有效、可靠、保证质量的服务;•传输层在网络分层结构中起着承上启下的作用;•通过执行传输层协议,屏蔽通信子网在技术、设计上的差异和服务质量的不足,向高层提供一个标准的、完善的通信服务;332.传输协议数据单元•传输层之间传输的报文叫做传输协议数据单元(TransportProtocolUnit,TPDU);•TPDU有效载荷是应用层的数据;34网络服务与服务质量QoS服务(Service)•网络层次结构中,各层之间有严格的依赖关系各层次的分工和协作集中地体现在相邻层之间的界面上;•服务是描述相邻层之间关系的重要概念;•网络服务体现在低层向相邻上层提供的一组操作;•低层是服务提供者,高层是服务的用户。35衡量网络服务质量的主要指标•连接建立延迟•连接建立失败的概率•传输延迟•吞吐量•优先级•残留差错率•故障告知率•从传输服务用户要求建立连接到收到连接确认之间所经历的时间;•它包括了远端传输实体的处理延迟;•连接建立延迟越短,服务质量越好。•在最大连接建立延迟时间内,连接未能建立的可能性;•由于网络拥塞,缺少缓冲区或其他原因造成的失败。•传输延迟是指从源主机传输用户发送报文开始到目的主机传输用户接收到报文为止的时间;•每个方向的传输延迟是不同的。•吞吐量是在某个时间间隔内测得的每秒钟传输的用户数据的字节数;•每个传输方向的吞吐量可能不同。•用以表明哪些传输连接更为重要;•当发生拥塞事件时,确保高优先级的连接先获得服务。•网络的残留差错指网络协议没有检测到的报文丢失、乱序或误码,从而未能纠正的差错。•残留差错率是未检出的差错报文数占整个发送的报文数的百分比。•网络协议检测出的无法纠正的故障,应通知传输实体予以纠正。•网络的故障告知率是指无法纠正的故障占所有可检测出的故障的百分比。36用户报文协议UDPUDP协议的主要特点•UDP是一种无连接的、不可靠的传输层协议;•在完成进程到进程的通信中提供了有限的差错检验功能;•设计比较简单的UDP协议的目的是希望以最小的开销来达到网络环境中的进程通信目的;•进程发送的报文较短,同时对报文的可靠性要求不高,那么可以使用UDP协议。37UDP的基本工作过程UDP用户数据报传输过程中的封装与拆封38UDP端口号•TCP/IP协议族中用端口号来标识进程;•端口号是在0到65535之间的整数;•客户程序随机选取的临时端口号;•每一种服务器程序被分配了确定的全局一致的熟知端口号;•每一个客户进程都知道相应的服务器进程的熟知端口号。39UDP使用的熟知端口号40UDP数据报格式41UDP检验和的检验范围:伪头部+UDP头+应用层数据计算UDP检验和的例子1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(检验和)0101010001000101→数据0101001101010100→数据0100100101001110→数据0100011100000000→数据和0(填充)1001011011101011→求和得出的结果0110100100010100→检验和153.19.8.104171.3.14.1112字节伪首部8字节UDP首部7字节数据填充按二进制反码传算求和将得出的结果求反码全0171510871315全0数据数据数据数据数据数据数据全043Thankyou