无线TCP(精选7篇)
无线TCP 篇1
TCP在无线网络的发展和应用中发挥了重要的作用, 提高了数据传输的可靠性和服务的便捷性, 并且TCP能够有效的对流量、差错和阻塞进行控制, 这样就很大程度的提高了数据的可靠传输, 但是在其他无线网络的应用中, 其性能比较差, 为了能在无线网络中实现对TCP的有效利用, 需要利用额外的技术对其进行改进。
1 TCP概述
TCP即传输控制协议, 位于网络结构中的OSI模型的第四层, 凭借着能够有效的进行流量的控制、差错的控制以及拥塞的控制, TCP为应用层提供可靠的数据传输服务。
在技术应用方面, TCP主要包括四项基本的技术:窗口、序列号、重传定时器以及确认。在TCP中, 窗口可以根据网络或是接收端的状态进行大小的自动调整, 这样可实现对发送端对数据包发送速率的控制;在TCP中, 每一个数据包拥有一个序列号, 可对数据包进行有效的排序;定时器可以根据网络的情况调整定时的时间, 如果一个数据包在规定的时间内, 因为网络堵塞或者其他原因被丢弃, 重传定时器会对其进行重传, 避免信息的丢失和网络的崩溃;最后, 接收端和发送端通过确认, 得到正确的数据包, 从而保证了数据传输的正确性和可靠性。这样TCP的三个控制功能, 在这四项基本技术的支持下得以实现。
凭借着自身的优势, TCP在有线网络中得到了广泛的应用, 但是在蜂窝网络、AD HOS网络以及卫星网络中的性能很差, 需要利用一定的技术, 对其性能进行改革, 以便促进TCP在无线网络中的应用和普及。
2 无线网络中TCP的应用分析
人们一般将无线网络分为三类, 即蜂窝网络、AD HOS网络以及卫星网络。蜂窝网络是应用最为广泛的无线网络, 用户在基站和固定网络连接的基础上, 实现了对无线网络的应用。但是在应用的过程中经常出现无线终端和基站的TCP传输问题, 即容易引起单跳问题, 需要进行解决。在AD HOS网络中, 无需基站, 只是利用无线链路组成一个网络, 这就需要解决路由中断后的TCP传输问题。卫星网络是通过卫星链路的, 这就要求解决不对称链路的问题。
在无线网络中, 由于受到传输错误、链路中断以及路由中断的影响, 如果网络没有发生阻塞, 而TCP启动阻塞控制就会引起其性能的大幅降低, 一般而言, 影响TCP性能下降的原因包括以下几点:
⑴高比特误码率。在无线网络中, 链路属于有损介质, 其比特误码率很高, 这就导致了数据包损坏甚至会出现丢包的现象, 这样就容易引起发送端传送超时的情况, 在重传定时器的作用下对数据包进行重传, 同时阻塞控制会启动。这样无线网络就会受到这种重复性错误的影响, 大大的降低了TCP性能。
⑵丢包探测机制的漏洞。由于技术的约束和限制, 标准的TCP无法对不同类型的错误进行区分, 因为引发丢包的原因是多方面的, 但是TCP无法进行区分, 只是认为是拥塞丢包因此启动拥塞控制, 不强考虑网络的具体问题, 在很大程度上降低了TCP性能。
⑶无线链路宽带。在无线网络中, 无线链路的宽带是有限的, 在结点处使用的宽带是极少的, 甚至根本没有宽带, 这样无疑就增加了发送端的超时, 延长了信息丢失的时间, 严重的影响了无线网络的结构和性能。
⑷链路的中断。无线网络中, 链路中断是一个常见的问题, 这是因为在移动结点在切换期间会存在一个信号消失的阶段, 这样移动结点无法受到发送端的数据, 导致了发送超时, 又引发了拥塞控制的启动。
⑸路由的中断。像链路中断一样, 在连接中可能会出现路由的中断, 在重新启动时, 无线网络默认路由中断过程中的数据包是被丢弃的, 因此发送端的超时又启动了拥塞控制。
此外, 宽带的不对称以及链路的延时都会造成数据包的丢失或者是延时, 引起拥塞控制的启动, 大大的降低了TCP的性能。
可见, 在无线网络中, TCP还存在性能较差的情况, 需要利用额外的技术和机制, 提高TCP的性能, 一般来说主要从以下三个方面着手:首先, 利用丢包探测机制, 根据对丢包原因的分析制定合适的错误恢复策略, 减少拥塞控制的启动, 进而减轻比特误码和链路中断的影响;其次, 可以利用显示通知, 即把丢包的原因和网络的情况反映给发送端, 进而可以采取有效的措施, 另外, 还可以进行拥塞检测, 通过检测, 杜绝将丢包作为拥塞的标志的错误命令的执行, 进而提高TCP的性能。
3 改进无线网络中TCP性能的方法
鉴于在无线网络中, TCP存在着性能较低的情况, 需要采取有效的措施, 利用额外的方法进行改进, 进而提高TCP的性能。
⑴蜂窝网络中TCP性能改进方法。在蜂窝网络结构中, 要想对TCP的性能进行改进, 需要从TCP本身和链路层与TCP的结合方面着手, 主要是通过对发送端屏蔽或者是发送端觉察的方式。例如可以采用分段连接方案, 即将移动主机和固定主机的TCP连接在基站出分为两段, 对无线和有线路段采取不同的策略进行处理;缓存方案, 即保留数据的软状态;层次交叉方案, 即该类方案由链路层或网络层将链路环境状态反馈到TCP层, TCP依此采取相应的方法来处理丢包。根据低层的反馈方式和TCP处理措施的不同来进行分类;纯链路层解决方案, 即通过前向纠错和自动重传请求, 增加高层协议通信独立的可靠性。
⑵AD HOS网络中TCP性能改进方法。对于该网络的TCP性能改进而言, 重要是利用网络、链路层的协作, 实现两者之间的信息反馈交流;在路由中断时让发送端进入“坚持状态”或类似的状态;
改进链路层协议的恢复策略;分析数据包的一些属性的变化规律, 启发式地确定网络的状态和丢包的性质。一般而言, 采用的方法多是反馈式或者是启发式。
⑶改善卫星网络TCP性能的方法。改进卫星网络中TCP性能主要是利用TCP层技术和应用层技术, 可以有效的利用卫星链路的宽带, 通过改变慢启动以及避免拥塞的方式, 提高TCP的性能。
总之, TCP在部分无线网络的应用中受到了一定的阻碍, 需要借助一定的额外技术进行改进, 进而提高TCP的性能, 最大限度的提高数据传输的可靠性和稳定性, 保证网络服务的准确性和稳定性。改进TCP性能是一个综合的复杂问题, 需要从多个方面着手, 既可以通过探测丢包的方式, 又可以实现对传输时的参数进行恢复, 此外, 还要完善无线网络对于队列管理的机制, 目前无线网络的TCP研究工作侧重于拥塞控制, 还没有根据无线网络的特性设计专门的队列管理机制, 但在一些方法中已经隐含地使用了新的队列管理机制, 如/8669在基站保留已被转发的数据包;慢启动过程的改进TCP尤其在卫星网络中能有效地改善TCP性能;选择合适的MTU, 可以有效地降低高比特误码环境中的丢包。
综上分析, 通过对额外技术的应用, 可以起到降低比特误码率, 提高TCP地的性能, 进而提高无线网络的使用效率, 为人们提供更加便捷的服务, 提高服务是质量, 相信在各种技术的支持下, TCP将在无线网络中发挥更加重要的作用。
摘要:随着网络技术的发展, 无线网络和设备得到了一定的普及, 对人们的生活产生了很大的影响, 为人们提供了便捷的服务。随着人们需求的不断增加, 无线通信不仅要实现语音通信, 同时还要提高数据传输的可靠性。本文笔者分析了无线网络TCP的性能和影响其性能的因素, 重点探讨改进无线网络TCP性能的方法, 目的是为TCP的改进方向提供指导和借鉴。
关键词:无线网络,TCP,性能,影响因素,额外技术
参考文献
[1]徐雷鸣, 庞博, 赵耀.NS与网络模拟[M].北京:人民邮电出版社, 2009 (09) .
[2]许娜.无线网络TCP协议的改进研究[J].硕士, 2010 (09) .
[3]吴彬.Ad-hoc网络的TCP拥塞控制算法仿真研究[J].硕士, 2011 (08) .
[4]邓晓衡, 陈志刚, 张连明.无线网络TCP协议改进及网络仿真[J].系统仿真学报, 2009 (11) .
无线网上TCP改进的研究综述 篇2
关键词:无线网络,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 篇3
无线自组织网络(wireless Ad hoc network)应运于网络用户对便捷性、灵活性以及移动性的通信需求而得到越来越广泛的应用与发展,它同时作为各种新兴无线网络例如"物联网"、"车载网"等的基础得到广泛关注。无线Ad hoc网络是一种由无线节点组成的不依赖于基础设施且具有自组织能力的分布式网络系统,因而具有无线信道共享、节点可自由移动等有别于有线网络的属性。
传输控制协议(TCP)作为目前应用最广泛的传输层协议应用于无线Ad hoc网络时,因不能适应该网络的特性从而性能严重下降[1]。TCP工作主要目的在于通过探测的方式不断增大发送速率直到丢包发生,以尽量占用整个信道发送数据。然而,相比于传统的有线网络,无线Ad hoc网络的可用带宽通常是很小的,而且信道接入(MAC)竞争会随着网络负载的增加而加强,因此,传统的TCP速率调节方式是比较激进的[2],它不仅容易引起数据包在缓存队列的阻塞,还会引起MAC竞争程度过饱和而导致大量的丢包和重传超时问题,最终降低了TCP的性能。
本文基于已有的相关研究工作发现[2,3],当MAC竞争和TCP拥塞同时考虑时,TCP的发送速率可以比较准确地控制在一个合理范围内。为了准确调制TCP速率以提高TCP吞吐量和端到端时延等性能,本文设计了一种基于对信道竞争和排队拥塞联合检测的TCP速率调制策略,称为TRACC(TCP rateadaption scheme based on contention and congestiondetection)。
1 无线自组织网络TCP速率联合调制
本节首先介绍分别用于评估MAC竞争程度和队列拥塞程度的评价标准,并对其进行理论推导与计算,然后给出TRACC策略的具体实现。
1.1 MAC竞争和队列拥塞程度评估标准
图1表示了MAC协议中通过RTS/CTS握手发送一个数据帧的过程。一个数据帧从节点A发送到节点B要经历排队过程、节点A接入信道的竞争过程以及在信道上的传输过程,通过对该过程的研究发现,网络负载越重,即需要发送的数据包越多,数据包的排队时间就越长,而且有数据需要发送的节点数也会越多,从而导致竞争时间的变长。因此,我们用往返竞争时延来表示MAC竞争程度,其中考虑了TCP数据的确认包(ACK)对网络负载的影响,并且用队列阻塞率来表示队列拥塞程度。
1.1.1 往返竞争时延
根据已有相关工作[2]对竞争时延的定义以及图1可以将一次竞争产生的时延表示为:
其中,Tbusy和Tbackoff分别表示节点检测到信道忙的时间和由此引发的退避时间,(RTSsize+CTSsize)/Channel_rate表示RTS和CTS帧的传输时间,tDIFS/SIFS表示规定的等待时隙总时间。考虑节点竞争信道失败会重试,最大重试次数用nrty表示,传输数据帧失败会重传,最大重传次数用nrta表示,单程竞争时延可以表示为:
同时考虑数据包DATA和其相应的ACK的单程竞争时延,我们将平均往返竞争时延表示为:
其中n为TCP连接的路由跳数,a为平滑因子,防止计算结果因网络不稳定出现突变。
1.1.2 队列阻塞率
直观地,在除去竞争时延影响以及数据包的处理时延和传播时延比较稳定的情况下,一个数据包的往返时延通常反映其在中间节点的队列中消耗的时间,因此,我们定义一个相对单程时延(ROTD)来反映队列利用情况,并表示如下:
其中Stime stamp和Rtime stamp分别表示TCP源节点发送一个数据包和TCP目的节点接收该数据包的时间戳。如果ROTD的值增加,说明数据包的排队时间很可能增加,因此,我们可以将队列阻塞率(QBR)定义为:
其中,ROTDmin和ROTDmax分别表示历史观测的ROTD最大值和平均值,是一个类似a的平滑因子。当网络负载增加到导致拥塞的程度时,ROTD达到最大值,随后的ROTD越接近ROTDmax,说明队列阻塞率越大。
1.2 TCP速率联合调制策略
参考已有工作[4],我们首先在数据包头中添加字段用于返回QBR信息和目的端接收数据速率供TCP源端使用,同时设置阈值RTCDth和QBRth进行TCP速率调制,初始值均设为任意大的值。TCP源端在连接建立时监视吞吐量的变化,当吞吐量不再增长时,当前的RTCD和QBR设为相应的阈值,并且在随后的发送过程中以类似方式更新这两个阈值。TCP源端节点在每次收到ACK是进行速率更新,更新方式如下:
在慢启动阶段:
其中Rrecv表示目的端的接收速率,Scwnd和Spkt分别表示当前窗口和数据包的大小,RTT表示TCP连接平均往返时延。当RTCD和QBR中任何一个超过其阈值时,慢启动结束,进入拥塞避免阶段:
其中 表示每次更新RTCD和QBR后计算的发送速率的可增量。
2 实验结果与分析
本文利用NS-2.34[5]来评测TRACC的性能并将其与只考虑竞争控制的测策略[6]进行比较。信道速率设置为2Mbps,模拟时间为200s,TCP数据段长度为512字节,节点的有效传输距离为250m,干扰距离为550m,大小为n*n的网格拓扑中节点间的距离为200m,TCP连接数为2n,随机拓扑的大小为1000×1000m,其中随机分布50个节点,TCP连接数为10。其他试验参数均为NS-2.34中默认设定的值。
图2网格拓扑吞吐量比较 (参见下页)
图3网格拓扑端到端时延比较 (参见下页)
图2和图3分别比较了TCP、TRACC和TCP竞争控制在网格拓扑中的的吞吐量和端到端时延,从实验结果看到,TRACC策略获得了最高的吞吐量并且产生了最低的时延。
图5随机拓扑端到端时延比较 (参见右栏)
图4和图5表示在随机拓扑中三种策略的性能比较结果,本文提出的TRACC策略同样获得了最好的性能,并且明显优于只使用了竞争控制的策略。
3 结束语
无线网络中TCP性能的改进方案 篇4
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.
无线TCP 篇5
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 篇6
关键词:TCP,无线网络,拥塞控制
TCP是目前Internet中广泛采用的传输控制协议, 能够提供可靠的流传输服务, 在保障网络通信性能方面起着非常重要的作用。TCP协议是为有线网络设计的一种滑动协议, 适用于差错率低、报文丢失主要是由拥塞造成的有线链路, 而由于无线网络环境下的一些明显不同于有线环境的特点, 通用的TCP协议面临着新的挑战而出现了许多不适应的地方。
一、TCP对传输中的错误不加区分, 默认丢包是由于网络拥塞造成的。一但TCP检测出丢包, 则减少其发送窗口而进入慢速启动、拥塞控制状态。但是在无线网络环境下存在许多与拥塞无关而可以导致丢包的原因, 如无线信道突发性比特差错, 多径干扰, 信号的衰减等等。大量的非拥塞丢包造成TCP频繁的减小窗口, 造成整个性能的严重下降。
二、TCP协议基于ACK发送数据包的性质在无线网络环境下也面临新问题。在不对称性非常明显的网络中。例如:用卫星信道作为下行链路, 而用音频网络或拨号作为上行链路, 则由于上行链路带宽的限制而导致ACK的丢失或大的队列延迟, 而使其不能及时到达发送方。发送方在给定间隔内接收不到足够重复的ACK而导致超时以致性能下降。
三、在无线环境下移动主机可用带宽往往较低。这将限制TCP发送者的传输窗口。使其用较小的传输窗口, 一旦包丢失发送者就不能够接收足够多重复ACK以触发快速重传。因而只能通过超时机制恢复, 降低了可用带宽的使用效率。
四、移动主机在不同区域间移动时的切换也会对TCP的性能有很大的影响。移动切换是无线网络的特点, 这点必然会带来切换延时, 特别是网络层切换的延时非常明显。长切换延时一方面会引起TCP发送端的超时, 造成数据包的重传和拥塞窗口的减小;另一方面会增加RTT的大小, 导致TCP在网络发生拥塞时的反应速度减低。同时, 长切换延时会造成数据包的丢失, 从而严重影响TCP的性能。
为了提高TCP在无线网络环境下的性能, 学者们已经提出了各种各样的方案。本文根据这些技术在网络体系结构中作用的层次和修改代码的位置将其大体划分成三类。下面就这三类方案中的典型协议进行分析。
一、端到端的方案
这类方案一般通过一定的机制让TCP的发送端能够直接或间接的知道丢包的原因, 进而采取相应的措施以保障协议的良好运行。这类方案中的典型协议有Freeze-TCP、TCP-real等。这种方案的优点是保持了TCP的端到端机制。一般只要求修改发送端的TCP算法并且少量或不用修改基站的方法, 因此兼容性一般都比较好。这类方案的关键点是判断丢包错误的准确程度, 即错误的具体类型及错误出现的连接方向。但是目前提出的这些方案一般都不能全面而准确的判断出错误的类型。
二、分段连接方案
分段连接的方法通过在基站终止TCP连接而使发送者完全不知道无线网络的存在。在基站和目标移动主机之间单独使用的可靠连接。这个连接可以使用不同于TCP而适于无线网络的协议。典型的分段连接方法有以下两个:I-TCP和M-TCP。这类方案的优点是每段连接可以独立优化, 拥塞和传输错误引起的丢报可以被区分开来;允许对无线网络上的协议开发不同的加强应用层。然而这种方案很可能会破坏TCP端到端的机制。其次, 分段连接的节点失效是不可恢复的。另外, 中间节点在切换发生时, 转移TCP状态也会引起额外开销。设计分段连接方案的关键点是:在基站处理数据时尽量避免数据拷贝引入附加的开销。尽量防止对TCP的端到端机制的破坏以免妨碍安全协议的实施。此外, 设置一个合理的超时值也至关重要。
三、链路层方案
这类方案介于前两种方案之间, 采用局部重传机制以便对TCP发送者屏蔽各种无线连接丢失。这类协议通常采用的两种典型技术, 即前向差错纠正FEC及自动重传请求ARQ。FEC的优点是在延时大的情况下不需要重传, 而且其实现与TCP的重传机制冲突不大;缺点是在信道良好的情况下不仅浪费带宽而且需要额外的处理时间。这类协议进行错误恢复可以独立于上层协议进行操作, 并且不需要维持每个链接的状态。其中典型的协议有:SNOOP和WTCP。链路层方案的关键是竞争重传的避免。一方面由于端到端的TCP连接要通过易丢失的无线连接, 因此不能完全对发送者屏蔽无线网络的丢失。另一方面由于两层协议各自独立的计时器相互作用或由于TCP的重复确认次数或超时而引起发送端重传, 即使数据重传正在局部的进行。解决这一问题可以从两方面考虑:一方面为了局部重传能最大可能成功, 应采用一些辅助措施, 如采用SACK机制来恢复一个窗口的多个丢包, 采用FEC可以纠正无线链路的位差错。
参考文献
[1]程京、沈永坚、张大方、黎文伟:《TCP-Shape:一种改进的网络拥塞控制算法研究》, 《电子学报》, 2006年第9期。
无线TCP 篇7
基于动态频谱接入 (DSA) 的认知无线电 (CR) 技术能有效地提高频谱资源利用率, 从而缓解无线频谱资源短缺的问题。在认知网络中, 认知用户 (SU) 会对周围环境不断地感知, 并根据感知结果, 调整传输参数, 如载波频率、传输功率、调制机制等。然而, CR技术动态利用频谱的特性, 会导致SU通信时工作在频率、带宽、延时都不同的链路上。因此, 接入信道的质量会在很大程度影响到SU的通信服务质量, 乃至整个认知无线网络 (CRN) 的性能。所以, 认知无线电技术研究的热点主要集中在物理层和MAC层, 如频谱感知、频谱预测、频谱分配、频谱接入, 但对上层协议研究相对较少, 如传输控制协议 (TCP) 。底层技术的合理优化能很好提高认知无线网络的整体性能, 但现有TCP协议却无法获得完整的底层传输状态性息, 很难实现TCP协议性能最优化。
目前, 在认知网路中结合网络体系结构增强TCP协议性能的主要方式有两种: (1) Cross-layer方法, (2) Layer-preserved方法。Cross-layer方法即在现有网络体系结构基础上添加一个新的功能模块, 以纳入各层的认知功能。该模块集合各层反馈的信息统一管理各层认知功能的实现。而Layer-preserved方法是在每一层增加两个功能模块: (1) 知识模块 (KM) , (2) 认知模块 (CM) 。本层的KM只存储完成本层分担的认知功能所需要的相应信息, 而CM也只执行本层对应的认知功能[1]。在上述两种方式中, Cross-layer方法采用的相对较多。文献[2]中提出了一个基于Cross-layer的方案, 联合考虑频谱感知、接入决策、物理层的调制编码机制以及数据链路层的数据帧长, 以提高认知网络中TCP吞吐量。其中, 物理层将感知结果反馈到传输层, 传输层根据感知结果联合下层做出相应调整, 选择合适的数据帧长, 调制编码方案及接入决策。文献[3]提出了一个新的CR-Mac协议, 以准确获取可用信道信息反馈给传输层, 并提出了基于拥塞门限预测的拥塞避免机制, 只有在当前可用信道带宽大于拥塞门限时才会触发拥塞避免机制。文献[4]在基于MAC层信息反馈的基础上改进了TCP-Reno协议, 当SU处于感知期间时会将RTO延长一个感知周期时间, 在信道切换时保持TCP传输参数如拥塞窗口 (cwnd_) , 成功切换后继续传输。以上文献表明, 在认知网络环境下结合跨层优化方案, TCP协议性能已经得到一定改善, 但TCP协议根据底层反馈的信道状态信息做出的调整方案却不够完善。为了使传输层更好的适应切换后新信道的链路特性, 本文设计了一个新的TCP切换控制方案 (TCP-CR) , 以进一步在认知无线网络环境下增强TCP协议性能。
2 TCP-CR
TCP-CR主要包括三部分内容: (1) 切换时对拥塞窗口 (cwnd_) 值的调整。 (2) 切换后对TCP报文段大小的灵活选取。 (3) 切换后完成慢启动门限值 (ssthresh_) 更新。这三部分操作过程都与切换后SU接入的新链路的特性紧密相关。
2.1 TCP-CR理论依据
认知无线网络中, 动态频谱接入技术的采用, 允许SU在通信时, 根据PU的活动而调整分别接入多个不连续信道 (这些不连续的信道在频域内要分布在一个有限的范围内) [5]。那么, SU所接入的信道容量以及链路质量 (如误码率) 也有会随之变化。链路带宽变化是使认知网络中TCP吞吐量衰减的主要原因[4]。同时, 链路带宽的不同会直接影响数据处理以及传输时延, 竟而引起时间相关信息的不断变化, 如RTT、RTO等。从而无法保障TCP协议的可靠性。信道误码率是影响无线TCP协议的重要因素, 但在一个无线网络中, 信道误码率往往维持在一个固定水平。SU工作链路的动态变化会引起误码率波动, 从而带来不同的丢包率和重传率, 致使TCP协议在认知网络中会面临更加严峻的挑战。
文献[6]中提出的基于重传率调整TCP段尺寸的机制能有效提高无线TCP的传输性能。其中指出, 重传率会随着误码率的升高而增大, 此时若TCP报文段尺寸越长, 则TCP性能恶化越重。文中通过仿真得出不同TCP段重传范围会对应一个最优TCP报文段大小。文献[7]中针对无线网络设计的基于误码丢包的TCP速率调节策略, 能使TCP数据发送速率随着链路质量自适应变化。当无码丢包率较高时, 启用低的数据发送速率, 当误码丢包率较低时, 反之。而且在窄带链路上, 分组长度越长数据包的传输时延也就越大。鉴于此, TCP-CR中设计了根据切换时底层反馈的新信道链路质量, 灵活选取TCP报文段大小的方法。
CRN中, 信道切换是使TCP协议性能强烈波动的根源。当前克服切换影响的主要办法是:在SU需要进行切换时, MAC层及时通知TCP, TCP立即保持传输参数, 待成功接入新信道后, TCP以先前的参数继续传输。这种方法能很好的适应于水平切换 (即移动台在相同系统的基站 (扇区、信道) 之间的切换称为水) , 而在垂直切换 (即移动台在不同系统的基站 (扇区、信道) 之间的切换) 条件下会产生新的问题。当新信道的带宽大于切换前信道带宽时, 简单的保持TCP传输参数行为, 对新信道的利用显得过于保守。同样, 当SU从大带宽信道切换到小带宽信道通信时, 先前的TCP传输参数又不一定完全适用于现有信道条件, 从而会引起TCP协议对传输参数重新调整 (如cwnd_、ssthresh_值过大) 。而且随着切换前后信道带宽变化差距越大, 这种现象就会越趋明显。TCP-CR通过切换前后信道带宽大小比较, 动态调整TCP传输参数, 能很好地克服这一问题。
2.2 TCP-CR的算法流程
TCP-CR的执行, 将以准确的底层反馈信息为前提, 具体算法流程如下:
(1) 当PU接入某一信道时其信号能量水平是一个由弱到强的过程[8]。SU检测到PU出现时, MAC层就会去查询当前感知范围内是否有空闲频谱, 有则将所获得的新信道的链路信息 (带宽、误码率) 随着ACK递交TCP (假设这段时间很短, TCP还没有受到影响) , 没有则进入等待状态。如果在最大等待时间内, 仍没有获得可用信道则断开连接。
(2) 当切换信息随ACK反馈到传输层时, TCP首先会对ACK进行归类判断, 是NewACK、还是重复ACK (dupACK) 或者超时状态 (timeout) ?这三种状态会引起TCP协议对当前传输状态进行不同处理。
(1) N e w A C K状态下:T C P先判断切换标志handoff_是否为1, 不为1则TCP按照原协议流程处理, 等于1即表示MAC将进行信道切换, 此时TCP将进入切换处理模块:
a:保存当前拥塞窗口值cwndpre_, 并根据底层反馈的新信道带宽 (Bnew_) 与当前信道带宽 (Bpre_) 比值对cwndpre_进行缩放处理, 即cwndnew_=Bnew_Bpre_*cwndpre_。切换完成后以cwndnew_开始新的传输过程, 避开不必要的慢启动过程。
b:根据新信道的误码率来设定适宜TCP报文段大小 (Ltcp_) 、链路误码率 (bP) 与TCP报文段大小的关系, 可以由公式Pp=1- (Pb) Ltcp_ (其中Pp为丢包率) 确定, 即Ltcp_=lg (1-Pp) lg (1-Pb) 。那么根据不同业务流对丢包率的要求, 不同链路误码率就会对应不同TCP报文段大小。
c:确立新慢启动门限值ssthresh_。该算法是基于Mark Allman在RFC2582中提出的ssthresh_更新算法设计的。但Mark Allman的算法只是在TCP连接建立时才有效, 即只针对一固定链路情况。然而, 在链路条件多变的认知网络中需要更加灵活地变动, 每次成功切换之后TCP都要根据链路条件更新ssthresh_具体算法如下:
首先, 切换后记录TCP发送的第一个数据包时刻fristsent_, 以及其对应的ACK接收时刻fristrecv_, 从而求得新链路上基准R TT (baserrt_=fristrecv_-frisrtsent_) 。其次, 记录第二、三个数据包的A C K接收时刻 (time_ack2_、time_ack3_) 以及接收处理完毕后TCP的发送窗口 (awnd2_、awnd3_) , 以求取T C P向新链路上注入数据包的速率ra (te_= (awnd3_-awnd2_) *Ltcp_/ (time_ack3_-time_ack2_) ) , 并以此得到新信道的实际使用带宽值 (Buse_=basertt_*rate_) 。最后, 完成慢启动门限值更新 (ssthresh_=int (Buse_Ltcp_) )
d:TCP按原协议流程控制发送新数据包。
(2) dupACK状态下:如果标志位handoff_=1则进入切换处理模块, 切换完成后, 再判断是否构成三次重复ACK。是则避开cwnd_和ssthresh_减半处理, 保持当前cwnd_和ssthresh_不变。若没有形成三次重复A C K则T C P按原协议流程控制发送新数据包。handoff_=0则按原协议流程对dupACK进行判断处理。
(3) timeout状态下:如果标志位handoff_=1则进入切换处理模块, 否则将cwnd_置为1重新开始慢启动过程。
TCP-CR的算法流程图如图1所示.
2.3 TCP-CR*
TCP-CR*与TCP-CR相比两者算法流程一致, 但只实现了切换控制方案中部分功能, 即切换时只改变TCP报文段大小。
3 仿真分析
本文在NS2仿真工具上搭建模拟认知无线电网络环境, 并假设系统中只有两个主用户 (PU) 和一个次用户 (SU) 存在, 网络结构如图3所示。主用户的到达和离开分别服从参数为λ=1/7和µ=1/4的泊松分布。下面以TCP-newreno版本为基础分析改进后的TCP协议性能。
3.1 报文段大小对TCP性能的影响
假定模拟的认知网络中只有两条信道 (标记为CHN_1, CHN_2) , 每条信道的带宽 (5Mbps和3Mbps) 和延迟 (10ms和12ms) 不同, 构成垂直切换环境。SU在通信传输时只建立一条TCP连接, 数据源为FTP, 仿真时间300s, 仿真中每隔10s记录一次TCP吞吐量。仿真过程中固定5M带宽信道 (CHN_1) 的误码率为1e-6, 以3M带宽信道 (CHN_2) 的误码率为变量 (初始值为1e-1) , 观察在不同TCP报文段大小下 (Ltcp_) , SU的TCP平均吞吐量变化情况, 仿真过程中Ltcp_固定不变。仿真开始时SU占用CHN_1通信。
仿真结果解析:仿真结果如图3所示, 当S U在CHN_1和CHN_2交替切换通信时, 随着CHN_2误码率 (BER) 的降低, SU的TCP平均吞吐量会逐渐提高。同时, 不同TCP报文段初始值又会影响SU的TCP平均吞吐量大小。在相同BER条件下, 随着Ltcp_的增大, SU的TCP平均吞吐量会得到相应提高, 但是当Ltcp_增大到一定水平之后, 继续增大Ltcp_反而会带来吞吐量的衰减。如图3中, 当CHN_2的BER减小到接近1e-3时, Ltcp_为1500字节时的TCP平均吞吐量开始低于Ltcp_取1000字节时的吞吐量。原因由表1可见, 从BER为1e-3开始, Ltcp_为1500字节时的丢包率明显高于1000字节时的情况。当Ltcp_为512字节时, 在各种链路误码率条件下其对应的丢包率最低, 但同时其吞吐量也最低。结合图3和表1可知在高链路误码率情况下, TCP报文段越长出现丢包的概率也就越大, 在此条件下虽然选择较小报文段能降低丢包概率, 但会使系统吞吐量维持在一个较低水平, 在发送相同数据总量时会产生更多系统开销。所以, 当SU切换到新链路上时, 根据新链路质量以及通信业务对丢包率的要求, 合理选择TCP报文段大小, 能有效地提高系统吞吐量, 保证SU通信质量。
3.2 TCP-CR、TCP-CR*与原TCP协议性能对比分析
以3.1小节中网络条件为基础, 设置CHN_1的带宽为5M, 误码率为1e-6, CHN_2的误码率为1e-3, 采样周期1s。为了简化仿真难度, 当SU切换到CHN_1时, Ltcp_取1000字节, 切换到CHN_2时, Ltcp_取512字节。仅以CHN_2的带宽变化观察TCP-CR、TCP-CR*与TCP协议性能。SU开始通信时, 占用CHN_1, 初始TCP报文段大小为512字节。
仿真结果解析:仿真结果如图4所示, 三个版本协议的TCP平均吞吐量都随着CHN_2带宽增大而提高, 与之同时改进后的TCP-CR和TCP-CR*协议与原TCP协议吞吐量差距也在逐步增大, 即SU切换前后两条信道带宽差距越小, 改进后的协议性能优势越突出。产生这种现象的原因主要有两点:1TCP-CR和TCP-CR*能够根据CHN_1和CHN_2误码率的不同灵活选取TCP报文段大小, 由场景一结论可知, 此调节行为能有效提高SU的TCP吞吐量。2在大带宽信道条件下, 发送终端对单个数据包的传输处理时延较小, 单位时间内发送的数据包越多, 带宽越大效果越明显。对比图5、6可见, TCP-CR、TCP-CR*与原TCP协议先比, 图5反映出的性能改进幅度远高于图6。
图4中, TCP-CR协议性能略高于TCP-CR* (这表明在CRN中垂直切换条件下TCP报文段的固定不变是限制TCP协议性能的主要原因) , 并且随着CHN_2带宽增大, 两者之间的性能差距逐渐缩小。表2反映出SU在CHN_1与CHN_2的六组特定对比带宽条件下切换通信时, TCP-CR比TCP-CR*在吞吐量上的增加比率。观察图7、8cwnd_变化情况可知原由。图7中, 当CHN_1和CHN_2带宽都为5M时, 两个改进版本协议cwnd_曲线大部分重合, 只是在SU每次完成切换后的一小段时间内, 由于TCP-CR的效用使cwnd_值略高。因为在大带宽条件下, 较快的数据包发送速率能很快结束切换引起的不稳定传输状态, 保障TCP-CR在短时间内恢复到一个较好的传输水平。同理, 在小带宽条件下, 缓慢的数据发送速率, 会让TCP-CR经历更多时间才能重新进入稳态传输 (从cwnd_=0的慢启动开始) 。因此如图8所示, 当SU从大带宽信道切换到小带宽信道通信时 (TCP传输参数变化剧烈) , 在切换后较长时间内TCP-CR的cwnd_值高于TCP-CR*, 体现在吞吐量上此时TCP-CR的吞吐量增加比例就会高一些。图7、8中TCP的cwnd_值都高于TCP-CR和TCP-CR*, 因为在仿真中TCP的报文段取值小且固定不变。
图9、10中, 包含ssthresh_更新处理的TCP-CR的门限值变化显然不同于TCP-CR* (两图中TCP-CR*与TCP的ssthresh_曲线完全重合, 因为两者对门限值的处理方式相同) 。根据SU动态接入频段的链路质量, 合理设置ssthresh_能增加TCP协议中慢启动算法的鲁棒性。在SU完成垂直切换时由为重要, 固定不变的ssthresh_值, 会导致切换后一旦SU遇到数据包超时从新开始慢启动的过程中, 面临慢启动门限过大或过小的问题。前者会延长慢启动持续时间并且容易导致大量数据包涌入网络中从而引起网络拥塞, 后者会使TCP协议过早进入拥塞避免阶段, 降低信道利用率[9]。
4 结论
本文紧密结合SU动态接入频谱特性, 从现有TCP协议在认知网络中暴露的缺点入手, 设计了基于切换调整的TCP传输控制方法 (TCP-CR) 。通过仿真验证表明, 采用TCP-CR的协议在相同条件下比原TCP协议体现出更好的性能。同时, 通过加入TCP-CR与TCP-CR*协议的对比, 揭示了在CRN中, 当SU进行垂直切换时TCP报文段的固定不变是限制TCP协议性能的主要原因。本文仿真中虽然只值设定了两条信道, 2个PU以及1个SU, 但是很容易在现有仿真平台上扩展到多信道到用户环境。在接下来的工作中, 会以TCP-CR中ssthresh_更新方法为基础, 改进现有TCP协议的慢启动算法, 以使TCP协议更好地适应认知无线网络环境。
摘要:认知无线电网络中SU完成垂直切换前后, 传输信道质量不同是影响TCP协议性能的主要原因。为了克服此问题, 设计了一个基于跨层反馈的TCP控制方案, 取名TCP-CR。TCP-CR主要包括拥塞窗口调整、TCP报文段大小选择、慢启动门限值更新三部分内容。并令TCP-CR*为TCP-CR的简化版, 其只含有TCP-CR中的报文段大小选择模块。以TCP-newreno协议为版本实现TCP-CR与TCP-CR*。仿真结果显示, 采用TCP-CR或TCP-CR*的协议性能都明显优于原TCP协议, 同时TCP-CR的性能略高于TCP-CR*。这表明报文段大小的合理选择是影响认知网络中TCP协议性能的关键因素。
关键词:认知无线网络,TCP-newreno,垂直切换,跨层
参考文献
[1] Sarkar D, Narayan H.Transport Layer Protocols forCognitive Networks[C].INFOCOM, 2010 March:15-19.
[2] Changqing Luo;Yu, F.R.;Hong Ji;Leung, V.C.M.Cross-Layer Design for TCP Performance Improvement inCognitive Radio Networks[J].IEEE Vehicular TechnologySociety, 2010, Jun:15-19.
[3] Yu-Chun Cheng, Wu E.H., Gen-Huey Chen.A New WirelessTCP Issue in Cognitive Radio Networks[C].ICNC, 2010, Nov:17-19.
[4] Xiaowei Wang., Xuebin Sun, Chenglin Zhao, et al.TCP-CRENO--TCP ENHANCEMENT USINGCROSS-LAYER FOR COGNITIVE RADIO NETWORKS[C].AIAI, 2010, Oct:23-25.
[5] Shao-Yi Hung, Eric Hsiao-Kuang WuAn, Gen-Huey Chen.Opportunistic Cognitive MAC Protocol for Coexistence withWLAN[C].ICC, 2008, May:18-21.
[6]刘俊、隆克平、徐昌彪、杨丰瑞.两种改善无线TCP性能的新机制.电子学报, 2004, 32 (12) :2059-2062.
[7]徐昌彪, 隆克平, 杨士中.无线网络中基于误码丢包的TCP速率调节策略[J].计算机学报, 2002, 25 (4) :438-444.
[8] Hang Su, Xi Zhang.Energy-Efficient Spectrum Sensingfor Cognitive Radio Networks[C].ICC, May, 2010.1-5.
[9]李士宁, 方济平, 覃征.一种动态门限变速增加的TCP慢启动算法[J].西安电子科技大学学报, 2006, 33 (4) :640-645.
【无线TCP】推荐阅读:
无线 无线维护 华为 L1试卷07-09
家庭无线信号,谁偷了无线路由带宽08-26
无线WLAN网络携手3G共创无线城市12-15
甄别无线互联网和无线网络的差异07-01
无线护盾的无线网络安全防护配置10-19
无线移动07-16
有线无线07-21
无线公网10-15
无线采集01-13
无线鼠标01-16