运输层
运输层 |
运输层 |
首先,运输层之上的会话层、表示层及应用层均不包含任何数据传输的功能,而网络层又不一定需要保证发送站的数据可靠地送至目的站;其次会话层不必考虑实际网络的结构、属性、连接方式等实现的细节。根据运输层在七层模型中的目的和地位,它的主要功能是对一个进行的对话或连接提供可靠的传输服务;在通向网络的单一物理连接上实现该连接的利用复用;在单一连接上进行端到端的序号及流量控制;进行端到端的差错控制及恢复;提供运输层的其它服务等。运输层反映并扩展了网络层子系统的服务功能,并通过运输层地址提供给高层用户传输数据的通信端口,使系统间高层资源的共享不必考虑数据通信方面的问题。
基本功能:提供端到端(进程-进程)的可靠通信,即向高层用户屏蔽通信子网的细节,提供通用的传输接口。
1. 把传输地址映射为网络地址;2. 把端到端的传输连接复用到网络连接上;3. 传输连接管理;4. 端到端的顺序控制、差错检测及恢复、分段处理及QoS监测;5. 加速数据传送;6.将传输层的传输地址映射到网络层的网络地址;7. 将多路的端点到端点的传输连接变成一路网络连接;8. 传输连接的建立、释放和监控;9. 完成传输服务数据单元的传送;10. 端点到端点传输时的差错检验及对服务质量的监督。
运输层 |
【TCP/IP的运输层中的两个协议】用户数据报协议UDP(User Datagram Protocol):提供无连接服务;传输控制协议TCP(Transmission Control Protocol):提供面向连接服务。UDP和TCP都使用IP协议。1.用户数据报协议UDP(User Datagram Protocol)
UDP提供了不可靠的无连接传输服务。它使用IP携带报文,但增加了对给定主机上多个目标进行区别的能力。 UDP没有确认机制;不对报文排序;没有超时机制;没有反馈机制控制流量;使用UDP的应用程序要承担可靠性方面的全部工作。
2. 传输控制协议TCP(Tranmission Control Protocal)面向连接的、可靠的、端到端的、基于字节流的传输协议;TCP不支持多播(multicast)和广播(broadcast);TCP连接是基于字节流的,而非消息流,消息的边界在端到端的传输中不能得到保留;对于应用程序发来的数据,TCP可以立即发送,也可以缓存一段时间以便一次发送更多的数据。为了强迫数据发送,可以使用PUSH标记;对于紧急数据(urgent data),可以使用URGENT标记。
运输层 |
运输层 |
UDP提供的服务:UDP提供的服务与IP协议一样,是不可靠的、无连接的服务。但它于不同于IP协议,因为IP协议是网络层协议向运输层提供无连接的服务,而UDP是传输层协议,它向应用层提供无连接的服务。UDP有以下优点:发送数据之前不需要建立连接,发送后也无需释放,因此,减少了开销和发送数据的时延。UDP不使用拥塞控制,也不保证可靠交付,因此,主机不需要维护有许多参数的连接状态表。UDP用户数据报只有8个字节的首部,比TCP的20个字节的首部要短。由于UDP没有拥塞控制,当网络出现拥塞不会使源主机的发送速率降低。因此UDP适用实时应用中要求源主机的有恒定发送速率的情况。
【TCP提供的服务】1.端到端的面向连接的服务;2. 完全可靠性;全双工通信;3.流接口;4.应用程序将数据流发送给TCP;5.在TCP流中,每个数据字节都被编号(序号);6.TCP层将数据流分成数据段并以序号来标识;7.可靠的连接建立和完美的连接终止。TCP 协议是面向字节的。TCP 将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个序号。 TCP的编号与确认:TCP不是按传送的报文段来编号。TCP将所要传送的整个报文看成是一个个字节组成的数据流,然后对每一个字节编一个序号。在连接建立时,双方要商定初始序号。TCP就将每一次所传送的报文段中的第一个数据字节的序号,放在TCP首部的序号字段中。TCP的确认是对接收到的数据的最高序号(即收到的数据流中的最后一个序号)表示确认。但返回的确认序号是已收到的数据的最高序号加1。也就是说,确认序号表示期望下次收到的第一个数据字节的序号。由于TCP能提供全双工通信,因此通信中的每一方都不必专门发送确认报文段,而可以在传送数据时顺便把确认信息捎带传送。这样可以提高传输效率。
运输层 |
【TCP报文段的格式】从TCP报文段格式图可以看出,一个TCP报文段分为首部和数据两部分。
首部固定部分各字段的意义如下:
源端口/目的端口:TSAP地址。用于将若干高层协议向下复用
发送序号:是本报文段所发送的数据部分第一个字节的序号
确认序号:期望收到的数据(下一个消息)的第一字节的序号
首部长度:单位为32位(双字) ;
控制字段
紧急比特(URG):URG=1时表示加急数据,此时紧急指针的值为加急数据的最后一个字节的序号 ;
确认比特(ACK):ACK=1时表示确认序号字段有意义 ;
急迫比特(PSH):PSH=1时表示请求接收端的传输实体尽快交付应用层 ;
复位比特(RST):RST=1表示出现严重差错,必须释放连接,重建 ;
同步比特(SYN):SYN=1,ACK=0 表示连接请求消息。SYN=1,ACK=1 表示同意建立连接消息;
终止比特(FIN):FIN=1时表示数据已发送完,要求释放连接;
窗口大小:通知发送方接收窗口的大小,即最多可以发送的字节数 ;
检查和:12B的伪首部 首部 数据;
选项:长度可变。TCP只规定了一种选项,即最大报文段长度 ;
【TCP的流量控制】TCP使用滑动窗口机制来进行流量控制。当一个连接建立时,连接的每一端分配一个缓冲区来保存输入的数据。当数据到达时,接收方发送确认ACK,并包含一个窗口通告(剩余的缓冲区空间的数量叫窗口)。如果发送方收到一个零窗口通告,将停止发送,直到收到一个正的窗口通告。当接收方窗口为0后应用层取出小部分数据将产生一个比较小的窗口通告,使得对方发送一些小的数据段,效益很低。可以通过延迟发送窗口通告或发送方延迟发送数据来解决。使用了窗口机制以后,提高了网络的吞吐量。
【TCP如何发现拥塞】1.收到ICMP的源抑制报文;2.超时包丢失;3.TCP把发现包丢失解释为网络拥塞。
拥塞避免:指当拥塞窗口增大到门限窗口时,就将拥塞窗口指数增长速率降低为线性增长速率,避免网络再次出现拥塞。迅速递减:TCP总是假设大部分包丢失来源于拥塞,一旦包丢失,则TCP降低它发送数据的速率,这种方法能够缓和拥塞。慢启动:TCP开始时只发送一个消息;如果安全到达,TCP将发送两个消息;如果对应的两个确认来了,TCP就再发四个,如此指数增长一直持续到TCP发送的数据达到接收方通告窗口的一半,这时TCP将降低增长率。
TCP的重传机制:TCP重传机制是TCP中最重要和最复杂的问题之一。TCP每发送一个报文段,就设置一次记时器。只要记时器设置的重传时间到而还没有收到确认,就要重传这一报文段。TCP监视每一连接中的当前延迟,并适配重发定时器来适应条件的变化。重发定时器基于连接往返延迟:
RTTnew = (alpha*RTTold) ((1 - alpha)*RTTsample))
RTO = beta*RTTnew
运输层 |
TCP的运输连接管理:1.运输连接管理目的:使运输连接的建立和释放都能正常的进行;2.连接建立的采用的过程叫做三次握手协议或三次联络。三次握手(three-way handshake)方案解决了由于网络层会丢失、存储和重复分组带来的问题。三次握手正常建立连接的过程:主机 A 发出序号为X的建立连接请求CR TPDU。主机 B 发出序号为Y的接受连接确认ACK TPDU,并确认A的序号为X的建立连接请求。主机 A 发出序号为X的第一个数据DATA,并确认主机 B的序号为Y的接受连接确认。
运输层 |
TCP的有限状态机:TCP将连接可能处于的状态及各种状态可能发生的变迁,画成如下图所示的有限状态机。图中的每一个方框就是TCP可能具有的状态。方框中写的字是TCP标准中给该状态起的名字。状态之间的箭头表示可能发生的状态变迁。箭头旁边写上的字,表示是什么原因引起这种变迁,或表明发生状态变迁后又出现什么动作。
运输层 |
根据用户要求和差错性质,网络服务按质量可划为下列三种类型:
A型网络服务:具有可接受的残留差错率和故障通知率(网络连接断开和复位发生的比率),也就是无N-RESET 完美的网络服务。 B型网络服务:具有可接受的残留差错率和不可接受的故障通知率,即完美的分组递交但有N-RESET或N-ISCNNECT存在的网络服务。C型网络服务:具有不可接的残留差错,即网络连接不可靠,可能会丢失分组或出现重复分组,且存在N-RISCONNET的网络服务。 可见,网络服务质量的划分是以用记户要求比较高,则一个网络可能归于C型 ,反之则一网络可能归于B型甚至A型 。例如:而同一网络对银行系统来说则只能算作C型了。
运输层 |
五种协议级别中,级别0提供简单的运输连接,它是专为A型网络设计的。级别0提供具有商的连接建立、分段和差错报告的数据运输所需要复杂的功能,以及网络服务提供的流量控制和拆线功能。级别1以最小开销提供了基本的运输连接,它是专为B型网络连接设计的。级别1提供具有运输连接,拆线和在一个网络连接上支持;连续的运输连接的能,并提供检级别0的功能以及在没有运输服务用户参予的情况下由网络层告警的故障恢复能力。级别2具有在一个络网连接,它是为与A型网络连接而设计的,级别2具有流量的控制的运输连接的能力。它不是供检错或差恢复功能。级别3提供级别2的功能以外,还提供具有在无运输服务用户参的情况下,检测由网络告警的故障恢复能力。级别4除提供级别3的功能以外,还提供具在无运输服务用户参情况下,检测由网络服务提供者提供低质量服务而引起的故障,并从故障中自行恢复的能力。所检测的故障类包括分组丢失、失序、重份和残缺。级别4还提供增强抗网络故障的能力。它是专为C网络连接设计的。
运输层 |
运输层 |
运输层 |
(1)服务类型:运输服务有两大类,面向连接的服务和无连接的服务。面向连接的服务提供运输服务与用户之间逻辑连接的建立、维持和拆除,是可靠的服务,可提供流量控制、差错控制和序列控制。无连接服务即数据服务,只能提供不可靠的服务。
(2)服务等级:运输协议实体应该允许运输层用户能选择运输层所提供的服务等级,以利于更有效地利用所提供的链路、网络及互连网络的资源。可供选择的服务包括差错和丢失数据的程度、允许的平均延迟和最大延迟、允许的平均吞吐率以及优先级水平等。根据这些要求,可将运输层协议服务等级细分为以下四类:
1)可靠的面向连接的协议。2)不可靠的无连接协议。3)需要定序和定时运输的话音运输协议。4)需要快速和高可靠的实时协议。
运输层 |
(4)用户接口: 用户接口机制可以有多种 方式,包括采用过程调用、通过邮箱运输数据和参数、用 DMA方式在主机与具有运输层实体的前端处理机之间运输等。
(5)连接管理: 面向连接的协议需要提供建立和终止连接的功能。一般总是提供 对称的功能,即两个对话的实体都有连接管理的功能,对简单的应用也有仅对一方提供连接管理功能的情况。连接的终止可以采用立即 终止运输,或 等待全部数据运输完再终止连接。
(6)状态 报告:向运输层用户提供运输实体或运输连接的状态信息。
(7) 安全保密:包括对发送者和接收者的确认、数据的 加密以及通过和 解密以及通过保密的链路和节点的路由选择等安全保密的服务。
运输层 |
运输连接建立延迟是指在连接请求和相应的连接确认之间容许的最大延迟。运输连接失败概率是在一次测量样本中运输连接的失败总数与运输连接建立的全部尝试次数之比。连接失败定义为由于服务提供者方面的原因造成在规定的最大容许建立延迟时间内所请求的运输连接没有成功,而由于用户方面的原因造成的连接失败概率内。
运输层 |
运输连接拆除延迟是在用户发起除请求到成功地拆除运输连接之间可允许的最大延迟。运输连接拆除失败概率是引起拆除失败的拆除请求次数与在测量样本中拆除请求总次数之比。运输连接保护是服务提供者为防止用户信息在未经许可的情况下被监视或操作的措施,保护选项的无保护特性、针对被动监视的保护及针对增、删、改的保护等。运输连接优先权为用户提供了指示不同的连接所具有的不同的重要性的方法。运输连接的回弹率是指在规定时间间隔(如1秒)内,服务提供者发起的连接拆除(即无连接拆除请求的连接拆除指示)的概率。
运输层 |
OSI运输服务定义(ISO8072)没有具体给出QOS参数的编码或允许值,这些参数通常在用户与电信部门之间商定。为防止某些用户对QOS过于贪心,大多数电信部门对于较高质量的服务相应地也收取较高的费用。OSI运输服务原语:传输层为上一层的应用程序提供一个标准的原语集,为服务提供者和用户之间进行可靠的数据传输架起了一座“桥梁”。ISO规范包括四种类型10个运输服务原语,见表5.2。其中服务质量参数指示用户的要求,诸如吞吐量、延迟、可靠度和优先度等。运输 服务(TS)用户数据参数最多可达32个八进制用户数据。
http://course.cug.edu.cn/computernet/ch_8/ch_8_1.htm
http://www.ee.zsu.edu.cn/network/newpage14.htm