TCP性能改进

2024-07-12

TCP性能改进(共7篇)

TCP性能改进 篇1

0 引言

TCP是普遍应用于传统网络上的可靠的传输协议, 在这种传统网络当中信息的丢失主要是网络拥塞引起的, 因此TCP假定网络拥塞是引起报文丢失的唯一原因, 并相应地采取拥塞控制机制。可是网络拥塞不是引起报文丢失的唯一原因, 无线信道的高误码率、低带宽以及移动用户的越区切换等也能经常引起报文丢失。随着第三代移动通讯技术的发展, 无线技术在全球的因特网结构中占据越来越重要的地位, TCP在无线通信网络中也得到了更广泛的应用。因此如果还是将TCP这些报文丢失归咎于网络拥塞, 这种错误的推论将最终导致无线网络中TCP性能的急剧下降。由于TCP协议应用的广泛性, 如何提高TCP在无线网络中的性能成为目前研究的热点问题。

现在就TCP在无线网络中性能下降的现象及其主要原因, 提出一种新的无线网络中TCP性能的改进方案:

端到端检测作为新的TCP改进方案来判断当前的各种网络状态, 而致使TCP性能严重下降的主要原因可能是这些状态。因此, 我们应当首先确定哪些状态是需要TCP必须监测的, 即我们方案的判断目标就是这些监测的状态, 进而可用来准确判别这些网络状态需要确定哪些端到端度量值。这样看来整个判断算法的目标就是建立度量值和目标状态之间一个映射关系, 因此下面将分别从判别的状态和采取的响应措施两个方面对本文的改进方案进行详细阐述。

1 判别的状态

新改进方案的状态判别主要在TCP目的端进行, 并随时将判别的状态和检测到的事件通过数据包的ACK反馈给源端。方案可以区分3种网络状态, 分别是:网络拥塞 (CON) 、路由更新 (RTCHG) 和链路差错 (CHERR) , 具体的状态判别方式如下:

1.1 网络拥塞 (CON) 的判别

首先与ADTCP一样利用IDD (相邻数据包时延差) 检测可能的CON状态。相邻数据包时延差指的是相邻分组通过网络所需时延的差值, 传输路径上的拥塞情况是通过它直接抽取瞬间队列长度变化的样本值来反映。因此根据定义, IDD的计算公式为:

IDD= (Ai+1-Ai) - (Si+1-Si) = (Ai+1-Si+1) - (Ai-Si)

其中, Ai表示第i个包到达TCP目的端的时刻, Si表示TCP源端发送第i个包的时刻。

从上述公式和定义可以推导出, 目的端计算出的IDD值必然在传输路径上缓冲队列长度的增长促使下变大, 网络拥塞在队列增长到一定程度就会被引发, 因此, 可以说网络发生拥塞的必要条件是IDD值的增长。

另一方面, 一旦IDD的值有所增长, 则意味着前后数据包通过网络的传输时延在变大, 这可能是由两种情况导致的, 其一是传输路径的优化;其二是传输路径上的队列长度有所增加。第一种情况引起的传输时延差变化很小, 几乎可以忽略不计。因此, 情况二可以看作是引起前后数据包通过网络的时延发生变化的主要原因。明显地, 网络中拥塞发生的可能性被缓冲队列长度的增加大大加大了, 因为缓冲队列一旦被增加到一定长度, 网络就必然呈现拥塞状态。因此, 网络拥塞的发生可以被IDD值的增长推导出。因此, IDD值的增长是网络发生拥塞的充要条件这样的结论可以被我们通过理论分析得出来。

实践中, 也正是由于实验中观察到的随着拥塞情况逐步加剧, IDD的总体趋势也逐渐变大。图1给出了在无线网络环境中的仿真结果, 从图1中给出的IDD和网络拥塞间的对应关系可以明显看出用IDD可以标志网络的拥塞状况。

1.2 路由更新 (RTCHG) 的判别

当通路处于非CON状态时, 通路上是否刚刚发生过RTCHG事件可被简单的跳限制 (Hop Limit) 检测来判别, 即移动主机的频繁切换是否数据包丢失的主要原因。跳限制 (Hop Limit) 已经被字段IPv6报头包含了, 它的作用相当于IPv4中的生存时间 (TTL) 字段, 于是只能通过目的端的网络层向传输层提交到达TCP数据包的Hop Limit数据, 路由是否已经发生变化可以通过TCP目的端到达数据包的跳数的变化来推测。

利用Hop Limit检测RTCHG最大的缺点就是不能判别出前后路由跳数一致的路由更新。换种说法就是, 如果由于数据包丢失是移动主机的切换导致的, 但此时Hop limit数据前后并没有发生变化, 则依据上述的判别方法, 我们就会认为链路差错导致这个丢失的数据包, 而不是移动切换导致的。但是, 需要指出的是, 从大量实验中我们可知大概有80%的路由更新、跳数是会发生变化的。了解到对于RTCHG和CHERR产生丢包后响应措施的区别只是有关恢复传输时是否重新探测通路状况, 所以即使判断错误, 影响也不会太大。因此这一Hop Limi的判别方法意味着ADTCP在非CON状态下利用多个度量进行状态判别要简单得多, 完全符合本方案简单有效的要求。

1.3 链路差错 (CHERR) 的判别

最后, 当通路处于非CON状态时, 如果丢包发生被TCP检测到, 而在这个时间点附近RTCHG事件也没有被检测到, 那么则说明通路处于非RTCHG状态, 以此假设当前网络状态为链路差错 (CHERR) 状态。换句话说, 此时无线链路的高误码率引起了数据包丢失。

2 采取的相应措施

在新方案中, 每个数据包一旦被从源端传送到目的端, 除了正常的操作以外, 目的端还会通过计算出IDD度量值进一步对当前的网络状态做出判别, 并随时把判别的状态和检测到的事件通过数据包的ACK反馈给源端。为了防止ACK可能出现的丢失, 反馈的状态信息需要被多个ACK传送给源端, 当前最新的网络状态反馈会被源端通过这些ACK得出。那么, TCP源端在丢包发生 (RTO超时或是收到3个重复的ACK) 时, 相应的措施就会由于当前的状态或是检测到的事件被采取。如图2所示, 为TCP源端改进后所采取措施的流程图。

如果拥塞导致数据包丢失, 则按标准TCP中的拥塞控制机制来进行恢复;如果数据包丢失是被路由变化引起的, 则此时不应该对拥塞窗口做调整, 而是停止正常的数据传送, 然后重传丢失的数据包, 并重新探测新通路状态;如果丢包是被链路差错引起的, 则发送速率不会被TCP发送端降低, 而是只要简单地重发丢失的数据包就可以了。

同时, 新方案还会通过检测到丢包所用的手段来决定到底采用事前冻结措施还是事后恢复措施。如果是由重复ACK检测到丢包, 说明后续数据包可以到达目的端, 通路已经恢复, 就采用事后恢复的措施;否则, 如果是由RTO超时检测到的丢包, 说明通路由于某种原因还没有恢复通畅, 则要采用事前冻结的措施。具体做法是:冻结当前的某些TCP变量值 (如Cwnd, Ssthresh等) , 同时将丢失的数据包作为探测包利用RTO周期性重传, 若在超时前收到目的端对该数据包的确认, 则认为路由已经正常或路由重建, 退出探测状态, 同时检测在ACK中是否被携带了RTCHG事件。否则, 该数据包需要被再次发送进行探测。依此类推, 共进行3次探测。若3次探测均无结果, 则认为通路已无法恢复, TCP进程需要被中断。

需要指出的是, 源端采取的响应措施可能不是最优的, 但却是提高无线网络中TCP性能至关重要的一步。在本方案中, TCP在无线网络性能改进中目的端的状态判别是主要方面, 目的就是帮助源端采取比较适当的响应措施以使得TCP传输性能会得到显著的提高。如果没有这些提高, 本文提出的改进方案则相当于一个传统的TCP协议。

本方案中的源端和目的端都可以和传统TCP端节点一起正常工作。如果一个传统的TCP源端和改进方案的目的端进行通信, 对于目的端通过ACK中的选项域发送过来的状态信息, 可以不被传统TCP源端所理睬, 从而达到了对传统的TCP保持后向兼容的目的;另一方面, 如果一个改进方案的源端与一个传统TCP目的端进行通信, 源端将不会在ACK数据包中接收到显式的网络状态信息而只采取标准的TCP拥塞控制机制。

参考文献

[1]周天翔, 蒋铃鸽, 铁玲, 等.通过ARQ提高无线网络中的TCP吞吐量[J].上海交通大学学报, 2002 (5) .

[2]孙韶辉, 王新梅.互联网数据可靠传输中前向纠错技术[J].长安大学学报, 2002 (2) .

[3]徐雷鸣, 庞博, 赵耀.NS与网络模拟[M].北京:人民邮电出版社, 2003.

[4]严云洋, 冯径.TCP拥塞控制的实现与改进[J].计算机应用研究, 1999 (1) .

[5]VJACOBSON, R BRADEN, AND D BROMAN, TCP Extensionsfor High Performance[Z].RFC 1323, 1992.

[6][美]W.RICHARD SEVENS.TCP/IP详解卷一:协议[M].范建华, 胥光辉, 张涛, 等, 译.北京:机械工业出版社, 2000.

TCP性能改进 篇2

1 无线环境对TCP性能的影响及改进机制

1.1 无线误码环境对TCP性能的影响

无线环境的高误码率、带宽有限、移动性不对称、大延迟带宽乘积等特性对TCP的性能有较大影响。本文主要讨论高误码率对无线TCP性能的影响及改进机制。

由于无线环境造成的分组延迟或丢失多是由于误码造成,而不是网络拥塞造成。传统的TCP关键机制会引起差错的错误检测或判断,进一步造成拥塞控制和流量控制的过激反应,最终严重影响网络资源的低效率利用。

根据TCP拥塞控制原理,一旦发生数据段的丢失,必须启动拥塞控制机制———或者启动快速重传/快速恢复(收到三个重复的ACK时);或者将拥塞窗口降为一个段进入慢启动(重传时钟超时时),同时要进行重传时钟的退避处理。如果发生了误判断,无论是哪一种机制,都会造成网络资源的浪费。特别在无线环境中,超时的概率增大,慢启动是一种侦测网络容量的机制,常常进入慢启动会降低网络带宽利用率和吞吐量;而无线环境造成的数据丢失一般并不是网络拥塞造成。

为了解决这个问题,提出了许多解决方案。链路层的增强可靠性方案(ARQ、FEC及其融合),但ARQ会引入较长的时延,FEC会造成稀缺无线带宽的浪费,而且要求的准确性越高,带宽的浪费越大;拥塞避免方案和带宽估计方案,现有的这些方案对改善无线TCP性能的帮助并不明显;丢包区分机制,通过区分无线损坏和拥塞丢失进行分离的差错控制和拥塞控制,但这些机制的准确性有待进一步研究;分割连接的方法,或者失去了TCP端到端的语义,或者导致网关路由的代价太高。而从降低丢包率出发,提出根据误码环境的变化动态调整TCP段尺寸可有效提升TCP在无线环境中的性能,同时代价极低。

1.2 调整TCP段尺寸改进TCP性能机制

无线网络不同于有线网络的最大特点是误码率很高,TCP段的一个比特发生错误都会造成该段的重传,无线环境中频繁发生的误码造成网络带宽的浪费和可能的拥塞。自然地,减少TCP段尺寸,就减少了TCP段出错的概率;另一方面,减少TCP段尺寸也减少了数据分组在不同网络链路上分片的概率,因为无线链路带宽相对比较小(尤其是最后一跳的情况),从而有可能改善TCP的吞吐量。但是减少TCP段尺寸,可能造成信道利用率的下降,需要考虑协议头部的开销。

从避免分组丢失或重传出发,本文提出一个简单、有效的解决方案———根据TCP关键机制产生的参数,如往返时间、重传数据量、拥塞窗口等,实现无线误码环境的检测,从而进行TCP段尺寸的调整来改善无线TCP的性能。

1.2.1 TCP段尺寸和误码率的关系

在数据传输中,数据块中只要有一个比特发生损坏就会使该数据块无法使用。调整数据块的大小可以相应减少或增加数据块损坏的概率,由概率知识,可以得到TCP段尺寸(segment_size)、损坏率(segment_loss)和误码率(pe)的关系如下:

由式(1)可知,segment_size越小,segment_loss越小,即TCP段出错的可能性越小。

1.2.2 调整TCP段尺寸的新机制

在无线环境中,影响TCP段尺寸选择的主要因素为误码率,误码率的变化是不可预知的,然而,受误码率影响的TCP机制参数是可以维护的,如往返时间、重传数据量、拥塞窗口等,这些参数之间的影响与关系非常复杂,无法推断一个确定模型。

本文建立神经网络模型,并基于该模型进行TCP段尺寸选择,通过选择最佳段尺寸获得最佳的传输性能。调整TCP段尺寸机制的关键是建立一个能获得最佳传输性能的TCP机制参数与段尺寸对应表,可采用具有一个隐层的三层BP网络构造误码率与段尺寸对应表。方法如下:

TCP发送方根据TCP机制参数,通过建立的神经网络模型推测出网络环境(误码率),选取合适的TCP段尺寸进行数据发送。

2 神经网络模型及仿真分析

神经网络[3]具有复杂的非线性特征、并行计算模式、高度自组织、自适应能力和灵活性,具备学习、模拟和记忆等功能。多层前馈网络是目前应用最为广泛的神经网络模型之一,其神经元结点分层排列,组成输入层、隐层和输出层,每层的神经元只接收前层神经元的输出信号,采用反向误差传播训练算法(BP算法)。文献[4]提出基于BP神经网络进行RED算法改进提高TCP性能,本文则基于多层前馈网络对无线环境下TCP报文段尺寸进行预测,以选择最佳传输段尺寸,改进TCP传输性能。

2.1 网络结构设计

根据网络参数和BP神经网络结构,建立如图1的神经网络结构。

输入层神经元选取往返时间、重传数据量、拥塞窗口三个参数。

隐层神经元节点数的一个大致范围,可先采用“2N+1”法确定一个值,在本文预测网络中就是2×3+1=7个,在神经网络仿真时,需要进一步推测得到最佳隐层神经元节点数。

隐层激活函数采用双曲正切S形tansig函数,其数学表达式为:

以吞吐量和信道利用率综合性能为期望,输出神经元为最佳TCP段尺寸指标。输出层传递函数为purelin函数。

使用trainlm函数进行训练,选择附加动量因子的learngdm函数作为学习函数进行训练。选取了均方误差性能函数(mse函数),作为网络的误差性能函数。神经网络模型可通过式(3)进行表示,式中,w为神经网络加权参数,seg_index为最佳TCP段尺寸指标。

2.2 样本建立

通过NS软件[5],构造不同的误码环境和选择不同的段尺寸,建立往返时间、重传数据量、拥塞窗口样本数据,并进行归一化处理得到样本数据,如表1。

2.3 神经网络仿真

通过选取不同的误码环境产生的往返时间、拥塞窗口、重传数据为样本,采用BP神经网络,通过matlab对本网络进行验证仿真。

在具体的仿真中,隐层神经元节点数不是越多越好,而以隐层神经元节点数7为中心,进行隐层神经元节点数的范围测试,发现本网络隐层神经元节点数选取16,神经网络模型的性能最佳。该网络以均方误差性能函数进行评价,其性能如图2。

根据得到的神经网络模型,可根据无线通信环境,选取对应的最佳段尺寸。综合考虑吞吐量和信道利用率,选取段尺寸参考值如表2,作为最佳TCP段尺寸期望值。

2.4 部署神经网络模型的无线TCP仿真分析

本仿真中无线链路仅仅考虑误码率,不考虑移动性等其他无线特性。在节点之间的误码率呈均匀分布,在通信过程中,误码率分别在10-4-10-6之间变化。路由策略为尾部丢弃。

在TCP发送端增加神经网络预测模块,在一定时间间隔,收集往返时间、重传数据量、拥塞窗口数据,预测出相应误码环境的数据传输最佳TCP段尺寸,并以该尺寸进行数据传输。

仿真结果如图3—图5。从仿真结果看,在不同误码环境中,采用基于神经网络模型选择最佳段尺寸进行数据传输,其吞吐量均获得有效提高,误码环境越严重,其吞吐量改善程度越明显。

3 结论

无线业务的迅猛发展对传统网络协议,尤其是对保证数据可靠传输的TCP协议提出了挑战。其关键是TCP协议的假设———数据丢失的原因是网络拥塞造成的———对无线网络不成立,改进TCP的难度在于其关键机制难以建立确定的数学模型。采用控制理论实现相关参数的预测是一个重要的思路。

不同误码环境中,不合适的TCP报文段尺寸会导致大量的重传,加重网络负担和移动终端的能源消耗。本文根据TCP机制产生的往返时间、拥塞窗口、重传数据参数,实现无线误码环境的检测,并针对不同误码环境,基于神经网络的智能模型得出最佳TCP段尺寸进行数据传输,仿真证明,网络传输性能得到了一定改善。

本文提出的机制有效降低TCP段的重传,减少不必要启动TCP拥塞控制的概率,有效利用无线资源并节省了无线终端宝贵的能源消耗,提高了无线TCP的性能,同时,不必改变现有TCP关键机制。

参考文献

[1] Postel J B.Transmission control protocol.RFC 793,Sept.1981

[2] Allman M,Paxson V,Stevens W R.TCP Congestion control.RFC2581,Apr.1999

[3] Haykin S.神经网络原理:第二版.叶世伟,史忠植,译.北京:机械工业出版社,2004

[4]王富良,拱长青,等.基于BP神经网络的TCP协议改进研究.微计算机信息,2009;9:211—213

TCP性能改进 篇3

在Ad Hoc网中TCP的性能降低,是因为传统TCP面临很多挑战,比如路由失败、网络分割、动态拓扑、电量限制,把这些问题全部归结于无线随机性丢包。TCP协议的设计是针对有线网络,有线网络也只有在网络拥塞[1]的时候才会丢包。因此,Ad Hoc网中TCP假定把所有包丢失归因于网络拥塞是不合适的。

Ad Hoc网中由于节点的不断移动,导致频繁的路由失败。假如路由失败,下层协议重新建立失败的路由。然而,TCP发送方没有得到指示有关重新建立路由事件,因为有很多时间空闲,吞吐量就下降了。假如路由建立的时间比以前的路由长或者短,TCP将于遇到波动非常大的RTT估计。TCP不能区别出丢包是因为路由失败还是因为网络拥塞。节点的移动导致频繁的路由失败和路由变化引起吞吐量的下降。首先,路由失败引起在中间节点丢包,被错误的认为是拥塞丢失。第二点,路由的变化带来频繁的包的乱序传送,这个进一步使现有的TCP控制机制混淆。

2 TCP乱序检测与响应算法

TCP-DOOR算法[2]是针对检测包的乱序传送而提出来。在接收发检测是否发生乱序事件,在发送方处理对乱序事件作出反应。这个算法是在TCP-SACK[4]上改进。

⑴在接收方检测包乱序。为了在接收方检测乱序包,我们给TCP包头加上一个时间选项。TCP发送方准确的记录包什么时间发送给TCP接收方。接收方每收到一个包,然后前面的包的时间戳比较。如果乱序包被检测到,TCP接收方就设置检测变量值为真,然后发送给TCP发送方。如果是正常顺序的包被接收到,发送应答包。

⑵发送方对乱序包的处理。如果在发送方接收到检测变量值为真,意味着包在接收方已发生乱序传送,TCP发送方临时停止复制应答机制和重传超时。停止复制应答机制和重传超时时期允许乱序包到达接收方,假如在不能到达接收方,停止复制应答机制和重传超时时期到期,TCP正常的功能将被启用。由于在接收方检测到乱序包之前,在发送方复制应答的数量已达到三个,使用拥塞机制算法,为了解决这个问题,当发送方接收到第一个复制应答时,TCP停止复制应答机制,并且发送一个新数据包。

3 仿真环境及分析

使用NS-allinone-2.34[3]作为网络仿真工具,所采用的网络拓扑结构如图1所示。移动Ad Hoc仿真网路由分布在1000m×1000m的矩形域内的20个节点组成。每个节点按照随机节点移动模型在区域内自由移动。节点暂停时间为0,即节点一直在不停的移动。每个节点的移动速度在0~10m/s的范围内随机选择。移动Ad Hoc网路的底层路由协议DSR[4]路由协议。

从图2图3,TCP修改前后,拥塞窗口有了明显增加。拥塞窗口的增大,预示着TCP吞吐量有了较大增加。如图4所示,在相同仿真环境下,TCP协议修改前后,平均吞吐量有明显提高。说明TCP-DOOR[5,7]能有效改善Ad Hoc网中由于移动造成路由中断,路由变化造成的数据包乱序交付问题。

4 结束语

在Ad Hoc网中节点的移动会产生大量的乱序的数据包,而传统的TCP协议在收到3个重复应答时,将进入拥塞控制阶段,降低发送率,影响网络的性能。本文在原有TCP-SACK协议影响的基础上应用了TCP-DOOR算法,当重复收到应答时延时进入拥塞控制阶段。通过仿真实验表明,该算法在网络中由于移动导致乱序数据包时,能提高TCP协议的性能。

参考文献

[1]侯玮,窦睿.FAST TCP拥塞控制机制研究.

[2]王斌.tcp vegas-b:tcp vegas改进算法.计算机工程与设计,2011vol.32,no.2.

[3]刘国柱.基于tcp reno和tcp vegas拥塞控制性能研究.2011vol.32,no2.

[4]周建新.无线网络tcp研究综述.2010vol41,no1.

[5]方旭明.下一代无线因特网技术:无线Mesh网络[M].北京:人民邮电出版社,2006.

[6]Henock Mulugeta,kumudha Raimond.Performance Improvement of TCP usingTCP-DOOR-TS algorithm in Mobile Ad Hoc Networks.978-1-61284-307-0/11/$26.00.2011IEEE.

各种高速TCP性能比较 篇4

关键词:TCP,拥塞控制,链路利用率,公平性

0 引言

传输控制协议(TCP)是Internet上广泛使用的一种基于滑动窗口的传输层协议。它是面向连接的,能保证数据传输的有序和可靠性。TCP的最大特点在于其具有自适应能力的拥塞控制策略,能根据网络的拥塞情况,自动调整拥塞窗口的大小,从而使TCP的数据发送速率适应网络的拥塞状况。

随着计算机网络的高速发展,高速的10GBps成为一种趋势。由于在高带宽长距离(FLD)环境下存在拥塞窗口增长过慢、大窗口和丢失率的平衡和RTT不公平性问题,现行的TCP拥塞控制策略不能适应高速网络。因此,长距离高带宽环境下的TCP拥塞控制成为当前拥塞控制研究的热点。

为了更高效率地利用网络带宽,提高TCP的吞吐量,近年来很多学者一直都在研究TCP的各种改进算法。已研究出的成果包括Floyd提出的HS-TCP[2],Kelly提出的scalable-TCP[3],Low等人提出的FAST-TCP[4],最近新的研究还有BIC-TCP[5]和H-TCP[6]。这些研究成果对于高带宽网络中数据的传输有着重要意义。

本文的目的就是把各种TCP进行总结,在吞吐量,公平性等方面作一个比较。采用实验的方法来比较HS-TCP,scalable-TCP,FAST-TCP,BIC-TCP和H-TCP等各种高速TCP的性能。

1 各种TCP协议简单分析

要对各种TCP协议进行比较,就必须对协议的基本原理和操作有一个基本的认识,先对各种高速TCP作简单介绍和分析。

1.1 标准TCP[1]

标准TCP本文以TCP Reno为例来分析。TCP Reno包括慢启动、拥塞避免、快速恢复、快速重传4个阶段。在慢启动阶段,发送端每接收到一个对新分组的应答(ACK),拥塞窗口cwnd+=smss(smss为发送端最大报文段大小)。当cwnd超过慢启动门限(ssthresh)或检测到数据包丢失,TCP就进入拥塞避免阶段,此时发送端每接收到一个正确应答包,拥塞窗口cwnd+=smss×smss/cwnd。若发送端接收到3个重复应答包,则认为一个数据包已丢失,它立即重传丢失数据包并设置ssthresh=max(cwnd/2,2*smss),cwnd=ssthresh+3*smss。可以这样看TCP Reno协议:

在拥塞窗口增长阶段,拥塞控制窗口

cwnd=cwnd+a(ω)×cwnd,

在拥塞窗口减小阶段,拥塞控制窗口

cwnd=cwnd-b(ω)×cwnd,

其中系数a(ω),b(ω)的值分别为1,0.5。

1.2 High-Speed TCP[2](HS-TCP)

High-Speed TCP拥塞控制原理与TCP Reno相似,都需要经过慢启动阶段、拥塞避免阶段,不同之处是HS-TCP修改了最大慢启动门限maxssthresh=100和随cwnd变化的拥塞反馈系数a(ω),b(ω)。HS-TCP中拥塞反馈系数a(ω),b(ω)具体定义如下:

undefined

其中HighDecerese为常数,通常为0.1,Whigh和Wlow为常数,分别表示最大的拥塞控制窗口大小和在分组丢失率p为0.001时的拥塞窗口大小,p(ω)为包丢失率。

这样当拥塞窗口cwnd需要适应大带宽时,a(ω)可以变得更大,b(ω)会变得更小,解决了TCP不能充分利用大容量带宽的问题。

1.3 Scalable-TCP[3]

Scalable-TCP的基本思想是在拥塞事件发生后使得窗口恢复时间独立于拥塞窗口大小。Scalable-TCP的拥塞窗口cwnd作如下变化:

Ack:cwnd←cwnd+α

Loss:cwnd←β×cwnd

其中,参数α和参数β分别取0.01和0.875。标准TCP的拥塞控制窗口是在cwnd小于慢启动门限时呈指数增长,而超过慢启动门限或者出现丢包时呈线性增长,而Scalable-TCP在启动阶段和标准TCP一样,当cwnd达到一定值时就使用如上的公式来改变cwnd值,即Scalable-TCP采用了一个高速/低速切换模式。

1.4 H-TCP[6]

H-TCP用了瞬时时间Δ(最后一次拥塞事件发生的时间)而不是拥塞窗口cwnd作为路径BDP的指示。因此,AIMD增长因子α为Δ的函数,且α也随RTT的变化而变化,从而减少不公平性。基于路径上队列大小的估计调整AIMD减少因子β,从而提高带宽利用率。H-TCP提出了一种新的窗口增长方式,即增加窗口是时间的函数,增长因子α和减少因子β满足关系式:a=2(1-β)来保证H-TCP协议具有非常好的协议内公平性。H-TCP的窗口增长如下:

1.5 BIC-TCP[5](二进制增加阻塞传输控制协议)

BIC-TCP使用二进制搜索方法,以最小的信息损失快速实现最大的网络数据传输能力。BIC-TCP的主要特征是其独特的窗口增长函数。当探测到一个分组丢失事件,BIC-TCP以乘性因子减小其窗口。减小前的窗口值记为maximum ,刚减少后的窗口值记为minimum。BIC-TCP就使用这两个参数执行二值搜索。其窗口控制算法:没有外在反馈时,仅使用包丢失作为拥塞控制,利用Wmax,Smax和Smin来探询目前可以利用的带宽。当一个新包确认到时,若不是快速恢复阶段,则计算Wmax与cwnd之间差值的一半bic-nic,比较bic-nic,Smax和Smin值,况定bic-nic的值。然后拥塞窗口的取值为:

cwnd=cwnd+(bic-nic)/cwnd

当拥塞发生时,若cwnd

需要说明的是,为了向下兼容和保持TCP友好性,BIC-TCP设置了最小窗口,当拥塞窗口较小时,仍采用加增长的策略。可以看出,窗口控制的不同阶段增加了算法复杂性。

1.6 FAST-TCP[4]

FAST-TCP是基于时延的拥塞算法。FAST-TCP窗口控制算法:没有来自路由的外在反馈时,仅有两种信号评估拥塞和调整窗口,即队列延迟和分组丢失。在拥塞程度较小时,队列延迟是主要的拥塞信号,在拥塞程度较大时,分组丢失是主要的拥塞信号。窗口大小计算如下式:

对每个RTT:

这里,Tmin和undefined是流的最小RTT(网络空闲时的往返时延)和平均RTT。函数fα(B)以吞吐量B为自变量。

2 比较和分析

主要从链路利用率和公平性两个方面对各种TCP协议进行比较。瓶颈链路取值10Mbps和250Mbps。

2.1 链路利用率

众所周知,链路利用率受队列缓存大小和链路传播时延的影响,这里主要比较队列大小对链路利用率的影响。图1为传播时延固定、队列大小在1%至100%之间变化且有着相同RTT的两个流的平均吞吐量。

由图1可以看出新的TCP协议都获得了比标准TCP好的吞吐性能。所有协议的吞吐量都随着队列的减小而下降。这种吞吐量下降是由于小规模分组突发导致队列溢出而造成的。

2.2 公平性

一条链路,期望有着相同RTT的竞争流都应该有大致相同的平均吞吐量。这就是所说的公平性。评价公平性的主要方法有Max-Min Fainess,Proportional Fairness和Fairness Index等。常用的评价方法是采用Fairness Index,并利用以下计算公式来计算公平程度。

undefined

对于共享链路的n个流,最佳公平性F(x)=1,最差公平性时F(x)=1/n。本文所指的公平性是采用相同TCP拥塞控制算法的两个竞争流之间的吞吐量之比。

依然考虑两个TCP流,作以下两个方面的比较:

(1)相同RTT条件下的公平性:图2是两个竞争流在相同的传播时延,共享一条瓶颈链路时候的平均吞吐量。

(2)不同RTT条件下的公平性:图3是第一个流的传输时延保持为常数,第二个流的传输时延在16至320ms之间变化情况下的吞吐量。

由图2可以看出,RTT相同的两个流,标准TCP拥塞控制算法可以使每个流达到同样的吞吐量,但是,也可以看出提出的新的TCP提议显示出了不公平性。H-TCP除外,FAST-TCP和Scalable-TCP在公平性上面显示出了很大的变化性,而BIC-TCP和HS-TCP的不公平性也显而易见,。

由图可以看出,Scalable-TCP,HS-TCP,BIC-TCP,和FAST-TCP都比标准TCP显示了较大的RTT不公平性。在网络带宽不高地情况下,公平性地问题还没有得到充分体现,但是当带宽以增加,公平性问题就凸现出来了。在RTT较大的时候,上述四种TCP才可以获得较大的带宽利用率。H-TCP的公平性最好。

3 结束语

本文比较分析了Scalable-TCP,HS-TCP,BIC-TCP,和FAST-TCP这五种TCP提议的性能。发现除H-TCP外,其它的TCP协议的公平性得不到保证,尤其是Scalable-TCP和FAST-TCP。至于链路利用率,只要有足够大的缓冲区,本文提到的高速TCP提议在高速环境中都能达到比标准TCP更高的吞吐量。通过分析,获得了很多有用的结论,为TCP的进一步研究指明了方向。

参考文献

[1]张福杰,潘理,李建华.大带宽时延积网络中TCP,HighSpeedTCP及XCP性能比较[J].计算机工程,2006,32(2):113-116.

[2]Floyd S.HighSpeed TCP for Large Congestion Windows[J].RFC3649,2003(12).

[3]Kelly T.Scalable TCP:Improving performance in high-speed wide areanetworks[J].Computer Communication Review,2003,33(2):83-91.

[4]Jin C,Wei D X,Low S H.FAST TCP:Motivation,architecture,algo-rithms,performance[C].Proc.IEEE INFOCOM,2004.

[5]Xu L,Harfoush K,Rhee I.Binary increase congestion control for fastlong-distance networks[C].Proc.IEEE INFOCOM,2004.

[6]Leith D J,Shorten R N.H-TCP protocol for high-speed longdistancenetworks[C].Proc.2nd Workshop on Protocols Fast Long DistanceNetworks.Argonne,Canada,2004.

[7]Geoff Huston.TCP Performance[J].The Internet Protocol Journal,2000,3(2).

[8]Geoff Huston.The Future for TCP[J].The Internet Protocol Journal,2000,3(3).

无线网上TCP改进的研究综述 篇5

关键词:无线网络,TCP,服务,改进

目前所用的无线网络通常可以分为蜂窝网络、ad hoc网络和卫星网络三类。在蜂窝网络中, 移动主机通过基站和固定网络连接起来, 这也是目前应用最为广泛的无线网。无线网络通常有以下特点:

BER高:无线网络的BER通常明显高于有线网络, 并且由于无线网络所处环境的变化, 往往同一连接会话上的BER都会发生数量级上的变化。

带宽低:无线信道提供的可利用带宽 (1Mbps~2Mbps) 往往小于有线网络提供的带宽 (10Mbps~100Mbps) 。带宽对无线网络来说是一种稀有资源, 因此如何高效地使用这些带宽是一个重要问题。

切换 (handoff) 问题:移动设备在切换过程中, 也就是设备从一个蜂窝移动到另外一个蜂窝, 通信从原来的基站转移到新基站时, 通常会导致丢包或者延迟。

能量有限:和有线网络中的固定主机比起来, 移动设备通常使用电池提供有限的能量, 从而使得其通讯时间受到限制。因此如何进行有效的能量管理是无线网络面临的一个很大的挑战。

1 传统TCP在无线网络上的问题

由于移动计算环境存在着BER高、带宽低、移动性及能量有限等特点, 使得原本为固定主机、有线网络设计的TCP协议在这种环境下出现了很多不适应的问题, 主要表现在以下几个方面。

(1) 在包含有线网络和无线网络的异质环境中缺乏有效的错误检测机制。TCP只能检测到发生了错误也即有数据包被丢弃而无法检测出错误的性质。对传输过程中出现的错误, TCP假设丢包都是由于网络拥塞造成的。由于有线网络的BER很低, 这种假设基本上是成立的。但是在无线网络环境下存在许多于拥塞无关而可以导致丢包的原因。如无线信道突发性位错误、移动设备处在切换过程中、衰减信道 (fading channel) 等。在ad hoc网络中由于网络拓扑结构的变化而使路由变动也会导致丢包。TCP则将丢包都归结于网络拥塞的发生, 而无法检测出错误的属性。

(2) 缺乏有效的错误恢复机制。一旦检测出丢包, TCP便触发拥塞控制处理过程, 首先重传未被确认的包, 减小拥塞窗口从而降低发送速率;然后激活拥塞控制机制, 包括超时时钟指数回退、减小慢启动阈值 (ssthreshold) ;最后进入拥塞避免阶段以确保拥塞得以解除。如果丢包是由于无线网络的BER高或者移动设备切换时发生的而不是网络的拥塞, 那么TCP的这种错误恢复机制会导致协议性能下降, 包括吞吐量的下降和延迟的增加。

(3) 在无线环境下, 移动主机可用带宽往往较低, 从而使得TCP源端的发送速率受到限制, 使其用较小的拥塞窗口发送数据。在这种情况下, 一旦有数据包丢失, 源端就不能收到足够多的重复确认包从而触发快速重传, 而只能通过超时机制恢复, 因而降低了可用带宽的使用效率并且增加了延迟。

TCP协议之所以在无线网络环境下存在诸多问题, 最关键的是其缺乏全面的错误控制能力。目前的TCP/IP协议是为有线网络、固定主机设计的, TCP的错误控制主要是以网络拥塞丢包为中心, 而忽略链路传输错误等其他问题, 这在传统网络上是成立的;但在无线网络环境下, 链路BER错误、切换过程中的丢包问题等是典型的错误特征, TCP缺乏处理这些错误类型的能力, 因此必须进行改进。

2 TCP的改进

为了增强TCP在移动计算环境下的性能, 研究人员已经提出了很多方案。根据其基本工作原理, 这些方案大致可以划分为三类。

2.1 基于反馈信息的改进

Ramakrishnan等提出的显式拥塞指示 (Explicit Cogestion Notification, ECN) 机制是一种和主动式队列管理 (Active Queue Management, AQM) 机制结合使用的方法。在执行AQM机制的路由器中, 当拥塞发生并且队列没有溢出时, 对数据包进行拥塞标记而不是丢弃。接受端收到拥塞标记包后将此拥塞信息通过确认包传送到发送端。于是发送者激发拥塞控制机制。ECN需要在现有的TCP/IP结构上进行修改, 主要是在IP包头部和TCP包头部分别定义两个标记位。

Balakrishnan等提出了称为显式丢失通知 (Explicit loss notification, ELN) 的方法。当接收端或基站估计出丢包是与拥塞无关时, 便设置TCP包头部的ELN位, 并传回发送端。发送端收到ELN通知时, 只需重传丢失的包而无需进行拥塞控制。ELN的缺点是, 如果ELN由接受端发出, 则其在无线链路上也容易损坏;如果由基站发出, 则基站必须跟踪每个包是否已确认过, 从而增加了基站的负担。

2.2 基于分段连接的改进

在TCP的分段连接方法中, 固定节点和无线节点之间的单条TCP连接将被无线基站分割为两段:一段连接固定节点和无线基站, 另一段则连接无线基站和无线节点。通过分割, 原有的TCP连接被划分为有线链路上的“有线TCP连接”和无线链路上的“无线TCP连接”两部分, 从而对有线和无线链路中的TCP传输进行区分。图1给出了TCP分段连接方法的示意图 (见图1) 。

Bakre和Badrinath提出的Indirect-TCP (I-TCP) 是最早建议采用分段连接的。I-TCP两段均使用标准的TCP连接。发往MH的数据首先被基站接收, 基站向FH发送ACK然后将数据转发到MH。I-TCP有助于对固定网络屏蔽无线链路的不确定性, 并且FH上的TCP不需要改变。I-TCP的缺点一是不能维持TCP端到端的语义 (semantics) ;二是基站和MH之间使用标准TCP连接, 不能有效处理无线丢包问题, 从而导致整体性能的下降。

M-TCP是一种分段连接的方法。它的体系结构可以这被看作三层, 在最低层移动主机 (MH) 和每个蜂窝的基站通信;多个基站由一个监视主机 (Supervisor Host, SH) 控制;最上层是SH和固定主机FH通讯。M-TCP中FH仍然使用标准的TCP。与I-TCP中基站一旦收到FH的数据即发送确认不同, M-TCP中只有当收到来自MH的确认时才发送确认到FH, 从而维持了TCP端到端的特性。另外M-TCP还采用了FreezeTCP中的零窗口通告机制, 因此可以有效处理无线链路上发生的丢包。M-TCP的缺点是基站的任务过于复杂。

分段连接方案由于基站维持了两段连接, 因此必须缓冲大量的状态信息, 包括连接控制信息和未确认数据包。当业务量很大时, 基站的负荷会变得非常重, 而且需要更大的缓冲区。如果移动设备频繁地切换, 基站之间状态信息的传输会带来较大时延, 导致丢包。

2.3 基于传输层信息的改进

这种方案的目的是使TCP发送端能够区分拥塞相关的数据包丢失和其它形式的数据包丢失。只有当网络拥塞发生时, TCP拥塞控制处理过程才被激活, 而对于其他形式的丢包则执行其他错误恢复处理过程。

Samaraweera等提出了一种称为“非拥塞数据包丢失检测”的方法 (Non-congestion Packet Loss Detection, NCPLD) 。NCPLD利用了网络中knee点的概念, 将该点测量到的R T T称为延迟阈值 (delay thresho-ld) 。如果当前测量到的RTT比延迟阈值要小, 则认为丢包不是由于网络拥塞引起的;否则就认为丢包是由于拥塞引起的。NCPLD只需在发送端进行少量改动即可。

TCP-WESTWOOD:Mascolo提出了TCP-Westwood, 其主要特点是, 当收到3个重复的ACK或出现超时时, 并不是将拥塞窗口减半, 而是试图选择一个和出现拥塞时有效带宽相称的慢启动阈值及拥塞窗口。源端通过测量返回ACK的平均速率来估计TCP连接的可用带宽。从而避免了过分保守的减少拥塞窗口和慢启动门限, 有效地利用了带宽。

2.4 基于底层信息的改进

链路层方案的目标是通过在无线链路上进行重传或错误纠正来屏蔽不可靠的无线链路对有线网络的影响。其优点是可以独立与高层协议而提高数据传输的可靠性, 并且无需保留每连接状态信息。

Balakrishnan介绍了一种运行于基站的snoop代理 (Agent) 。Snoop代理监视通过TCP连接的每一个数据包, 包括确认包。Snoop代理维持了一个TCP包的缓冲 (cache) , 这些包是由FH发送而来, 但还没有被MH确认。同时它跟踪每个从MH而来的ACK包, 通过到达的重复ACK包或局部超时来检测包的丢失。当丢包发生时, 如果snoop代理已经缓存此包, 则进行局部重传, 并且重复的ACK包被丢弃以避免导致源端进入快速重传。使用局部重传, 可以使基站通过不传送重复的ACK, 对固定的源端主机屏蔽包在无线链路上的丢失。snoop代理的主要缺陷是没有考虑切换导致的延时和丢包, 并且链路层的重传和传输层的重传会相互干扰。

采用链路层方案来进行错误恢复的方法可以独立于上层协议进行独立操作, 并且不需要维持每个链接的状态。其主要问题是, 连路层重传和端到端的重传之间的相互干扰。DeSimone等指出, 链路层重传不一定能够提高性能, 而只有当数据包的错误率超过了一定的阈值后, 采用链路层重传才会提高应用层的吞吐量

3 结语

TCP性能改进 篇6

传输控制协议TCP (Transport Control Protocol) 是目前Internet中广泛采用的传输控制协议, TCP的拥塞控制机制能较好的对网络拥塞做出响应, 并能避免网络崩溃[1]。TCP的拥塞控制算法包括Tahoe, Reno, New Reno, SACK, Vegas等, 最常见就是TCP Reno算法。

在TCP Reno拥塞控制算法中, 如果发送方收到3个重复的ACK, 则发送方立即判断有1个数据包已经丢失, 接着发送方开始将拥塞窗口减半, 降低数据传输速率, 同时重发丢失的数据包[2]。TCP Reno拥塞控制算法认为, 数据包丢失就意味着在发送方与接收方之间的某处产生了拥塞, 这种假设在局域网或者广域网基本成立, 但是无线网中, 这种假设是不成立的[3]。在无线网中容易出现传输信道特性不理想的情况, 误码率较高, 如果不对当前链路的拥塞状态做进一步判断, 就做出降低速率的响应, 就会导致网络吞吐量的下降。因此, 正确的区分数据包丢失原因对于提高网络系统性能很重要。

关于网络拥塞控制许多学者做了大量工作[4,5,6], 但是他们的拥塞控制算法往往都需要网络中各个路由节点的配合, 如果在小规模的网络环境下这种做法有着较好的表现, 但是当今的网络是一个极其庞大而又复杂的网络, 网络的各个节点协同工作太困难。然而TCP连接的RTT可以较好的反应当前网络的拥塞状况, 本文根据当前TCP连接的RTT对丢包原因进一步分析, 如果是由于拥塞而导致的丢包, 则重发丢失的数据包并降低速率, 如果当前连接并没有处于拥塞状态, 则只需重发丢失的数据包, 而无需降低速率, 从而提高网络吞吐量。

2 TCP Reno拥塞控制

2.1 拥塞控制概述

TCP Reno拥塞控制采用基于窗口的闭环控制方式, 它保持两个重要参数:cwnd和ssthresh, 即拥塞窗口与慢启动门限。TCP Reno拥塞控制算法主要包括慢启动、拥塞避免、快速重传与快速恢复三个部分[7,8]。

若发送端收到3个重复的ACK, TCP进入快速重传与快速恢复阶段, 具体执行过程如下:

1) 将ssthresh值设置为当前cwnd值的一半, 重传该丢失的数据包, 并设置cwnd值为ssthresh值加上3个报文段大小, 如公式 (1) ;

2) 然后每次收到另一个重复的ACK时, cwnd值增加一个数据包大小并发送一个数据包;

3) 当下一个确认新数据的ACK到达时, 将设置cwnd为ssthresh。

2.2 拥塞控制算法仿真

为了更加清楚的了解TCP Reno的拥塞控制过程, 使用图1所示的拓扑图, 仿真软件为OPNET, 其中A为客户端, B为FTP服务器, B向A提供FTP下载服务。在仿真过程中人为地在第110秒将B发送给A的数据包丢掉一个, 结果如图2所示。由于在第110秒数据包丢失一个, 于是B很快收到3个重复的ACK, 并误认为当前网络出现拥塞, 于是设置cwnd值为ssthresh值加上3个报文段大小并且重传丢失的数据包;由于接下来还在收到重复的ACK, 于是每次收到另一个重复的ACK时cwnd值增加一个数据包大小;大概0.3秒以后确认新数据的ACK到达, 将设置cwnd为ssthresh开始执行快速恢复, 这就是TCP Reno的拥塞控制过程。

TCP Reno的拥塞控制不能区分数据包丢失是由于网络拥塞, 还是误码等其他原因而导致的。一旦发现数据包丢失, TCP Reno就会减小窗口, 速率也会随着拥塞窗口的减小而降低, 因此误码也会导致吞吐量的下降, 而当前网络状态可能并没有处于拥塞状态, 显然这是不恰当的, 尤其是在无线网络中。

3 TCP连接中的RTT

为了深入了解RTT在不同网络状态下的变化规律, 使用网络仿真软件模拟, 网络拓扑结构如图3所示。其中A、B、C、D为四个工作站, R1、R2为路由器, 并且两个路由器之间是一条最高速率为2.048Mbps的E1线路, 其余的四条与工作站相连的是最高速率为10Mbps的10Base T线路, 所以拥塞只可能产生在R1与R2两路由器之间的线路上。

3.1 单个TCP连接

在该场景中只有一个TCP连接, 即A向C发送TCP数据, B和D不产生任何数据。并且, 由于本文的改进算法基于较精确的RTT, 所以在仿真过程中每个TCP端点都使用了时间戳选项, 它可以提供更加准确的RTT值。仿真结果如图4所示, 图4由两部分构成, 即上半部分为该TCP连接的RTT变化曲线, 下半部分为该TCP连接的数据传输速率。从图中可以看出, RTT从数据传输开始时的0.8s很快下降到0.55s附近, 并随着数据传输速率维持在2.048Mbps而保持不变。

3.2 TCP和UDP的混合情况

A向C发送TCP数据流, 此次不同的是B向D发送UDP数据流, 通过多次仿真实验发现, 只要UDP数据速率不接近两路由器之间E1线路的容量2.048Mbps, 并且随着UDP速率的稳定, TCP连接的RTT刚开始小幅上升, 而很快稳定不变。如果UDP的速率一旦接近甚至超过该条链路容量的时候, RTT会有比较明显的上升。

下面进一步仿真, A向C发送TCP数据流, 这次B向D发送的UDP数据流速率为2.1Mbps, 刚刚超过该瓶颈链路的容量2.048Mbps, 并且发送时间推迟1分钟, 仿真时间3分钟。仿真结果如图5所示, 图5的上半部分是TCP连接的RTT, 下半部分是TCP连接的速率, 可以看出TCP连接的RTT刚开始出现小幅下降, 并随着TCP速率的稳定而保持在0.6s左右不变, 一直持续到第60s, 由于较高的UDP速率迅速将该条链路带宽资源占据, 出现网络拥塞, RTT开始迅速的增加, 同时TCP速率也下降到基本为零。

4 拥塞控制的改进

4.1 算法描述

从以上仿真结果可以发现, 只有处于拥塞状态时RTT才会出现增长, 根据这个特点对TCP Reno的拥塞控制算法进行改进。由于该算法较依赖于RTT的精确性, 所以该算法使用时间戳选项。从当前TCP连接的一开始, 发送端每次把当前刚刚获取的RTT减去上一个RTT (RTT_last) , 得到RTT差值D_value, 如公式 (2) ;并且把每次得到这个差值一直累加下去, 得到SUM, 如公式 (3) 。

通过仿真发现, 如果网络状态较好时, 此差值总和SUM总是小于0的, 此时可以判断出数据包的丢失并不是由于拥塞造成的, 发送端TCP的拥塞窗口CWND不必做出降低的响应, 所以速率也不会降低, 只需重传丢失的数据包;如果该值大于0, 说明网络已经产生拥塞, 则不仅重传丢失数据包, 同时也要减小CWND以降低速率来响应拥塞。

算法描述如下:

4.2 仿真结果

为了验证算法在拥塞状态和非拥塞状态下的表现, 将仿真分成两种情况, 即拥塞状态和非拥塞状态两种情况。

4.2.1 拥塞状态

A向C发送TCP数据流, 同时而B向D发送UDP数据流, 其速率为2.1Mbps, 超过该条E1链路的容量, 很快就会产生拥塞, 仿真结果如图6所示。此图包含拥塞控制窗口CWND以及TCP的传输速率。由于当前处于拥塞状态, RTT迅速增加;此次仿真共有7个数据包丢失;并且图的第三部分可以看到第一个数据包丢失的时候拥塞窗口急剧下降到接近为0, 随后由于严重的拥塞CWND一直保持较低水平;同时图的第四部分TCP速率也很低。根据算法, 此时明显SUM>0, 也即是拥塞状态, 所以仍然执行原TCP Reno算法, 即减小拥塞窗口CWND降低发送速率。

4.2.2 非拥塞状态

A向C发送TCP数据流, 同时B也向D发送TCP数据流, 此时由于在两路由器之间的链路上是两个TCP数据流的混合, 显然不会出现拥塞现象, 在仿真过程中人为的在第60秒将来自A的TCP数据包丢掉一个, 来模拟由于拥塞以外的其他原因而导致的数据包丢失。仿真结果如图7所示, 图7共包括两个部分, 即拥塞窗口CWND和TCP速率。从仿真结果发现, 由于RTT总体呈下降趋势, 此时SUM<0, 虽然有1个数据包丢失, 但是当前网络并没有处于拥塞状态下, 所以A并没有减小拥塞窗口, 当然发送速率也不会降低, 从而提高了网络的吞吐量。

5 结论

本文根据RTT的变化规律, 对数据包丢失原因做进一步判断, 仿真结果表明, 它能较好的分辨网络当前状态, 从而对在非拥塞状态下的数据包丢失而导致的速率降低进行了改进, 从而提高了网络的吞吐量。本文的仿真模型比较单一和简单, 没有在复杂网络与复杂环境下进行仿真, 这也是下一步的工作方向。

摘要:针对TCP Reno在非拥塞状态下意外丢包而产生的速率降低问题, 对TCP连接在拥塞状态与非拥塞状态下的RTT变化规律做深入研究, 根据RTT变化规律得出拥塞判断指示器, 并将之与TCP Reno拥塞控制算法协同工作。OPNET仿真结果表明, 该算法能准确判断当前网络状态, 解决了非拥塞状态下意外丢包而导致的速率下降问题。

关键词:往返时延,TCP Reno,时间戳,拥塞控制,无线网络

参考文献

[1]Jacobson V.Congestion avoidance and control[J].Computer Communication Review, 1988, 18 (4) :314-329.

[2]W.Richard Stevens.TCP/IP详解:卷1协议[M].范建华, 胥光辉, 张涛, 等译.北京:机械工业出版社, 2000:235-237.

[3]贾琳.有线无线混合网络中基于显式反馈的TCP性能改进方法[D].杭州:杭州电子科技大学, 2011.

[4]孔金生, 胡合伟, 王娜娜.基于遗传粒群路径优化的网络拥塞控制方法[J].计算机工程与应用, 2009, 45 (15) :144-146.

[5]刘昌华, 袁操.具有通信时延的网络拥塞控制算法稳定性研究[J].计算机工程与应用, 2011, 47 (16) :77-79.

[6]赵广松, 陈鸣.基于接收阈值的容延网络拥塞控制机制[J].软件学报, 2013, 24 (1) :153-163.

[7]Gao J B, Rao N S V.TCP AIMD dynamics over Internet connections[J].IEEE Communications Letters, 2005, 9 (1) :4-6.

战术互联网环境下TCP性能分析 篇7

信息技术的发展, 特别是无线网络技术的发展, 推动了军事领域信息网络广泛应用, 对武器装备、战法、作战指挥体系等多方面都产生了巨大影响, 促使作战样式从传统的“平台中心战”转变为以网络信息技术为基础的“网络中心战”。

1 战术互联网及TCP概述

1.1 战术互联网概述

信息技术为基础的现代化战争, 战场地理位置随时变化, 地形环境因素不确定, 部队机动时快时慢, 敌我双方界限模糊, 且战场上无任何网络基础设施, 战术互联网是在这种条件下实现快速组网, 保障网络随时畅通, 指挥命令及时传达, 话音数据的安全、可靠传输。

战术互联网 (Tactical Internet, TI) 的概念最早是美军为适应数字化战场的通信需求而提出来的。它可在师/旅一级作战区域以内横向和纵向传输数据, 可以利用野战地域网连接上下梯队。它可为指挥控制平台提供可靠的、无缝的态势感知 (Situational Awareness SA) 和指挥控制 (Command and Control, C2) 信息传输, 通过构建一个兼容、互连、互通和无缝的通信网络来支持部队的作战指挥。战术互联网是战术级上数字化战场的支撑平台, 能满足未来数字化战场多层次、多模式、多覆盖的通信需求。

1.2 TCP的基本原理

战术互联网的协议结构比较复杂, 它涉及到物理层、数据链路层、网络层、传输层以及应用层所使用的网络协议和接口。传输控制协议 (Transmission Control Protocol, TCP) 是一种基于滑动窗口的提供可靠传输的传输层协议。TCP协议是保障可靠通信的关键部分, 对于利用网络进行通信的两个终端来说, 端到端通信的可靠性, 最终还是要由传输控制协议来解决。

TCP协议的拥塞控制机制常采用4种算法:慢启动 (Slow Start, SS) ;拥塞避免 (Congestion Avoidance, CA) ;快速重传 (Fast Retransmit, FR) ;快速恢复 (Fast Recovery, FR) 。

发送端在建立连接后使用慢启动来确定发送速率, 并用拥塞窗口来控制速率。在慢启动过程中, 发送端每收到一个应答 (ACK) 就将拥塞窗口增加一倍, 直到拥塞窗口达到慢启动门限为止。在慢启动结束后拥塞回避策略开始工作。拥塞回避策略以更加缓慢的速度增加拥塞窗口值。在这个期间, 每接收到一个确认数据包, 拥塞窗口增加的长度为当前拥塞窗口长度的倒数。

当TCP发送端接收到3个以上的重复ACKs时, 发送端则认为有数据丢失, 随即启动快速重传策略重新发送丢失的数据段。在此之后, 进入到快速恢复阶段, 同时拥塞窗口和慢启动门限值都减少一半。在成功重传丢失的数据段后, 进入拥塞避免阶段。若出现多个数据丢失时, 拥塞窗口和慢启动门限值重复减半 (图1) 。

2 战术互联网特性及对TCP协议性能的影响

传统的TCP协议是为有线网络设计的, 适用于差错率低的有线网络。对传输过程中出现的错误, TCP假设丢包都是由于网络拥塞造成的。由于有线网络的误码率很低, 这种假设基本上是成立的。与有线网络相比, 无线网络通常表现出长传播延时、误码率高、链路带宽不对称、多径传输、移动终端的频繁移动等特性, 而战术互联网这些特性则体现的更为突出。这使得传统的TCP协议直接用于战术互联网环境下时性能很差。

2.1 长传播延时

卫星通信是战术互联网连接指挥中心与移动终端的典型方式之一。在同步地球轨道 (GEO) 卫星通信系统中, 数据传输的往返时间 (RTT) 在480-560ms之间, 这样大的延时使得Slow Start阶段的TCP拥塞窗口增涨速度变得非常缓慢。文件传输过程中, 处于Slow Start阶段的时间越长, 文件所需要的传输时间就越长, 信道的带宽利用率就越低。

2.2 高误码率

在数据传输中被丢弃的数据包可分为两种:一种是因为网络拥塞, 一种是因为误码。有线网络的误码率很低, 大部分的数据包丢弃是由于拥塞造成的。因此TCP协议假定网络拥塞是数据丢失的唯一原因。但是无线的战术互联网环境下误码率远较有线网络要高, 尤其是在野战环境下误码率会更高。一旦检测出丢包, TCP便触发拥塞控制处理过程, 重传未被确认的包, 减小拥塞窗口从而降低发送速率。如果丢包是由于战术互联网的高误码率引发的而不是因为网络的拥塞, 那么TCP的这种错误恢复机制会导致协议性能的急剧下降, 包括吞吐量的下降和延迟的增加。

图2所示的是在一个仿真的战术互联网环境下一些TCP方案 (含正常应答和延迟应答) 随丢包率不同的性能变化。采用NS2作为仿真实验平台。在带宽为10Mbits/sec, 延时为前向链路传输一个1GB的文件;反向链路带宽为2Mbits/sec, 延时为。由图2可以明显看出, 随着丢包率的增大各TCP协议的性能都急剧下降。

2.3 链路带宽不对称

由于受到发送功率和天线尺寸等条件的制约, 卫星链路中的前向链路 (从卫星地面站到地面用户终端) 带宽往往会大于反向链路 (从地面用户终端到卫星地面站) 带宽, 通常在10~100倍。由于链路带宽的不对称, 反向信道的带宽往往会成为传输瓶颈。这样在带宽很窄的反向信道中, ACK数据往往会“簇拥”在一起, 并导致反向链路的数据拥塞。当前向链路和反向链路带宽比例高于50:1时, TCP性能就会明显下降。

2.4 终端的移动性

在战术互联网情况下, 由于无固定的结构和终端的频繁移动, 会引起频繁的拓扑变化, 甚至路由中断;引起分组丢失和触发路由初始化算法, 这也将导致TCP吞吐量的下降。这就要求传输控制协议不仅要能发现这些变化, 而且要能对此做出快速的调整。

3 相关技术研究现状

如何提高TCP协议在无线网络中的性能, 国际上许多知名的研究机构都在进行研究, 并提出很多改进方案。改进方案可归纳为端到端的改进方案、分段连接改进方案、链路层改进方案、跨层联合设计方案。

3.1 端到端的改进方案

端到端的改进方案主要修改TCP连接两端的协议, 希望在不改动其它层协议的基础上进行改进。

F-TCP (Freeze-TCP) 方案:针对切换中断, 利用了TCP的零窗口机制, 当新的链路建立后, 立即发送3个Dup ACKs, 以使TCP脱离保持状态而进入先前的工作状态, 使数据包的传输恢复不依赖于超时重传计时器, 从而提高性能。

TCPW (TCP-West wood) :源端通过测量返回ACK的平均速率来估计TCP连接的可用带宽, 当收到3个重复的ACK或出现超时时, 并不是将拥塞窗口减半, 而是试图选择一个和出现拥塞时有效带宽相称的慢启动阈值及拥塞窗口。从而避免了过分保守地减小拥塞窗口和慢启动门限, 有效地利用了带宽。

TCP-Real:是一种基于波 (wave) 的错误检测机制。由于发送端是每RTT将拥塞窗口内的数据一起发送出去, 从接收端的角度来看, 数据的发送是“波”状的。接收端测量数据接收速率, 根据此速率的变化调整波的级别, 反应网络的当前状况。接收端通过确认包 (ACK) 上的一个选项向发送端通知一个新波的级别;发送端则根据波的级别来调整拥塞窗口大小。因为是通过测量接收的数据率来监控前向信道的拥塞状况的, 所以TCP-Real接收端不仅知道信道是否拥塞, 并且能更精细估计拥塞的级别。利用这个特性, TCP-Real被设计能避免拥塞。对于TCP-Real, 发送端在包丢弃以前能调节发送窗口, 因此传输的波动更小, 提高了效率。

3.2 分段连接改进方案

此类方案的主要出发点是:既然无线网络和有线网络存在链路上的巨大差异, 将TCP连接分成无线段和有线段 (图3) , 在有线和无线链路段分别采取不同的策略, 从而提高TCP的性能。

Indirect-TCP (I-TCP) 是最早建议采用分段连接的。将TCP连接在基站处分成两段, 两段均使用标准的TCP连接。I-TCP有助于对有线网络屏蔽无线链路的不确定性。I-TCP的缺点一是不能保证TCP端到端的语义规定。二是基站和MH之间使用标准TCP连接, 不能有效处理无线丢包问题, 从而导致整体性能的下降。

Snoop协议是一种结合了链路重传机制的分段增强改进方案。在链路层, Snoop引入针对TCP数据包的ARQ机制, 以解决无线信道上的比特差错问题;在网络层, 采用组播技术解决移动切换引起的报文丢失现象。当数据由SH向MH传输时, Snoop在基站的代理缓存数据包并转发MH。Snoop通过两种方法检测数据包在无线信道上的丢失情况, 一种是通过在链路层设置类似TCP的超时重传计时器, 另一种是在链路层检测反向路径是否出现重复ACK。

Snoop不仅保持了TCP端到端的语义, 而且Snoop基站并不要求TCP协议的实现, 仅需链路层识别TCP包即可, Snoop基站的失效仅仅影响网络性能, 并不像I-TCP那样带来灾难性的后果。Snoop的不足是仍要求数据和相应的确认包必须经过同一个基站。Snoop基站代码需要较大修改, 而且不能提供严格的端到端的安全性。

3.3 链路层改进方案

由于链路层协议可以有效检测链路的状态和特性, 因此可以在链路层采取措施区分数据丢失的原因并启动局部的快速重传机制。在无线信道差错率低和信号传播时延小的情况下, ARQ是一种有效的技术。FEC的优点是在时延大的情况下不需要重传, 且其实现与TCP内在的重传机制无冲突;缺点是在信道好的情况下不仅浪费带宽, 而且需要额外的处理时间、存储空间占用等。

3.4 跨层联合设计方案

跨层联合设计把原本各层中的“私有”信息“共享”, 使得每个层次的设计不再独立、单一, 有利于整体性能提高。但是, 各层次需要考虑的因素增多, 协议设计变得复杂, 修改困难。跨层联合设计实质上打破了协议栈各层之间的独立性, 使得分层设计带来的好处就可能大打减弱, 可能会使通信系统的设计及实现变得极为复杂。系统的实现和维护也将变得十分困难, 而且系统的标准化工作可能很难进行。但是, 当跨层联合设计需要对位于不同节点的不同层进行联合设计 (节点间跨层联合设计) 时, 上述问题才会产生。相反, 如果只是在单个节点内部进行跨层设计时, 就能够避免上述问题。

4 总结

战术互联网是战术级上数字化战场的支撑平台, 能满足未来数字化战场多层次、多模式、多覆盖的通信需求。战术互联网研究与建设对我军信息化建设具有重大价值与现实意义。传输控制协议 (TCP) 是保障可靠通信的关键部分。传统的TCP协议是为有线网络设计的, 适用于差错率低的有线网络。与有线网络相比, 无线的战术通信网有误码率高、传输时延大、链路带宽有限、移动终端的频繁移动等特性。这使得传统的TCP协议在无线的战术通信网络中无法及时、有效、可靠的进行传输, 造成传输性能的急剧下降, 降低了频谱资源的利用率。针对战术互联网TCP协议进行研究, 改善其传输性能, 是今后的研究热点。

参考文献

[1]R Braden.Requirements for Internet hosts——Communica-tion layer.RFC1122.1989.

[2]章淼, 吴建平, 林闯.互联网端到端拥塞控制研究综述.软件学报.2002.

上一篇:总体艺术的城邦下一篇:未来在这里