《计算机网络》PPT电子课件教案-第六章 传输控制.ppt_第1页
《计算机网络》PPT电子课件教案-第六章 传输控制.ppt_第2页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

第六章 传输控制,传输层是整个网络体系结构中的核心。它的任务是提供从源主机到目的主机之间可靠的和有效的数据传送。对于利用网络进行通信的两个主机来说,端-端的可靠通信,主要还是要靠传输协议来解决。,第六章 传输控制,根据应用的不同,传输层需要两种不同的传输协议,即面向连接的tcp和无连接的udp,当传输层采用tcp时,尽管下面的网络不可靠,这种逻辑通信信道就相当于一条全双工的可靠信道。而如果传输层采用udp,这种逻辑通信信道则是一条不可靠信道。,6.1 传输服务,6.1.1 服务质量 服务质量(qos)参数是在建立连接的过程中商定的: 优先级 连接建立时延 连接失败概率 残留误码率 平均(或最大)传送时延 平均(或最大)吞吐率 连接释放时延 连接释放失败概率 安全保护参数,6.1.2 传输服务原语,1.传输服务原语 传输服务原语允许传输用户(如应用进程)访问传输服务。,一个简单传输服务的原语,2.berkeley sockets(伯克利套接字),用于tcp的插口原语,6.1.3 寻址,当一个应用进程希望与一个远程应用进程建立一个连接时,它必须指明是与哪个应用进程相连(无连接的传输也有相同的问题:每个报文应该发给谁)。一般采用的方法是定义进程可以侦听连接请求的传输地址。在因特网中,这些端点是(ip地址,本地端口)对。我们使用术语传输服务访问点(tsap)来描述。,在面向连接的网络层上建立一个传输连接,可能采用的方案为: (1)服务器进程将自己连接到某个tsap m上,等待即将到来的客户请求。 (2)客户发出一个connect请求,将客户端tsap n设置为源地址,将tsap m设置为目的地址。,(3)客户机上的传输实体在机器上选择一个网络地址(如果网络地址不只一个),并在客户机和服务器间建立一个网络连接(对于无连接子网,就不会建立网络层连接)。使用该网络连接,客户机和服务器的传输实体就能通信了。,(4)客户机上的传输实体向服务器上对等实体发出请求:“我的tsapn和你的tsap m之间建立一个传输连接。如何?”。 (5)服务器上传输实体便询问tsap m上的服务器进程是否愿意接受一个新的连接,如果同意,则传输连接便建立成功。,客户进程如何知道服务器进程是连接到tsap m而不是别的tsap呢: 该服务器长期与tsap m相连,并且所有网络用户都知道 初始连接协议 名字服务器/目录服务器特殊进程,传输实体怎么知道该tsap所对应的网络层地址呢?这依赖于tsap地址的结构: 层次型地址 平面型地址,6.1.4 传输连接的建立与释放,1传输连接的建立 建立连接是一个复杂的问题。初看起来,一个传输实体似乎只需要向目的机器发送一个连接请求tpdu,并等待对方的连接接受应答就足够了。但是实际上网络可能丢失、存储和重复分组,这将产生很多问题。,6.1.4 传输连接的建立与释放,问题的关键是子网中存在延迟的重复分组。因此,需要采取另一种不同的方法。应该设计出一种方法来删除那些仍然在网络中“徘徊”的、过时的分组,不让这些过时的分组在子网中存留从而造成危害。,采用下面一种技术,可以将分组的生命周期限制在一个已知的最大值之内: (1)受限制的子网设计; (2)在每个分组内设置一个跳数计数器字段; (3)为每个分组加上时间戳字段。,2连接释放 终止连接有两种方式: (1)非对称释放:只要通信的任何一方挂机,连接就中断 (2)对称释放:将连接按两个独立的单向连接来处理,要求每一方分别释放连接。,非对称释放很突然,可能会丢失数据:,非对称的突然释放连接将造成数据丢失,必须采用一个更加完善地连接释放协议来避免数据丢失。一种方法是采用对称释放方式,每个方向独立释放本方的连接。也可以采用3次握手的方法:,三次握手的正常情况 最后的ack tpdu丢失,应答丢失 应答丢失以及后续的dr丢失,6.2 用户数据报协议(udp),6.2.1 udp的基本概念 udp在ip的基础上增加了一个短的报头。udp通过使用端口号来完成进程到进程的通信。udp提供的是一种不可靠的交付,它没有流量控制机制,在收到分组时也没有确认。当然它还是提供了某种程度的差错控制。如果udp检测出在收到的分组中有差错,它就悄悄地丢弃这个分组。,1udp协议主要的用途 (1)udp适用于这样的进程通信,它需要简单的请求响应,而 较少考虑流量控制和差错控制。 (2)udp适用于具有内部流量控制和差错控制机制的进程。,(3)对多播和广播来说,udp是个合适的传输协议,多播和广播能力已经嵌入在udp软件中,但没有嵌入在tcp软件中。 (4)udp可用于管理进程,如snmp。 (5)udp可用于某些路由选择更新协议,如路由信息协议(rip)。,2udp的优点 (1)发送数据之前不需要建立连接,发送数据完后不需要释放连接, 因此减少了开销和发送数据之前的时延。 (2)udp不使用拥塞控制,不保证可靠交付,因此主机不需要维持具有许多参数的、复杂的连接状态表。,(3)udp用户数据报只有8个字节的首部开销,比tcp的20个字节的首部要短。 (4)由于udp没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。,3udp的报头格式 一个udp数据段包含一个8字节的报头和数据部分。由4个字段组成。每个字段两个字节。,udp报头,各字段意义如下: (1)源端口:源端口号。 (2)目的端口:目的端口号。 (3)udp长度:udp用户数据报的长度。 (4)udp检验和:防止udp用户数据报在传输中出错。,udp用户数据报首部中检验和的计算方法有些特殊。在计算检验和时,要在udp用户数据报之前增加12个字节的伪首部。这是专门为了计算检验和而临时得到的一个过渡性的udp用户数据报。伪首部数据并不参加向上层模块或下层模块的传递,仅仅是为了计算检验和 具体的检验和计算方法,udp和ip相似,不同的是ip只检验ip数据报的首部,而udp是将首部和数据部分一起都检验。,udp使用了一些熟知端口 :,6.2.2 udp的操作,1无连接服务 udp发送出的每一个用户数据报都是独立的数据报,每一个用户数据报可以走不同的路径。使用udp的进程不能向udp发送数据流,也不能期望udp将这个数据流分割成为许多不同的相关联的用户数据报。,6.2.2 udp的操作,2流量控制和差错控制 udp没有流量控制,因而也没有窗口机制。除检验和外,udp也没有差错控制机制。缺少流量控制和差错控制意味着使用udp的进程必须要提供这些机制。,3排队 在udp中,队列是与端口相关联在一起的 :,udp中的队列,(1)客户端 每次当进程启动时,它就从操作系统请求一个端口号,有的实现是创建一个入队列和一个出队列与每一个进程相关联。而有的实现只创建与每一个进程相关联的入队列。 客户进程使用在请求中指明的源端口号把报文发送到出队列。udp逐个地把报文取出,加上udp首部,交付给ip。,当报文到达客户端时,udp要检查一下,对应于这个用户数据报中目的端口号字段指明的端口号是否已经创建了。若已经有了这样的队列,udp就把收到的用户数据报放在该队列的末尾。若没有这样的队列,udp就丢弃这个用户数据报,并请求icmp协议向服务器端发送不可达报文。所有发送给特定客户程序的入报文,不管是来自同样的或不同的服务器,都被放入同一个队列。,(2)服务器端 在最简单的情况下,服务器在它开始运行的时候就用它的熟知端口创建入队列和出队列。只要服务器进程在运行,这些队列就一直是打开的。 当报文到达服务器进程时,udp要检查一下,对应于这个用户数据报中目的端口号字段指明的端口号是否入队列已经创建了。若已经有这样的队列,udp就把收到的用户数据报放在这个队列的末尾。,若没有这样的队列,udp就丢弃这个用户数据报,并请求icmp协议向客户端发送端口不可达报文。所有发送给特定服务器程序的入报文,不管是来自同样的或不同的客户,都被放入同一个队列。 当服务器想要回答客户时,它就使用在请求中指明的源端口号将报文发送到出队列。udp逐个地把报文取出,加上udp首部,交付给ip。,6.3 传输控制协议(tcp),1.tcp报文段首部格式 tcp对所有的消息采用了一种简单的格式,包括携带数据的消息,确认以及三次握手中用于创建和终止一个连接的消息。tcp使用段来指明一个消息。,tcp报文段首部,首部各字段的意义如下: (1)源端口和目的端口:跟udp相似,分别是源端口号和目的端口号,各占两个字节。,tcp使用的熟知端口号,(2)序号:占4字节。tcp是面向数据流的。tcp把在一个tcp连接中传 送的数据流中的每一个字节都编上一个序号。 (3)确认号:占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号,也就是期望收到的下一个报文段首部的序号字段的值。 。,(4)数据偏移:占4bit,它指出tcp报文段的数据起始处距离tcp报文段的起始处有多远。这实际上就是tcp报文段首部的长度。 (5)保留:占6bit,保留为今后使用,但目前应置为0。,下面有6个比特是说明本报文段性质的控制比特。 (6)紧急比特urg:当urg1时,表明紧急指针字段有效。它告诉系统 此报文段中有紧急数据,应尽快传送(相当于优先级高的数据),而不是按原来的排队顺序来传送。 (7)确认比特ack:当ack1时确认号字段才有效。当ack0时,确认号 无效。,(8)推送比特psh:发送端tcp将推送比特psh置1,并立即创建一个 报文段发送出去。接收tcp收到推送比特置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。,(9)复位比特rst:当rst=1时,表明tcp连接中出现严重差错(如由于主机崩溃或其它原因),必须释放连接,然后再重新建立传输连接。,(10)同步比特syn:在连接建立时用来同步序号。当syn=1时而ack0时,表明这是一个连接请求报文段。对 方若同意建立连接,则应在响应的报文段中使syn=1和ack=1。,(11)终止比特fin:用来释放一个连接。当fin=1时,表明此报文段的发送端的数据已发送完毕,并要求释放传输连接。,(12)窗口:占2字节。窗口字段用来控制对方发送的数据量,单位为字节。 (13)检验和:占2字节。检验和字段检验的范围包括首部和数据两部分。和udp用户数据报一样,在计算校验和时,要在tcp报文段的前面加上12字节的伪首部。 (14)选项:长度可变。tcp只规定了一种选项,即最大报文段长度mss。,2.tcp的服务 (1)tcp则允许发送进程以字节流的形式来传递数据,而接收进程也把数 据作为字节流来接收。 (2)tcp提供全双工服务,即数据可以在同一时间双向流动。,(3)tcp通过使用确认机制来检查数据是否安全和完整地到达,由此提供了可靠传输服务。 (4)tcp提供的服务是面向连接的服务,当然应该注意的是这是一条虚连接而不是物理连接。,6.3.1 tcp的可靠传输,传输控制协议(tcp)是专门用于在不可靠的因特网上提供可靠的、端-端的字节流通信的协议。因此,大部分互联网应用都建立在tcp的基础之上。比如,应用层的smtp、telnet、http和ftp都使用tcp协议。,6.3.1 tcp的可靠传输,tcp实现可靠性最重要的技术叫重发。当tcp发送数据时,发送方通过重发来解决报文丢失的问题,且通信的双方都要参与。 由于tcp允许多个应用程序并发地与多个目的地进行通信,并且网络传输条件影响着延迟,因此,tcp必须处理各种可能迅速变化的延迟。,6.3.2 tcp的流量控制,流量控制定义了源端在收到从目的端发来的确认之前可以发送的数据量。在极端的情况下,传输层协议可以只发送一个字节的数据,然后在发送下一个字节之前等待确认。另一种极端情况就是传输层协议能够发送它的全部数据,而不必担心确认信息。,6.3.2 tcp的流量控制,tcp采用一种称为窗口的方法。所谓的窗口就是一个缓存,缓存是用来暂时存放从应用进程传递来并准备发送的数据。 为了完成流量控制,tcp使用滑动窗口协议。这时,两个主机为每一个连接各使用一个滑动窗口。,1.发送缓存,发送缓存,2.接收缓存,接收缓存,3.发送窗口,发送缓存和发送窗口,4.发送窗口的滑动,发送窗口的滑动,5.发送窗口的扩展,发送窗口的扩展,6.发送窗口的缩小,发送窗口的收缩,7.发送窗口的关闭 在接收缓存塞满时,接收窗口的值是零。把这个消息通知给发送端,发送端就关闭它的窗口(窗口的左边和右边重合了)。在接收端宣布非零接收窗口之前,发送端不能再发送任何字节。,关于滑动窗口,需要强调的是: (1)源端并不一定必须发送整个窗口值的数据。 (2)发送窗口的大小可以由目的端来增大或减小。 (3)目的端可以在任何时候发送确认。,6.3.3 tcp的拥塞控制,拥塞是指当网络中存在过多的报文而导致网络性能下降的一种现象。拥塞控制就是网络节点采取一定措施来避免拥塞的发生或者对拥塞的发生做出反应。 现行tcp总是假定大部分包丢失来源于拥塞(必须注意,在无线环境下,这个假定是不正确的)。当发现包丢失时,tcp降低它重发数据的速率。,6.3.3 tcp的拥塞控制,在拥塞控制算法中,其实包含了拥塞避免和拥塞控制这两种不同的机制。拥塞控制是“恢复”机制,它用于把网络从拥塞状态中恢复出来;而拥塞避免是“预防”机制,它的目标是避免网络进入拥塞状态,使网络运行在高吞吐量、低时延的状态下。,1.拥塞窗口 发送端有两种信息:接收端通知的窗口值和拥塞窗口值。真正的窗口值是这两个窗口中的较小者。即:真正的窗口值min(接收窗口值,拥塞窗口值) 2.拥塞控制 发送端tcp使用以下三种拥塞控制策略:,(1)慢启动和加法增大 慢启动:在连接的开始,tcp把拥塞窗口值设置为一个最大报文段。每收到一个确认,tcp把拥塞窗口值增加一个最大报文段,直到拥塞窗口值达到一个门限值(慢开始门限)。 加法增大:当窗口值达到慢开始门限时,窗口值每经过一个往返时延(rtt)

温馨提示

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

评论

0/150

提交评论