收藏 分销(赏)

第4章传输层.ppt

上传人:xrp****65 文档编号:13187426 上传时间:2026-02-01 格式:PPT 页数:69 大小:539.50KB 下载积分:10 金币
下载 相关 举报
第4章传输层.ppt_第1页
第1页 / 共69页
第4章传输层.ppt_第2页
第2页 / 共69页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,计算机网络实用教程,第,4,章 传输层,目 录,4.1,概述,4.1.1,传输层和网络层的关系,4.1.2,因特网传输层概述,4.1.3,多路复用与多路分解,4.2,用户数据报协议,UDP,4.2.1 UDP,协议概述,4.2.2 UDP,报文段的结构,4.2.3 UDP,校验和,目 录,4.3,可靠数据传输的原理,4.3.1,构造可靠数据传输协议,4.3.2,流水线可靠数据传输协议,4.3.3 Go-Back-N,4.3.4,选择重传,4.4,面向连接的,TCP,协议,4.4.1 TCP,连接,4.4.2 TCP,报文段结构,目 录,4.4.3,可靠数据传输,4.4.4 TCP,的流量控制,4.4.5 TCP,连接管理,4.5,拥塞控制,4.5.1,拥塞控制的基本概念,4.5.2,拥塞控制的基本方法,4.5.3 TCP,的拥塞控制,本章重点内容,本章首先讨论传输层和网络层之间的关系,接着讨论,UDP,协议,然后针对计算机网络中最基本的问题之一,即两个实体怎样才能在一种会丢失或损坏数据的媒体上可靠的通信,逐步介绍用来解决这些问题的技术,最后讨论面向连接,TCP,协议及拥塞控制。,如下图传输层在网络体系结构中所处的地位。,4.1,概述,传输层协议为运行在不同主机上的应用进程之间提供了逻辑通信,应用进程之间使用传输层提供的逻辑通信功能发送报文,而无需考虑承载这些报文的物理基础设施。,传输层协议为其调用的网络应用程序提供不同的传输层服务。因特网有两种协议,即,TCP,和,UDP,。他们分别提供面向连结和无连接的服务。,4.1.1,传输层和网络层的关系,在,TCP/IP,协议栈中,传输层位于网络层之上,传输层为运行在不同主机上的进程之间提供了“逻辑通信”。逻辑通信的意思是:传输层之间的通信好像是沿水平方向传送数据。但事实上这两个传输层之间并没有一条水平方向的物理连接。网络层则提供了主机之间的逻辑通信。传输层协议只工作在端系统。,如下图,4.2,所示端到端的协议,传输层看到的通信系统,路由器,高层,传输层,网络层,网络接口,网络层,传输层,网络接口,高层,网络接口,网络层,网络,1,网络,2,4.1.2,因特网传输层概述,TCP/IP,网络,为应用层安排了两种截然不同的传输层协议。一种是,UDP,协议(用户数据报协议,User Datagram Protocol,),为调用它的应用程序提供了一种不可靠、无连接的服务。另一种是,TCP,(传输控制协议,Transmission Control Protocol,),为调用它的应用程序提供了一种可靠的、面向连接的服务。,设计一个网络应用程序时,该程序的开发人员必须指定使用这两种传输层协议的哪一种,是选择,UDP,还是选择,TCP.,4.1.2,因特网传输层概述,UDP,和,TCP,最基本的任务是,将两个端系统间,IP,的交付服务扩展为运行在两个端系统上的进程之间的交付服务。,将主机间交付扩展到进程间交付被称之为传输层的多路复用,(transport-,layermultiplexing,),与多路分解,(,demultiplexing,),。我们将在下一节讨论传输层的多路复用与多路分解。,4.1.2,因特网传输层概述,UDP,和,TCP,还可以通过在其报文段的首部中添加差错检测字段从而提供完整性检查。进程间数据交付和差错检查是两种最低限度的运输层服务,也是,UDP,所能提供的仅有的两种服务。特别是,,UDP,和,IP,一样,它也是一种不可靠服务,即不能保证一个进程所发送的数据能够完整无损地到达目的进程,。,4.1.3,多路复用与多路分解,4.1.3,多路复用与多路分解,上图,4.3,所示传输层的多路复用,(multiplexing),与多路分解,(,demultiplexing,),,也就是将网络层所提供的主机到主机交付服务扩展到在主机上运行的应用程序到应用程序的交付服务,多路复用与多路分解服务是所有计算机网络都需要的。,4.1.3,多路复用与多路分解,接收主机将一个收到的传输层报文段定向到适当的套接字,在每个传输层报文段中设置了几个字段,在接收端,传输层检查这些字段并标识出接收套接字,然后将报文段定向到该套接字。将传输层报文段中的数据交付到正确的套接字的工作称为多路分解。,从在原主机的不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层的工作称为多路复用。,传输层是怎样实现多路分解服务的呢?,主机上的每个套接字被分配一个端口号,端口是个非常重要的概念,因为应用层的各种进程是通过相应的端口与运输实体进行交互。端口用一个,16bit,端口号进行标志。,端口,端口号分为两类,一类是由因特网指派名字和号码公司,ICANN,负责分配给一些常用的应用层程序固定使用的熟知端口(,well-known port,),其数值一般为,01023,,例如,:,表,4.1,常用的应用层程序固定使用的熟知端口,表,4.1,常用的应用层程序固定使用的熟知端口,4.1.3,多路复用与多路分解,TCP,中的多路复用与多路分解可以分为两种:,无连接的多路复用与多路分解;,无连接的服务就是在传送数据之前不需要建立连接,数据传送结束后,不需要给出任何确认。,面向连接的多路复用与多路分解。,面向连接的服务要求在传送数据之前先建立连接,数据结束后要释放连接。,TCP,提供的是面向连接的服务。,4.2,用户数据报协议,UDP,4.2.1 UDP,协议概述表,如下表,4.2,给出了一些应用和应用层协议主要使用的传输层协议。,4.2.2 UDP,报文段的结构,UDP,信息包由,UDP,标题和数据组成。,UDP,的标题结构如图所示,它由,5,个域组成:源端端口,(,SourcePort,),目的地端口,(,DestinationPort,),、用户数据包的长度,(Length),和校验和(,Checksum),。,4.2,用户数据报协议,UDP,4.2.2 UDP,报文段的结构,32,位,0 15 16 32,源端口号,用户数据包的长度,检查和,目的端口号,数据(,Date,),4.2.3 UDP,校验和,UDP,校验和提供差错检测。即效验和用于确定当,UDP,报文段从源到达目的时,其中的比特是否发生了改变,(,例如,由于链路中或者当在路由器中存储数据时的噪声干扰,),。发送方的,UDP,对报文段中的所有,16,比特字的和进行,1,的补运算,求和时遇到的任何溢出都被丢弃。得到的结果放在,UDP,报文段中的效验和字段。,4.3,可靠数据传输的原理,如何得到一个完整的可靠数据传输协议呢?我们来讨论下面两个协议,1,、完全可靠信道上的可靠数据传输:,2,、具有比特差错信道上的可靠数据传输:,4.3.1,构造可靠数据传输协议,控制报文使得接收方可以让发送方知道哪些内容被正确接收,哪些内容接收有误从而需要重传。在计算机网络环境中,基于这样的重传机制的可靠数据传输协议叫自动重传请求协议(,ARQ,),4.3.1,构造可靠数据传输协议,基本上,,ARQ,协议中还需要另外三种功能来处理存在的比特差错:,1.,差错检测;,2.,接收方反馈;,3.,重传,4.3.2,流水线可靠数据传输协议,不使用停等方式运行,允许发送方发送多个分组而无需等待确认;由于从发送方向接收方传输的众多分组可以被看成是填充到一条流水线中,故这种技术被称为流水线,(pipelining),。,4.3.3 Go-Back-N,(GBN),Go-Back-N,协议中,允许发送方传输多个分组,(,当有多个分组时,),而不需等待确认,但它也受限于在流水线中未确认的分组数不能超过最大允许数,N,。那些已被传输但还未被确认的分组的许可序号范围可以被看成是一个在序号范围内大小为,N,的,“,窗口,”,。随着协议的运行,该窗口在序号空间内向前滑动。因此,,N,常被称为窗口长度,(window size),,,GBN,协议常被称为滑动窗口协议,(sliding,window protocol),。,4.3.4,选择重传,在,GBN,协议中本身也存在性能问题。尤其是当窗口长度和带宽时延累积都很大时,在流水线中会有很多分组。一个分组的差错就可能引起,GBN,重传大量分组,其中许多分组也许根本没有必要重传。随着信道差错率的增加,流水线可能会被这些没必要重传的分组填满。选择重传,(SR),协议通过让发送方仅重传那些它怀疑在接收方出错,(,即丢失或受损,),的分组从而避免了不必要的重传。,4.3.4,选择重传,这种个别地、按需的重传要求接收方逐个地确认正确接收的分组,再次用窗口长度,N,来限制流水线中未被确认的分组数。然而,与,GBN,不同的是,发送方已经收到了对窗口中某些分组的,ACK,,发送方所采取的各种动作如下:,1.,从上层收到数据;,2.,超时;,3.,收到,ACK,.,表,4.4,列出多种用于提供可靠数据传输的机制,4.4,面向连接的,TCP,协议,4.4.1 TCP,连接,4.4.2 TCP,报文段结构,TCP,数据被封装在一个,IP,数据报中,如图,4.5,所示:,4.4.2 TCP,报文段结构,IP,数据包,TCP,段,IP,段,IP,有效负载,TCP,报头,段,图,4-6,给出了,TCP,报文段的结构,4.4.4 TCP,的流量控制,为了提高报文段的传输效率,,TCP,采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。在,TCP,报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。发送窗口在连接建立是由双发商定。但在通信的过程中,接受方可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。,4.4.4 TCP,的流量控制,为了提高报文段的传输效率,,TCP,采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。,图,4.7,表示的是在,TCP,中使用的窗口概念。,4.4.4 TCP,的流量控制,4.4.5 TCP,连接管理,TCP,连接的三个阶段,,TCP,是面向连接的协议。,TCP,连接是用来传送,TCP,报文的。,TCP,连接的建立和释放是每一次面向连接的通信中必不可少的过程。因此,,TCP,连接就有三个阶段,即连接建立、数据传送和连接释放。,TCP,连接的管理就是使,TCP,连接的建立和释放都能正常地进行。,4.4.5 TCP,连接管理,在连接建立过程中要解决以下,3,个问题。,(1),要使每一方能够确知对方的存在。,(2),要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。,(3),能够对传输实体资源(如缓存大小,连接表中的项目等)进行分配。,TCP,的连接建立采用客户服务器方式。主动发起连接建立的应用程序叫做客户(,client),,而被动等待连接建立的应用进程叫做服务器(,server,)。,4.4.5 TCP,连接管理,4.4.5 TCP,连接管理,设主机,B,中运行,TCP,的服务器进程,如图,4.9,所示,先发出一个被动打开(,passive open,)命令,准备接受客户进程的连接请求。然后服务器进程就处于“听”(,listen,)的状态,不断检测是否有客户进程要发起连接请求。如有,立即做出响应,4.5,拥塞控制,4.5.1,拥塞控制的基本概念,当通信子网中有太多的分组时,网络性能降低,这种情况就叫拥塞。其本质为网络对资源的需求大于可用资源,导致拥塞出现表示荷载超过了资源的承受能力。,4.5.2,拥塞控制的基本方法,很多像计算机网络这样的复杂系统中的问题,都能从控制论的角度进行解释,这种方法导致将拥塞控制方法分为两类 一类是开环控制,一类是闭环控制。,4.5.3 TCP,的拥塞控制,Internet,上的大多数传输超时都是由于拥塞而引起的。,1999,年公布的因特网建议标准,RFC2581,定义了以下,4,种算法,即慢开始、拥塞避免、快重传和快恢复。,1,慢开始和拥塞避免,发送方维持一个叫做,拥塞窗口,cwnd,(congestion window),的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并动态地在变化。发送方让自己的发送窗口等于拥塞窗口。(还可能小于拥塞窗口)。,发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。,慢开始,(slow start),算法的原理,在主机刚刚开始发送报文段时先设置拥塞窗口,cwnd,=1,,即设置为一个最大报文段,MSS,的数值。,每收到一个对新的报文段的确认后,拥塞窗口加,1,,即增加一个,MSS,的数值。,逐步增大发送端的拥塞窗口,cwnd,,使分组注入到网络的速率更加合理。,慢开始算法,(slow start),,实际上一点也不慢。它是指数量级的,所有的,TCP,实现都要求支持该算法。这种方法的特点是,由小到大逐渐增大发送端的拥塞窗口数值。,发送方,接收方,M,1,确认,M,1,M,2,M,3,确认,M,2,M,3,M,4,M,7,确认,M,4,M,7,cwnd,=1,cwnd,=2,cwnd,=4,M,8,M,15,cwnd,=8,t,t,发送方每收到一个对新报文段的确认,就使,cwnd,加,1,。,1,2,3,现在我们来看看拥塞避免算法。为了防止拥塞窗口,cwnd,的增长引起网络拥塞,除了接收方窗口和拥塞窗口以外,还需要个参数:一个阈值,(threshold),设置慢开始门限状态变量,threshold,慢开始门限,threshold,的用法如下:,当,cwnd,threshold,时,停止使用慢开始算法而改用拥塞避免算法。,当,cwnd,=threshold,时,既可使用慢开始算法,也可使用拥塞避免算法。,拥塞避免算法的思路是让拥塞窗口,cwnd,缓慢地增大,即每经过一个往返时间,RTT,就把发送方的拥塞窗口,cwnd,加,1,,而不是加倍,使拥塞窗口,cwnd,按线性规律缓慢增长。,当网络出现拥塞时,无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限,threshold,设置为出现拥塞时的发送方窗口值的一半(但不能小于,2,)。,然后把拥塞窗口,cwnd,重新设置为,1,,执行慢开始算法。,这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。,22,16,算法的实现举例,当,TCP,连接进行初始化时,将拥塞窗口置为,1,。图中的窗口单位不使用字节而使用,报文段,。,慢开始门限的初始值设置为,16,个报文段,,即,threshold=16,。,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口,cwnd,新的,threshold,值,网络拥塞,指数规律增长,threshold,的初始值,慢开始,慢开始,慢开始,拥塞避免,“加法增大”,拥塞避免,“加法增大”,传输次数,实现举例,发送端的发送窗口不能超过拥塞窗口,cwnd,和接收端窗口,rwnd,中的最小值。我们假定接收端窗口足够大,因此现在发送窗口的数值等于拥塞窗口的数值。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口,cwnd,新的,threshold,值,网络拥塞,指数规律增长,threshold,的初始值,慢开始,慢开始,慢开始,拥塞避免,“加法增大”,拥塞避免,“加法增大”,传输次数,实现举例,在执行慢开始算法时,拥塞窗口,cwnd,的初始值为,1,,发送第一个报文段,M,0,。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口,cwnd,新的,threshold,值,网络拥塞,指数规律增长,threshold,的初始值,慢开始,慢开始,拥塞避免,“加法增大”,拥塞避免,“加法增大”,传输数次,实现举例,发送端每收到一个确认,就把,cwnd,加,1,。于是发送端可以接着发送,M,1,和,M,2,两个报文段。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口,cwnd,新的,threshold,值,网络拥塞,指数规律增长,threshold,的初始值,慢开始,慢开始,慢开始,拥塞避免,“加法增大”,拥塞避免,“加法增大”,传输次数,实现举例,接收端共发回两个确认。发送端每收到一个对新报文段的确认,就把发送端的,cwnd,加,1,。现在,cwnd,从,2,增大到,4,,并可接着发送后面的,4,个报文段。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口,cwnd,新的,threshold,值,网络拥塞,指数规律增长,threshold,的初始值,慢开始,慢开始,慢开始,拥塞避免,“加法增大”,拥塞避免,“加法增大”,传输次数,实现举例,发送端每收到一个对新报文段的确认,就把发送端的拥塞窗口加,1,,因此拥塞窗口,cwnd,随着传输轮次按指数规律增长。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口,cwnd,新的,threshold,值,网络拥塞,指数规律增长,threshold,的初始值,慢开始,慢开始,慢开始,拥塞避免,“加法增大”,拥塞避免,“加法增大”,传输次数,实现举例,当拥塞窗口,cwnd,增长到慢开始门限值,threshold,时(即当,cwnd,=16,时),就改为执行拥塞避免算法,拥塞窗口按线性规律增长。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口,cwnd,新的,threshold,值,网络拥塞,指数规律增长,threshold,的初始值,慢开始,慢开始,慢开始,拥塞避免,“加法增大”,拥塞避免,“加法增大”,传输次数,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口,cwnd,新的,threshold,值,网络拥塞,指数规律增长,threshold,的初始值,慢开始,慢开始,慢开始,拥塞避免,“加法增大”,拥塞避免,“加法增大”,实现举例,假定拥塞窗口的数值增长到,24,时,网络出现超时,表明网络拥塞了。,传输次数,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口,cwnd,新的,threshold,值,网络拥塞,指数规律增长,threshold,的初始值,慢开始,慢开始,慢开始,拥塞避免,“加法增大”,拥塞避免,“加法增大”,实现举例,更新后的,threshold,值变为,12,(即发送窗口数值,24,的一半),拥塞窗口再重新设置为,1,,并执行慢开始算法。,传输次数,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口,cwnd,新的,threshold,值,网络拥塞,指数规律增长,threshold,的初始值,慢开始,慢开始,慢开始,拥塞避免,“加法增大”,拥塞避免,“加法增大”,实现举例,当,cwnd,=12,时改为执行拥塞避免算法,拥塞窗口按按线性规律增长,每经过一个往返时延就增加一个,MSS,的大小。,传输次数,乘法减小,(multiplicative decrease),“乘法减小“是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值,threshold,设置为当前的拥塞窗口值乘以,0.5,。,当网络频繁出现拥塞时,,threshold,值就下降得很快,以大大减少注入到网络中的分组数。,加法增大,(additive increase),“加法增大”是指执行拥塞避免算法后,在收到对所有报文段的确认后(即经过一个往返时间),就把拥塞窗口,cwnd,增加一个,MSS,大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。,2.,快重传和快恢复,快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认。这样做可以让发送方及早知道有报文段没有到达接收方。,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段。,快恢复算法,(1),当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门限,threshold,减半。但接下去不执行慢开始算法。,(2),由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,即拥塞窗口,cwnd,现在不设置为,1,,而是设置为慢开始门限,threshold,减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。,需要强调指出,“拥塞避免”并非指完全能够避免了拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。,“拥塞避免”是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。,需要强调指出,在采用快恢复算法时,慢开始算法只是在,TCP,连接建立时才使用。,采用这样的拥塞控制方法使得,TCP,的性能有明显的改进。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服