第7章传输层2本章学习要求:•了解:网络环境中分布式进程通的基本概念。•掌握:进程相互作用的Client/Server模型。•掌握:传输层的基本功能与服务质量。•掌握:用户数据报协议UDP。•掌握:传输控制协议TCP。37.1网络环境中分布式进程通信的基本概念通信子网应用程序进程应用程序进程网络层协议作用范围传输层协议作用范围4•网络层及以下的各层实现了网络中主机之间的通信,但是数据通信不是最终的目的;•计算机网络最本质的活动是分布在不同地理位置的主机之间的进程通信,以实现各种网络服务功能;•设置传输层的主要目的就是要实现分布式进程通信。57.1.1单机系统中的进程通信方法•进程和进程通信是操作系统中的一个最基本的概念;•程序是一个在时间上按照严格次序的前后相继的操作序列,是一个静态的概念;•进程是一个动态的概念,它是一个程序对某个数据集的执行过程;6•正在运行的进程叫做运行态;•等待分配CPU的进程叫做就绪态;•等待其他的条件的进程叫做等待态;•进程状态反映出进程执行过程的变化;•要保证系统正常地工作,操作系统必须对进程的创建、撤消与状态转换进行控制;•从进程的观点看,操作系统的核心则是控制和协调这些进程的运行,解决进程之间的通信。7在解决单机环境下操作系统的进程通信中:•BSDUNIX引入了管道(pipe)、命名管道(namedpipe)和软中断信号(signal)机制;•AT&TUNIX引入了消息(message)、共享存储区(sharedmemory)和信号量(semaphore)等;•UNIX系统的消息、共享存储区和信号量统称为进程通信(interprocesscommunication,IPC)机制;•IPC机制也不适应于网络环境中的进程通信。87.1.2网络环境中分布式进程通信的特点用一句最简单的话去描述计算机网络,那就是:“计算机网络是分布在不同地理位置的多台独立的计算机系统的集合”。•“独立的计算机系统”意味着连网的每一台计算机的操作与资源是由自己的操作系统所管理;•用户共享的网络资源及网络所能提供的服务功能最终是通过网络环境中的分布式进程通信来实现的。9网络环境中的进程通信与单机系统内部的进程通信的主要区别:•网络中主机的高度自治性;•不是在同一个主机系统之中,没有一个统一的高层进行控制与管理;•网络中一台主机对其他主机的•活动状态;•位于其他主机系统中的各个进程状态;•这些进程什么时间参与网络活动;•希望与网络中哪一台主机的什么进程通信一概无从知道。101.网络环境中分布式进程通信需要解决:•进程命名与寻址方法•多重协议的识别•进程间相互作用的模式112.网络环境中进程标识•在一台计算机中,不同的进程用进程号或进程标识(processID)惟一地标识出来。•网络环境中完整的进程标识应该是:•本地主机地址-本地进程标识;•远程主机地址-远程进程标识。•进程地址也叫做端口号(portnumber)。123.多重协议的识别•UNIX操作系统的TCP/IP的传输层就有TCP协议和UDP协议;•网络环境中一个进程的全网惟一的标识需要一个三元组来表示:协议,本地地址,本地端口号。TCP121.5.21.215432TCP121.5.21.215432协议类型IP地址端口号13•网络环境中一个完整的进程通信标识需要一个五元组来表示:协议本地地址本地端口号远地地址远地端口号•在UNIX操作系统中:三元组又叫做半相关half-association五元组叫做一个相关association147.1.3进程间相互作用模式:Client/Server模型1.Client/Server模型的基本概念•网络中每台联网的计算机既为本地用户提供服务,也为网络的其他主机的用户提供服务;•每台联网的计算机的硬件、软件与数据资源应该既是本地用户可以使用的资源,也是网络的其他主机的用户可以共享的资源;•每一项网络服务都是对应一个“服务程序”进程;•“服务程序”进程要为每一个获准的网络用户请求执行一组规定的动作,以满足用户网络资源共享的需要;15•网络环境中进程通信要解决的进程间相互作用的模式;•在TCP/IP协议体系中,进程间的相互作用采用客户/服务器(Client/Server)模型;•客户与服务器分别表示相互通信的两个应用程序的进程;•客户向服务器发出服务请求,服务器响应客户的请求,提供客户机所需要的网络服务。162.为什么要采用客户机/服务器模型?网络资源分布的不均匀性•网络资源分布的不均匀性表现在硬件、软件和数据等三个方面;•网络资源分布的不均匀性是客观存在的,同时也是网络应用系统设计者的设计思想的体现;•“资源共享”就是因为网络不同结点之间在硬件配置、计算能力、存储能力,以及数据分布等方面存在着差距与不均匀性;•能力强、资源丰富的充当服务器,能力弱或需要某种资源的成为客户。17网络环境中进程通信的异步性•分布在不同主机系统中的进程什么时间发出通信请求,希望和哪一台主机的哪一个进程通信,以及对方进程是否能接受通信请求是不确定的;•网络分布式进程之间不存在一个高层的调度与协调;•必须要建立一个体制,为准备通信的进程之间建立起连接,在进程交换数据的过程中维护连接,为数据交换提供同步。18•客户—一次进程通信中发起的一方;•服务器—接受进程通信的请求,提供服务的一方;•每一次通信由客户进程随机启动;•服务器进程处于等待状态,及时响应客户服务请求。197.1.4进程通信中Client/Server模型实现方法•客户机/服务器模型的工作实质是“请求驱动”;•在网络环境中,客户进程发出请求完全随机。在同一个时刻,可能有多个客户进程向一个服务器发出服务请求;•为了实现服务器的功能,在服务器的设计中要解决服务器的:并发请求处理能力并发服务器的进程标识服务器安全20解决服务器处理并发请求的基本方案:•设计一个并发服务器;•采用重复服务器的方法。21并发服务器(concurrentserver)•并发服务器的核心是使用一个守护程序(daemon);•守护程序在系统启动的时候随之启动,在没有客户的服务请求到达时,并发服务器处于等待状态;•一旦客户机的服务请求到达,服务器根据客户的服务请求的进程号,去激活相应的子进程,而服务器回到等待状态;•并发服务器叫做主服务器(master),把子服务器叫做从服务器(slave);•主服务器必须拥有一个全网公认的进程地址;•网络中的客户进程可以根据服务器进程的公认地址,向服务器提出服务请求。22客户与并发服务器建立传输连接的过程23重复服务器(interativeserver)•通过设置一个请求队列来存储客户机的服务请求;•服务器采用先来先服务的原则来顺序处理客户机的服务请求。24比较并发服务器:•并发服务器可以处理多个客户的服务请求;•从服务器不依赖主服务器而独立处理客户服务请求;•不同的从服务器可以分别处理不同的客户的服务请求;•系统的实时性好。重复服务器:•处理客户的服务请求的数量受到请求队列长度的限制,但可以有效地控制请求处理的时间•并发服务器适应于面向连接的服务类型;•重复服务器适应于无连接的服务类型。25讨论•主动启动与服务器进程通信的程序叫做客户;•服务器是一个用来提供某种服务的,有特殊权限的专用程序;•服务器程序在网络中一台计算机上运行,接受来自远程客户的服务请求,提供一种服务;•服务器程序需要硬件配置较高的计算机和操作系统的支持;•客户/服务器是软件设计中进程间相互作用关系的模型。267.2传输层的基本功能7.2.1传输层的端-端通信传输层端-端通信协议数据链路层网络层物理层传输层应用层数据链路层网络层物理层网络层协议数据链路层网络层物理层传输层应用层通信子网主机A主机B数据链路层协议物理层协议网络层协议数据链路层协议物理层协议277.2.2传输层协议的基本功能1.传输层在协议层次结构中的位置•传输层的目标是向应用层应用程序进程之间的通信,提供有效、可靠、保证质量的服务;•传输层在网络分层结构中起着承上启下的作用,通过执行传输层协议,屏蔽通信子网在技术、设计上的差异和服务质量的不足,向高层提供一个标准的、完善的通信服务;•从通信和信息处理的角度看,应用层是面向信息处理的,而传输层是为应用层提供通信服务的。282.传输协议数据单元•传输层之间传输的报文叫做传输协议数据单元(TransportProtocolUnit,TPDU);•TPDU有效载荷是应用层的数据。TPDU头部TPDU有效载荷分组头部帧头部分组有效载荷帧有效载荷297.2.3网络服务与服务质量QoS服务(Service)•网络层次结构中,各层之间有严格的依赖关系各层次的分工和协作集中地体现在相邻层之间的界面上;•服务是描述相邻层之间关系的重要概念;•网络服务体现在低层向相邻上层提供的一组操作;•低层是服务提供者,高层是服务的用户。30衡量服务质量QoS的主要指标•连接建立延迟/连接释放延迟;•连接建立/释放失败概率;•传输时延;•吞吐率;•残留误码率;•传输失败概率。31连接建立延迟•从传输服务用户要求建立连接到收到连接确认之间所经历的时间;•它包括了远端传输实体的处理延迟;•连接建立延迟越短,服务质量越好。连接建立失败的概率•在最大连接建立延迟时间内,连接未能建立的可能性;•由于网络拥塞,缺少缓冲区或其他原因造成的失败。32吞吐率•吞吐率是在某个时间间隔内测得的每秒钟传输的用户数据的字节数;•每个传输方向分别用各自的吞吐率来衡量。传输延迟•传输延迟是指从源主机传输用户发送报文开始到目的主机传输用户接收到报文为止的时间;•每个方向的传输延迟是不同的。33残余误码率•残余误码率用于测量丢失或乱序的报文数占整个发送的报文数的百分比;•理论上残余误码率应为零,实际上它可能是一较小的值。安全保护•安全保护为传输用户提供了传输层的保护,以防止未经授权的第三方读取或修改数据。34优先级•为传输用户提供用以表明哪些连接更为重要的方法;•当发生拥塞事件时,确保高优先级的连接先获得服务。恢复功能•当出现内部问题或拥塞情况下,传输层本身自发终止连接的可能性。35在讨论传输层服务质量参数时需要注意以下几个问题:•服务质量参数是传输用户在请求建立连接时设定的,表明希望值和最小可接受的值;•传输层通过检查服务质量参数可以立即发现其中某些值是无法达到的,传输层可以不去与目的主机连接,而直接通知传输用户连接请求失败与失败的原因;•有些情况下,传输层发现不能达到用户希望的质量参数,但可以达到稍微低一些的要求,然后再请求建立连接;•并非所有的传输连接都需要提供所有的参数,大多数仅仅是要求残余误码,而其他参数则是为了完善服务质量而设置的。367.3用户报文协议UDP7.3.1UDP协议的主要特点•UDP是一种无连接的、不可靠的传输层协议;•在完成进程到进程的通信中提供了有限的差错检验功能;•设计比较简单的UDP协议的目的是希望以最小的开销来达到网络环境中的进程通信目的;•进程发送的报文较短,同时对报文的可靠性要求不高,那么可以使用UDP协议。377.3.2UDP的基本工作过程UDP用户数据报传输过程中的封装与拆封进程数据UDP数据进程UDP头IP数据IP报头帧数据帧头进程数据UDP数据进程UDP头IP数据IP报头帧数据帧头发送端接收端帧尾帧尾38UDP报文传输队列39UDP的复用和分用407.3.3UDP端口号•TCP/IP协议族中用端口号来标识进程;•端口号是在0到65535之间的整数;•客户程序随机选取的临时端口号;•每一种服务器程序被分配了确定的全局一致的熟知端口号;•每一个客户进程都知道相应的服务器进程的熟知端口号。41UDP使用的熟知端口号端口号服务进程说明下载引导程序信息的服务器端口53Nameserver域名服务67Bootps68Bootpc下载引导程序信息的客户机端口69TFTP简单文件传输协议111RPC远程过程调用123NTP网络时间协议161SNMP简单网络管理协议427.3.4UDP数据报格式8BUDP头部数据源端口号目的端口号总长度