计算机网络考研辅导讲座1传输层

上传人:sx****84 文档编号:243443365 上传时间:2024-09-23 格式:PPT 页数:87 大小:2.20MB
返回 下载 相关 举报
计算机网络考研辅导讲座1传输层_第1页
第1页 / 共87页
计算机网络考研辅导讲座1传输层_第2页
第2页 / 共87页
计算机网络考研辅导讲座1传输层_第3页
第3页 / 共87页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,第十讲 传输层,1,传输层,大纲考查范围,2,知识点归纳,(,一) 传输层提供的服务,1. 传输层的作用,是通信子网与资源子网的桥梁,传输层设置目的是在源、目,主机的进程间提供,可靠的端对端通信,。,分析传输层与数据链路层的异同点,网络服务质量类型(三类:,A,型、,B,型和,C,型)。,3,知识点归纳,2. 传输层的功能,4,传输层的主要功能,传输层为应用进程之间提供,端到端,的逻辑通信(但网络层是为主机之间提供逻辑通信)。,传输层还要对收到的报文进行,差错检测,。,传输层需要有两种不同的运输协议,,即面向连接的,TCP,和无连接的,UDP,。,5,传输层向上提供可靠的和不可靠的逻辑通信信道,?,应,用,层,传输,层,发,送,进,程,接,收,进,程,接,收,进,程,数据,数据,全双工可靠信道,数据,数据,使用,TCP,协议,使用,UDP,协议,不可靠信道,发,送,进,程,6,传输服务质量,传输层的服务质量可由一组,QoS,来描述(,Q,uality,O,f,S,ervice),连接建立时延,:,建立连接到收到连接确认之间时间。,连接建立失败概率,:,在最大建立时延内未能建成的概率。,吞吐量,:,在某个时间内的平均每秒所传输的字节数。,传输时延,:,从源主机发送数据包到目的主机收到数据包为止的时间。,-,残留差错率,:,在某个时间段内发生错误、丢失、重复的数,据包占全部发送的包之比。,-,保护,:,用户可以使用该参数来表明是否需要传输层提供一定的,安全保护,措施,以防止未经授权的第三方阅读或修改被传输的数据。,-,优先级,:,该参数提供给用户一种方法来指示其所传数据的重要性,当网,络发生拥塞时,优先级高的数据将优先得到传输。,-,弹性,:指在某个时段内由于网络拥塞或其他原因,由传输层发起的终止,连接的概率。,7,OSI,模型中的网络服务,类型,网络层向上提供的服务类型,A,型,:,完善、可靠的服务,,没有分组的丢失、重复和错序。,B,型:,分组不会丢失、重复和错序,但网络层因为内部,拥塞、软硬件,故障引起网络复位,需传输层重新,建立连接。,C,型:,不可靠,的服务,,分组有可能丢失、重复和错序,(,Internet,提供的就是,C,类网络服务),根据网络层向上提供的服务类型不同,因此相应有不同的传输层协议。,8,OSI,模型中的,传输层协议类型,协议类,网络类,传输协议名,描述,TP0,A,简单类,只需建立连接、发送数据和释放连接,不需进行流量和差错控制。,TP1,B,基本错误恢复类,比,TP0,多提供从网络复位中恢复的机制,即能从中断处进行重新同步。,TP2,A,多路复用类,比,TP0,多一个多路复用的功能,即多个传输共用一个网络连接。,TP3,B,错误恢复和多路复用类,集合了,TP1,和,TP2,的功能。,TP4,C,错误检测和恢复类,服务于,C,型网络,具备流量和差错控制,从网络复位中恢复的能力。,9,知识点归纳,3. 寻址与端口,端口就是传输层服务访问点,TSAP。,端口的作用就是让应用层各种网络应用进程都能将其数据通过端口向下交付,给传输层,以及让传输层知道应将其报文段中的数据向上通过端口交付给应,用层相应进程。 从这个意义上讲,端口是用来标志应用层的网络进程。,端口用一个 16,bit,端口号进行标志。端口号只具有本地意义,即端口号只,是为了标志本计算机应用层中的各进程。不同计算机相同端口号没有联系。,一类是熟知端口,其数值一般为,01023,。当一种新的网络应用程序出现时,,必须为它的,服务器端,指派一个熟知端口(众所周知端口)。,另一类则是一般端口,用来随时分配给请求通信的客户进程,,客户端,向本,地操作系统申请一个没有分配的端口号(,1024-65535,)。,TCP,使用“连接”(而不仅仅是“端口”)作为最基本的抽象,同时将,TCP,连接的端点称为,插口,(,socket),,或,套接字,、,套接口,。,插口和端口、,IP,地址的关系是,:,套接字地址48位(32位,IP,地址+16位端口地址),10,端口在进程之间的通信中所起的作用,应,用,层,传输,层,网,络,层,TCP,报文段,UDP,用户数据报,应用进程,TCP,复用,IP,复用,UDP,复用,TCP,报文段,UDP,用户数据报,应用进程,端口,端口,TCP,分用,UDP,分用,IP,分用,IP,数据报,IP,数据报,发送方,接收方,11,知识点归纳,4. 无连接服务与面向连接服务,传输层有两个不同的协议:,用户数据报协议,UDP,协议(,User Datagram Protocol),传输控制协议,TCP(Transmission Control Protocol),两个对等传输实体在通信时传送的数据单位叫作传输协议数据单元,TPDU,(Transport Protocol Data Unit)。,TCP,传送的数据单位协议是,TCP,报文段(,segment),UDP,传送的数据单位协议是,UDP,报文,或,用户数据报,。,UDP,在传送数据之前不需要先建立连接。对方的传输层在收到,UDP,报文后,不需要给出任何确认。虽然,UDP,不提供可靠交付,但各种开销小,传输快、效率高,在某些情况下,UDP,是一种最有效的工作方式,(,如多媒体传输时,),。,TCP,则提供面向连接的服务。,TCP,不提供广播或多播服务。由于,TCP,要提供可靠的、面向连接的传输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。,12,知识点归纳,(,二),UDP,协议,UDP,数据报,校验,,UDP,会对整个用户数据报检错,但不进行重传,。,UDP,主要特点为:发送数据之前不需要建立连接,,UDP,的主机不需要维持复杂的连接状态表,,UDP,用户数据报只有,8个字节的首部开销,,网络出现的拥塞不会使源主机的发送速率降低。对实时应用很重要。,用户数据报协议是对,IP,协议组的扩充,它增加了一种机制,发送方使用这种机制可以区分一台计算机上的多个接收进程。每个,UDP,报文除了包含某用户进程发送数据外,还有报文目的端口的编号和报文源端口的编号,从而使,UDP,的这种扩充,使得在两个用户进程之间的递送数据报成为可能。,UDP,是依靠,IP,协议来传送报文的,因而它的服务和,IP,一样是不可靠的。这种服务,不用确认、不对报文排序、也不进行流量控制,,,UDP,报文,可能会出现丢失、重复、失序等现象,。,13,UDP,保留端口举例,应用层,传输层,SNMP,BOOTP,TFTP,SUNRPC,DNS,161,67,69,111,53,Port,*,*,*,162,14,UDP,用户数据报的首部格式,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP,长度,源,IP,地址,目的,IP,地址,0,17,IP,数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP,用户数据报,15,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP,长度,源,IP,地址,目的,IP,地址,0,17,IP,数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP,用户数据报,用户数据报,UDP,有两个字段:数据字段和首部字段。首部字段有,8,个字节,由,4,个字段组成,每个字段都是两个字节,。,16,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP,长度,源,IP,地址,目的,IP,地址,0,17,IP,数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP,用户数据报,在计算检验和时,临时把,“,伪首部,”,和,UDP,用户数据报连接在一起。,伪首部仅仅是为了计算检验和,。,17,计算,UDP,检验和的例子,10011 153.19,00001 8.104,10101 171.3,00001110 00001011 14.11,00000 0,和 17,00000 15,00000100 00111111 1087,00000 13,00000 15,00000 0(检验和),01010100 01000101 数据,01010 数据,01001 数据,01000111 00000000 数据和 0(填充),10010110 11101011 求和得出的结果,01101 检验和,153.19.8.104,171.3.14.11,12,字节,伪首部,8,字节,UDP,首部,7,字节,数据,填充,按二进制反码运算求和,将得出的结果求反码,全 0 17 15,1087 13,15 全 0,数据 数据 数据 数据,数据 数据 数据,全,0,18,知识点归纳,(,三),TCP,协议,TCP,段,连接管理,即,TCP,连接建立与释放(三次握手),可靠传输,流量控制与拥塞控制,包括可变发送窗口协议等。,TCP,采用大小可变的滑动窗口进行流量控制,。窗口大小的单位是字节,在,TCP,报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限,。发送窗口在连接建立时由双方商定。但在通信的过程中,,接收端可,根据自己的资源情况,随时,动态地调整对方的发送窗口上限值(可增大或减小)。,19,TCP,概述,示图,端口,发送,TCP,报文段,TCP,TCP,接收缓存,发送缓存,报文段,报文段,报文段,端口,发送端,接收端,向发送缓存,写入数据块,从接收缓存,读取数据块,应用进程,应用进程,20,TCP,报文段的首部,TCP,数据部分,TCP,首部,TCP,报文段,21,TCP,首部各字段及作用,源端口,和,目的端口,字段,各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。,序号字段,占 4 字节。,TCP,连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。,确认号字段,占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。,22,TCP,保留,端口举例,应用层,传输层,FTP,TELNET,SMTP,HTTP,DNS,POP3,21 23 25 80 53 110,Port,服务器用端口号(众所周知端口,):0-1023,,已固定地分配给相应的服务,客户端用端口号:1024-65535,向,OS,申请一个未用的临时端口号,23,FTP,应用连接,端口举例,主机,A,主机,B,(128.6.4.194:,1234,),(18.22.67.7:,21,),建立端到端的连接,Client,Server,众所周知端口,临时端口,应用:,ftp 18.22.67.7,24,TCP,序号和确认号,源端口,目标端口,顺序号,#,确认号,#,Source,Dest.,Seq.,Ack.,1028,23,10,1,我发送 #10.,25,TCP,序号和确认号,我已收到 #10,现在我需要 #11.,源端口,目标端口,顺序号,#,确认号,#,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,我发送 #10.,26,TCP,序号和确认号,源端口,目标端口,顺序号,#,确认号,#,1028,23,Source,Dest.,11,Seq.,2,Ack.,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,我已收到 #10,现在我需要 #11.,我发送 #11.,27,TCP,序号和确认号,源端口,目标端口,顺序号,#,确认号,#,1028,23,Source,Dest.,11,Seq.,2,Ack.,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,1028,23,Source,Dest.,12,Seq.,2,Ack.,我已收到 #11,现在我需要 #12.,我发送 #11,28,TCP,首部各字段及作用,数据偏移,占 4,bit,,它指出,TCP,报文段的数据起始处距离,TCP,报文段的起始处有多远,实际上即,TCP,首部长度,。 “数据偏移”的单位不是字节而是 32,bit,字(4 字节为计算单位)。,保留字段,占 6,bit,,保留为今后使用,但目前应置为 0。,紧急比特,URG,当,URG,1,时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。,29,TCP,首部各字段及作用,确认比特,ACK,只有当,ACK,1,时确认号字段才有效。当,ACK,0,时,确认号无效。,推送比特,PSH,(PuSH) ,接收,TCP,收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。,复位比特,RST,(ReSeT) ,当,RST,1,时,表明,TCP,连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立传输连接。,30,TCP,首部各字段及作用,同步比特,SYN,同步比特,SYN,置为 1,就表示这是三次握手的一个连接请求或连接接受报文。,终止比特,FIN,(FINal) ,用来释放一个连接。当,FIN,1,时,表明此报文段的发送端的数据已发送完毕,并要求释放传输连接。,窗口字段, 占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。,TCP,连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。,31,TCP,首部各字段及作用,校验和, 占 2 字节。检验和字段检验的范围包括,首部,和,数据,这两部分。在计算检验和时,要在,TCP,报文段的前面加上 12 字节的,伪首部,。,紧急指针字段, 占 16,bit。,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号,。,选项字段, 长度可变。,TCP,只规定了一种选项,即最大报文段长度,MSS (Maximum Segment Size)。MSS,告诉对方,TCP:“,我的缓存所能接收的报文段的数据字段的最大长度是,MSS,个字节。”,填充字段, 这是为了使整个首部长度是 4 字节的整数倍。,32,TCP,的数据编号与确认,TCP,协议是面向字节的。,TCP,将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个序号。,在连接建立时,双方要商定初始序号。,TCP,每次发送的报文段的首部中的,序号,字段数值表示,该报文段中的数据部分的第一个字节的序号,。,TCP,的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加 1。因此,确认号,表示,接收端期望下次收到的数据中的第一个数据字节的序号,。,33,TCP,传输控制的实现,确认号,ACK#,源端口,1028,序列号,SEQ#,宿端口,21,窗口,WIN,.,头部,.,发送方,接收方,缓冲区,4k,2k,应用层2,k write,应用层,Read 2k,2k,2k,1,k,SEQ#=0,WIN=2048,ACK#=2048,WIN=0,ACK#=4096,SEQ#=4096,SEQ#=2048,发送受阻,应用层3,k write,0 4K,ACK#=4096,WIN=2048,2k,2k,1k,34,TCP,的可靠传输,TCP,提供的是一种可靠的数据流服务。当传送受差错干扰的数据,或基础网络故障,或网络负荷太重而使网际层(无连接的数据报递交系统) 工作出错时,就需要通过,TCP,协议来做弥补和补救工作,以确保通信的可靠。,TCP,位于,OSI,模型的运输层,它在,IP,协议的基础上,提供端到端的面向连接的可靠传输。,TCP,采用“,带重传的肯定确认,”技术来实现传输的可靠性。简单的说,“带重传的肯定确认”是指与发送方通信的,接收者,当接收到,TCP,报文段数据后,会送回一个确认报文(经常是含在所发送的,TCP,报文段中的一个“捎带”确认),,发送者对每个发出去的报文在发送缓冲区都留有记录,只有,等到收到确认后才将该报文所占的发送缓冲区释放,。发送者每发出一个,TCP,报文段时,会启动一个定时器,,若定时器计数完毕,确认还未到达,则发送者会重新发送该,TCP,报文段,。,35,TCP,的滑动窗口,TCP,采用 “滑动窗口”的流量控制机制来提高网络的吞吐量,,发送窗口的范围与接收方给发送方设置的“窗口”值有关,也与发送方已发送但未被确认的,TCP,报文段的数量有关。,每当接收方正确收到一个,TCP,报文段并交给上层,便发回相应的确认报文,发送方收到相应的确认,便将对应已发并被确认的发送缓冲释放,发送窗口同时向前滑动。,TCP,通信建立在面向连接的基础上,双方通信之前,先建立一条,TCP,连接,然后双方就可以在该,TCP,连接上相互发送,TCP,报文段。但事先建立连接、事后拆除连接需要额外开销,在,TCP,连接上发送确认和出错重传也花去一定的开销。,TCP,连接的建立采用三次握手的过程,整个过程由发送方请求连接、接收方再发送确认、发送方再发送关于确认的确认三个过程组成。,TCP,的拥塞控制和流量控制是一个比较复杂的问题,它包括发送端发送,TCP,报文段数量的多少和发送报文的时机,接收端发送确认和窗口大小的策略。同时还要兼顾不同网络的具体情况,算法要具有一定的自适应性,在保证可靠传输的同时,尽量提高传输效率。,36,TCP,的滑动窗口机制,TCP,的滑动窗口机制,TCP,采用,大小可变的滑动窗口,进行流量控制。窗口大小的单位是字节。发送窗口在连接建立时由双方商定,在通信过程中,接收端可根据自己的接收缓存的大小,通过接收端向对方发送的,TCP,报文段首部的“窗口”字段,即,接收端窗口,rwnd(receiver window),,向发送方通报接收端缓冲区的接收能力,从而动态地随时调整控制发送端的发送窗口的上限值。,另一方面,发送端根据其对当前网络拥塞程度的估计而确定的窗口值,叫做,拥塞窗口,cwnd(congestion window),,,其大小与网络的带宽和时延密切相关。,发送端设置的当前能够发送数据量的大小叫做发送窗口,发送窗口的上限值需要根据上面两个因素共同决定,由下面公式确定:,发送窗口的上限值 ,Min(cwnd, rwnd),rwnd,由接收端根据其接收缓存确定,发送端确定,cwnd,比较复杂,其涉及,TCP,的网络拥塞控制。,37,TCP,的滑动窗口机制,发送窗口的,左边沿,对应,已发送数据中被确认的最高序号1,,其,右边沿,对应,左边沿的序号加上发送窗口的大小,。在数据传输的过程中,这个发送窗口,不时地向右移动,构成了滑动窗口。窗口的两个边沿的相对运动增加或减少了窗口的大小。我们使用三个术语来描述窗口左右边沿的运动:,(1)当窗口左边沿向右边沿靠近时,我们称之为,窗口合拢,。这种现象发生在数据被发送并被接收方确认、同时发送窗口缩小时。如果窗口的左边沿与右边沿重合,则称其为一个零窗口,此时发送方不能发送任何数据。,(2)当窗口右边沿向右移动时将允许发送更多的数据,我们称之为,窗口张开,。这种现象发生发送窗口变大时,或在另一端的接收进程读取了数据、释放了,TCP,相应的接收缓存、向发送方发送确认、发送方收到确认后。,(3)当右边沿向左移动时,我们称之为,窗口收缩,。这种情况发生在接收方接收缓冲区缩小、向发送方发出的,TCP,报文首部的“窗口”字段值变小时。,38,收到确认即可前移,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,发送窗口,可发送,不可发送,发送指针,设发送端要发送 900 字节长的数据,划分为 9 个 100 字节长的报文段,并设发送窗口为 500 字节。,发送窗口的,左边沿,对应,已发送数据中被确认的最高序号1,,其,右边沿,对应,左边沿的序号加上发送窗口的大小,。,发送,TCP,要维护一个指针。每发送一个报文段,发送指针就向前移动一个报文段的距离。,发送,TCP,每收到,对方对,一个报文段的确认,,便释放该报文段所占的缓冲,将发送,窗口左沿向右移动一个报文段的距离,。若发送窗口大小不变,则窗口右沿也向右移,即发送窗口向右滑动。,当接收方接收缓冲区变小、向发送方发出的,TCP,报文首部的“窗口”字段值变小时,使发送窗口变小,发送窗口会收缩,。,39,收到确认即可前移,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,发送窗口,可发送,不可发送,发送指针,发送端发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变,因此发送窗口向右平移。,现在发送端还可发送 300 字节。,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,可发送,不可发送,发送指针,发送窗口前移,已发送,并被确认,已发送但,未被确认,40,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,已发送,并被确认,已发送但,未被确认,可发送,不可发送,发送指针,发送窗口前移,发送端收到了对方对前 400 字节数据的确认,但对方通知发送 端必须把窗口减小到 400 字节。,现在发送端最多还可发送 400 字节的数据。,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,已发送,并被确认,可发送,不可,发送,发送指针,发送窗口缩小,41,利用可变窗口大小进行流量控制设双方确定的窗口值是 400,SEQ = 1,SEQ = 201,SEQ = 401,SEQ = 301,SEQ = 101,SEQ = 501,ACK = 201, WIN = 300,ACK = 601, WIN = 0,ACK = 501, WIN = 200,主机,A,主机,B,允许,A,再发送 300 字节(序号 201 至 500),A,还能发送 200 字节,A,还能发送 200 字节,A,还能发送,300,字节,A,还能发送 100 字节,A,超时重发,但不能发送序号 500 以后的数据,允许,A,再发送 200 字节(序号 501 至 700),A,还能发送 100 字节(序号 601 至 700),不允许,A,再发送(到序号 600 的数据都已收到),SEQ = 201,丢失,!,42,TCP,拥塞控制,拥塞原因,加载到网络的负载大于网络自身的处理能力,若再大量向网络中输入负载,网络性能会明显变坏,极端情况下便会死锁。出现网络拥塞的条件:,(对网络中资源的需求) 可用资源,解决办法:,开环控制:,设计网络时事先将发生网络拥塞的因素考虑周到,力求网络在工作时不产生拥塞。,闭环控制:,基于反馈环路概念。监测拥塞在何时何地发生,将消息传到可采取行动的地方,继而调整网络系统的运行以解决出现的问题。,例如:,TCP,发送方迟迟不能收到对方的确认信息,便认为网络中发生了拥塞,于是减少注入网络中的信包数。,43,流量控制,-,往往指接收方对发送方通信量的控制,,是个端到端的问题。流量控制要做的就是抑制发送端发,送数据的速率,以便使接收端来得及接收。,拥塞控制,-,就是防止过多的数据注入到网络中,,这样可以使网络中的路由器或链路不致过载。,发送方控制发送流量必须,同时考虑,接收端的存储容,量和网络的传输能力,可以如下形象地说明:,接收方的处理能力不足:,-接收容器小,网络不够通畅:,-传输管道细,44,接收端窗口,rwnd,和拥塞窗口,cwnd,接收端窗口,rwnd,(receive window),这是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制。接收端将此窗口值放在,TCP,报文的首部中的窗口字段,传送给发送端。,拥塞窗口,cwnd (congestion window),是发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制。,45,拥塞的解决办法,发送方保持两个窗口,对方的接收窗口,rwnd,(,由,WIN,说明),拥塞窗口,cwnd,(,由慢开始、拥塞避免等算法决定),在一个实际网络中,发送方控制发送流量必须,同时考虑,接收端的存储容量和网络的传输能力,发送流量应该取接收端和通信子网所能允许的流量值中的较小值。因此,,取两者的最小值为发送窗口的上限值,即:,如何确定拥塞窗口的大小?,慢开始算法,拥塞控制算法举例,发送窗口的上限值,Min rwnd, cwnd,46,慢开始算法的原理,在主机刚刚开始发送报文段时可先将拥塞窗口,cwnd,设置为一个最大报文段,MSS,的数值。,在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个,MSS,的数值。,用这样的方法逐步增大发送端的拥塞窗口,cwnd,,可以使分组注入到网络的速率更加合理。,47,慢开始算法,拥塞窗口,MaxSegL,建立连接初始化,发送数据,MaxSegL,超时,2MaxSegL,发送数据,超时前收到确认,超时前收到确认,拥塞窗口,2,MaxSegL,超时,拥塞窗口,2,n,MaxSegL,发送数据,2,n,MaxSegL,拥塞窗口二进制指数增长,,直至发送数据后超时无确认,.,48,慢开始和拥塞避免算法的实现举例,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口,cwnd,ssthresh = 16,慢开始,指数规律增长,进入拥塞避免,线性规律增长,拥塞避免,发生超时,更新后的,ssthresh = 12,慢开始,拥塞避免,进入拥塞避免,49,慢开始和拥塞避免算法的实现图解,Flash,50,乘法减小,(,multiplicative decrease),“,乘法减小,“,是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值,ssthresh,设置为当前的拥塞窗口值乘以 0.5。,当网络频繁出现拥塞时,,ssthresh,值就下降得很快,以大大减少注入到网络中的分组数。,51,加法增大,(,additive increase),“,加法增大,”,是指执行拥塞避免算法后,当收到对所有报文段的确认就将拥塞窗口,cwnd,增加一个,MSS,大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。,52,慢开始和拥塞避免算法的说明,“,拥塞避免”,并非,指,完全能够避免,了拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。,“拥塞避免”是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,,使网络比较不容易出现拥塞,。,53,快重传和快恢复,快重传算法,规定,,接收方每收到一个失序的报文段就立即发出重复确认,,而不要等到自己发送数据时才稍带确认,这样可以使发送方及早知道某一报文段没有到达接收方。,发送端只要一连收到三个重复的,ACK,即可断定有分组丢失了,就应立即重传丢失的报文段,而不必继续等待为该报文段设置的重传计时器的超时。,不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段,由于,发送方尽早重传未被确认的报文段,,采用快重传后可以使整个网络的吞吐量提高约20%。,54,快重传举例,主机,A,B,确认,M,1,和,M,2,A,发送,M,1,和,M,2,A,收到了三个重复的确认,ACK,3,,,就立即重传,M,3,,,而不必等待超时重传。,A,发送,M,3,但丢失了,A,发送,M,4,A,发送,M,5,B,发送第二个重复确认,ACK,3,A,发送,M,6,M,1, M,2,ACK,2, ACK,3,M,4,主机,B,M,3,丢失!,ACK,3,M,5,ACK,3,M,6,ACK,3,M,3,B,发送第三个重复确认,ACK,3,B,只能再次确认,M,2,(,因为,M,3,没有收到),55,快恢复算法,(1),当发送端连续收到三个重复的,ACK,时,进行快重传的同时,还执行“乘法减小”算法,,把慢开始门限,ssthresh,减半,,以此,预防,网络发送拥塞。,(2) 由于发送方现在认为网络,很可能没有发生拥塞,(否则不可能连续收到三个,ACK),,因此接下去不执行慢开始算法(,cwnd,不置为1),,而是把,cwnd,设置为,慢开始门限,ssthresh,减半后,的数值,,,然后开始执行拥塞避免算法,,即每经一个传输轮次拥塞窗口,cwnd,只加1,按线性规律增长(,注:,也有的快重传此时设置,cwnd,为,ssthresh + 3,MSS)。,(3),在采用快重传快恢复算法后,,慢开始算法只,是在,TCP,连接建立时和网络出现超时的时候才使用,。,采用快开始和快恢复算法后,使得,TCP,的性能有明显改进。,56,24,目前使用广泛的,TCP Reno,版本,(,除了连接建立及发送超时执行慢开始外,,在,连续收到三个重复的,ACK,后还进行快重传、快恢复),2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,传输轮次,拥塞窗口,cwnd,收到 3 个重复的确认,执行快重传算法,慢开始,“,乘法减小”,拥塞避免,“加法增大”,TCP Reno,版本,TCP Tahoe,版本,(已废弃不用),ssthresh,的初始值,拥塞避免,“加法增大”,新的,ssthresh,值,慢开始,快恢复,57,报文丢失重传,58,确认丢失重传,59,如何确定超时重传的定时器定时?,记录每一个报文段发出的时间,以及收到相应的确认报文段的时间。这两个时间之差就是报文段的往返时延。,将各个报文段的往返时延样本加权平均,就得出报文段的,平均往返时延,RTT,。,每测量到一个新的往返时延样本,就按下式重新计算一次加权平均往返时延,RTTs,:,在上式中,0,1,典型的,值为 1/8。,新的加权平均往返时延,RTTs,(1,),(,旧的,RTTs),(,新的,RTT,样本),60,超时重传时间,RTO (Retransmission Time-Out),计时器的,RTO,应略大于上面得出的,RTT,,为:,这里,,RTT,D,为,RTT,的偏差的加权平均值,它与,RTTs,和新的,RTT,样本之差有关。,RFC 2988,建议如下计算:,是个小于 1 的系数,推荐值为1/4,即0.25。,RTO,RTT + 4 * RTT,D,新,RTT,D,(1 -,) *,旧,RTT,D,+,* |RTTs ,新,RTT,样本|,61,Karn,算法,如何判定确认报文段是对原来的报文段 1 的确认,还是对重传的报文段 2 的确认?,在计算平均往返时延,RTT,时,只要报文段重传了,就不采用其往返时延样本,。,这样得出的平均往返时延,RTT,和重传时间就较准确。,62,修正的,Karn,算法,报文段每重传一次,就将重传时间增大一些:,系数,的典型值是2 。,当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延,RTT,和重传时间,RTO,的数值。,实践证明,这种策略较为合理。,新的重传时间,(旧的重传时间),63,TCP,的传输连接管理,传输连接就有三个阶段,即:,连接建立、数据传送和连接释放,。传输连接的管理就是使传输连接的建立和释放都能正常地进行。,连接建立过程中要解决以下三个问题:,要使每一方能够确知对方的存在。,要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。,能够对传输实体资源(如缓存大小,连接表中的项目等)进行分配。,1.,传输连接的三个阶段,64,用三次握手建立,TCP,连接,SYN, SEQ = x,主机,B,SYN, ACK, SEQ = y, ACK= x,1,ACK, SEQ = x + 1, ACK = y,1,被动打开,主动打开,确认,确认,主机,A,连接请求,连接成功!,65,建立,TCP,连接,A,的,TCP,实体向,B,的,TCP,实体发出连接请求报文段,其首部中的同步比特,SYN,应置为 1,,并选择一个随机序号,x,,表明传送数据时的第一个数据字节的序号是,x。,B,的,TCP,收到连接请求报文段后,如同意,则发回确认。,B,在确认报文段中应将,SYN,置为 1,,ACK,置为1,,其确认号应为,x,1,,同时也为自己选择随机序号,y。,A,收到此报文段后,向,B,给出确认,,ACK,置为1,,其确认号应为,y,1。,A,的,TCP,实体通知上层应用进程,连接已经建立。,当运行服务器进程的主机,B,的,TCP,实体收到主机,A,的确认后,也通知其上层应用进程,连接已经建立。,66,TCP,连接建立举例,67,TCP,连接释放的过程,FIN, SEQ = x,ACK, SEQ = y, ACK= x,1,ACK, SEQ = x + 1, ACK = y,2,应用进程,释放连接,A,不再发送报文,FIN, ACK, SEQ = y+1, ACK = x + 1,主机,B,主机,A,通知主机,应用进程,应用进程,释放连接,B,不再发送报文,确认,确认,至此,整个连接已经全部释放。,从,A,到,B,的连接就释放了,连接处于,半关闭,状态。相当于,A,向,B,说:“我已经没有数据要发送了。但你如果还发送数据,我仍接收。”,68,TCP,连接释放举例,69,TCP,的有限状态机,CLOSED,ESTABLISHED,LISTEN,CLOSE_WAIT,FIN_WAIT_1,SYN_RCVD,FIN_WAIT_2,CLOSING,TIMED_WAIT,SYN_SENT,LAST_ACK,主动打开,被动打开,被动关闭,主动关闭,起点,被动打开,主动打开,发送,SYN,同时打开,收到,SYN,,发送,SYN, ACK,收到,ACK,数据传送,阶段,关闭,发送,FIN,关闭,发送,FIN,关闭,发送,FIN,收到,RST,收到,SYN,发送,SYN, ACK,关闭,或超时,收到,ACK,收到,SYN, ACK,发送,ACK,收到,ACK,收到,ACK,收到,FIN,发送,ACK,收到,FIN, ACK,发送,ACK,收到,FIN,发送,ACK,同时关闭,收到,FIN,发送,ACK,发送,SYN,关闭,定时经过两倍最长报文段寿命后,70,TCP,正常的连接建立和关闭,SYN, SEQ = x,客户进程,服务器进程,LISTEN(,被动打开),SYN_SENT,ESTABLISHED,FIN_WAIT_1,FIN_WAIT_2,LAST_ACK,TIMED_WAIT,CLOSED,(,全双工数据传送阶段),SYN, ACK, SEQ = y, ACK = x + 1,ACK,SEQ = x + 1, ACK = y + 1,FIN,SEQ = u,ACK,SEQ = v, ACK = u + 1,FIN, ACK, SEQ = w, ACK = u + 1,ACK,SEQ = u + 1, ACK = w + 1,CLOSED,CLOSE_WAIT,SYN_RCVD,ESTABLISHED,.,CLOSED,定时到,ESTABLISHED,ESTABLISHED,.,(,主动关闭),(,被动关闭),(,主动打开),(,反方向此时可能还有数据在传送),(,正方向数据传送结束),状态:,状态,:,交互:,71,典型习题讲解,8,设,IP,分片头长度为,20B,UDP,用户数据报长,8192B,UDP,用户数据报长,8192B,若每个,IP,分片,UDP,用户数据报长,8192B,IP,分片头偏移字段为,0,每个,IP,分片数据字段长,IP,分片头偏移字段为,185,IP,分片头偏移字段为,370,IP,分片头偏移字段为,555,IP,分片头偏移字段为,740,IP,分片头偏移字段为,925,185,925,。,72,典型习题讲解,73,典型习题讲解,74,典型习题讲解,75,典型习题讲解,76,典型习题讲解,77,典型习题讲解,78,习题练习,79,习题练习,80,习题练习,81,习题练习,82,习题练习,83,习题练习,84,习题练习,85,习题练习,86,习题参考答案,87,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!