版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章运输层教案课题名称第5章运输层计划课时8学时内容分析本章简要介绍运输层的基本功能,无连接的服务与面向连接的服务,套接字的概念。然后分别讲解UDP和TCP这两种运输层协议。重点讲解UDP数据报结构,TCP实现可靠性通信的原理,包括TCP报文结构、流量控制、拥塞控制、连接管理。本章还用实例分析了TCP协议存在的安全漏洞。教学目标及基本要求理解运输层层基本功能,无连接的服务与面向连接的服务理解UDP协议和TCP协议的基本功能和不同特点理解并掌握TCP协议可靠性通信机制,包括流量控制和拥塞控制理解TCP连接管理机制教学重点运输层层基本功能,无连接的服务与面向连接的服务TCP流量控制和拥塞控制教学难点TCP流量控制和拥塞控制教学方式以PPT讲授为主,并结合多媒体进行教学教学过程5.1运输层提供的服务(1学时)运输层就是利用网络层提供的服务向应用层提供有效的、可靠的端到端即进程到进程之间的通信服务。所以运输层协议也被称为端到端协议(End-to-EndProtocol)。5.1.1运输层的功能运输层的基本功能可以概括为以下几点。(1)实现端到端即进程到进程的数据通信。(2)数据的封装/解封。(3)可靠数据传输即差错控制,避免报文出错、丢失、延迟时间紊乱、重复、乱序。(4)流量控制、拥塞控制。(5)连接的建立与释放。5.1.2运输层端口与套接字运输层的重要功能之一就是提供了面向进程的通信机制。因此,运输层协议必须提供某种方法来标识通信应用进程。TCP/UDP协议采用端口(Port)概念来标识通信应用进程。端口用一个16位端口号进行标识。运输层最常用的熟知端口是TCP20文件传输协议(FTP)的数据连接、TCP21文件传输协议的控制连接、TCP23远程登录服务(Telnet)、TCP25简单邮件传输协议(SMTP)、TCP80HTTP、TCP110电子邮件接收协议(POP3)、UDP23域名服务(DNS)等。查看本机正在运行的服务和已经建立的连接,以及对应的端口,可以在命令窗口(运行cmd)下用netstat–an命令查看。为了区分不同的网络应用服务,就必须把主机的IP地址和端口号进行绑定后使用。主机IP地址和端口号的绑定组成了套接字。5.1.3无连接的服务与面向连接的服务运输层的基本服务又可分成两种,分别是面向连接的服务和无连接的服务。面向连接的服务具有基于连接的流量控制、差错控制和分组排序功能,数据在这种服务方式下的传递是有序的和可靠的,但是这种服务的实现需要进行连接的建立、维护和终止,开销较大。面向连接服务以电话系统为模式。要和某个人通话,首先拿起电话,拨号码,通话,然后挂断。同样在使用面向连接的服务时,用户首先要建立连接,使用连接,然后释放连接。连接本质上像个管道:发送者在管道的一端放入物体,接收者在另一端按同样的次序取出物体;其特点是收发的数据不仅顺序一致,而且内容也相同。无连接的服务不能保证可靠地按顺序提交,开销较小。因此在选择这两种服务时要根据具体的应用需求来决定。比如,当用户之间传输的数据量很大或者数据传输准确性要求很高时,就需要采用面向连接的服务。反之,对于数据传递量小、传递准确性要求不是很高的情况则可采用无连接的服务。无连接服务以邮政系统为模式。每个报文(信件)带有完整的目的地址,并且每一个报文都独立于其他报文,由系统选定的路线传递。在正常情况下,当两个报文发往同一目的地时,先发的先到。但是,也有可能先发的报文在途中延误了,后发的报文反而先收到;而这种情况在面向连接的服务中是不会出现的。TCP/IP的运输层有两个不同的协议:(1)用户数据报协议(UserDatagramProtocol,UDP)。(2)传输控制协议(TransmissionControlProtocol,TCP)。两种协议共同构成TCP/IP协议的运输层,如图5-3所示。运输层运输层图5-3运输层的两种协议5.2用户数据报协议(UDP)(1学时)用户数据报协议,是面向报文的无连接运输层协议。5.2.1UDP特点UDP协议有以下主要特点。(1)UDP在传送数据之前不需要先建立连接。对方的运输层在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。(2)由于UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很多的实时应用(如IP电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但不允许数据有太大的时延。UDP正好适合这种要求。(3)UDP是面向报文的。这就是说,UDP对应用程序交给的报文不再划分为若干个分组来发送,也不把收到的若干个报文合并后再交付给应用程序。应用程序交给UDP一个报文,UDP就发送这个报文;而UDP收到一个报文,就把它交付给应用程序。应用程序必须选择合适大小的报文。(4)UDP支持一对一、一对多、多对一和多对多的交互通信。用户数据报只有8字节的首部开销,比TCP的20字节的首部要短。5.2.2UDP数据报结构UDP协议的数据报报文结构如图5-4所示。图5-4UDP协议的数据报报文结构用户数据报UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和的。5.3传输控制协议(TCP)(4学时)TCP提供面向连接的服务。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的传输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。5.3.1TCP特点TCP协议有以下一些主要特点。(1)通信是全双工方式。(2)发送方的应用进程按照自己产生数据的规律,不断地把数据块陆续写入到TCP的发送缓存中。TCP再从发送缓存中取出一定数量的数据,将其组成TCP报文段(Segment)逐个传送给IP层,然后发送出去。(3)接收方从IP层收到TCP报文段后,先把它暂存在接收缓存中,然后让接收方的应用进程从接收缓存中将数据块逐个读取。(4)由于运输层的通信是面向连接的,因此TCP每一条连接上的通信只能是一对一的,而不可能是一对多、多对一或多对多的。(5)TCP的报文段的长度是不确定的。(6)TCP可以在发送自己的数据报文段的同时,捎带地把确认信息附上。为了提高通信传输效率,发送数据报文段的一方,可以连续发送多个数据报文段,而不需要在收到一个确认后才发送下一个报文段。例5-1:简述TCP和UDP的主要区别。解答:TCP提供的是面向连接、可靠的字节流服务,并且有流量控制和拥塞控制功能。UDP提供的是无连接、不可靠的数据报服务,无流量控制和拥塞控制。5.3.2TCP可靠传输的工作原理数据传输的可靠性就是要实现差错控制,避免报文在传输过程中出错、丢失、延迟时间紊乱、重复、乱序等。TCP协议实现可靠性传输的基本方法除用“检验和”进行报文差错检测外就是确认与重传、连接管理、流量控制和拥塞控制机制。以下介绍确认与重传机制,其他机制后续详述。5.3.3TCP数据报结构TCP数据报结构如图5-6所示。图5-6TCP数据报结构下面是对TCP数据报报文结构主要字段的解释。1.源端口和目的端口源端口和目的端口就是用于对应发送端和接收端应用进程的。这两个值加上IP首部中的源端IP地址和目的端IP地址就可以唯一确定一个TCP连接。2.序号在每条TCP通信连接上传送的每个数据字节都有一个与之相对应的序号,这是TCP协议实体的重要概念之一。以字节为单位递增的TCP序号主要用于数据排序、重复检测、差错处理及流量控制窗口等TCP协议机制,从而保证了传输任何数据字节都是可靠的。TCP序号不仅用于保证数据传送的可靠性,还用于保证建立连接(SYN请求)和拆除连接(FIN请求)的可靠性,每个SYN和FIN字段都要占一个单位的序号空间。当建立一个新的连接时,SYN标志变为1。序号字段中包含由这个主机所选择的该连接的初始序号(InitialSequenceNumber,ISN)。既然每个传输的字节都被计数,就要确认序号是发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到的数据字节序号加1。只有ACK标志为1时,确认序号字段才有效。发送ACK无须任何代价,因为32位的确认序号字段和ACK标志一样,总是TCP首部的一部分。因此,可以看到一旦一个连接建立起来,那么这个字段就总被设置,ACK标志也总被设置为1。TCP为应用层提供全双工服务,这意味着数据能在两个方向上独立地进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。3.确认号确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。4.数据偏移数据偏移占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远,单位是字。5.标志位TCP协议根据报文的不同功能设置6个标志位UAPRSF。U表示紧急位(URG)。当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。A表示确认位(ACK)。只有当ACK=1时确认号字段才有效。当ACK=0时,确认号字段无效。P表示推送位(PSH)。TCP收到PSH=1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。R表示复位位(RST)。当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立传输连接。S表示同步位(SYN)。当SYN=1时,表示这是一个连接请求或连接接受报文。F表示终止位(FIN)。用来释放连接。当FIN=1时,表明此报文段的发送方的数据已发送完毕,并要求释放传输连接。6.窗口2个字节,由接收方通知发送方自己目前能够接收的数据量(由缓冲区空间限制),发送方据此设置发送窗口。窗口是TCP实现流量控制的依据,将在本章5.4节详细介绍。在数据传输过程中,发送方按接收方通告的窗口尺寸和序号发送一定的数据量。接收方可根据接收缓冲区的使用状况动态地调整接收窗口,并在输出数据段或确认号字段时捎带着将新的窗口尺寸和起始序号(在确认号字段中指出)通告给发送方。发送方将按新的起始序号和新的接收窗口尺寸来调整发送窗口,接收方也用新的起始序号和新的接收窗口大小来验证每一个输入数据段的可接收性。7.检验和检验和覆盖了整个的TCP报文段:TCP首部和TCP数据。这是一个强制性的字段,必须是由发送端计算和存储,由接收端进行验证的。8.紧急指针紧急指针占16位。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。9.选项10.填充填充字段是为了使整个首部长度是4字节的整数倍。5.3.4TCP的流量控制与滑动窗口协议在建立连接时,TCP连接的每一端都会为这个连接分配一定数量的缓存。当收到正确的字节后,就会将数据放入缓存。如果发送方继续快速地发送数据,缓存就会被充满,最后溢出。因此需要有一种机制来控制发送方发送数据的速度,保证接收缓存不溢出,这种机制称为流量控制。上一节介绍的确认重传机制不仅实现了可靠数据传输,实际上也是一种简单的流量控制协议。发送方每发给接收方一个数据报文,就等待接收方确认收到的应答(ACK),在没有收到这个ACK之前,发送方不能发送第2个数据报。对发送方而言,如果在一段设定的时间内没有收到ACK,则重新发送数据报。虽然这种方式传输数据可靠,但对带宽的利用率不高。因此TCP协议按以下所谓滑动窗口方式一次发送一组数据报,更加有效地利用了带宽。(1)发送方可以连续发送窗口中的所有数据包而不必等待ACK,同时每发送一个数据包启动一个计时器。(2)接收方每当成功接收一个数据报时,要向发送方发送一个ACK。(3)对于发送方而言,每收到一个ACK则窗口将滑动一次。发送窗口:发送方维持一个发送窗口,位于发送窗口内的分组都可被连续发送出去,而不需要等待接收方的确认。(4)累积确认:接收方对按序到达的最后一个分组发送确认,表示到这个分组为止的所有分组都已正确收到了。(5)Go-Back-N(回退N):表示需要再退回来重传已发送过的N个分组。在图5-7中,一个窗口大小为5的滑动窗口,在连续发送5个数据报时不必等待应答信号。若在连续发送时收到了ACK1,则窗口向前移动一格,此时可以发送第6个数据报。图5-7滑动窗口正常变化如果第2个数据报在发送过程中丢失,而其他数据报都顺利发送,那么接收方只发出ACK2,对于成功接收到的第3、4、5、6个数据报,对发送方的应答也是ACK2,也就是说,接收方只对连续收到的数据报进行应答。发送方一直等待ACK3,直到定时器超时,重新发送第2个数据报。当第2个数据报成功发送给接收方后,接收方将直接产生并发送ACK7,发送方的滑动窗口移动到seq6,如图5-8所示。图5-8数据丢失滑动窗口停止变化,丢失的数据超时重传TCP协议利用首部中的窗口字段动态通知对方自己的接收缓存大小,使发送窗口根据接收方的调节而变化。窗口通告值增大时,发送方扩大发送窗口的大小,以便发送更多的数据。窗口通告值减小时,发送方缩小发送窗口的大小,以便接收方能够来得及接收数据。窗口通告值减小至零时,发送方将停止发送数据,直到窗口通告值重新调整为大于零的数值。例5-2:图5-9是一个利用可变窗口实现流量控制的实例。在建立连接时B向A发送,其rwnd=400。其后rwnd依次改变成300、100和0。问A各轮次可发送的字节是怎样变化的?解答:根据累积确认、超时重传以及回退N协议,A各轮次可发送字节范围随B的rwnd的变化而相应变化。图5-9TCP流量控制实例在“滑动窗口”概念中,“发送窗口”和“接收窗口”的作用是什么?如果接收方的接收能力不断地发生变化,则采取何种措施可以提高协议的效率。解答:“发送窗口”作用是限制发送方连续发送数据的数量,即控制发送方发送数据的平均速率。“接收窗口”反映了接收方当前接收缓存的大小,即接收方接收能力的大小。当接收方的接收能力不断地发生变化时,可以将接收窗口的大小发送给发送方,调节发送方的发送速率,避免因发送方发送速率太大或太小而导致接收缓存的溢出或带宽的浪费,从而提高协议的效率。例5-4:设发送端为A,接收端为B,忽略拥塞窗口,当前A的滑动窗口大小为8个分组单位,在连续发送编号为1到6的6个分组后,收到B确认已经收到4号分组的信息(按照累积确认方式),同时接收方窗口rwnd修改成了5,问:1)此时可以明确B已经收到的分组是哪些?2)在下一次收到B的确认之前A还能够继续发送哪些分组?3)如果发送窗口内的数据已经全部发送,之后就没有再收到B的确认,则A将执行什么操作?要求说明每个问题的依据。解答:1)根据累计确认协议,此时可以明确B已经收到的分组是1~4。2)因为当前rwnd=5,在下一次收到B的确认之前A还能够继续发送的分组是5~9。3)根据超时重传和GBN协议,如果发送窗口内的数据已经全部发送,之后就没有再收到B的确认,则A将重传5号开始的旧数据。5.3.5TCP的拥塞控制拥塞(Congestion)是指互联网中的数据报过多,超过了中间节点(如路由器等)的最大容量,从而导致时延急剧增加,网络性能急速下降的现象。而解决拥塞问题所采用的机制和采取的措施称为拥塞控制(CongestionControl)。拥塞控制算法主要用于避免拥塞现象的发生。拥塞控制可以限制TCP向网络中注入数据的大小和速率。流量控制中的接收窗口值rwnd是接收方通告值,只反映接收方的接收能力,不能体现中间节点的处理能力。TCP引入拥塞窗口(CongestionWindow,cwnd),由发送方根据网络的情况设置,表示发送方允许发送的最大报文段。从流量控制的角度,发送窗口一定不能超过接收窗口,实际的发送窗口的上限值应该等于接收窗口(rwnd)与拥塞窗口(cwnd)中最小的一个:Min(rwnd,cwnd)。rwnd与cwnd中较小的一个限制发送端的报文发送速率。TCP通常综合采用慢开始、拥塞避免、快速重传和快速恢复等拥塞控制算法。下面只对慢开始和拥塞避免算法做简要介绍。慢开始算法要点:1)建立连接后,准备发送数据时,拥塞窗口的大小初始值设置为1(1个报文段);2)收到确认后,将拥塞窗口大小设为2;收到2个确认后,将拥塞窗口大小设为4;3)随后慢开始算法中的拥塞窗口cwnd会以指数方式快速增长,所以慢开始只是初值小,增长速度却很快。为避免cwnd过快增长引起网络拥塞,设置慢开始阈值(ssthresh)。cwnd<ssthresh时采用慢开始算法;cwnd>ssthresh时采用拥塞避免算法,减慢窗口增长速度。拥塞避免算法:每经过一个往返时延RTT,只有当发送方收到对所有报文段的确认后,才将拥塞窗口的大小增加一个报文段。如图5-10是一个拥塞控制实例,初始设定阈值为16,前5次往返用慢开始算法,窗口的变化是1、2、4、8、16,接着改用拥塞避免算法,窗口的值依次变成17、18、19、20、21、22、23、24,是线性增长的,当窗口值达到24时出现超时,重新采用慢开始算法,但新的阈值改为出现超时时的窗口阈值24的一半12。图5-10拥塞控制实例例5-5:简述TCP流量控制和拥塞控制的不同。解答:流量控制解决因发送方发送数据太快而导致接收方来不及接收使接收方缓存溢出的问题。流量控制的基本方法就是接收方根据自己的接收能力控制发送方的发送速率。TCP采用接收方控制发送方发送窗口大小的方法来实现在TCP连接上的流量控制。拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不过载。TCP的发送方维持一个叫作拥塞窗口的状态变量。拥塞窗口的大小取决于网络的拥塞程度,当网络拥塞时减小拥塞窗口的大小,控制TCP发送方的发送速率。TCP发送方的发送窗口大小取接收窗口和拥塞窗口的最小值。从慢开始开始,当拥塞窗口上升到12时网络发生了超时。试画出每个往返时间TCP拥塞窗口的演变曲线图(横坐标单位为“往返次数”,纵坐标为拥塞窗口值)。说明拥塞窗口每一次变化的原因(画15个“往返次数”)。图5-11例题5-6解答图5.3.6TCP的运输连接管理TCP是一个面向连接的协议,通信双方不论哪一方发送报文段,都必须首先建立一条连接,并在双方数据通信结束后关闭连接。1.连接的建立TCP连接采用三次握手方法,所谓三次握手是指通信双方三次交换报文,如图5-12所示。首先发送方向接收方发送报文,报文中的同步位SYN=1,表示向接收方提出连接请求,同时报文中的初始序号seq=x,是发送方为自己选取的初始序列号。接收方收到此报文后,若同意连接,作为第2次握手,接收方向发送方回送同步位SYN=1、确认位ACK=1、初始序列号seq=y,以及确认序号ack=x+1的报文段,对发送方的连接请求进行确认。最后一次握手,发送方向接收方发送确认位ACK=1、确认序号ack=y+1的报文段,对第2次握手时接收方发来的SYN=1的报文进行确认,完成连接的建立。通常接收方主机的TCP服务器进程被动地等待连接建立请求,而发送方主机的TCP客户进程主动地发出建立连接的请求。客户端发送SYN报文,并设置发送序号为x服务端发送SYN+ACK报文,并设置发送序号为y,确认序号为x客户端发送SYN报文,并设置发送序号为x服务端发送SYN+ACK报文,并设置发送序号为y,确认序号为x+1客户端发送ACK报文,并设置发送序号为z,确认序号为y+1确认序号为y+1ACK=y+1seq=zSYN=1ACK=x+1seq=ySYN=1seq=x图5-12TCP连接建立的过程5.4实验(2学时)5.5本章小结本章要求重点理解和掌握运输层的功能、运输层端口的作用、TCP和UDP两种运输层协议首部格式及不同特点。接着介绍了TCP可靠传输的原理与实现、TCP的流量控制与滑动窗口协议、TCP的拥塞控制和TCP的传输连接管理。实验项目要求学会用网络监听工具捕获和分析运输层协议。思考题和习题习题一、选择题1. 运输层的基本功能是将()数据封装成运输层报文。 A.数据链路层 B.应用层 C.会话层 D.网络层2. ()是面向连接的服务。 A.TCP B.UDP C.IP D.以太网3. 运输层的端口是指()。 A.服务器的端口 B.路由器的端口 C.应用进程的标识 D.交换机的端口4. TCP协议用滑动窗口实现()。 A.流量控制 B.拥塞控制 C.连接建立 D.差错改正5. 拥塞控制是根据()的状况决定发送端向网络注入的数据大小和速率。 A.网络 B.应用进程 C.接收端 D.网卡6. 接收端在收到数据字节序号为100的报文后将向发送端发送确认号为()的确认报文。 A.100 B.101 C.0 D.17. 下面的关于传输控制协议表述不正确的是()。 A.主机寻址 B.进程寻址 C.流量控制 D.差错检测8. TCP协议采取的保证数据包可靠传递的措施不包括()。 A.超时重传机制 B.确认应答机制 C.校验和机制 D.用户认证与加密机制9. 滑动窗口的作用是()。 A.流量控制 B.拥塞控制 C.路由控制 D.差错控制10. 慢开始和拥塞避免算法的作用是()。 A.流量控制 B.拥塞控制 C.路由控制 D.差错控制二、填空题1. 运输层的基本服务又可分成两种,分别是()服务和()服务。2. ()和()的绑定组成了套接字(S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中数学 第一章 集合与函数概念 新人教版必修1
- 土建类施工组织设计
- 2024年度旅游包车服务详细合同
- 2024年度电气设备安装工程设计合同
- 2024中国电力建设集团水电水利规划设计总院招聘3人易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国电信江苏公司春季招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国冶金地质总局在京单位招考应届毕业生易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国一冶集团限公司交通工程公司招聘80人易考易错模拟试题(共500题)试卷后附参考答案
- 2024下半年江苏兴海控股集团限公司招聘17人易考易错模拟试题(共500题)试卷后附参考答案
- 2024上半年福建福州市连江县部分国企业招聘9人易考易错模拟试题(共500题)试卷后附参考答案
- 关于大型体育场馆钢结构工程造价控制的报告
- 刘力红思考中医
- 血液运输物流服务投标方案
- 机电保安制度
- 浅谈小学数学后进生的产生原因及转化策略
- 高中英语-John Snow Defeats“King Cholera”教学课件设计
- 围手术期护理论文范文10篇
- 华为5GNR初中级理论考试参考题库(含答案)
- 涉校矛盾纠纷排查化解工作方案
- 学院(校)食堂餐饮企业承包经营退出管理制度
- 中级纺织工程师工作计划工作总结述职报告
评论
0/150
提交评论