版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本章学习要求本章学习要求: 理解:理解:网络环境中分布式进程通信的基本概念网络环境中分布式进程通信的基本概念 掌握:进程相互作用的掌握:进程相互作用的Client/ServerClient/Server模型模型 掌握:传输层的基本功能与服务质量掌握:传输层的基本功能与服务质量 掌握:用户数据报协议掌握:用户数据报协议UDP UDP 掌握:传输控制协议掌握:传输控制协议TCPTCP 计算机网络计算机网络 第第7章章 传输层传输层2 7.1 网络环境中分布式进程通信的基本概念 计算机网络计算机网络 第第7章章 传输层传输层3 网络层及以下的各层实现了网络中主机之间的网络层及以下的各层实现了网络中
2、主机之间的 数据通信,但是数据通信不是最终的目的;数据通信,但是数据通信不是最终的目的; 计算机网络最本质的活动是分布在不同地理位计算机网络最本质的活动是分布在不同地理位 置的主机之间的置的主机之间的进程通信进程通信,以实现应用层的各,以实现应用层的各 种网络服务功能;种网络服务功能; 设置传输层的主要目的就是要实现分布式主机设置传输层的主要目的就是要实现分布式主机 之间的进程通信。之间的进程通信。 计算机网络计算机网络 第第7章章 传输层传输层4 7.1.1 单机系统中的进程通信方法 进程和进程通信是操作系统中的一个最基本的进程和进程通信是操作系统中的一个最基本的 概念;概念; 程序程序是一
3、个在时间上按照严格次序进行的操作是一个在时间上按照严格次序进行的操作 序列,是一个静态的概念;序列,是一个静态的概念; 进程进程是一个动态的概念,它是一个程序对某个是一个动态的概念,它是一个程序对某个 数据集的执行过程;数据集的执行过程; 进程具有进程具有并发并发的特性,是分配计算机资源的基的特性,是分配计算机资源的基 本单位;本单位; 计算机网络计算机网络 第第7章章 传输层传输层5 正在运行的进程叫做正在运行的进程叫做运行态运行态; 等待分配等待分配CPUCPU的进程叫做的进程叫做就绪态就绪态; 等待其它条件的进程叫做等待其它条件的进程叫做等待态等待态; 进程状态反映出进程执行过程的变化;
4、进程状态反映出进程执行过程的变化; 要保证系统正常地工作,操作系统必须对进程要保证系统正常地工作,操作系统必须对进程 的的创建、撤消与状态转换创建、撤消与状态转换进行控制;进行控制; 从进程的观点看,操作系统的核心则是控制和从进程的观点看,操作系统的核心则是控制和 协调这些进程的运行,解决进程之间的通信。协调这些进程的运行,解决进程之间的通信。 计算机网络计算机网络 第第7章章 传输层传输层6 在解决单机环境下操作系统的进程通信中在解决单机环境下操作系统的进程通信中: 具有批处理、分时处理和实时处理特征的操作系统理具有批处理、分时处理和实时处理特征的操作系统理 论和产品日趋成熟:论和产品日趋成
5、熟: BSD UNIX BSD UNIX 引入了管道(引入了管道(pipepipe)、)、命名管道(命名管道(named named pipepipe)和软中断信号(和软中断信号(signalsignal)机制;机制; AT ; 每台联网的计算机的硬件、软件与数据资源应该既每台联网的计算机的硬件、软件与数据资源应该既 是本地用户可以使用的资源,也是网络的其它主机是本地用户可以使用的资源,也是网络的其它主机 的用户可以共享的资源的用户可以共享的资源; ; 每一项网络服务都是对应一个每一项网络服务都是对应一个“服务程序服务程序”进程进程; ; “服务程序服务程序”进程要为每一个获准的网络用户请求进
6、程要为每一个获准的网络用户请求 执行一组规定的动作,以满足用户网络资源共享的执行一组规定的动作,以满足用户网络资源共享的 需要需要; ; 计算机网络计算机网络 第第7章章 传输层传输层14 网络环境中进程通信要解决进程间相互作用的模式;网络环境中进程通信要解决进程间相互作用的模式; 在在TCP/IPTCP/IP协议体系中,进程间的相互作用采用协议体系中,进程间的相互作用采用客户客户/ /服务服务 器器( (Client/Server)Client/Server)模式;模式; 客户与服务器分别表示相互通信的两个应用程序的进程;客户与服务器分别表示相互通信的两个应用程序的进程; 客户向服务器发出服
7、务请求,服务器响应客户的请求,提客户向服务器发出服务请求,服务器响应客户的请求,提 供客户机所需要的网络服务。供客户机所需要的网络服务。 计算机网络计算机网络 第第7章章 传输层传输层15 2.为什么要采用客户机/服务器模型? 网络资源分布的不均匀性网络资源分布的不均匀性 网络资源分布的不均匀性表现在硬件、软件和数据等三网络资源分布的不均匀性表现在硬件、软件和数据等三 个方面;个方面; 网络资源分布的不均匀性是客观存在的,同时也是网络网络资源分布的不均匀性是客观存在的,同时也是网络 应用系统设计者的设计思想的体现;应用系统设计者的设计思想的体现; “资源共享资源共享”就是因为网络不同结点之间在
8、硬件配置、就是因为网络不同结点之间在硬件配置、 计算能力、存储能力,以及数据分布等方面存在着差距计算能力、存储能力,以及数据分布等方面存在着差距 与不均匀性;与不均匀性; 能力强、资源丰富的充当服务器,能力弱或需要某种资能力强、资源丰富的充当服务器,能力弱或需要某种资 源的成为客户;源的成为客户; 进程通信是手段,网络资源共享才是目的。进程通信是手段,网络资源共享才是目的。 计算机网络计算机网络 第第7章章 传输层传输层16 网络环境中进程通信的异步性网络环境中进程通信的异步性 分布在不同主机系统中的进程什么时间发出通信分布在不同主机系统中的进程什么时间发出通信 请求,希望和哪一台主机的哪一个
9、进程通信,以请求,希望和哪一台主机的哪一个进程通信,以 及对方进程是否能接受通信请求是不确定的。及对方进程是否能接受通信请求是不确定的。不不 存在一个高层操作系统的调度与协调存在一个高层操作系统的调度与协调; ; 必须要建立一个体制,为准备通信的进程之间建必须要建立一个体制,为准备通信的进程之间建 立起连接,在进程交换数据的过程中维护连接,立起连接,在进程交换数据的过程中维护连接, 为数据交换提供同步。为数据交换提供同步。 计算机网络计算机网络 第第7章章 传输层传输层17 客客 户户一次进程通信中发起的一方;一次进程通信中发起的一方; 服务器服务器接受进程通信的请求,提供服务的一方;接受进程
10、通信的请求,提供服务的一方; 每一次通信由客户进程随机启动;每一次通信由客户进程随机启动; 服务器进程处于等待状态,及时响应客户服务请服务器进程处于等待状态,及时响应客户服务请 求。求。 注意:这里所说的服务器是指被动地等待客户请注意:这里所说的服务器是指被动地等待客户请 求,能够为客户提供某种服务功能的程序。求,能够为客户提供某种服务功能的程序。 计算机网络计算机网络 第第7章章 传输层传输层18 7.1.4 进程通信中Client/Server模型实现方法 客户机客户机/ /服务器模型的工作实质是服务器模型的工作实质是“请求驱请求驱 动动”; 在网络环境中,客户进程发出请求完全随机。在网络
11、环境中,客户进程发出请求完全随机。 在同一个时刻,可能有在同一个时刻,可能有多个客户进程多个客户进程向一个服向一个服 务器发出服务请求;务器发出服务请求; 为了实现服务器的功能,在服务器的设计中要为了实现服务器的功能,在服务器的设计中要 解决服务器的几个主要问题:解决服务器的几个主要问题: 并发请求处理能力并发请求处理能力 并发服务器的进程标识并发服务器的进程标识 服务器安全服务器安全 计算机网络计算机网络 第第7章章 传输层传输层19 解决服务器处理并发请求的基本方案解决服务器处理并发请求的基本方案: 设计一个并发服务器设计一个并发服务器 采用重复服务器的方法采用重复服务器的方法 计算机网络
12、计算机网络 第第7章章 传输层传输层20 并发服务器(concurrent server) 并发服务器的核心是使用一个并发服务器的核心是使用一个守护程序守护程序(daemondaemon),),处处 于后台工作,在某些条件满足时被激活;于后台工作,在某些条件满足时被激活; 守护程序在系统启动的时候随之启动,在没有客户的服守护程序在系统启动的时候随之启动,在没有客户的服 务请求到达时,并发服务器处于等待状态;务请求到达时,并发服务器处于等待状态; 一旦客户机的服务请求到达,服务器根据服务请求的进一旦客户机的服务请求到达,服务器根据服务请求的进 程号去激活相应的子进程,子进程为客户提供服务,而程号
13、去激活相应的子进程,子进程为客户提供服务,而 服务器回到等待状态;服务器回到等待状态; 并发服务器叫做主服务器(并发服务器叫做主服务器(mastermaster),),把子进程叫做从把子进程叫做从 服务器(服务器(slaveslave);); 主服务器必须拥有一个全网熟知的进程地址;主服务器必须拥有一个全网熟知的进程地址; 网络中的客户进程可以根据服务器进程的公认地址,向网络中的客户进程可以根据服务器进程的公认地址,向 服务器提出服务请求。服务器提出服务请求。 计算机网络计算机网络 第第7章章 传输层传输层21 客户与并发服务器建立传输连接的过程 计算机网络计算机网络 第第7章章 传输层传输层
14、22 重复服务器(interative server) 通过设置一个请求队列来存储客户机的服务请求;通过设置一个请求队列来存储客户机的服务请求; 服务器采用先来先服务的原则顺序处理客户机的服服务器采用先来先服务的原则顺序处理客户机的服 务请求。务请求。 计算机网络计算机网络 第第7章章 传输层传输层23 比较 并发服务器并发服务器: 并发服务器可以处理多个客户的服务请求;并发服务器可以处理多个客户的服务请求; 从服务器不依赖主服务器而独立处理客户服务请求;从服务器不依赖主服务器而独立处理客户服务请求; 不同的从服务器可以分别处理不同的客户的服务请求;不同的从服务器可以分别处理不同的客户的服务请
15、求; 系统的实时性好;系统的实时性好; 重复服务器重复服务器: 处理客户的服务请求的数量受到请求队列长度的限制,处理客户的服务请求的数量受到请求队列长度的限制, 但可以有效地控制请求处理的时间但可以有效地控制请求处理的时间; ; 并发服务器适应于面向连接的服务类型;并发服务器适应于面向连接的服务类型; 重复服务器适应于无连接的服务类型。重复服务器适应于无连接的服务类型。 计算机网络计算机网络 第第7章章 传输层传输层24 讨论 主动启动与服务器进程通信的程序叫做客户;主动启动与服务器进程通信的程序叫做客户; 服务器是一个用来提供某种服务的,有特殊权限服务器是一个用来提供某种服务的,有特殊权限
16、的专用程序;的专用程序; 服务器程序在网络中一台计算机上运行,接受来服务器程序在网络中一台计算机上运行,接受来 自远程客户的服务请求,提供一种服务;自远程客户的服务请求,提供一种服务; 服务器程序需要硬件配置较高的计算机和操作系服务器程序需要硬件配置较高的计算机和操作系 统的支持;统的支持; 客户客户/ /服务器是软件设计中进程间相互作用关系服务器是软件设计中进程间相互作用关系 的模型。的模型。 计算机网络计算机网络 第第7章章 传输层传输层25 7.2 传输层的基本功能 7.2.1 7.2.1 传输层的端传输层的端- -端通信端通信 * *由物理层、数据链路层和网络层组成的通信子由物理层、数
17、据链路层和网络层组成的通信子 网为网络环境中的主机提供点网为网络环境中的主机提供点- -点通信服务;点通信服务; * *传输层是为网络环境中主机的应用进程提供端传输层是为网络环境中主机的应用进程提供端 到端通信服务;到端通信服务; * *设计传输层的目的是弥补通信子网服务的不足,设计传输层的目的是弥补通信子网服务的不足, 提高传输服务的可靠性与保证服务质量提高传输服务的可靠性与保证服务质量QoSQoS。 计算机网络计算机网络 第第7章章 传输层传输层26 计算机网络计算机网络 第第7章章 传输层传输层27 7.2.2 传输层协议的基本功能 1.1.传输层在协议层次结构中的位置传输层在协议层次结
18、构中的位置 传输层的目标是向应用层应用程序进程之间的通信,提供传输层的目标是向应用层应用程序进程之间的通信,提供 有效、可靠、保证质量的服务有效、可靠、保证质量的服务; ; 传输层在网络分层结构中起着承上启下的作用,通过执行传输层在网络分层结构中起着承上启下的作用,通过执行 传输层协议,屏蔽通信子网在技术、设计上的差异和服务传输层协议,屏蔽通信子网在技术、设计上的差异和服务 质量的不足(质量的不足(通信子网一般是公用数据网,用户无法控通信子网一般是公用数据网,用户无法控 制制),向高层提供一个标准的、完善的通信服务),向高层提供一个标准的、完善的通信服务; ; 从通信和信息处理的角度看,应用层
19、是面向信息处理的,从通信和信息处理的角度看,应用层是面向信息处理的, 而传输层是为应用层提供通信服务的。传输层可以起到隔而传输层是为应用层提供通信服务的。传输层可以起到隔 离通信子网的技术差异性,改善传输可靠性的作用。离通信子网的技术差异性,改善传输可靠性的作用。 计算机网络计算机网络 第第7章章 传输层传输层28 2.传输协议数据单元 传输层之间传输的报文叫做传输层协议数据单传输层之间传输的报文叫做传输层协议数据单 元(元(Transport-layer Protocol data UnitTransport-layer Protocol data Unit, TPDUTPDU);); TP
20、DUTPDU有效载荷是应用层的数据,头部表达了传有效载荷是应用层的数据,头部表达了传 输层协议的命令和响应(数据包通过通信子网输层协议的命令和响应(数据包通过通信子网 的差错控制、分组拆装、流量控制等)。的差错控制、分组拆装、流量控制等)。 计算机网络计算机网络 第第7章章 传输层传输层29 7.2.3 网络服务与服务质量QoS 服务(服务(ServiceService) 网络层次结构中,各层之间有严格的依赖关系,各网络层次结构中,各层之间有严格的依赖关系,各 层次的分工和协作集中地体现在相邻层之间的界面层次的分工和协作集中地体现在相邻层之间的界面 上;上; 服务是描述相邻层之间关系的重要概念
21、;服务是描述相邻层之间关系的重要概念; 网络服务体现在低层向相邻上层提供的一组操作;网络服务体现在低层向相邻上层提供的一组操作; 低层是服务提供者,高层是服务的用户。低层是服务提供者,高层是服务的用户。 计算机网络计算机网络 第第7章章 传输层传输层30 衡量服务质量衡量服务质量QoSQoS的主要指标的主要指标 连接建立延迟连接建立延迟/ /连接连接释放释放延迟延迟 连接建立连接建立/ /释放失败概率释放失败概率 传输时延传输时延 吞吐率吞吐率 残留误码率残留误码率 传输失败概率传输失败概率 计算机网络计算机网络 第第7章章 传输层传输层31 连接建立延迟连接建立延迟 从传输服务用户要求建立连
22、接到收到连接确认从传输服务用户要求建立连接到收到连接确认 之间所经历的时间;之间所经历的时间; 它包括了远端传输实体的处理延迟;它包括了远端传输实体的处理延迟; 连接建立延迟越短,服务质量越好。连接建立延迟越短,服务质量越好。 连接建立失败的概率连接建立失败的概率 在最大连接建立延迟时间内,连接未能建立的在最大连接建立延迟时间内,连接未能建立的 可能性;可能性; 由于网络拥塞,缺少缓冲区或其他原因造成的由于网络拥塞,缺少缓冲区或其他原因造成的 失败。失败。 计算机网络计算机网络 第第7章章 传输层传输层32 吞吐率吞吐率 吞吐率是在某个时间间隔内测得的每秒钟传输吞吐率是在某个时间间隔内测得的每
23、秒钟传输 的用户数据的字节数;的用户数据的字节数; 每个传输方向分别用各自的吞吐率来衡量。每个传输方向分别用各自的吞吐率来衡量。 传输延迟传输延迟 传输延迟是指从源主机开始发送用户报文到目传输延迟是指从源主机开始发送用户报文到目 的主机接收到用户报文为止所经历的时间;的主机接收到用户报文为止所经历的时间; 每个方向的传输延迟是不同的。每个方向的传输延迟是不同的。 计算机网络计算机网络 第第7章章 传输层传输层33 残余误码率残余误码率 残余误码率用于测量丢失或乱序的报文数占整残余误码率用于测量丢失或乱序的报文数占整 个发送的报文数的百分比;个发送的报文数的百分比; 理论上残余误码率应为零,实际
24、上它可能是一理论上残余误码率应为零,实际上它可能是一 较小的值。较小的值。 安全保护安全保护 安全保护为传输用户提供了传输层的保护,以安全保护为传输用户提供了传输层的保护,以 防止未经授权的第三方读取或修改数据。防止未经授权的第三方读取或修改数据。 计算机网络计算机网络 第第7章章 传输层传输层34 优先级优先级 为传输用户提供用以表明哪些连接更为重要的为传输用户提供用以表明哪些连接更为重要的 方法;方法; 当发生拥塞事件时,确保高优先级的连接先获当发生拥塞事件时,确保高优先级的连接先获 得服务。得服务。 恢复功能恢复功能 当出现内部问题或拥塞情况下,传输层本身自当出现内部问题或拥塞情况下,传
25、输层本身自 发终止连接的可能性。发终止连接的可能性。 计算机网络计算机网络 第第7章章 传输层传输层35 在讨论传输层服务质量参数时需要注意以下几个问题: 服务质量参数是传输用户在请求建立连接时设定的,服务质量参数是传输用户在请求建立连接时设定的, 表明希望值和最小可接受的值;表明希望值和最小可接受的值; 传输层通过检查服务质量参数可以立即发现其中某些传输层通过检查服务质量参数可以立即发现其中某些 值是无法达到的,传输层可以不去与目的主机连接,值是无法达到的,传输层可以不去与目的主机连接, 而直接通知传输用户连接请求失败与失败的原因;而直接通知传输用户连接请求失败与失败的原因; 有些情况下,传
26、输层发现不能达到用户希望的质量参有些情况下,传输层发现不能达到用户希望的质量参 数,但可以达到稍微低一些的要求,然后再请求建立数,但可以达到稍微低一些的要求,然后再请求建立 连接;连接; 并非所有的传输连接都需要提供所有的参数并非所有的传输连接都需要提供所有的参数, ,大多数仅大多数仅 仅是要求残余误码,而其他参数则是为了完善服务质仅是要求残余误码,而其他参数则是为了完善服务质 量而设置的。量而设置的。 计算机网络计算机网络 第第7章章 传输层传输层36 7.3 用户报文协议UDP 7.3.1 7.3.1 UDPUDP协议的主要特点协议的主要特点 UDPUDP是一种无连接的、不可靠的传输层协议
27、;是一种无连接的、不可靠的传输层协议; 在完成进程到进程的通信中提供了有限的差错在完成进程到进程的通信中提供了有限的差错 检验功能;检验功能; 设计比较简单的设计比较简单的UDPUDP协议的目的是希望以最小协议的目的是希望以最小 的开销来达到网络环境中的进程通信目的;的开销来达到网络环境中的进程通信目的; 进程发送的报文较短,同时对报文的可靠性要进程发送的报文较短,同时对报文的可靠性要 求不高,那么可以使用求不高,那么可以使用UDPUDP协议,如:协议,如:TFTPTFTP、 RPCRPC、BOOTPBOOTP、RIPRIP、SNMPSNMP、VoIPVoIP、NFSNFS等。等。 计算机网络
28、计算机网络 第第7章章 传输层传输层37 7.3.2 UDP的基本工作过程 UDPUDP用户数据报传输过程中的封装与拆封用户数据报传输过程中的封装与拆封 计算机网络计算机网络 第第7章章 传输层传输层38 注意:注意: UDPUDP提供无连接的服务,所发送的每个用户数据提供无连接的服务,所发送的每个用户数据 报都是独立的,它们的传输路径报都是独立的,它们的传输路径( (由网络层决定由网络层决定) ) 可以不同,也不进行编号;可以不同,也不进行编号; 无连接服务的结果是使用无连接服务的结果是使用UDPUDP的进程不能发送数的进程不能发送数 据流,只有那些发送短报文的进程才应当使用据流,只有那些发
29、送短报文的进程才应当使用 UDPUDP协议;协议; UDPUDP没有流量控制和窗口机制,除检验和之外也没有流量控制和窗口机制,除检验和之外也 没有差错控制机制,可靠性问题需要应用层协议没有差错控制机制,可靠性问题需要应用层协议 来解决。来解决。 计算机网络计算机网络 第第7章章 传输层传输层39 UDP报文传输队列 计算机网络计算机网络 第第7章章 传输层传输层40 临时端口号临时端口号 UDP的复用和分用:用不同的端口号区别多个进程用不同的端口号区别多个进程 计算机网络计算机网络 第第7章章 传输层传输层41 7.3.3 UDP端口号 TCP/IPTCP/IP协议族中用协议族中用端口号端口号
30、来标识进程;来标识进程; 端口号是在端口号是在0 0到到6553565535(16bit)(16bit)之间的整数;之间的整数; 客户程序随机选取的客户程序随机选取的临时端口号临时端口号(49152 65535)(49152 65535); 每一种服务器程序被分配了确定的全局一致的每一种服务器程序被分配了确定的全局一致的熟熟 知端口号知端口号(01023)(01023); 每一个客户进程都知道相应的服务器进程的熟知每一个客户进程都知道相应的服务器进程的熟知 端口号;端口号; 为防止重复,用户可以向为防止重复,用户可以向IANAIANA申请申请注册端口号注册端口号 (102449151)(102
31、449151)。 计算机网络计算机网络 第第7章章 传输层传输层42 UDP使用的熟知端口号 端口号端口号服务进程服务进程说明说明 53Nameserver域名服务域名服务 67Bootps下载引导程序信息的服务器端口下载引导程序信息的服务器端口 68Bootpc下载引导程序信息的客户机端口下载引导程序信息的客户机端口 69TFTP简单文件传输协议简单文件传输协议 111RPC远程过程调用远程过程调用 123NTP网络时间协议网络时间协议 161SNMP简单网络管理协议简单网络管理协议 计算机网络计算机网络 第第7章章 传输层传输层 43 7.3.4 UDP数据报格式 计算机网络计算机网络 第
32、第7章章 传输层传输层44 (865535B) UDPUDP检验和的检验范围检验和的检验范围: 伪头部、伪头部、UDPUDP头、应用层数据头、应用层数据 计算机网络计算机网络 第第7章章 传输层传输层45 7.4 传输控制协议TCP 7.4.1 7.4.1 TCPTCP协议的主要特点协议的主要特点 面向连接服务:面向连接服务:在源进程与目的进程之间建立一条传输在源进程与目的进程之间建立一条传输 连接;连接; 高可靠性:高可靠性:校验和、确认与超时重传机制;校验和、确认与超时重传机制; 全双工通信全双工通信 支持流传输:支持流传输:TCPTCP传输连接提供一个传输连接提供一个“管道管道”,保证数
33、,保证数 据流从一端正确地据流从一端正确地“流流”到另一端。到另一端。TCPTCP对数据流的内对数据流的内 容不作任何解释。容不作任何解释。 传输连接的可靠建立与释放:传输连接的可靠建立与释放:使用了三次握手的方法。使用了三次握手的方法。 提供流量控制与拥塞控制:提供流量控制与拥塞控制:采用了大小可变的滑动窗口采用了大小可变的滑动窗口 进行流量控制。进行流量控制。 计算机网络计算机网络 第第7章章 传输层传输层46 TCP协议与其他协议的层次关系 计算机网络计算机网络 第第7章章 传输层传输层47 7.4.2 TCP的端口号分配和Socket地址 TCPTCP常用的熟知端口号:常用的熟知端口号
34、:0102301023(1616位)位) SocketSocket地址:地址:TCPTCP协议用一个协议用一个IPIP地址与一个端口号合起地址与一个端口号合起 来的套接字(来的套接字(SocketSocket地址)在全网唯一地标识一个进程。地址)在全网唯一地标识一个进程。 端口号端口号服务进程服务进程说明说明 20FTP文件传输协议(数据连接)文件传输协议(数据连接) 21FTP文件传输协议(控制连接)文件传输协议(控制连接) 23TELNET虚拟终端网络虚拟终端网络 25SMTP简单邮件传输协议简单邮件传输协议 53DNS域名服务器域名服务器 80HTTP超文本传输协议超文本传输协议 111
35、RPC远程过程调用远程过程调用 计算机网络计算机网络 第第7章章 传输层传输层 48 Winsock APIWinsock API WINDOWS下的网络编程接口,即Windows Sockets 规范 微软为VC定义了Winsock类,如CAsyncSocket类和 派生于CAsyncSocket 的CSocket类 在VC中进行WINSOCK的API编程时,需要在项目中 使用下面三个文件 WINSOCK.H: WINSOCK API的头文件,需包含在项目中 WSOCK32.LIB: WINSOCK API连接库文件。使用时,要 把它作为项目的非缺省的连接库包含到项目文件中去 WINSOCK
36、.DLL: WINSOCK的动态连接库 49 Winsock APIWinsock API 服务器端服务器端 初始化:调用WSAStartup() 建立Socket():建立一个监听的Socket 绑定端口bind():监听的Socket指定一个地址及端口 监听listen():建立一个监听队列接收客户端的连接 请求 接受客户端的连接请求accept() 结束 socket 连接closesocket() 释放Socket所占用的资源WSACleanup() 50 客户端客户端 建立客户端的Socket:WSAStartup()、socket()、 bind() 提出连接申请connect()
37、 数据的传送数据的传送 TCP socket:数据发送和接收调用send() 及recv() 两个函数 UDP Socket:用sendto() 及recvfrom() 两个函数 Winsock APIWinsock API 51 7.4.3 TCP报文段格式 计算机网络计算机网络 第第7章章 传输层传输层52 TCPTCP协议的数据传输单元叫做报文段。报文的头协议的数据传输单元叫做报文段。报文的头 部长度为部长度为20B20B60B60B,固定部分长度为,固定部分长度为20B20B。 计算机网络计算机网络 第第7章章 传输层传输层53 源端口和目的端口字段源端口和目的端口字段各占各占2 2字
38、节。端口是字节。端口是 传输层与应用层的服务接口。传输层的复用和分传输层与应用层的服务接口。传输层的复用和分 用功能都要通过端口才能实现。用功能都要通过端口才能实现。 计算机网络计算机网络 第第7章章 传输层传输层54 序号字段序号字段占占4 4字节。字节。TCPTCP连接中传送数据流的连接中传送数据流的 每一个字节都编上一个序号。序号字段的值则指每一个字节都编上一个序号。序号字段的值则指 的是本报文段所发送数据的第一个字节的序号。的是本报文段所发送数据的第一个字节的序号。 计算机网络计算机网络 第第7章章 传输层传输层55 确认号字段确认号字段占占4 4字节,是期望收到对方的下一字节,是期望
39、收到对方的下一 个报文段的数据的第一个字节的序号。个报文段的数据的第一个字节的序号。 计算机网络计算机网络 第第7章章 传输层传输层56 头部长度头部长度占占4bit4bit,它指出,它指出TCPTCP报文段的数据起报文段的数据起 始处距离始处距离TCPTCP报文段的起始处有多远。单位以报文段的起始处有多远。单位以32bit 32bit (4B4B)为一个单元来计算,其值在)为一个单元来计算,其值在5 5(5 54=204=20)至)至 1515(15154=604=60)之间。)之间。 计算机网络计算机网络 第第7章章 传输层传输层57 保留字段保留字段占占6bit6bit,保留为今后使用,
40、但目前应,保留为今后使用,但目前应 置为置为 0 0。 计算机网络计算机网络 第第7章章 传输层传输层58 紧急比特紧急比特URGURG当当URGURG 1 1时,表明紧急指针字段有时,表明紧急指针字段有 效。它告诉系统此报文段中有紧急数据,应尽快传效。它告诉系统此报文段中有紧急数据,应尽快传 送送( (相当于高优先级的数据相当于高优先级的数据) ),而不要按照原来的排,而不要按照原来的排 队顺序传送。队顺序传送。 计算机网络计算机网络 第第7章章 传输层传输层59 确认比特确认比特ACKACK只有当只有当ACK ACK 1 1时确认号字段才有时确认号字段才有 效。当效。当ACK ACK 0
41、0时,确认号无效。时,确认号无效。 计算机网络计算机网络 第第7章章 传输层传输层60 推送比特推送比特PSH(PuSH)PSH(PuSH)接收接收TCPTCP收到推送比特置收到推送比特置1 1 的报文段,就尽快地交付给接收应用进程,而不再的报文段,就尽快地交付给接收应用进程,而不再 等到整个缓存都填满了后再向上交付。等到整个缓存都填满了后再向上交付。 计算机网络计算机网络 第第7章章 传输层传输层61 复位比特复位比特RST(ReSeT)RST(ReSeT)当当RSTRST 1 1时,表明时,表明TCPTCP连接连接 中出现严重差错(如由于主机崩溃或其他原因),中出现严重差错(如由于主机崩溃
42、或其他原因), 必须释放连接,然后再重新建立运输连接。必须释放连接,然后再重新建立运输连接。 计算机网络计算机网络 第第7章章 传输层传输层62 同步比特同步比特SYNSYN同步比特同步比特SYNSYN置为置为1 1,就表示这是,就表示这是 一个连接请求或连接接受报文。一个连接请求或连接接受报文。 计算机网络计算机网络 第第7章章 传输层传输层63 终止比特终止比特FIN(FINal)FIN(FINal)用来释放一个连接。当用来释放一个连接。当 FINFIN 1 1时,表明此报文段的发送端的数据已发送完时,表明此报文段的发送端的数据已发送完 毕,并要求释放运输连接。毕,并要求释放运输连接。 计
43、算机网络计算机网络 第第7章章 传输层传输层64 窗口字段窗口字段占占2 2字节。窗口字段用来控制对方发字节。窗口字段用来控制对方发 送的数据量,单位为字节。送的数据量,单位为字节。TCP TCP 连接的一端根据设连接的一端根据设 置的缓存空间大小确定自己的接收窗口大小,然后置的缓存空间大小确定自己的接收窗口大小,然后 通知对方以确定对方的发送窗口的上限。通知对方以确定对方的发送窗口的上限。 计算机网络计算机网络 第第7章章 传输层传输层65 校验和校验和占占2 2字节。校验和字段检验的范围包括字节。校验和字段检验的范围包括 首部和数据这两部分。在计算校验和时,要在首部和数据这两部分。在计算校
44、验和时,要在TCP TCP 报文段的前面加上报文段的前面加上1212字节的伪首部。字节的伪首部。 计算机网络计算机网络 第第7章章 传输层传输层66 紧急指针字段紧急指针字段占占16bit16bit。只有当紧急标志。只有当紧急标志URG=1URG=1 时,紧急指针才有效。紧急指针指出在本报文段中时,紧急指针才有效。紧急指针指出在本报文段中 的紧急数据的最后一个字节的序号。的紧急数据的最后一个字节的序号。 计算机网络计算机网络 第第7章章 传输层传输层67 选项字段选项字段长度可变。选项有两类:单字节(选项结束、无操作)选项长度可变。选项有两类:单字节(选项结束、无操作)选项 和多字节(最大报文
45、段长度和多字节(最大报文段长度MSSMSS、窗口扩大因子、时间戳)选项。、窗口扩大因子、时间戳)选项。MSSMSS告诉告诉 对方对方TCPTCP:“我的缓存所能接收报文段的数据字段的最大长度是我的缓存所能接收报文段的数据字段的最大长度是MSSMSS个字个字 节节”。 填充字段填充字段这是为了使整个首部长度是这是为了使整个首部长度是4 4字节的整数倍。字节的整数倍。 7.4.4 TCP传输连接建立与连接释放 TCPTCP传输连接建立过程示意图:传输连接建立过程示意图:三次握手三次握手 计算机网络计算机网络 第第7章章 传输层传输层68 4801 序号序号 确认号确认号 TCPTCP在传输连接释放
46、过程中采用在传输连接释放过程中采用4 4次握手:次握手:客户与服务器客户与服务器 的数据报文是双向传输的,需要关闭客户到服务器的进的数据报文是双向传输的,需要关闭客户到服务器的进 程连接和服务器到客户的进程连接。程连接和服务器到客户的进程连接。 计算机网络计算机网络 第第7章章 传输层传输层69 7.4.5 TCP流量与拥塞控制 TCPTCP的数据编码与确认的数据编码与确认 TCPTCP协议是面向字节流的,为每一个字节协议是面向字节流的,为每一个字节 分配一个序号。分配一个序号。 TCPTCP连接能提供全双工通信,通信双方都连接能提供全双工通信,通信双方都 不必专门发送确认报文段,而是采用传不
47、必专门发送确认报文段,而是采用传 送数据时捎带确认的方法,提高传输层送数据时捎带确认的方法,提高传输层 协议的效率。协议的效率。 计算机网络计算机网络 第第7章章 传输层传输层70 TCPTCP协议发送数据报的过程协议发送数据报的过程 计算机网络计算机网络 第第7章章 传输层传输层71 TCPTCP控制报文段发送的基本方法控制报文段发送的基本方法 发送缓存的数据达到控制最大报文段长度发送缓存的数据达到控制最大报文段长度 MSSMSS时,就组装成一个时,就组装成一个TCPTCP报文段发送出去;报文段发送出去; 支持推送操作,发送端的应用进程指明要求支持推送操作,发送端的应用进程指明要求 发送该报
48、文段时就立即发送;发送该报文段时就立即发送; 发送端维持一个计时器,时间到立即将缓存发送端维持一个计时器,时间到立即将缓存 中的数据组装成中的数据组装成TCPTCP报文段发送出去。报文段发送出去。 计算机网络计算机网络 第第7章章 传输层传输层72 TCPTCP窗窗 口概念口概念 计算机网络计算机网络 第第7章章 传输层传输层73 窗口与窗口与TCPTCP 的流量控制的流量控制 计算机网络计算机网络 第第7章章 传输层传输层74 慢开始和拥塞避免慢开始和拥塞避免 发送端的主机在确定发送报文段的速率时,既要发送端的主机在确定发送报文段的速率时,既要 根据接收端的接收能力,又要从全局考虑不要使根据
49、接收端的接收能力,又要从全局考虑不要使 网络发生拥塞。网络发生拥塞。 因此,每一个因此,每一个 TCP TCP 连接需要有以下两个状态变量连接需要有以下两个状态变量 : : 接收端窗口接收端窗口rwnd (receiver window) rwnd (receiver window) 又称为又称为通通 知窗口知窗口(advertised window)(advertised window)。 拥塞窗口拥塞窗口cwnd (congestion window)cwnd (congestion window)。 计算机网络计算机网络 第第7章章 传输层传输层75 接收端窗口接收端窗口 rwnd rw
50、nd 和拥塞窗口和拥塞窗口 cwnd cwnd 接收端窗口接收端窗口rwndrwnd:这是接收端根据其目前这是接收端根据其目前 的接收缓存大小所许诺的最新的窗口值,的接收缓存大小所许诺的最新的窗口值, 是来自接收端的流量控制。接收端将此窗是来自接收端的流量控制。接收端将此窗 口值放在口值放在 TCP TCP 报文的首部中的窗口字段,报文的首部中的窗口字段, 传送给发送端。传送给发送端。 拥塞窗口拥塞窗口cwnd(congestion window)cwnd(congestion window):是发是发 送端根据自己估计的网络拥塞程度而设置送端根据自己估计的网络拥塞程度而设置 的窗口值,是来自
51、发送端的流量控制。的窗口值,是来自发送端的流量控制。 计算机网络计算机网络 第第7章章 传输层传输层76 发送窗口的上限值发送窗口的上限值 发送端的发送窗口的上限值应当取为接收发送端的发送窗口的上限值应当取为接收 端窗口端窗口 rwnd rwnd 和拥塞窗口和拥塞窗口 cwnd cwnd 这两个变量这两个变量 中较小的一个,即应按以下公式确定:中较小的一个,即应按以下公式确定: 发送窗口的上限值发送窗口的上限值 Min rwnd, cwndMin rwnd, cwnd 当当 rwnd cwnd rwnd cwnd 时,是接收端的接收能力限时,是接收端的接收能力限 制发送窗口的最大值。制发送窗口
52、的最大值。 当当 cwnd rwnd cwnd rwnd 时,则是网络的拥塞限制发时,则是网络的拥塞限制发 送窗口的最大值。送窗口的最大值。 计算机网络计算机网络 第第7章章 传输层传输层77 慢开始算法的原理慢开始算法的原理 在主机刚刚开始发送报文段时可先将拥塞窗在主机刚刚开始发送报文段时可先将拥塞窗 口口cwndcwnd设置为一个最大报文段设置为一个最大报文段MSSMSS的数值。的数值。 在每收到一个对新的报文段的确认后,将拥在每收到一个对新的报文段的确认后,将拥 塞窗口增加至多一个塞窗口增加至多一个MSSMSS的数值。的数值。 用这样的方法逐步增大发送端的拥塞窗口用这样的方法逐步增大发送
53、端的拥塞窗口 cwndcwnd,可以使分组注入到网络的速率更加合,可以使分组注入到网络的速率更加合 理。理。 计算机网络计算机网络 第第7章章 传输层传输层78 慢开始和拥塞避免算法的实现举例慢开始和拥塞避免算法的实现举例 计算机网络计算机网络 第第7章章 传输层传输层79 当当TCPTCP连接进行初始化时,将拥塞窗口置为连接进行初始化时,将拥塞窗口置为 1 1。图中的窗口。图中的窗口 单位不使用字节而使用单位不使用字节而使用报文段。报文段。 慢开始门限的初始值设置为慢开始门限的初始值设置为1616个报文段,即个报文段,即 ssthresh=16ssthresh=16。 24681012141
54、61820220 0 4 8 12 16 20 24 传输次数传输次数 进入拥塞避免进入拥塞避免 发生超时发生超时 指数规律增长指数规律增长 线性规律增长线性规律增长 ssthresh = 16 慢开始慢开始慢开始慢开始拥塞避免拥塞避免拥塞避免拥塞避免 更新后的更新后的 ssthresh = 12 进入拥塞避免进入拥塞避免 拥塞窗口拥塞窗口 cwnd 计算机网络计算机网络 第第7章章 传输层传输层80 慢开始和拥塞避免算法的实现举例慢开始和拥塞避免算法的实现举例 2468101214161820220 0 4 8 12 16 20 24 传输次数传输次数 进入拥塞避免进入拥塞避免 发生超时发生
55、超时 指数规律增长指数规律增长 线性规律增长线性规律增长 ssthresh = 16 慢开始慢开始慢开始慢开始拥塞避免拥塞避免拥塞避免拥塞避免 更新后的更新后的 ssthresh = 12 进入拥塞避免进入拥塞避免 发送端的发送窗口不能超过拥塞窗口发送端的发送窗口不能超过拥塞窗口cwndcwnd和接收端窗口和接收端窗口rwndrwnd 中的最小值。我们假定接收端窗口足够大,因此现在发送窗中的最小值。我们假定接收端窗口足够大,因此现在发送窗 口的数值等于拥塞窗口的数值。口的数值等于拥塞窗口的数值。 拥塞窗口拥塞窗口 cwnd 计算机网络计算机网络 第第7章章 传输层传输层81 慢开始和拥塞避免算
56、法的实现举例慢开始和拥塞避免算法的实现举例 2468101214161820220 0 4 8 12 16 20 24 传输次数传输次数 进入拥塞避免进入拥塞避免 发生超时发生超时 指数规律增长指数规律增长 线性规律增长线性规律增长 ssthresh = 16 慢开始慢开始慢开始慢开始拥塞避免拥塞避免拥塞避免拥塞避免 更新后的更新后的 ssthresh = 12 进入拥塞避免进入拥塞避免 在执行慢开始算法时,拥塞窗口在执行慢开始算法时,拥塞窗口cwndcwnd的初始值为的初始值为1 1, 发送第一个报文段发送第一个报文段M M0 0。 拥塞窗口拥塞窗口 cwnd 计算机网络计算机网络 第第7章
57、章 传输层传输层82 慢开始和拥塞避免算法的实现举例慢开始和拥塞避免算法的实现举例 2468101214161820220 0 4 8 12 16 20 24 传输次数传输次数 进入拥塞避免进入拥塞避免 发生超时发生超时 指数规律增长指数规律增长 线性规律增长线性规律增长 ssthresh = 16 慢开始慢开始慢开始慢开始拥塞避免拥塞避免拥塞避免拥塞避免 更新后的更新后的 ssthresh = 12 进入拥塞避免进入拥塞避免 拥塞窗口拥塞窗口 cwnd 发送端收到发送端收到ACKACK1 1(确认(确认M M0 0,期望收到,期望收到M M1 1)后,将)后,将cwndcwnd 从从1 1增
58、大到增大到2 2,于是发送端可以接着发送,于是发送端可以接着发送M M1 1和和M M2 2两个报两个报 文段。文段。 计算机网络计算机网络 第第7章章 传输层传输层83 慢开始和拥塞避免算法的实现举例慢开始和拥塞避免算法的实现举例 2468101214161820220 0 4 8 12 16 20 24 传输次数传输次数 进入拥塞避免进入拥塞避免 发生超时发生超时 指数规律增长指数规律增长 线性规律增长线性规律增长 ssthresh = 16 慢开始慢开始慢开始慢开始拥塞避免拥塞避免拥塞避免拥塞避免 更新后的更新后的 ssthresh = 12 进入拥塞避免进入拥塞避免 拥塞窗口拥塞窗口
59、cwnd 接收端发回接收端发回ACKACK2 2 和 和ACKACK3 3。发送端每收到一个对新报文段的确。发送端每收到一个对新报文段的确 认认ACKACK,就把发送端的拥塞窗口加,就把发送端的拥塞窗口加1 1。现在发送端的。现在发送端的cwndcwnd从从2 2 增大到增大到4 4,并可发送,并可发送 M M3 3 M M6 6共共4 4个报文段。个报文段。 计算机网络计算机网络 第第7章章 传输层传输层84 慢开始和拥塞避免算法的实现举例慢开始和拥塞避免算法的实现举例 2468101214161820220 0 4 8 12 16 20 24 传输次数传输次数 进入拥塞避免进入拥塞避免 发
60、生超时发生超时 指数规律增长指数规律增长 线性规律增长线性规律增长 ssthresh = 16 慢开始慢开始慢开始慢开始拥塞避免拥塞避免拥塞避免拥塞避免 更新后的更新后的 ssthresh = 12 进入拥塞避免进入拥塞避免 拥塞窗口拥塞窗口 cwnd 发送端每收到一个对新报文段的确认发送端每收到一个对新报文段的确认ACKACK,就把发送,就把发送 端的拥塞窗口加端的拥塞窗口加1 1,因此拥塞窗口,因此拥塞窗口cwndcwnd随着传输次数随着传输次数 按指数规律增长。按指数规律增长。 计算机网络计算机网络 第第7章章 传输层传输层85 慢开始和拥塞避免算法的实现举例慢开始和拥塞避免算法的实现举
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妊娠期宫颈癌筛查策略与临床意义
- 妊娠合并基因组病的精准医疗管理策略
- 妇科手术部位感染的危险因素与防控策略
- 奥马珠单抗在荨麻疹减停治疗中的策略优化
- 大数据驱动的职业病防治成本效益趋势分析
- 大数据价值挖掘与隐私保护协同
- 化简考试试卷及答案
- 2026年自动化技术(PLC编程进阶)试题及答案
- 2025年大学第一学年(航空航天工程)航空概论试题及答案
- 2026年海洋牧场监测项目公司成立分析报告
- 2025吉林检验专升本试题及答案
- 军人婚恋观教育
- 硫化氢(CAS号:7783-06-4)理化性质与危险特性一览表
- QHBTL01-2022 热力入口装置
- 广告标识牌采购投标方案
- 中国特色社会主义知识点总结中职高考政治一轮复习
- 计算机应用专业发展规划
- 结算审核实施方案
- 企业管理的基础工作包括哪些内容
- 2025-2030中国奶瓶消毒烘干器行业市场发展分析及竞争格局与投资前景研究报告
- 学校“1530”安全教育记录表(2024年秋季全学期)
评论
0/150
提交评论