1 / 49

第 6 章 传输层

计算机网络技术与实训教程. 第 6 章 传输层. 说明:. 本课件的配套教材为: 《计算机网络技术与实训教程》 出版社 编著 如果选用本套教材,并需要完整的各章课件,请与作者联系。 电话: E-mail: 通信地址:. 本章主要内容. 了解传输层的数据传输服务 掌握 TCP 与 UDP 协议的报文格式 掌握 TCP 与 UDP 协议的工作原理 掌握 TCP / IP 实用程序. 6.1 传输层原理. 主要内容: 传输层存在的必要性 传输协议的分类 数据传输服务.

derick
Télécharger la présentation

第 6 章 传输层

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算机网络技术与实训教程 第6章 传输层

  2. 说明: • 本课件的配套教材为: • 《计算机网络技术与实训教程》 出版社 编著 • 如果选用本套教材,并需要完整的各章课件,请与作者联系。 • 电话: • E-mail: • 通信地址:

  3. 本章主要内容 • 了解传输层的数据传输服务 • 掌握TCP与UDP协议的报文格式 • 掌握TCP与UDP协议的工作原理 • 掌握TCP/IP实用程序

  4. 6.1 传输层原理 • 主要内容: • 传输层存在的必要性 • 传输协议的分类 • 数据传输服务

  5. 1. 传输层存在的必要性 对于网络用户来说,希望通信双方的主机能得到端到端(即从进程到进程)的可靠通信服务。但是,网络层提供的分组传输服务往往是不可靠的,比如,若网络层提供数据报服务,那么就不能保证分组报文无差错、不丢失、不重复且按顺序进行交付。即使网络层提供的是虚电路服务,但当网络中的虚电路进行重建时,主机就无法获得正在网内的分组状态,恢复工作必须由传输层来进行。也就是说,要保证数据既不丢失也不重复,传输层是必不可少的。

  6. 另外,在互连网的情况下,各通信子网所能提供的服务又各不相同,网络用户又无法对子网加以控制。因此,为了能使通信子网的用户得到一个统一的通信服务,也必须设置传输层,以弥补通信子网提供的服务差异和不足,使得对两端的网络用户来说,各通信子网都变成透明的。 另外,在互连网的情况下,各通信子网所能提供的服务又各不相同,网络用户又无法对子网加以控制。因此,为了能使通信子网的用户得到一个统一的通信服务,也必须设置传输层,以弥补通信子网提供的服务差异和不足,使得对两端的网络用户来说,各通信子网都变成透明的。

  7. 换言之,传输层向高层用户屏蔽了通信子网的细节,使高层用户看不见实现通信功能的物理链路是什么,看不见数据链路层和网络层采用的是什么协议,以及网络互连的结构,而看见的就是好像在两个传输层实体之间有一条端到端的、可靠的、价格合理的、与实际使用的网络无关的全双工通信通路。

  8. 传输层为两个主机上的用户进程提供端到端的面向连接的或无连接的服务。面向连接服务是一种可靠的、有序的数据传输服务,一次数据通信要经历建立连接、数据传输和释放连接等三个阶段,其可靠性是以较大的通信开销为代价,这类传输层协议有TCP (Transmission Control Protocol)和SPX(Sequenced Packet eXchange)等;无连接服务是一种不可靠的数据传输服务,为用户进程提供一种简单而快捷的通信机制,这类传输层协议有UDP (User Datagram Protocol)等。

  9. 传输层是在网络层所提供服务的基础上为两个主机上的用户进程提供一种通信机制,而网络层服务则是面向通信子网的。 在OSI参考模型的7层结构中,传输层起着承上启下的作用,所以有人将7层结构分成两大部分:把0~4层看作是传输服务提供者; 把5-7层看作是传输服务用户,通过传输层,传输服务提供者可以为传输服务用户提供更加可靠的数据传输服务。

  10. 2. 传输协议的分类 • A型:网络连接具有可接受的低差错率和可接受的低故障通知率。A型网络服务是一个完善的、理想的、可靠的网络服务,实际的网络很少达到这个水平。 • B型:网络连接具有可接受的低差错率和不可接受的高故障通知率。多数X.25公用分组交换网络提供的是B型网络服务。 • C型:网络连接具有不可接受的高差错率。C型网络服务质量最差,大多数广域网属于这种类型。

  11. ISO定义了5种类型的传输协议,即TP0,TP1,TP2,TP3和TP4,它们都是面向连接的。ISO定义了5种类型的传输协议,即TP0,TP1,TP2,TP3和TP4,它们都是面向连接的。 • TP0协议最简单,适用于A型网络,TP0为请求的传输连接建立一个对应的网络连接,并假定网络连接完全可靠,不再另外进行流控和排序,传输连接的释放也对应于网络连接的释放。 • TP1协议也比较简单,增加了基本的差错恢复功能,适用于B型网络。

  12. TP2协议具有连接复用功能,但没有对网络连接出现故障的恢复功能,这类协议还具有相应的流量控制功能,主要面向A型网络服务。TP2协议具有连接复用功能,但没有对网络连接出现故障的恢复功能,这类协议还具有相应的流量控制功能,主要面向A型网络服务。 • TP3协议包含了TP1和TP2协议的功能,既有差错恢复又有复用功能,主要面向B型网络服务。 • TP4协议是最复杂的,功能较齐全,具有差错检测、控制、恢复以及复用功能,可以在质量较差的网络上保证高可靠的数据传输,主要面向C型网络服务。

  13. 3. 数据传输服务 • 传输层提供的数据传输服务可以是面向连接或无连接的,其中应用较广泛的是面向连接的传输层协议,如TCP协议等。传输层的数据传输单位是分组(Packet),每个分组由分组头和分组数据两部分组成,分组头中包含了寻址信息、控制信息和说明信息等,寻址信息指出了通信双方的传输层服务访问点(TSAP)地址,定义了使用传输层协议进行通信的用户进程。控制信息规定了某种传输协议的控制操作,如建立连接、拆除连接等操作;说明信息描述了数据传输时的某些特性,如服务质量(QoS)、窗口尺寸等。

  14. 1. 建立连接(采用三次握手法)

  15. 2. 释放连接(采用三次握手法)

  16. 3. 流量控制 传输层是利用可变滑动窗口协议来实现流量控制的,即发送方的发送窗口大小是由接收方根据自己的实际窗口大小而给出的,且在整个传输过程中动态变化。值得注意的是,这里所指的窗口就是缓冲区。因此,滑动窗口协议的核心问题也是解决缓冲区的分配问题。 在传输层分组头中,设有一个窗口字段,接收方利用该字段向发送方通报接收窗口尺寸,即接收缓冲区大小,发送方则按当前接收缓冲区容量发送适量的数据分组。

  17. 在建立连接时 ,双方通过CR分组和CA分组中的窗口字段捎带着相互通告各自的窗口尺寸。在数据传输过程中 ,发送方按接收方通告的窗口尺寸发送一定的数据量。接收方可根据接收缓冲区的使用状况动态地调整接收窗口 ,并在发送应答分组进行确认时捎带着将新的窗口尺寸通告给发送方。发送方将按新的接收窗口尺寸来调整发送窗口 ,接收方也用新的接收窗口尺寸来验证新到达数据分组的可接受性。

  18. 4. 多路复用 传输层的多路复用机制使多个用户进程能够共享一个传输层实体进行通信,这种多路复用机制是通过传输层的TSAP地址实现的。 当一次数据通信结束后,在释放连接的同时也释放了该连接所占用的TSAP地址,这个TSAP地址就可以分配给其它连接使用。 在TCP协议中,通过端口(Port)提供这种多路复用机制。

  19. 6.2 TCP协议 • 主要内容: • 传输层端口 • TCP协议报文格式 • 连接的建立与关闭 • 其它传输服务

  20. 6.2 TCP协议 • Internet传输层包含了两个重要协议:传输控制协议TCP和用户数据报协议UDP。TCP是专门为在不可靠的Internet上提供可靠的端到端的字节流通信而设计的一种面向连接的传输协议。UDP是一种面向无连接的传输协议。

  21. 1. 传输层端口 • Internet传输层与网络层功能上的最大区别是前者可提供进程间的通信能力。因此,TCP/IP协议提出了端口(Port)的概念,用于标识通信的进程。TCP和UDP都使用与应用层接口处的端口和上层的应用进程进行通信。 • 在Internet传输层中,每一端口是用套接字(Socket)来描述的。应用程序一旦向系统申请到一个Socket,就相当于应用程序获得一个与其他应用程序通信的输入/输出接口。每一Socket表示一个通信端点,且对应有一个惟一传输地址即(IP地址,端口号)标识,其中,端口号是一个16位二进制数,约定256以下的端口号被标准服务保留,取值大于256的为自由端口。

  22. 2. 传输控制协议TCP • TCP是利用网络层IP协议提供的不可靠的通信服务,为应用进程提供可靠的、面向连接的、端到端的基于字节流的传输服务。 • TCP的连接管理可以分为三个阶段:建立连接、数据传输和释放连接。 • 一旦连接建立起来并且该连接处于活动状态时,TCP便可以产生并发送分组。当传送结束后 ,连接双方都要终止各自的连接。由于Internet是由不同的通信子网互连而成的,而不同的网络可能具有不同的拓扑结构、带宽、延迟以及分组大小等其他特性。因此,TCP的协议机制相对复杂,即要涉及到连接管理、流量控制、应答以及定时管理等。

  23. 1. TCP报文格式

  24. 2. 建立连接 在TCP协议中 ,建立连接要通过“三次握手”机制来完成。这种机制既可以由一方TCP发起同步握手过程而由另一方TCP响应该同步过程, 也可以由通信双方同时发起连接的同步握手。

  25. 建立连接的三次握手过程

  26. 3. 关闭连接 由于TCP连接是一个全双工的数据通道,一个连接的关闭必须由通信双方共同完成。当通信的一方没有数据需要发送给对方时,可以使用FIN段向对方发送关闭连接请求。这时,它虽然不再发送数据,但并不排斥在这个连接上继续接收数据。只有当通信的对方也递交了关闭连接请求后,这个TCP连接才会完全关闭。 在关闭连接时,既可以由一方发起而另一方响应,也可以双方同时发起。无论怎样,收到关闭连接请求的一方必须使用ACK段给予确认。实际上,TCP连接的关闭过程也是一个三次握手的过程。

  27. (a)三次握手释放连接的正常操作 (b)最后确认TPDU丢失的情况

  28. (c)应答丢失的情况 (d)应答丢失以及后续DR丢失情况

  29. 4. 流量控制 在数据传输过程中,TCP协议提供一种基于动态滑动窗口协议的流量控制机制,使接收方TCP实体能够根据自己当前的缓冲区容量来控制发送方TCP实体传送的数据量。 假设接收方现有2048 B的缓冲区空间,如果发送方传送了一个1024B的报文段并被正确接收到,那么接收方要确认该报文段。然而,因为它现在只剩下1024B的缓冲区空间(在应用程序从缓冲区中取走数据之前),所以,它只声明1024B大小的窗口,期待接收后续的数据。当发送方再次发送了1024B的TCP报文段后,由于接收方无剩余的缓冲区空间,所以,最终的确认其声明的滑动窗口大小为0。

  30. 此时发送方必须停止发送数据直到接收方主机上的应用程序被确定从缓冲区中取走一些数据,接收方重新发出一个新的窗口值为止。 当滑动窗口为0时,在正常情况下,发送方不能再发送TCP报文段。但有两种情况例外,一是紧急数据可以发送,比如,立即中断远程的用户进程;二是为防止窗口声明丢失时出现死锁,发送方可以发送1 B的TCP报文段,以便让接收方重新声明确认号和窗口大小。

  31. 5. PUSH操作 在一个TCP连接上进行正常数据传送过程中,发送方会按规定的方式来分段和发送上层协议递交的数据。这样,对于递交了该数据的上层协议来说,在数据发送完成前,无法知道自身递交的数据是否在发送。 PUSH(推进)数据机制可使得上层协议递交的数据能够迅速地从本地推向远地,而不受发送方当前发送窗口大小和发送方式所限制。 当发送方TCP收到上层协议的PUSH操作请求时,它将在流量控制允许的范围内进行数据分段并发送本地TCP缓冲区中所有数据(TCP段头中的PSH标志位被置位)。当接收方TCP收到带有PSH标志的TCP数据段后,将迅速把这些数据段递交给上层接收协议并结束当前的接收命令。

  32. 6. 紧急数据 任何一个TCP输出段都可以携带紧急数据(Urgent Data),以支持上层协议间紧急信息的快速传递。紧急数据必须位于数据段中所有数据的最前端,并在TCP段头中设置如下字段: (1)设置URG标志位,表示当前数据段中携带有紧急数据。 (2)设置紧急指针,紧急指针与当前输出段的序号之和指出数据流中紧急数据最后一个字节。对于一个包含该字节的数据段来讲,其紧急数据长度从段序号开始一直延续到该字节为止。

  33. 当接收方TCP收到含有紧急数据的TCP数据段后,首先把紧急数据从正常数据流中分离出来,并保存在适当地方。然后,以一定的方式通知上层协议,希望它尽快地响应和处理。 当发送方TCP接到上层协议递交的紧急数据后,并不是立即发送紧急数据,而是把它们排入正常数据的发送队列中。此后,发送方TCP每发送一个数据段都要带有URG标志和紧急指针,直到出现真正含有紧急数据的数据段为止;也就是说,含有URG标志和紧急指针的数据段不一定就含有紧急数据,只有包含紧急指针开始到该字节为止皆为紧急数据。 发送方TCP即使发送窗口为0时也要对带有URG标志的数据段实行强制发送,不管它们是否含有紧急数据。

  34. 7. 多路复用机制 TCP协议的多路复用功能是通过端口机制提供的。 端口是用于标识TCP连接的地址集,一个主机上的多个应用进程可以通过不同的端口同时使用TCP实体进行通信,从而达到多路复用的目的。 不同主机上的TCP实体对端口地址的选取是独立的,只要保证本地端口地址的惟一性就可以保证整个TCP连接的惟一性,即网间惟一的IP地址和本地惟一的端口地址将惟一地确定通信连接的一端。一个本地端口可以同时与多个远地端口建立通信连接。 在TCP协议内部定义了一个“周知”端口的集合,属于该集合的端口都对应了某一确定的上层服务,如FTP服务、Telnet服务等。

  35. 6.3 UDP协议 • 主要内容: • UDP协议数据单元 • UDP协议报文格式 • UDP协议工作原理

  36. 6.3 UDP协议 • UDP提供一种面向进程的无连接传输服务,这种服务不确认报文是否到达,不对报文排序,也不进行流量控制,因此UDP报文可能会出现丢失、重复和失序等现象。 • 对于差错、流量控制和排序的处理,则由上层协议根据需要自行解决,UDP协议本身并不提供。与TCP相同的是,UDP协议也是通过端口号支持多路复用功能,多个ULP可以通过端口地址共享单一的UDP实体。 • UDP是一种简单的协议机制,通信开销很小,效率比较高,比较适合于对可靠性要求不高,但需要快捷、低延迟通信的应用场合,如交互型应用。

  37. 1. UDP的协议数据单元TPDU • UDP的TPDU是由8B报头和可选部分的0个或多个数据字节组成。它在IP分组数据报中的封装及组成如图所示。

  38. UDP报文格式如图所示:

  39. UDP报头各个字段意义如下: (1)源端口号、目的端口号:分别用于标识和寻找源端和目的端的应用进程。它们分别与IP报头中的源端IP地址和目的端IP地址组合就惟一确定一个UDP连接。 (2)报文长度:包括UDP报头和数据在内的报文长度,以字节为单位,最小值为 8 (报头长度)。 (3)校验和:可选字段。若计算校验和,则对IP首部、UDP报头和UDP数据全部计算在内,用于检错,即由发送端计算校验和并存储,由接收端进行验证。否则,取值为0。

  40. 2. UDP工作原理 • 利用UDP协议实现数据传输的过程远比利用TCP协议要简单得多。UDP数据报是通过IP协议发送和接收的。发送端主机分配源端口,并指定目的端口,构造UDP的TPDU,提交给IP协议处理。网间寻址由IP地址完成,进程间寻址则由UDP端口来实现。当发送数据时,UDP实体构造好一个UDP数据报后递交给IP协议,IP协议将整个UDP数据报封装在IP数据报中,即加上IP报头,形成IP数据报发送到网络中。 • 在接收数据时,UDP实体首先判断接收到的数据报的目的端口是否与当前使用的某端口相匹配。如果匹配,则将数据报放入相应的接收队列;否则丢弃该数据报,并向源端发送一个“端口不可达”的ICMP报文。

  41. 6.4 TCP/IP实用程序 • TCP/IP实用程序涉及对TCP/IP进行故障诊断和配置、文件传输和访问、远程登录等多个方面。针对不同系统,实用程序的名字、选项参数及显示输出可能有所不同,本节介绍的实用程序均基于Windows 2000 Server系统。

  42. 1. IPConfig • IPConfig实用程序可用于显示当前的TCP/IP配置设置值。下面是几个常用的选项: • Default(缺省值,无选项) 当不带任何选项使用IPConfig时, 它为每个已配置的接口显示IP地址、子网掩码和缺省网关值。 • All 使用全部选项,IPConfig能为DNS和WINS服务器显示它已配置要使用的附加信息,并显示内置于本地网卡中的物理地址。 • Release和Renew 只对向DHCP服务器租用IP地址的计算机起作用。Release选项将接口租用的IP地址归还给DHCP服务器;Renew选项将向DHCP服务器重新租用接口的IP地址。 • 在UNIX/Linux系统中,可以使用ifconfig实用程序查看和修改TCP/IP配置信息。

  43. 2. Ping Ping程序是最基本的查找并排除网络故障的工具。Ping使用ICMP将数据报发送到另一个主机并等待应答。它能够以毫秒为单位显示发出回送请求到返回回送应答之间的时间量,还能显示TTL值。Ping命令最常用的方式是: ping hostname|ip_address 当检查网络是否有故障时,首先Ping主机自己的IP地址,这可以检测始发的网络接口的设置是否正确;然后,可以试着Ping缺省网关,直到Ping远程主机。这样,可以容易判断出问题的所在。

  44. 3. ARP ARP是一个重要的TCP/IP协议,用于确定对应IP地址的物理地址。使用ARP命令,可以查看主机ARP高速缓存中的当前内容,也可以用人工方法输入永久性的IP地址-物理地址对。 按照缺省设置,ARP高速缓存中的项目是动态的。每当发送一个指定地址的数据报且高速缓存中不存在当前项目时,ARP便自动增加项目;如果项目输入后不进一步使用,则IP地址-物理地址对就会在几分钟内失效。因此,如果ARP高速缓存中项目很少或者根本没有项目,则不必感到奇怪。

  45. 4. TraceRoute TraceRoute是TCP/IP查找并排除故障的主要工具。它不断用更大的TTL发送UDP数据报并探测数据经过的网关的ICMP回应。最后,它得到数据报从源主机到目标主机的路由信息。对于每个TTL,TraceRoute将发送三个数据报并报告每个数据报所花费的往返时间。这个功能可以用来检测网络瓶颈。TraceRoute命令最常用的方式是: traceroute hostname|ip_address Microsoft公司的操作系统使用命令tracert,而不使用traceroute。

  46. 5. Route Route实用程序用于增加、删除、修改和显示输出路由表中的项目。 6. Hostname Hostname实用程序用于返回本地主机名。

  47. 7. NetStat NetStat实用程序用于显示与IP、TCP、UDP和ICMP协议相关的统计数字。这些统计数字涉及发送和接收的数据报统计、差错统计等情况。 下面列出NetStat实用程序常用的选项: netstat –s 显示各个协议的统计数字。 netstat –e 显示以太网的统计数字。 netstat –r 显示路由表信息。 netstat –a 显示一个所有的有效连接的列表,包括已建立的连接、监听连接请求的端口。

  48. 8. Net Use/View Net Use和Net View能够使用和查看计算机之间的NetBIOS连接,它们是Net命令的子命令。NetBIOS使用通用命名约定(Universal Naming Convention,UNC)来标识计算机和访问共享点。共享点是指在共享计算机上的一个共享目录。UNC名字总是以两条反斜线开头,后随计算机名,计算机名与共享点名字之间用反斜线分隔。 Net Use用于建立或取消到达特定共享点的映像驱动器名的连接,Net View用于查看共享计算机上的共享资源列表。

  49. 练 习 题 1. 传输层提供的传输服务有哪些? 2. 传输协议分为几类?分别面向哪些网络服务? 3. TCP的连接管理分为几个阶段?简述TCP连接建立的“三次握手”机制。 4. 解释为什么传输连接突然释放掉就可能会丢失用户数据,而TCP的连接释放方法就可保证不丢失数据。 5. TCP和UDP有何主要区别?TCP和UDP的数据格式分别包含哪些信息? 6. 举三个例子来说明TCP/IP实用程序的作用。

More Related