版权归原作者所有,如有侵权,请联系我们

[科普中国]-未定比特率

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

基于UBR的TCP传输

UBR业务类型不包括流控机制,因此依赖于传输层提供流控服务,当TCP接入UBR业务时,如果信元在ATM层被丢弃,TCP要使用自身的流量控制机智来恢复被丢弃信元所在的帧。

如果ATM交换机的缓存有限,ATM层中一个信元的丢弃也会导致TCP层中整个帧的重传,也就是说,目的端会丢掉该信元所在的整个帧,TCP会因超时而重传整个帧,因而导致TCP吞吐量的降低。

当交换机具有足够的缓存且TCP层无帧丢失时,基于UBR业务的TCP可获得最大的吞吐量,在缓存有限的情况下,采用以下策略可改善TCP层的吞吐量:

选择适当的信元丢弃策略:丢弃策略决定何时丢弃信元,对UBR业务来说,为达到高的吞吐量,信元丢弃策略起着关键的作用,比较常用的是早期帧丢弃策略(EPD)闭,当交换机中无缓存可用时会将属于同一个帧的所有信元丢弃,从而使TCP层的吞吐量保持在一个较高的水平。

缓存分配策略:缓存分配策略决定如何将缓存分配给信元,应尽可能地在不同的TCP链路中公平地分配缓存。尽管缓存的服务策略非常简单(一般采用先来先服务机制),但缓存的分配策略十分复杂,可通过有选择地丢弃帧来提高缓存分配的公平性。

带宽分配策略:带宽分配策略决定如何在所有连接中公平地分配可用带宽,带宽的分配可通过如下两个步骤实现:首先,将整个可用带宽分配给不同的业务类型(如CBR,VBR,ABR,UBR);其次,在每一种业务类型中以每一条虚连接作为一个分配单位。第一个步骤决定了在高优先级业务接受服务后UBR业务可分配的带宽,第二个步骤决定了在UBR业务中每个连接可获得的带宽2。

基于UBR的TCP特性和缓存需求UBR业务类型没有流控措施,因此它只能依靠传输层提供流控功能。当TCP应用于UBR业务并且信元在层被ATM丢弃时,TCP必须利用它的拥塞机制来恢复丢失的分组。

在ATM交换机具有有限缓存的情况下,ATM层上一个信元的丢失将导致TCP层上整个分组的丢失,对TCP连接而言,这种现象带来较低的吞吐量,同时也是很不公平的。当一个信元丢弃时,目的端丢弃整个分组,TCP采用“慢启动”算法连接源端等待超时并重传整个分组。造成TCP低吞吐量的原因是由于等待超时的过程中时钟丢失和大量分组重传的结果。通过在交换节点处设置足够大的缓存容量可以使得TCP over UBR不会丢失分组,这样可以获得最大的吞吐量。但是,既使在有限缓存的情况下,通过采用合适的缓存分配、丢弃策略和调度算法也同样可以提高TCP over UBR的流量和公平性。下面针对提高性能的策略和方法进行讨论和分析:

所谓丢弃策略是指决定何时丢弃信元的策略。在UBR业务中应用丢弃策略对提高吞吐量起着至关重要的作用。

早期分组丢弃(EPD:Early Packet Discard)策略:当缓存的占有量超过了设置的门限时,算法将丢弃下一个进入缓存的分组的整块连续的信元。EPD算法有效阻止IP分组的碎片进入网络,避免浪费可用资源而进一步加剧拥塞。

随机早期检测(RED:Random Early Detection)策略:缓存占有率与丢弃概率相对应,当一个分组到达时,它被丢弃的概率等于当前的缓存占有率对应的丢弃概率,该丢弃概率是一个与缓存占有率成正比的函数。

前向丢弃策略(Drop from Front):当信元到达一缓存而缓存已满时,将队首的信元丢弃而给新来的信元腾出空间。其优点是它可使信宿更早的发送重复确认以通知源端网络出现了拥塞,从而使源端更早的触发拥塞控制动作,提高网络性能。

比较起来,RED算法具有较低的排队时延,较高的分组通过度和较好的公平性。RED算法允许短时的分组突发,因而可以避免因为网络负荷变化造成的分组丢弃;RED能够避免多个TCP连接同时的超时重传,从而保持高的带宽利用率;此外,算法还能较好的支持突发业务,且确定哪些连接使用了更多的带宽,并可以采取措施予以惩罚。所谓缓存分配策略是指决定如何分配缓存给各竞争连接的信元的策略。实际情况下,既使缓存服务策略很简单,缓存分配也可能很复杂,例如:先入先出(FIFO)和公平缓存分配(FBA)方案可以通过选择性的丢弃过量聚集流中的帧达到提高公平性的目的。

所谓调度策略是指在不同的优先等级上分配可用带宽的策略。调度可以较粗的粒度(每个业务等级调度)在不同的业务等级(CBR、rt-VBR、nrt-VBR、ABR和UBR)上分配带宽。或者以较为精细的粒度(每个VC调度)在一个服务等级的不同连接之间划分带宽。每个业务等级调度决定了在高优先级的业务分配完带宽之后,连接能够获得多少带宽。每个VC(Virtual Channel)调度能够控制多个竞争的UBR连接的带宽分配。

由于UBR业务在源端没有流控措施,因此当交换节点过载时,节点缓存队列会逐渐增加,除非能够通过传输层控制源端的传输过程。一个TCP源只有当它的拥塞窗口尺寸达到最大值时才停止增加它的传输速率。这个最大窗口尺寸由参数MAXWIN定义,缺省情况下,MAXWIN=65536字节(64kbytes)。但是,在高时延链路,例如卫通链路的(RTT,round trip time)大约为540ms,针对2048kbit/s的传输链路,在一个RTT内能够传输138240字节,远远大于MAXWIN窗口尺寸,因此在这种情况下,MAXWIN的窗口尺寸太小,不能够完成全部的吞吐量。这里,考虑设置更大的窗口尺寸来达到提高吞吐量的目的。但值得我们注意的是,使最大窗口尺寸超过一个RTT内能够传输的字节数是没有意义的。这是因为在任何时间,只有一个时间的数据段能够在TCP管道中传输。MAXWIN决定了在管道中能够存在的最大数据量;最终,该参数决定了网络的存储容量。

为了避免信元丢失,TCP应用于业务时要求网络节点缓存数等于所有TCP连接的MAXWIN的总和。从这个角度上来看,UBR对于TCP而言是不灵活的。但是这个结果不受其它因素,例如:RTT和网络拓扑结构的影响。1