第五章_传输层_第1页
第五章_传输层_第2页
第五章_传输层_第3页
第五章_传输层_第4页
第五章_传输层_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.1 传输层功能5.2 传输层服务5.3 传输层寻址5.4 用户数据报协议UDP5.5 传输控制协议TCP5.6 工程实例l 传输层提供了不同主机上应用程序进程之间的端到端的逻辑通信 l 所谓“端到端”(end to end)通信,即发送端和接收端之间的通信 传输层的主要功能有:(1) 分割与重组数据:将应用层的消息分割成若干子消息并封装为报文段。(2) 按端口号寻址:标识不同的应用进程,实现多个应用进程对同一个IP地址的复用。(3) 连接管理:完成端到端通信链路的建立、维护和管理。(4) 差错控制和流量控制 总之,传输层要向应用层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重

2、复、乱序等现象。l传输层主要提供两种服务,一种是面向连接的服务,由TCP协议实现,它是一种可靠的服务;一种是无连接的服务,由UDP协议实现,是一种的不可靠服务。l过程分为三步:(1)建立连接;(2)数据传输;(3)释放连接。 l 面向连接服务的特点是:(1)在服务进行之前必须建立一条逻辑链路后再进行数据传输,传输完毕后,再释放连接。在数据传输过程,好象一直占用了一条这样的逻辑链路。这条链路好比一个传输管道,发送方在一端放入数据,接收者从另一端取出数据。(2)由于所有的报文都在这个管道内传送,因此报文是按序到达目的地的,即先发送的报文先到达。(3)通过可靠传输机制保证报文传输的可靠性,报文不易丢

3、失。(4)由于需要管理和维护连接,因此协议复杂,通信效率不高。l 适合于对数据的传输可靠性非常高的场合,如文件传输、网页浏览、电子邮件等 l 无连接的服务就是通信双方不需要事先建立一条通信线路 l 而是把每个带有目的地址的报文分组送到网络上,由网络(如路由器)根据目的地址为分组选择一条恰当的路径传送到目的地l 无连接服务的特点是:(1)数据传输之前不需要建立连接;(2)每个分组都携带完整的目的节点地址,各分组在网络中是独立传送的;(3)分组的传递是失序的,即后发送的分组有可能先到达目的地;(4)可靠性差,容易出现报文丢失的现象,但是协议相对简单,通信效率较高。l 无连接的UDP是网络层“尽最大

4、努力投递”服务在传输层的进一步扩展,无法保证报文能否正确到达目的地 l端口就是应用进程的地址 l给应用进程分配一个传输层的地址目的是为了实现在传输层对同一个IP地址的多路复用与多路分解。 l端口只具有本地意义,即端口号是为了标志本主机应用层中的各个进程,因此两个不同主机的应用进程可以使用相同的端口 l端口分为两类:熟知端口(0-1023)和一般端口 l常用的熟知端口有:lUDP概述lUDP的数据报格式lUDP的应用l UDP协议是无连接的,即通信双方并不需要建立连接,这种通信显然是不可靠的。但是由于UDP简单,数据传输速度快、开销小。l 虽然UDP协议只能提供不可靠的数据传递,但是与TCP相比

5、,UDP具有一些独特的优势:(1)无需建立连接和释放连接,因此主机无需维护连接状态表,从而减少了连接管理开销。而无需建立连接也减少了发送数据之前的时延。 (2)UDP数据报只有8个字节的首部开销,比TCP的20个字节的首部要短得多。(3)由于UDP没有拥塞控制,因此UDP的传输速度很快,即使网络出现拥塞也不会降低发送速率。这对实时应用如IP电话,视频点播等是非常重要的。l 下图是一个典型的UDP应用例子DNS l DNS是将域名地址转换为IP地址的常见UDP应用,我们在浏览网页时,通常输入网站地址后第一步要做得就是使用DNS获得该网站的IP地址,我们将在应用层详细地学习DNS相关内容。DNS使

6、用UDP传送报文,但DNS服务器和DNS客户所使用的端口是不一样的。DNS服务器进程是一直在运行着,其熟知端口是53,在此端口上等待DNS请求的到来。 l 用户数据报UDP的报文格式由两部分构成:首部和数据 l 各字段意义如下:(1)源端口:即本主机应用进程的端口号;(2)目的端口:目的主机应用进程的端口号;(3)长度:UDP用户数据报的长度;(4)检验和:用于检验UDP用户数据报在传输中是否出错 l UDP用户数据报首部中检验和的计算方法有些特殊。在计算检验和时,要在UDP用户数据报之前增加12个字节的伪首部。 之所以称为“伪首部”,是因为这种伪首部并不是UDP用户数据报真正的首部。伪首部仅

7、用于计算检验和,既不向下传送也不向上递交。下图是伪首部的格式。伪首部包括源IP和目的IP地址以及UDP数据段的长度,此外还有一个字节的协议号17,17号协议就是UDP协议。IP分组如果封装的是UDP报文,那么在IP分组首部的协议号字段的值就是17。l UDP计算机检验和的方法和计算IP数据报首部检验和的方法相似。但网络层只校验IP分组首部,不对数据进行校验。而UDP则是首部和数据一起检验 l 由于UDP无需建立、简单高效且开销小的的特点,因此得到了广泛的应用 l 尽管UDP本身无法提供传输的可靠性,但是如果我们既想利用UDP简单高效的特性,又想提供一定程度上的传输保障,则可以通过在应用层增加相

8、应的可靠传输机制来完成。这样做可以使应用程序无需受限于由TCP拥塞控制机制引起的传 输速率的制约。目前很多应用就是基于这种思想的。应用应用应用层协议应用层协议传输层协议传输层协议域名服务域名服务DNSUDP简单文件传输简单文件传输TFTPUDP路由信息协议路由信息协议RIPUDP动态主机配置动态主机配置DHCPUDP简单网管简单网管SNMPUDPIP电话电话专用协议专用协议UDP流媒体通信流媒体通信专用协议专用协议UDP多播组管理多播组管理IGMPUDP电子邮件发送电子邮件发送SMTPTCP远程登录远程登录TELNETTCPWeb浏览浏览HTTPTCP文件传输文件传输FTPTCPlTCP概述l

9、可靠传输原理lTCP报文段格式lTCP连接管理lTCP的可靠传输lTCP流量控制lTCP拥塞控制l TCP协议是面向连接的,需要经历建立连接、数据通信和断开连接三个阶段。l 这里的“连接”并不是电路交换中的物理连接,也不是像虚电路那样的逻辑连接,它的连接状态信息完全保存在两个端系统中,即网络上的路由器并不知道哪两个端系统建立了TCP连接。 l TCP连接是全双工的,即通信双方可以同时发送和接收数据。例如主机H1和H2通信,建立TCP连接后,H1向H2发送数据时,也能接收来自H2的数据。l TCP的数据传输是可靠的,它具有重传、确认等可靠机制,一旦数据丢失或出错,那么发送方将重新发送数据,确保数

10、据的可靠到达。此外,相比于UDP,TCP还提供流量控制、拥塞控制机制,用于控制发送方的发送速率。 l传输不可靠的根源在于底层物理信道的误码率,其不可靠程度取决于误码率的大小。这种底层物理信道的不可靠性就需要上层的可靠传输协议来弥补。 l可靠传输的基本协议(1)理想的传输协议 (2)基本停等协议(3)增加序号机制的停等协议(4)增加超时机制的停等协议l 基本假设:物理信道不会出错;网络层总是准备好发送数据;数据链路层处理速度无限快l 显然,这是一种理想的数据传输,因为物理信道不会出错意味着本协议无需进行校验、纠错;而网络层和数据链路层的假设意味着无需进行流量控制和保序等操作。 l 基本假设如下:

11、物理信道会出错 ;网络层总是准备好发送数据;数据链路层处理速度有限l 与理想协议相比,物理信道此时会出错,因此需要有校验功能,数据链路层处理速度有限,意味着发送方不能无限度的发送数据,必须要等到接收方确认(ACK) 才能继续发送。一旦收到错误的确认,就要重新发送数据。 l 基本假设和第2个协议相同。但是在具有确认机制的可靠传输协议中, 仅仅一个模糊的确认是不够的,因为有重发数据的存在。接收方无法分辨收到的数据是新发的数据还是重新发送的数据,因此需要给发送的数据编号,称为序号。有了序号后,就能够有目的的确认。接收方也就不会混淆新发帧和重发帧了。 l 物理信道除了会出错外,还有可能发送数据丢失的现

12、象。而数据一旦丢失,就必须要进行重传。此时需要引入一个超时(Timeout)机制,当在定时器到期之前收到了来自接收方的确认,就取消定时器发送下一个数据。若定时器超时后仍未收到确认,则认为数据传输丢失(当然也有可能是确认信息丢失),发送方将重新发送数据。 l 具有确认、序号和超时机制的停等协议已经可以比较好的进行数据的可靠传输了l 图a)是没有出错的工作情况,其他图是停等协议出现问题的现象 l 滑动窗口协议为接收方定义了一个接收窗口,用以容纳允许接收的帧序号 ;发送方定义了一个发送窗口,用以容纳已经发送但尚未收到确认的帧序号 l 假设整个圆周所容纳帧的序号总数为N,当协议采用n位序号时N的最大值

13、为2n,接收窗口要小于N。接收窗口外的帧表示已经接收过的帧或者对方尚未发出的帧;接收窗口内的下界帧是是接收方期望收到的下一帧。当接收方收到接收窗口以外的帧时,丢弃此帧,但要发送重复的确认帧。 l 在正常情况下,接收方总是收到接收窗口下界帧,去掉帧头帧尾提取出分组交给网络层,然后将接收窗口向前滚动一格(即上下界帧加1并对N求模),同时发送确认帧。在不正常的情况下,接收窗口下界帧因为丢失、出错或延迟等原因而导致“尚未收到下界帧(序号i),就收到了窗口内非下界帧(序号j)”的情况出现。为了能按序提交数据给网络层,必须把这些帧缓存起来,并发送确认帧。当下界帧(序号i)到达时,收方将从i到m序号的帧对应

14、的分组按序交网络层,并释放相应缓冲区,接收窗口向前滚动(mi1) mod N格,并发送确认帧,其中m是缓冲区中与i相邻帧序号集合中的最晚序号。l 在GBN协议中,接收窗口大小为1,而发送窗口大于1。因此接收方的下界帧只有一个,相当于接收方只能按序接收数据l 发送窗口为4,接收方收到0,1号帧后返回ACK 0和ACK 1确认帧。发送方收到ACK 0和ACK 1后可以继续发送4,5号帧。 l 假设2号帧在传输过程中丢失,因此接收方无法收到2号帧。若此时3号帧到达,接收方认为这是个非窗口内的帧,因此丢弃此帧,并再次发送ACK 1,表明已经收到1号帧以前的数据,下面需要2号帧。 l 当3,4,5号帧到

15、达时,接收方都将返回ACK 1。发送方收到重复的ACK 1时,知道接收方还未收到2号帧,因此发送方重新从2号帧开始,发送2,3,4,5号帧,即回退了N步发送数据 l GBN协议的效率较低,尤其是当发送窗口很大的时候。而选择性重传则可以提高传输效率。l 在SR协议中,发送窗口和接收窗口都大于1。接收窗口在收到非下界帧的时候,不会将数据丢弃,而是缓存起来,并发送它对期望帧的确认。 l TCP报文段为首部和数据 l 和UDP用户数据报一样,在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。伪首部的格式UDP用户数据报的伪首部一样 l TCP的连接管理有三个阶段,即连接建立、数据传送和连接释

16、放。 l TCP采用三次握手(three-way handshake)建立连接,即发送方和接收方之间要经历3次交互。 lTCP释放连接的过程与连接建立的过程类似,释放连接需要经历四次握手。双方都必须给对方发出一个断开连接的请求报文并对之确认l TCP则提供可靠的数据传输服务,确保收发双方的数据传输按序、可靠、正确的传输。l 校验和、确认、滑动窗口协议、序号以及超时机制是确保数据可靠传输的基本技术 l 在TCP首部中,校验和字段用于检查TCP报文段是否在传递的过程中出错。序号字段用于对字节流中的每一个字节编号,使接收方能分辨收到的报文是新报文还是重复的报文。而通过首部中的确认号字段,发送方知道接

17、收方目前已经接收了哪个序号之前的数据,并根据此信息决定发送的下一个报文段中第一个字节的序号。此外,对某个序号的重复确认还用于报文的快速重传 l TCP的确认机制涉及到首部中的确认号字段。该字段是接收方希望收到发送方的下一个报文段中第一个字节的序号。发送方看到这个确认的序号,它就知道接收方已经正确接收了该序号之前的数据。为了提高效率,降低网络开销,可以采取捎带确认,如下图(b)所示。 l 累积确认 :接收方不必每个报文都要发送ACK报文 。l 推迟确认:为了减少ACK报文的数量,TCP规定,一个ACK报文可以推迟500ms发出。若500ms内有其他的报文到达,那么只需发送一个累积确认;若没有报文

18、到达,必须立刻发送一个ACK报文。 l 还有一种确认是重复的确认(或冗余确认),重复的确认发生在网络传输出现异常的情况,例如网络延迟很大时和接收方收到失序的报文时。这对可靠数据传输有着非常重要的作用。l 发送方每发送一个TCP报文,将为该报文设置一个定时器,同时将报文缓存。在定时器到期之前若收到接收方的确认信息,则将取消定时器,并将缓存的报文删除。 l 超时机制的关键是定时器的超时时长。定时器时间若太长,发送方必须要等待很长时间接收对方的ACK报文,耗费主机资源,同时也降低了通信双方的交互性和传输效率。但是定时器时间若设置太短,又容易导致过早超时的现象。 下图是过早超时的情况l 定时器的时间间

19、隔和网络的往返时延(Round Trip Time,RTT)有关。往返时延表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认)总共经历的时延 l 往返时延服从正态分布。其概率密度可表示为p(x)= 其中,a为数学期望;2为方差。22axe21 (a)数据链路层往返时延的概率分布密度 (b)TCP 往返时延的概率分布密度 lTCP采用Jacobson提出的算法来估算往返时间RTT, RTT的计算公式如下:RTT= (old_RTT)(1-)SAMPLE 其中称为修正因子,表示RTT与历史值的相关程度。对于TCP而言,一般取为0.875较为合适。l定时器时间间隔

20、Timeout除了与RTT有关,还跟往返时延的方差平方根有关 l 超时重传机制存在的一个问题是超时时间间隔(Timeout)往往太长。当一个报文丢失时,发送方需要等待很长的超时时间才重发丢失的分组,这增加了端到端延时。l TCP采取了一种快速重传的机制,即发送方一旦收到三个重复的ACK报文,就立刻重发报文,而不必等到定时器到期。 l 流量控制就是控制发送方的发送速率不会超过接收方从缓冲区中处理数据的速率。l TCP使用滑动窗口机制来实现流量控制,滑动窗口接收方根据自己接收数据的能力来限制发送方数据的传输。 l TCP对每个通信方都有一个接收窗口(Receive Window)参数,当发送方收到

21、TCP报文段时,从窗口字段中它可以获知接收方目前可以接收的数据量,根据这个值来调整发送方的发送速率。 l 糊涂窗口综合症是指接收方向发送方通告只有少量的接收缓冲区可用空间,导致发送方传送多个短报文段的情况。 l 例如,假设接收方接收缓冲区已用完,如果应用程序从缓冲区读走一个字符(例如在Telnet运用时,就有这种情况),接收缓冲区可用空间为1字节。接收方就通过报文段向发送方通告一个字节的接收窗口,于是发送方就发送一个字节数据的报文段,而接收方又发送一个确认报文段。由于报文段是封装在IP分组中的,发送一个报文段至少需要40字节的TCP首部和IP首部。因此,为了传送一个字节,需要三个报文段。 l 糊涂窗口综合症的危害是:(1)浪费网络通信容量 (2)带来不必要的计算负担 l 避免糊涂窗口综合症可以采用推迟通知和组块技术 l 造成拥塞的原因主要有:(1)路由器和主机的输入部分的处理速度慢(2)网络的局部或整体带宽容量小会加快拥塞的发生 l 拥塞控制即采取相应的措施,避免或减轻由于拥塞导致的网络性能异常。l 常用的拥塞控制方法有两种:网络辅助的拥塞控制和端到端的拥塞控制,TCP就是采用的是端到端的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论