传输层的定义、功能和应用_第1页
传输层的定义、功能和应用_第2页
传输层的定义、功能和应用_第3页
传输层的定义、功能和应用_第4页
传输层的定义、功能和应用_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、传输层的定义、功能和应用传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立 目录传输服务传输协议的要素传输层协议 传输层的位置介于通信子网和资源子网之间,对高层用户屏蔽了通信的细节弥补了通信子网所提供服务的差异和不足,提供端到端之间的无差错保证传输层工作的简繁取决于通信子网提供服务的程度图8-1 传输层在OSI模型中的位置传输实体在传输层内部,完成该项工作的硬件和(或)软件称为传输实体(Transport Entity)。传输实体可能在下列软、硬件环境中:(1)操作系统的内核中;(2)一个单独的用户进程中;(3)网络

2、应用的程序库中;(4)网络接口卡上。传输实体要为很多应用程序服务,所以对每一个应用程序在传输层都有一个标识,这个标识就叫做传输地址。 传输层提供的传输服务图8-2 网络层、传输层和应用层 传输层提供的传输服务面向连接的服务:通信可靠对数据有校验和重发面向非连接的服务:对数据无校验和重发,通信速率高传输服务原语传输服务原语是应用程序和传输服务之间的接口TPDU 传输协议数据单元TPDU的发送过程 图8-3 TPDU、分组和帧的嵌套关系 伯克利套接字(Berkeley Socket) Socket Programming Example:Internet Client code using soc

3、kets.6-6-1Socket Programming Example:Internet (2)Server code using sockets.典型的套接字应用过程图8-4 典型的套接字应用过程 传输协议的要素寻址连接建立释放连接流量控制和缓冲策略多路复用崩溃的恢复寻址两个程序要建立连接时必须指明对方是哪一个应用程序,这个标记称为传输层地址,也称为传输服务访问点TSAP 在TCP协议中即TCP的端口号 网络层地址称为网络服务访问点NSAP(Network Service Access Point)在IP协议中即IP地址TSAP & NSAP图8-5 TSAP、NSAP和连接 如何知道对方

4、的TSAP 初始连接协议,由进程服务器代理转接多种不同的服务请求图8-6 主机1的用户进程如何与主机2的时间服务器建立连接 连接建立连接的建立:需要解决网络上的延迟与丢失引起的重复分组常用的方法:三次握手三次握手 CR=CONNECTION REQUEST. (a) 正常的连接建立过程 (b)由于延迟而重复的TPDU的连接过程 (c) 过期的CONNECTION REQUEST 和过期的 ACK都出现释放连接非对称释放一方中止连接则连接即告中断对称释放A提出中止请求,B同意即中止非对称释放突然释放连接将造成数据丢失对称释放a) 三次握手释放连接b) 最后的确认丢失,定时器超时自动放弃连接对称释

5、放(2)c) 应答丢失,发送端重发DRd) 应答丢失,重发的DR也丢失消除半接通连接的方法当第一个DR和所有N次重发都丢失的情况下,协议失败解决方法:如果在一段时间内没有收到任何TPDU,连接便自动释放。需要设定时器,定时发送伪TPDU以保持连接如连续丢失很多伪TPDU,释放连接流量控制和缓冲策略流量控制是发送方和接收方之间的传输速率上的匹配为使没有得到确认的TPDU在超时后的重发,通常必须在缓冲区中暂存流量控制和缓冲策略举例 图8-10 利用滑动窗口机制进行流量控制举例 必须考虑传输速率 应用进程把数据传送到TCP的发送缓存后,就由TCP来控制发送任务。可以用不同的机制来控制TCP报文段的发

6、送时机。例如:1)TCP维持一个变量,它等于最大报文段长度MSS。只要缓存中存放的数据达到MSS字节时,就组装成一个TCP报文段发送出去。2)由发送方的应用进程指明要求发送报文段,即TCP支持的推送( push )操作。3)发送方的一个计时器期限到了,这时就把已有的缓存数据装入报文段(但长度不能超过MSS)发送出去。 Nagle算法描述如下:若发送应用进程把要发送的数据逐个字节地送到TCP的发送缓存,则发送方就把第一个数据字节先发送出去,把后面到达的数据字节都缓存起来。当发送方接收对第一个数据字符的确认后,再把发送缓存中的所有数据组装成一个报文段再发送出去,同时继续对随后到达的数据进行缓存。只

7、有在收到对前一个报文段的确认后才继续发送下一个报文段。当数据到达较快而网络速率较慢时,用这样的方法可明显地减少所用的网络带宽。Nagle算法还规定:当到达的数据已达到发送窗口大小的一半或已达到报文段的最大长度时,就立即发送一个报文段。 糊涂窗口综合症如:TCP接收方的缓存已满,而交互式的应用进程一次只从接收缓存中读取1字节(这样就使接收缓存空间仅腾出1字节),然后向发送方发送确认,并把窗口设置为1个字节(但发送的数据报为40字节)。接着,发送方又发来1个字节的数据(发送方的IP数据报是41字节)。接收方发回确认,仍然将窗口设置为1个字节。这样,网络的效率很低。 糊涂窗口综合症要解决这个问题,可

8、让接收方等待一段时间,使得或者接收缓存已有足够空间容纳一个最长的报文段,或者等到接收方缓存已有一半空闲的空间。只要出现这两种情况之一,接收方就发回确认报文,并向发送方通知当前的窗口大小。此外,发送方也不要发送太小的报文段,而是把数据报积累成足够大的报文段,或达到接收方缓存的空间的一半大小。 多路复用向上多路复用:多个传输层的连接公用一个网络层的连接,将提高网络层连接的利用率向下多路复用:一个传输层的连接通过多个网络层连接来发送,可增加其有效带宽传送,速率将得到提高崩溃的恢复(1)网络崩溃的恢复1)数据报子网数据报子网是不可靠的,在传输层有一个缓冲区用来保存所有已发送的但还没收到确认的数据。如果

9、传输层对丢失的TPDU留有副本,可以通过重发来解决。2)虚电路子网虚电路子网不保存发送数据的副本,在网络恢复后重新建立连接,并询问远端的传输实体哪些TPDU已经收到(只需知道最后收到的数据的序号就可以知道接收方哪些数据收到了,哪些没有收到),没有收到的则必须重发。主机崩溃的恢复服务器崩溃然后很快重新起动,所有连接登记表都已经初始化重新连接后客户端可能处于两种状态之一S1有一个未被确认的TPDUS0没有未被确认的TPDU 在一般情况下,远端服务器的传输实体在接收到一个客户端的TPDU后先发送一个确认,当确认发生后又对应用进程执行一个写操作,如存盘或交上层,向输出流写一个TPDU和发送一个确认是两

10、个不同的而又不可分的事件,但两者不能同时进行确认和写操作的问题发送确认然后再进行写操作,中间发生崩溃此时客户端将收到这个确认,当崩溃恢复声明到达时,它处于状态S0,客户端将因此不再重发,因为它错以为那个TPDU已经到达服务器端,客户端的这种决定会导致丢失一个TPDU先进行写操作然后再发送确认,中间发生崩溃设想已经完成了写操作,但在确认发出前系统发生了崩溃,此时客户端将处于状态S1,并因此重传数据,从而会导致在服务器应用进程的输出流上出现一个无法检测的重复的TPDU无论怎样对发送方和接收方的协议进行编程,总是存在协议不能正确地从故障中恢复的情况传输层无法彻底解决该问题将由高一层协议处理传输层协议

11、TCP和UDP都是Internet提供的传输层协议TCP(RFC 793)是面向连接的UDP(RFC 768)是面向非连接的TCP协议是面向连接的传输层协议,其数据段的传输不会发生丢失、重复、乱序等情况,是提供可靠性传输的协议,所以其协议开销也较大UDP协议是无连接的数据报协议,它不提供可靠性服务,但其相应的协议开销也较小,效率较高UDP的主要特点 1)UDP是无连接的传输层协议 2)UDP是面向报文的 3)UDP没有拥塞控制4)UDP使用尽最大努力交付5)UDP支持一对一、一对多、多对一和多对多的交互通信 6)UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短 UDP报文格式U

12、DP源端口:UDP端口号,当不需要返回数据时源端口域置0UDP目的端口:UDP端口号UDP长度:整个数据段的长度包括头部和数据部分,以字节计,最小值为8,仅头部长度UDP校验和:可选域全0为未选,全1表示校验和为0UDP 的封装与协议的分层 应用层UDPTCPIP与各种网络接口图8-12 分层模型中的 UDP 层 UDP 的封装与协议的分层 图8-13 UDP 的封装UDP头部UDP数据区IP头部IP数据区UDP 的复用、分解与端口 图8-14 UDP的分解操作 RPC(Remote Procedure Call,远过程调用) RPC是UDP的一个重要应用,它对程序员屏蔽了网络运作的细节。RP

13、C的思想是尽可能地使一个远过程调用看起来像本地过程调用一样。将网络中的请求-应答交互表示成过程调用形式,例如:调用get-IP-address(主机名)将发送一个UDP包给DNS服务器,并等待回答。 RTP(Real-Time Transport Protocol,实时传输协议) UDP的另一个重要应用是多媒体数据的传输,RTP是专门用于多媒体传输的一个协议,它基于UDP协议。RTP被放在用户空间中,并且通常运行在UDP之上。它的操作方式如下:多媒体应用通常包含多个音频、视频、文字流、可能还包括其他的流。这些流被送入到RTP库中,而RTP库位于多媒体应用的用户空间中。然后,这些RTP分组被填充

14、到一个套接字中。在套接字的另一端生成UDP分组,这些UDP分组被嵌入到IP分组中。如果当前计算机是在以太网上,则这些IP分组被放到以太网帧中以便传输出去。 RTP(Real-Time Transport Protocol,实时传输协议) 图8-15 RTP在协议栈中的位置 RTP(Real-Time Transport Protocol,实时传输协议) 图8-16 分组的嵌套情况 RTP净荷UDP净荷IP净荷以太网净荷以太网头 IP头 UDP头 RTP头RTP头的结构 TCP提供的服务面向连接(Connection Orientation)端到端的服务(End-to-End Communica

15、tion)完全可靠性服务(Complete Reliability)全双工服务(Full Duplex Communication)流接口(Stream Interface)可靠的连接建立(Reliable Connection Startup)完美的连接终止(Graceful Connection Shutdown)TCP 提供的可靠传输服务有如下五个特征1)面向字节流 2)虚电路连接3)有缓冲的传输 4)全双工连接5)点对点的传输滑动窗口概念 图8-18 带重传功能的肯定确认协议 图8-19 分组丢失引起超时和重传 滑动窗口概念 图 8-20 (a) 窗口内包括 8 个分组的滑动窗口协议

16、(b) 收到对 1 号分组的确认信息后,窗口滑动,使得 9 号分组也能被发送 滑动窗口概念 图 8-21 使用窗口大小为 3 的滑动窗口协议传输分组示例 TCP 报文格式 0 1516 31源端口( source port )号 目的端口( destination port )号 顺序号( sequence number ) 确认号( acknowledgement number ) TCP报头长度 保留 URGACK PSHRSTSYN FIN窗口大小( window size ) 校验和( checksum ) 紧急指针( urgent pointer ) 可选项( 0 或多个 32 位字

17、) 数据( 0 或多个字节) TCP 连接建立与关闭 图8-23 TCP建立连接的三次握手报文序列 TCP 连接建立与关闭 图8-24 用于TCP关闭连接的修改的三次握手报文序列 TCP 连接建立与关闭从一方的 TCP 来说,连接的关闭有三种情况: 1)本方启动关闭 2)对方启动关闭 3)双方同时启动关闭 TCP状态机TCP 状态表 状 态 描 述 CLOSED 关闭状态,没有连接活动或正在进行 LISTEN 监听状态,服务器正在等待连接进入 SYN RCVD 收到一个连接请求,尚未确认 SYN SENT 已经发出连接请求,等待确认 ESTABLISHED 连接建立,正常数据传输状态 FIN

18、WAIT 1 (主动关闭)已经发送关闭请求,等待确认 FIN WAIT 2 (主动关闭)收到对方关闭确认,等待对方关闭请求 TIMED WAIT 完成双向关闭,等待所有分组死掉 CLOSING 双方同时尝试关闭,等待对方确认 CLOSE WAIT (被动关闭)收到对方关闭请求,已经确认 LAST ACK (被动关闭)等待最后一个关闭确认,并等待所有分组死掉 (1)正常状态转换 图8-26 TCP正常连接建立和终止所对应的状态 (2)同时打开 图 8-27 同时打开期间报文段的交换 (3)同时关闭 图 8-28 同时关闭期间的报文段交换 (4)其它情况 1)服务方打开:从 LISTEN 到 SY

19、N_SENT 的变迁是正确的,它由服务器端主动发出 SYN 报文段,但 Berkeley 版的 TCP 软件并不支持它。 2)重置连接(复位):只有当 SYN_RCVD 状态是从 LISTEN 状态(正常情况)进入,而不是从 SYN_SENT 状态(同时打开)进入时,从 SYN_RCVD 回到 LISTEN 的状态变迁才是有效的。这意味着如果我们执行被动打开(进入 LISTEN ),收到一个 SYN ,发送一个带 ACK 的 SYN (进入 SYN_RCVD ),然后收到一个 RST ,而不是一个 ACK ,便又回到 LISTEN 状态并等待另一个连接请求的到来。 3)快速关闭:在主动关闭后的

20、 FIN_WAIT_1 状态,如果收到的报文段不仅是 ACK ,而且还包括对方的 FIN 信号,则直接进入 TIME_WAIT 状态,给对方发送 ACK 报文段,然后等待超时。TCP重传策略 TCP协议用于控制数据段是否需要重传的依据是设立重发定时器。在发送一个数据段的同时启动一个重发定时器,如果在定时器超时前收到确认,就关闭此定时器;如果定时器超时前未收到确认,则重传该数据段。 TCP重传策略 这种重传策略的关键是对定时器初值的设定。TCP采用了一种自适应算法,它记录一个报文段发出的时间,以及收到相应确认的时间。这两个时间之差就是报文段的往返时间RTT。TCP保留了RTT的一个加权平均往返时

21、间RTTs(又称为平滑的往返时间,S表示Smoothed。因为进行的是加权平均,所以得出的结果更加平滑)。每当第一次测量到RTT样本时,RTTs值就取为所测量到的RTT样本值。但以后每测量到一个新的RTT样本,就按下式重新计算一次RTTs:新的RTTs = (1-)(旧的RTTs)+ (新的RTT样本) (8-1) TCP重传策略 在上式中,0 1。若很接近于零,表示新的RTTs值和旧的RTTs值相比变化不大,而对新的RTT样本影响不大(RTT值更新较慢)。若接近于1,则表示新的RTTs值受新的RTT样本的影响较大(RTT值更新较快)。RFC 2988推荐的值为1/8,即。用这种方法得出的加权平均往返时间RTTs就比测量出的RTT值更加平滑。显然,超时计时器设置的超时重传时间RTO (RetransmissionTime-Out)应略大于上面得出的加权平均往返时间RTTs。RFC 2988建议使用下式计算RTO: RTO = RTTs + 4RTTd (8-2) TCP重传策略 而RTTd是RTT的偏差的加权平均值,它与RTTs和新的RTT样本之差有关。RFC 2988建议这样计算RTTd。当第一次测量时,RTTd值取为测量到的RTT样本值的1/2。在以后的测量中,则使用下式计算加权平均的RTTd:新的RTTd = (1-) (旧

温馨提示

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

评论

0/150

提交评论