您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 计算机网络技术与实训教程
第6章传输层计算机网络技术与实训教程2019/12/172说明:本课件的配套教材为:–《计算机网络技术与实训教程》出版社编著如果选用本套教材,并需要完整的各章课件,请与作者联系。–电话:–E-mail:–通信地址:2019/12/173本章主要内容了解传输层的数据传输服务掌握TCP与UDP协议的报文格式掌握TCP与UDP协议的工作原理掌握TCP/IP实用程序2019/12/1746.1传输层原理–主要内容:–传输层存在的必要性–传输协议的分类–数据传输服务2019/12/1751.传输层存在的必要性对于网络用户来说,希望通信双方的主机能得到端到端(即从进程到进程)的可靠通信服务。但是,网络层提供的分组传输服务往往是不可靠的,比如,若网络层提供数据报服务,那么就不能保证分组报文无差错、不丢失、不重复且按顺序进行交付。即使网络层提供的是虚电路服务,但当网络中的虚电路进行重建时,主机就无法获得正在网内的分组状态,恢复工作必须由传输层来进行。也就是说,要保证数据既不丢失也不重复,传输层是必不可少的。2019/12/176另外,在互连网的情况下,各通信子网所能提供的服务又各不相同,网络用户又无法对子网加以控制。因此,为了能使通信子网的用户得到一个统一的通信服务,也必须设置传输层,以弥补通信子网提供的服务差异和不足,使得对两端的网络用户来说,各通信子网都变成透明的。2019/12/177换言之,传输层向高层用户屏蔽了通信子网的细节,使高层用户看不见实现通信功能的物理链路是什么,看不见数据链路层和网络层采用的是什么协议,以及网络互连的结构,而看见的就是好像在两个传输层实体之间有一条端到端的、可靠的、价格合理的、与实际使用的网络无关的全双工通信通路。2019/12/178传输层为两个主机上的用户进程提供端到端的面向连接的或无连接的服务。面向连接服务是一种可靠的、有序的数据传输服务,一次数据通信要经历建立连接、数据传输和释放连接等三个阶段,其可靠性是以较大的通信开销为代价,这类传输层协议有TCP(TransmissionControlProtocol)和SPX(SequencedPacketeXchange)等;无连接服务是一种不可靠的数据传输服务,为用户进程提供一种简单而快捷的通信机制,这类传输层协议有UDP(UserDatagramProtocol)等。2019/12/179传输层是在网络层所提供服务的基础上为两个主机上的用户进程提供一种通信机制,而网络层服务则是面向通信子网的。在OSI参考模型的7层结构中,传输层起着承上启下的作用,所以有人将7层结构分成两大部分:把0~4层看作是传输服务提供者;把5-7层看作是传输服务用户,通过传输层,传输服务提供者可以为传输服务用户提供更加可靠的数据传输服务。2019/12/1710A型:网络连接具有可接受的低差错率和可接受的低故障通知率。A型网络服务是一个完善的、理想的、可靠的网络服务,实际的网络很少达到这个水平。B型:网络连接具有可接受的低差错率和不可接受的高故障通知率。多数X.25公用分组交换网络提供的是B型网络服务。C型:网络连接具有不可接受的高差错率。C型网络服务质量最差,大多数广域网属于这种类型。2.传输协议的分类2019/12/1711ISO定义了5种类型的传输协议,即TP0,TP1,TP2,TP3和TP4,它们都是面向连接的。TP0协议最简单,适用于A型网络,TP0为请求的传输连接建立一个对应的网络连接,并假定网络连接完全可靠,不再另外进行流控和排序,传输连接的释放也对应于网络连接的释放。TP1协议也比较简单,增加了基本的差错恢复功能,适用于B型网络。2019/12/1712TP2协议具有连接复用功能,但没有对网络连接出现故障的恢复功能,这类协议还具有相应的流量控制功能,主要面向A型网络服务。TP3协议包含了TP1和TP2协议的功能,既有差错恢复又有复用功能,主要面向B型网络服务。TP4协议是最复杂的,功能较齐全,具有差错检测、控制、恢复以及复用功能,可以在质量较差的网络上保证高可靠的数据传输,主要面向C型网络服务。2019/12/17133.数据传输服务传输层提供的数据传输服务可以是面向连接或无连接的,其中应用较广泛的是面向连接的传输层协议,如TCP协议等。传输层的数据传输单位是分组(Packet),每个分组由分组头和分组数据两部分组成,分组头中包含了寻址信息、控制信息和说明信息等,寻址信息指出了通信双方的传输层服务访问点(TSAP)地址,定义了使用传输层协议进行通信的用户进程。控制信息规定了某种传输协议的控制操作,如建立连接、拆除连接等操作;说明信息描述了数据传输时的某些特性,如服务质量(QoS)、窗口尺寸等。2019/12/17141.建立连接(采用三次握手法)DATE(seq=j,ACK=i)CR(seq=i)CA(seq=j,ACK=i)主机1主机2REJECT(ACK=j)重复的CR(seq=i)CA(seq=j,ACK=i)主机1主机22019/12/17152.释放连接(采用三次握手法)ACK(seq=j)DR(seq=i)DR(seq=j,ACK=i)主机1主机2ACK(seq=j)DR(seq=i)DR(seq=j,ACK=i)主机1主机2启动计时器超时释放丢失2019/12/17163.流量控制传输层是利用可变滑动窗口协议来实现流量控制的,即发送方的发送窗口大小是由接收方根据自己的实际窗口大小而给出的,且在整个传输过程中动态变化。值得注意的是,这里所指的窗口就是缓冲区。因此,滑动窗口协议的核心问题也是解决缓冲区的分配问题。在传输层分组头中,设有一个窗口字段,接收方利用该字段向发送方通报接收窗口尺寸,即接收缓冲区大小,发送方则按当前接收缓冲区容量发送适量的数据分组。2019/12/1717在建立连接时,双方通过CR分组和CA分组中的窗口字段捎带着相互通告各自的窗口尺寸。在数据传输过程中,发送方按接收方通告的窗口尺寸发送一定的数据量。接收方可根据接收缓冲区的使用状况动态地调整接收窗口,并在发送应答分组进行确认时捎带着将新的窗口尺寸通告给发送方。发送方将按新的接收窗口尺寸来调整发送窗口,接收方也用新的接收窗口尺寸来验证新到达数据分组的可接受性。2019/12/17184.多路复用传输层的多路复用机制使多个用户进程能够共享一个传输层实体进行通信,这种多路复用机制是通过传输层的TSAP地址实现的。当一次数据通信结束后,在释放连接的同时也释放了该连接所占用的TSAP地址,这个TSAP地址就可以分配给其它连接使用。在TCP协议中,通过端口(Port)提供这种多路复用机制。2019/12/17196.2TCP协议–主要内容:–传输层端口–TCP协议报文格式–连接的建立与关闭–其它传输服务2019/12/17206.2TCP协议Internet传输层包含了两个重要协议:传输控制协议TCP和用户数据报协议UDP。TCP是专门为在不可靠的Internet上提供可靠的端到端的字节流通信而设计的一种面向连接的传输协议。UDP是一种面向无连接的传输协议。2019/12/17211.传输层端口Internet传输层与网络层功能上的最大区别是前者可提供进程间的通信能力。因此,TCP/IP协议提出了端口(Port)的概念,用于标识通信的进程。TCP和UDP都使用与应用层接口处的端口和上层的应用进程进行通信。在Internet传输层中,每一端口是用套接字(Socket)来描述的。应用程序一旦向系统申请到一个Socket,就相当于应用程序获得一个与其他应用程序通信的输入/输出接口。每一Socket表示一个通信端点,且对应有一个惟一传输地址即(IP地址,端口号)标识,其中,端口号是一个16位二进制数,约定256以下的端口号被标准服务保留,取值大于256的为自由端口。2019/12/17222.传输控制协议TCPTCP是利用网络层IP协议提供的不可靠的通信服务,为应用进程提供可靠的、面向连接的、端到端的基于字节流的传输服务。TCP的连接管理可以分为三个阶段:建立连接、数据传输和释放连接。一旦连接建立起来并且该连接处于活动状态时,TCP便可以产生并发送分组。当传送结束后,连接双方都要终止各自的连接。由于Internet是由不同的通信子网互连而成的,而不同的网络可能具有不同的拓扑结构、带宽、延迟以及分组大小等其他特性。因此,TCP的协议机制相对复杂,即要涉及到连接管理、流量控制、应答以及定时管理等。2019/12/17231.TCP报文格式31源端口(16bits)序列号(32bits)确认号(32bits)TCP头长保留位标志位窗口(16bits)校验和(16bits)填充选项紧急指针(16bits)数据(长度可变)01516目的端口(16bits)4102019/12/17242.建立连接在TCP协议中,建立连接要通过“三次握手”机制来完成。这种机制既可以由一方TCP发起同步握手过程而由另一方TCP响应该同步过程,也可以由通信双方同时发起连接的同步握手。2019/12/1725TCP实体ATCP实体B〈SEQ=100〉〈CTL=SYN〉〈SEQ=300〉〈ACK=101〉〈CTL=SYN,ACK〉〈SEQ=101〉〈ACK=301〉〈CTL=ACK〉〈SEQ=101〉〈ACK=301〉〈CTL=ACK〉〈DATA〉一次二次三次或者建立连接的三次握手过程2019/12/17263.关闭连接由于TCP连接是一个全双工的数据通道,一个连接的关闭必须由通信双方共同完成。当通信的一方没有数据需要发送给对方时,可以使用FIN段向对方发送关闭连接请求。这时,它虽然不再发送数据,但并不排斥在这个连接上继续接收数据。只有当通信的对方也递交了关闭连接请求后,这个TCP连接才会完全关闭。在关闭连接时,既可以由一方发起而另一方响应,也可以双方同时发起。无论怎样,收到关闭连接请求的一方必须使用ACK段给予确认。实际上,TCP连接的关闭过程也是一个三次握手的过程。2019/12/1727主机1发送DR并启动计时器释放连接DRDR发送ACKACK丢失主机2启动计时器(超时)释放连接发送DR并主机1发送DR并启动计时器释放连接主机2发送DR并启动计时器DRDR发送ACK释放连接ACK(a)三次握手释放连接的正常操作(b)最后确认TPDU丢失的情况2019/12/1728丢失ACKDRDRDRDR主机1主机2释放连接发送DR并启动计时器发送DR并启动计时器(超时)释放连接发送ACK发送DR并发送DR并发送DR并启动计时器启动计时器丢失DRN个超时释放连接丢失发送DR并(超时)释放连接发送DR并启动计时器发送DR并发送DR并启动计时器主机1主机2启动计时器(c)应答丢失的情况(d)应答丢失以及后续DR丢失情况2019/12/17294.流量控制在数据传输过程中,TCP协议提供一种基于动态滑动窗口协议的流量控制机制,使接收方TCP实体能够根据自己当前的缓冲区容量来控制发送方TCP实体传送的数据量。假设接收方现有2048B的缓冲区空间,如果发送方传送了一个1024B的报文段并被正确接收到,那么接收方要确认该报文段。然而,因为它现在只剩下1024B的缓冲区空间(在应用程序从缓冲区中取走数据之前),所以,它只声明1024B大小的窗口,期待接收后续的数据。当发送方再次发送了1024B的TCP报文段后,由于接收方无剩余的缓冲区空间,所以,最终的确认其声明的滑动窗口大小为0。2019/12/1730此时发送方必须停止发送数据直到接收方主机上的应用程序被确定从缓冲区中取走一些数据,接收方重新发出一个新的窗口值为止。当滑动窗口为0时,在正常情况下,发送方不能再发送TCP报文段。但有两种情况例外,一是紧急数据可以发送,比如,立即中断远程的用户进程;二是为防止窗口声明丢失时出现死锁,发送方可以发送1B的TCP报文段,以便让接收方重新声明确认号和窗口大小。2019/12/17315.PUSH操作在一个
本文标题:计算机网络技术与实训教程
链接地址:https://www.777doc.com/doc-2060202 .html