




已阅读5页,还剩162页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
传输层学习目标,了解:进程相互作用的Client/Server模型掌握:网络环境进程通信端口概念掌握:传输层的基本功能与服务掌握:用户数据报协议UDP掌握:传输控制协议TCP,传输层教学内容,传输层概述用户数据报协议UDP传输控制协议TCP,传输层的目标是向应用层应用程序进程之间的通信提供有效、可靠、保证质量的服务;传输层在网络分层结构中起着承上启下的作用,通过执行传输层协议,屏蔽通信子网在技术、设计上的差异和服务质量的不足,向高层提供一个标准的、完善的通信服务;从通信和信息处理的角度看,应用层是面向信息处理的,而传输层是为应用层提供通信服务的。可靠是指传输层要处理并隔离低层的错误,透明是指高层用户不涉及端对端间通信的任何细节。,传输层概述,传输层概述,当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。,传输层概述,传输协议数据单元传输层之间传输的报文叫做传输协议数据单元(TransportProtocolDataUnit,TPDU)TPDU有效载荷是应用层的数据。,传输层概述,传输层地址的作用,运输层为相互通信的应用进程提供了逻辑通信,54321,运输层提供应用进程间的逻辑通信,主机A,主机B,应用进程,应用进程,路由器1,路由器2,AP1,LAN2,WAN,AP2,AP3,AP4,IP层,LAN1,AP1,AP2,AP4,端口,端口,54321,IP协议的作用范围,运输层协议TCP和UDP的作用范围,AP3,运输层协议和网络层协议的主要区别,应用进程,应用进程,IP协议的作用范围(提供主机之间的逻辑通信),TCP和UDP协议的作用范围(提供进程之间的逻辑通信),因特网,传输层概述,1、传输层功能建立、维护、拆除端到端的连接端到端连接有的很简单,有的非常复杂传输层实体的结合叫TC传输连接和网络层连接的区别柔性平台传输层适应低层变化,低层复杂,传输层弱,低层简单,传输层强流量控制显式:网络层流控解决不了,传输层流控解决隐式:低层服务质量好,依靠网络层,传输层概述,连接处理低层优,多个TC复用一个LC,复用/解复用低层次,一个TC分解到多个LC上,分流/合流数据处理低层强,数据拼接/分割低层弱,数据分段/合段支持正常、快速数据流故障检测与恢复,传输层概述,差错控制差错控制层次:DL:CRC、反馈、超时重发、编号N:没有T:一定要,没有发现的差错,涌在端口机上需在T层一网打尽。两类数据错残留错:低层发生,没有查出的错误。TL数据包丢失TR数据重复TE差错分组可通知错:N层检出,但克服不了,通知T层,如流控失效,N通知T层。,传输层概述,2、传输层服务和协议无连接服务用户数据报协议UDP服务特点UDP用户数据报与IP数据报的差别面向连接的服务传输控制协议TCP服务特点TCP连接与网络层连接服务(X.25)的差别面向的含义,TCP协议与其他协议的层次关系,传输层概述,15,运输服务和协议,在运行不同主机上应用进程之间提供逻辑通信运输协议运行在端系统中发送方:将应用报文划分为段,传向网络层接收方:将段重新装配为报文,传向应用层应用可使用的运输协议不止一个因特网:TCP和UDP,传输层概述,服务质量服务质量在通信之前由通信双方通过磋商确定具体量化的质量参数。主要有:连接建立延迟/连接释放延迟连接建立/释放失败概率传输时延吞吐率残留误码率传输失败概率,连接建立延迟从传输服务用户要求建立连接到收到连接确认之间所经历的时间;它包括了远端传输实体的处理延迟;连接建立延迟越短,服务质量越好。连接建立失败的概率在最大连接建立延迟时间内,连接未能建立的可能性;由于网络拥塞,缺少缓冲区或其他原因造成的失败。,传输层概述,吞吐率吞吐率是在某个时间间隔内测得的每秒钟传输的用户数据的字节数;每个传输方向分别用各自的吞吐率来衡量。传输延迟传输延迟是指从源主机传输用户发送报文开始到目的主机传输用户接收到报文为止的时间;每个方向的传输延迟是不同的。,传输层概述,残余误码率残余误码率用于测量丢失或乱序的报文数占整个发送的报文数的百分比;理论上残余误码率应为零,实际上它可能是一较小的值。安全保护安全保护为传输用户提供了传输层的保护,以防止未经授权的第三方读取或修改数据。,传输层概述,优先级为传输用户提供用以表明哪些连接更为重要的方法;当发生拥塞事件时,确保高优先级的连接先获得服务。恢复功能当出现内部问题或拥塞情况下,传输层本身自发终止连接的可能性。,传输层概述,关于传输层服务质量参数的使用:,服务质量参数是传输用户在请求建立连接时设定的,表明希望值和最小可接受的值;传输层通过检查服务质量参数可以立即发现其中某些值是无法达到的,传输层可以不去与目的主机连接,而直接通知传输用户连接请求失败与失败的原因;有些情况下,传输层发现不能达到用户希望的质量参数,但可以达到稍微低一些的要求,然后再请求建立连接;并非所有的传输连接都需要提供所有的参数,大多数仅仅是要求残余误码,而其他参数则是为了完善服务质量而设置的。,传输层概述,3、网络环境中分布式进程通信的基本概念主机通信实际上是两个主机中的应用进程互相通信。用户共享网络资源及网络所提供的服务功能通过网络环境中的分布式进程通信实现,传输层概述,单机系统中的进程通信方法进程和进程通信是操作系统中的一个最基本的概念;程序是静态的,表示程序设计者要求计算机完成功能应采取的操作顺序。进程是动态的,是程序的执行过程或者说是运行着的程序。具有并发性,是分配计算机资源的基本单位。统一由一个调度程序控制和管理。进程执行过程中有就绪、运行、阻塞等状态。这些状态随着进程的执行与外部条件的变化而发生转换。进程状态反映出进程执行过程的变化。在一台计算机中,不同的进程用进程号或进程标识(processID)惟一地标识出来。,传输层概述,由于进程并发执行和共享资源的要求,进程运行中相互存在互斥和同步的关系从进程的观点看,操作系统的核心则是控制和协调这些进程的运行,解决进程之间的通信。目前的进程通信机制包括消息、缓冲区、管道和信号量等机制。,传输层概述,网络环境进程通信特点网络中主机的高度自治性;不是在同一个主机系统之中,没有一个统一的高层进行控制与管理;一台主机对其他主机的以下信息一概无从知道活动状态位于其他主机系统中的各个进程状态这些进程什么时间参与网络活动希望与网络中哪一台主机的什么进程通信,传输层概述,网络环境中的分布式进程通信必须解决三个主要问题:进程命名与寻址方法多重协议的识别进程间相互作用的模式,传输层概述,网络环境中进程标识在一台计算机中,不同的进程用进程号或进程标识(processID)惟一地标识出来。网络环境中进程地址也叫做端口号(portnumber)。是TCP及UDP协议与应用程序连接的访问点,端口号在主机中是惟一的,可作为网络环境中进程标识。网络环境中完整的进程标识应该是:本地主机地址-本地进程标识远程主机地址-远程进程标识,传输层概述,多重协议的识别TCP/IP的传输层就有TCP协议和UDP协议;网络环境中一个进程的全网惟一的标识需要一个三元组来表示:协议,本地地址,本地端口号。网络环境中一个完整的进程通信标识需要一个五元组来表示:协议本地地址本地端口号远地地址远地端口号,传输层概述,进程间相互作用模式:Client/Server模型网络环境中进程通信要解决的进程间相互作用的模式在TCP/IP协议体系中,进程间的相互作用采用客户/服务器(Client/Server)模型客户与服务器分别表示相互通信的两个应用程序的进程客户向服务器发出服务请求,服务器响应客户的请求,提供客户机所需要的网络服务。,传输层概述,客户一次进程通信中发起的一方;服务器接受进程通信的请求,提供服务的一方;每一次通信由客户进程随机启动;服务器进程处于等待状态,及时响应客户服务请求。,传输层概述,为什么要采用客户机/服务器模型?网络资源分布的不均匀性表现在硬件、软件和数据等三个方面网络资源分布的不均匀性是客观存在的,同时也是网络应用系统设计者的设计思想的体现“资源共享”就是因为网络不同结点之间在硬件配置、计算能力、存储能力,以及数据分布等方面存在着差距与不均匀性能力强、资源丰富的充当服务器,能力弱或需要某种资源的成为客户,传输层概述,网络环境中进程通信的异步性分布在不同主机系统中的进程什么时间发出通信请求,希望和哪一台主机的哪一个进程通信,以及对方进程是否能接受通信请求是不确定的。网络分布式进程之间不存在一个高层的调度与协调。必须要建立一个体制,为准备通信的进程之间建立起连接,在进程交换数据的过程中维护连接,为数据交换提供同步。,传输层概述,进程通信中Client/Server模型实现方法客户机/服务器模型的工作实质是“请求驱动”;在网络环境中,客户进程发出请求完全随机。在同一个时刻,可能有多个客户进程向一个服务器发出服务请求;为了实现服务器的功能,在服务器的设计中要解决服务器的:并发请求处理能力并发服务器的进程标识服务器安全,传输层概述,解决服务器处理并发请求的基本方案:设计一个并发服务器采用重复服务器的方法重复服务器(interativeserver)通过设置一个请求队列来存储客户机的服务请求;服务器采用先来先服务的原则来顺序处理客户机的服务请求。,传输层概述,并发服务器(concurrentserver),并发服务器的核心是使用一个守护程序(daemon);守护程序在系统启动的时候随之启动,在没有客户的服务请求到达时,并发服务器处于等待状态;一旦客户机的服务请求到达,服务器根据客户的服务请求的进程号,去激活相应的子进程,而服务器回到等待状态;并发服务器叫做主服务器(master),把子服务器叫做从服务器(slave);主服务器必须拥有一个全网公认的进程地址;网络中的客户进程可以根据服务器进程的公认地址,向服务器提出服务请求。,传输层概述,客户与并发服务器建立传输连接的过程,传输层概述,比较,并发服务器:并发服务器可以处理多个客户的服务请求;从服务器不依赖主服务器而独立处理客户服务请求;不同的从服务器可以分别处理不同的客户的服务请求;系统的实时性好。重复服务器:处理客户的服务请求的数量受到请求队列长度的限制,但可以有效地控制请求处理的时间并发服务器适应于面向连接的服务类型;重复服务器适应于无连接的服务类型。,传输层概述,传输层概述,4、TCP/IP的端口概念端口,16位地址,标识进行通信的进程,是运输层的服务访问点。插口,T层连接的端点:用IP地址+端口表示。插口的任意部分变化表示不同的连接。端口分类熟知端口:TCP/IP体系公布,标识一些常用的应用层服务如TELNET23、FTP21、SMTP25、HTTP80、DNS53等。(0-1023)注册端口:登记、固定服务使用动态端口:连接时随机产生,传输层教学内容,传输层概述用户数据报协议UDP传输控制协议TCP,1.UDP协议的主要特点,UDP是一种无连接的、不可靠的传输层协议;在完成进程到进程的通信中提供了有限的差错检验功能;设计比较简单的UDP协议的目的是希望以最小的开销来达到网络环境中的进程通信目的;进程发送的报文较短,同时对报文的可靠性要求不高,那么可以使用UDP协议。UDP没有拥塞控制,适于实时应用。,用户数据报协议UDP,2.UDP的基本工作过程,UDP用户数据报传输过程中的封装与拆封,用户数据报协议UDP,UDP报文传输队列,用户数据报协议UDP,UDP的复用和分用,用户数据报协议UDP,3.UDP端口号,TCP/IP协议族中用端口号来标识进程;端口号是在0到65535之间的整数;客户程序随机选取临时端口号;每一种服务器程序被分配了确定的全局一致的熟知端口号;每一个客户进程都知道相应的服务器进程的熟知端口号。,用户数据报协议UDP,UDP使用的熟知端口号,用户数据报协议UDP,4.UDP数据报格式,用户数据报协议UDP,UDP检验和的检验范围:伪头部UDP头应用层数据,用户数据报协议UDP,UDP检验和的讨论:为什么包括伪首部为什么采用检验和而不用CRC,用户数据报协议UDP,伪首部,源端口,目的端口,长度,检验和,数据,首部,UDP长度,源IP地址,目的IP地址,0,17,IP数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数据,首部,UDP用户数据报,在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和。,计算UDP检验和的例子,1001100100010011153.1900001000011010008.1041010101100000011171.3000011100000101114.1100000000000100010和170000000000001111150000010000111111108700000000000011011300000000000011111500000000000000000(检验和)0101010001000101数据0101001101010100数据0100100101001110数据0100011100000000数据和0(填充)1001011011101101求和得出的结果0110100100010010检验和,04,1,12字节伪首部,8字节UDP首部,7字节数据,按二进制反码运算求和将得出的结果求反码,全0171510871315全0数据数据数据数据数据数据数据全0,1.TCP协议的主要特点TCP是一种面向连接的、可靠的传输层协议;TCP协议建立在不可靠的网络层IP协议之上,IP不能提供任何可靠性机制,TCP的可靠性完全由自己实现;每个报文包含一个20字节的头(选项部分另加)和0个或多个数据字节。段的大小必须首先满足65535字节的IP包数据净荷长度限制,还要满足数据链路层最大传输单元(MTU)的限制,比如以太网的MTU为1500字节;,传输控制协议TCP,传输层连接和数据链路层连接的比较:不同点:环境分组存储连接数目复杂性相似点:窗口顺序传输流量控制差错控制,传输控制协议TCP,53,全双工数据:同一连接上的双向数据流MSS:最大报文段长度MTU:最大传输单元面向连接:在进行数据交换前,初始化发送方与接收方状态,进行握手(交换控制信息),流量控制:发送方不能淹没接收方拥塞控制:抑止发送方速率来防止过分占用网络资源,端到端:一个发送方,一个接收方连接状态与端系统有关,不为路由器所知可靠、有序的字节流:没有“报文边界”流水线:TCP拥塞和流量控制设置滑动窗口协议发送和接收缓冲区,传输控制协议TCP,TCP面向流的概念,发送TCP报文段,发送方,接收方,把字节写入发送缓存,从接收缓存读取字节,应用进程,应用进程,18,17,16,15,14,H,加上TCP首部构成TCP报文段,TCP,TCP,字节流,字节流,H,表示TCP报文段的首部,x,表示序号为x的数据字节,TCP连接,TCP常用的熟知端口号,传输控制协议TCP,TCP首部,20字节的固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,32位,SYN,RST,PSH,ACK,URG,位08162431,填充,TCP数据部分,TCP首部,TCP报文段,IP数据部分,IP首部,发送在前,2、TCP报文结构,传输控制协议TCP,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,源端口和目的端口字段各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,序号字段占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,确认号字段占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,数据偏移(即首部长度)占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位是32位字(以4字节为计算单位)。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,保留字段占6位,保留为今后使用,但目前应置为0。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,紧急URG当URG1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,确认ACK只有当ACK1时确认号字段才有效。当ACK0时,确认号无效。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,推送PSH(PuSH)接收TCP收到PSH=1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,复位RST(ReSeT)当RST1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,同步SYN同步SYN=1表示这是一个连接请求或连接接受报文。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,终止FIN(FINis)用来释放一个连接。FIN1表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,窗口字段占2字节,用来让对方设置发送窗口的依据,单位为字节。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,检验和占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,紧急指针字段占16位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,比特08162431,填充,选项字段长度可变。TCP最初只规定了一种选项,即最大报文段长度MSS。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”,MSS(MaximumSegmentSize)是TCP报文段中的数据字段的最大长度。数据字段加上TCP首部才等于整个的TCP报文段。,其他选项,窗口扩大选项占3字节,其中有一个字节表示移位值S。新的窗口值等于TCP首部中的窗口位数增大到(16+S),相当于把窗口值向左移动S位后获得实际的窗口大小。时间戳选项占10字节,其中最主要的字段时间戳值字段(4字节)和时间戳回送回答字段(4字节)。选择确认选项接收窗口内但失序报文的选择确认,发送方可以只发送出错的报文。,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,填充字段这是为了使整个首部长度是4字节的整数倍。,3.滑动窗口的理解,前移,不允许发送,已发送并收到确认,A的发送窗口=20,允许发送的序号,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,B期望收到的序号,前沿,后沿,前移,收缩,根据B给出的窗口值A构造出自己的发送窗口,TCP标准强烈不赞成发送窗口前沿向后收缩,传输控制协议TCP,不允许发送,已发送并收到确认,A的发送窗口位置不变,允许发送但尚未发送,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送但未收到确认,56,P1,P2,P3,不允许接收,已发送确认并交付主机,B的接收窗口,允许接收,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,未按序收到,可用窗口,A发送了11个字节的数据,P3P1=A的发送窗口(又称为通知窗口)P2P1=已发送但尚未收到确认的字节数P3P2=允许发送但尚未发送的字节数(又称为可用窗口),允许发送但尚未发送,A的发送窗口向前滑动,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送并收到确认,不允许发送,已发送但未收到确认,56,P1,P2,P3,允许接收,B的接收窗口向前滑动,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送确认并交付主机,不允许接收,56,未按序收到,A收到新的确认号,发送窗口向前滑动,先存下,等待缺少的数据的到达,不允许发送,已发送并收到确认,A的发送窗口已满,有效窗口为零,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送但未收到确认,56,P1,P2,P3,A的发送窗口内的序号都已用完,但还没有再收到确认,必须停止发送。,发送缓存,最后被确认的字节,发送应用程序,发送缓存,最后发送的字节,发送窗口,已发送,TCP,序号增大,接收缓存,接收应用程序,已收到,接收窗口,TCP,接收缓存,下一个读取的字节,序号增大,下一个期望收到的字节(确认号),发送缓存与接收缓存的作用,发送缓存用来暂时存放:发送应用程序传送给发送方TCP准备发送的数据;TCP已发送出但尚未收到确认的数据。接收缓存用来暂时存放:按序到达的、但尚未被接收应用程序读取的数据;不按序到达的数据。,需要强调三点,A的发送窗口并不总是和B的接收窗口一样大(因为有一定的时间滞后)。TCP标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。TCP要求接收方必须有累积确认的功能,这样可以减小传输开销。,82,4、TCP的控制机制(1)编号与确认单位对字节编号,将TCP报文解释为字节流,报文段中第1个数据字节在字节流中的位置编号长度32位,保证旧的同号分组在序号循环之前早已消失。重复序号,收到的旧分组没上交之前,又收到下一轮同编号分组,32位编码,意味着传送4GB字节后,才可能出现相同编号,受分组寿命的影响,分组不可能在网络中保持4GB数据传输的时间,相同序号分组循环回来之前,旧同号分组早已上交。捎带确认全双工系统集中确认,提高网络传输效率发方超时重发,收方收到差错报文,丢弃等待(不发送否认报文),收到重复报文,丢弃,发确认。未按序到达的报文处理方法没有规定,可能缓存或丢弃。,传输控制协议TCP,83,传输策略和算法:TCP如何决定发送报文段的时机(三种机制):维持一个变量,值等于MSS,发送缓存中的数据达到MSS就发送发端应用程序指明要求发送报文段PUSH发送计时器差错控制特点反馈、超时重发、编号滑动窗口为0时,不能再发送数据,两种特殊情况例外:紧急数据可以发送(终止远端进程kill)可以发送一个字节的数据段,通知接收方重新声明它希望接收的下一字节及窗口大小(防止窗口声明丢失出现死锁情况),传输控制协议TCP,84,如何改进传输层的性能?策略1:发送方缓存应用程序的数据,等到形成一个比较大的段再发出;策略2:在没有可能进行“捎带”的情况下,接收方延迟发送确认段;策略3:使用Nagle算法:当应用程序每次向传输实体发出一个字节时,传输实体发出第一个字节并缓存所有其后的字节直至收到对第一个字节的确认;然后将已缓存的所有字节组段发出并对再收到的字节缓存,直至收到下一个确认;,传输控制协议TCP,85,傻窗口症状(sillywindowsyndrome),传输控制协议TCP,86,策略4:使用Clark算法解决傻窗口症状(sillywindowsyndrome)傻窗口症状:当应用程序一次从传输层实体读出一个字节时,传输层实体会产生一个一字节的窗口更新段,使得发送方只能发送一个字节;解决办法:限制收方只有在具备一半的空缓存或最大段长的空缓存时,才产生一个窗口更新段。,传输控制协议TCP,87,(2)流量与拥塞控制流量控制:发送方不能发送太多、太快的数据让接收方缓冲区溢出的技术。显式流控有进行流控的相应字段设置和控制机制可变发送窗口,收方为主控制,发送端的发送窗口,总是和接收窗口保持一致窗口大小是字节,连接建立时双方商定,通信过程中,收端可根据资源情况随时动态调整接收窗口,并告知对方,使发送窗口保持一致。(与DL层窗口不同),传输控制协议TCP,88,TCP连接的接收方有1个接收缓冲区,匹配速度服务:发送速率需要匹配接收方应用程序的提取速率,应用进程可能从接收缓冲区读数据缓慢,传输控制协议TCP,TCP窗口概念,传输控制协议TCP,窗口与TCP的流量控制,传输控制协议TCP,窗口与TCP的流量控制,seq=1,DATA,seq=201,DATA,seq=401,DATA,seq=301,DATA,seq=101,DATA,seq=201,DATA,seq=501,DATA,ACK=1,ack=201,rwnd=300,ACK=1,ack=601,rwnd=0,ACK=1,ack=501,rwnd=100,A,B,允许A发送序号201至500共300字节,A发送了序号101至200,还能发送200字节,A发送了序号301至400,还能再发送100字节新数据,A发送了序号1至100,还能发送300字节,A发送了序号401至500,不能再发送新数据了,A超时重传旧的数据,但不能发送新的数据,允许A发送序号501至600共100字节,A发送了序号501至600,不能再发送了,不允许A再发送(到序号600为止的数据都收到了),丢失!,流量控制举例,A向B发送数据。在连接建立时,B告诉A:“我的接收窗口rwnd=400(字节)”。,拥塞控制的一般原理,在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏产生拥塞(congestion)。出现资源拥塞的条件:对资源需求的总和可用资源(5-7)若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。,拥塞控制与流量控制的关系,拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。,拥塞控制所起的作用,提供的负载,吞吐量,0,拥塞控制的一般原理,拥塞控制是很难设计的,因为它是一个动态的(而不是静态的)问题。当前网络正朝着高速化的方向发展,这很容易出现缓存不够大而造成分组的丢失。但分组的丢失是网络发生拥塞的征兆而不是原因。在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因。这点应特别引起重视。,开环控制和闭环控制,开环控制方法就是在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。闭环控制是基于反馈环路的概念。属于闭环控制的有以下几种措施:监测网络系统以便检测到拥塞在何时、何处发生。将拥塞发生的信息传送到可采取行动的地方。调整网络系统的运行以解决出现的问题。,98,拥塞控制拥塞:非正式地:“太多的源发送太多太快的数据,使网络来不及处理”。网络中的前10大问题之一。表现:丢包(路由器缓冲区溢出)长时延(路由器缓冲区中排队)控制拥塞的两类方法:网络辅助的拥塞控制:路由器为端系统提供反馈。端到端的拥塞控制:不能从网络得到明确的反馈,端系统根据观察到的时延和丢失现象推断出拥塞。,TCP协议的拥塞控制,99,TCP的拥塞控制:端到端,双窗口机制发送窗口=Min通知窗口,拥塞窗口通知窗口:流控窗口(通知窗口)拥塞窗口:发送方根据拥塞状况控制发送数据量的窗口特点:端到端控制(没有网络辅助)发送方限制传输拥塞窗口是动态的,具有感知到网络拥塞的函数(不考虑流控),传输控制协议TCP,100,为什么需要拥塞窗口TCP算法的前提传输错误造成分组丢失少,大部分是拥塞造成的。定时器超时是拥塞出现的信号网络的容量和接收方的容量,流控不仅仅是使接收方来得及接收。有时限制条件是网络内部的容量。,传输控制协议TCP,101,发送方如何感知网络拥塞?丢失事件=超时或者3个重复ACK发生丢失事件后,TCP发送方降低速率(拥塞窗口)三个机制:慢启动拥塞避免加增倍减算法AIMD拥塞控制参数:窗口门限值ssthresh、拥塞窗口cwnd拥塞控制算法条件:TCP每个报文段1MSS,收方对每个报文段发确认。接收方流控窗口足够大,发送窗口只受拥塞窗口制约,传输控制协议TCP,102,慢启动在连接开始时,拥塞窗口值=1MSS设置阈值(门限值ssthresh)每收到ACK,拥塞窗口加1当拥塞窗口=窗口门限值,进入拥塞避免阶段当出现超时,新窗口门限值=拥塞窗口的一半,新拥塞窗口值=1MSS,重复慢启动过程总结:初始速率很低,但以指数很快地增加,传输控制协议TCP,每RTT(轮次)倍增拥塞窗口值希望尽快达到期待的速率速率呈指数式上升,发送方,接收方,发送M1,确认M1,发送M2M3,确认M2M3,发送M4M7,确认M4M7,cwnd=1,cwnd=2,cwnd=4,发送M8M15,cwnd=8,t,t,发送方每收到一个对新报文段的确认(重传的不算在内)就使cwnd加1。,轮次1,轮次2,轮次3,传输轮次(transmissionround),使用慢开始算法后,每经过一个传输轮次,拥塞窗口cwnd就加倍。一个传输轮次所经历的时间其实就是往返时间RTT“传输轮次”更加强调:把拥塞窗口cwnd所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。例如,拥塞窗口cwnd=4,这时的往返时间RTT就是发送方连续发送4个报文段,并收到这4个报文段的确认,总共经历的时间。,105,拥塞避免每经过一个RTT,拥塞窗口加1当出现超时,新窗口门限值=拥塞窗口的一半,新拥塞窗口值=1MSS,重复慢启动过程总结:拥塞窗口线性增长,避免网络再次出现拥塞加性增(加法增大):如没有检测到超时事件,每个RTT时间拥塞窗口值增加一个MSS(最大报文段长度)。倍性减(乘法减少):超时后,拥塞窗口门限值减半。总结:若频繁超时,门限窗口值减少速度很快,传输控制协议TCP,门限状态变量ssthresh,慢开始门限ssthresh的用法如下:当cwndssthresh时,停止使用慢开始算法而改用拥塞避免算法。当cwnd=ssthresh时,既可使用慢开始算法,也可使用拥塞避免算法。拥塞避免算法的思路是让拥塞窗口cwnd缓慢地增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍,使拥塞窗口cwnd按线性规律缓慢增长。,当网络出现拥塞时,无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限ssthresh设置为出现拥塞时的发送方窗口值的一半(但不能小于2)。然后把拥塞窗口cwnd重新设置为1,执行慢开始算法。这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。,108,问题:什么时候从指数增长转变为线性增长?,传输控制协议TCP,22,16,慢开始和拥塞避免算法的实现举例,当TCP连接进行初始化时,将拥塞窗口置为1。图中的窗口单位不使用字节而使用报文段。,慢开始门限的初始值设置为16个报文段,即ssthresh=16。,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口cwnd,新的ssthresh值,网络拥塞,指数规律增长,ssthresh的初始值,慢开始,慢开始,慢开始,拥塞避免“加法增大”,拥塞避免“加法增大”,传输轮次,慢开始和拥塞避免算法的实现举例,发送端的发送窗口不能超过拥塞窗口cwnd和接收端窗口rwnd中的最小值。我们假定接收端窗口足够大,因此现在发送窗口的数值等于拥塞窗口的数值。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口cwnd,新的ssthresh值,网络拥塞,指数规律增长,ssthresh的初始值,慢开始,慢开始,慢开始,拥塞避免“加法增大”,拥塞避免“加法增大”,传输轮次,慢开始和拥塞避免算法的实现举例,在执行慢开始算法时,拥塞窗口cwnd的初始值为1,发送第一个报文段M0。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口cwnd,新的ssthresh值,网络拥塞,指数规律增长,ssthresh的初始值,慢开始,慢开始,拥塞避免“加法增大”,拥塞避免“加法增大”,传输轮次,慢开始和拥塞避免算法的实现举例,发送端每收到一个确认,就把cwnd加1。于是发送端可以接着发送M1和M2两个报文段。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口cwnd,新的ssthresh值,网络拥塞,指数规律增长,ssthresh的初始值,慢开始,慢开始,慢开始,拥塞避免“加法增大”,拥塞避免“加法增大”,传输轮次,慢开始和拥塞避免算法的实现举例,接收端共发回两个确认。发送端每收到一个对新报文段的确认,就把发送端的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,新的ssthresh值,网络拥塞,指数规律增长,ssthresh的初始值,慢开始,慢开始,慢开始,拥塞避免“加法增大”,拥塞避免“加法增大”,传输轮次,慢开始和拥塞避免算法的实现举例,发送端每收到一个对新报文段的确认,就把发送端的拥塞窗口加1,因此拥塞窗口cwnd随着传输轮次按指数规律增长。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口cwnd,新的ssthresh值,网络拥塞,指数规律增长,ssthresh的初始值,慢开始,慢开始,慢开始,拥塞避免“加法增大”,拥塞避免“加法增大”,传输轮次,慢开始和拥塞避免算法的实现举例,当拥塞窗口cwnd增长到慢开始门限值ssthresh时(即当cwnd=16时),就改为执行拥塞避免算法,拥塞窗口按线性规律增长。,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口cwnd,新的ssthresh值,网络拥塞,指数规律增长,ssthresh的初始值,慢开始,慢开始,慢开始,拥塞避免“加法增大”,拥塞避免“加法增大”,传输轮次,22,16,“乘法减小”,2,4,6,8,10,12,14,16,18,20,0,0,4,8,12,20,24,拥塞窗口cwnd,新的ssthresh值,网络拥塞,指数规律增长,ssthresh的初始值,慢开始,慢开始,慢开始,拥塞避免“加法增大”,拥塞避免“加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京市大兴区瀛海第六幼儿园招聘模拟试卷及答案详解(名校卷)
- 2025海南昌江黎族自治县公办幼儿园保育员考核招聘23人模拟试卷及答案详解(典优)
- 2025年松原市教育局直属学校招聘教育部直属六所师范大学应届毕业生(44人)模拟试卷有完整答案详解
- 智能定价策略研究-第4篇-洞察与解读
- 班组安全培训管理课件
- 2025广东广州市黄埔区穗东街道庙头社区合同制人员招聘5人考前自测高频考点模拟试题完整参考答案详解
- 2025海南昌江黎族自治县公办幼儿园保育员考核招聘23人模拟试卷及完整答案详解1套
- 2025广州医科大学校本部招聘工作人员9人(第二次)考前自测高频考点模拟试题完整参考答案详解
- 2025安徽池州市青阳县选聘县属国有企业高级管理人员工作考前自测高频考点模拟试题及答案详解(易错题)
- 2025内蒙古大唐锡林浩特电厂招聘消防车驾驶员1人模拟试卷附答案详解(完整版)
- 行政法知识竞赛题及答案
- 组织工程瓣膜修复研究-洞察及研究
- 自主可控人工智能智能决策系统研究报告
- 2.1《整十、整百数乘一位数的口算和估算》(课件) -2025-2026学年三年级数学上册 苏教版
- 2025年四川基层法律服务工作者执业核准考试综合试题及答案一
- 招商银行ai面试试题及答案
- Z20+名校联盟(浙江省名校新高考研究联盟)2026届高三第一次联考化学及答案
- 中国艾滋病诊疗指南(2024版)
- 大疆无人机培训课件
- 中级消防员维保培训课件
- 制冷系统常见的五大故障及解析
评论
0/150
提交评论