TCP在无线链路上的性能问题

发布时间:2003-11-26 作者:王传令Wang Chuanling 阅读量:

1 简介

  Internet的无处不在是因为其网络技术依赖于IP协议而设计,IP协议是Internet网络层协议,它把各种网络无缝地互联成一个全球网。通过移动终端访问Internet的强烈用户需求使得无线系统(比如蜂窝通信和无线局域网)拥有的移动功能有希望在Internet上也能得到。然而,蜂窝通信 (CC)系统和无线局域网(WLAN)系统会产生很多性能问题,主要是由于环境条件和陆地上的阻挡和反射导致的较高的不可预测的错误率;另外,当移动设备在两个相邻蜂窝间移动时,蜂窝系统将会发生较长时间的通信暂停。为了解决这些问题,需要一种能增强无线和有线链路Internet性能的综合技术,并要考虑到TCP/IP协议组的需要。

  2 无线系统的一般特征

  链路层帧的转发延时主要由发送延时(由链路的速度分开的帧尺寸)、传输延时(信号通过链路所花费的时间)和发送端与接收端的处理延时3部分组成。WLAN和CC链路具有与有线链路相同的传输延时,比卫星链路的传输延时小得多。然而,与有线链路不同,WLAN和CC链路具有外部干扰引起的严重错误率。CC链路受到大气状况和陆地障碍物引起的多径衰落影响;而室内WLAN链路受到的多径衰落是由人和家具引起的,因为人和其他物体的移动不断改变链路的错误特征。WLAN和CC的错误行为比卫星链路变化得更快更不可预知。

  2.1 无线局域网

  无线局域网(WLAN)的一个典型的例子是朗讯的WaveLAN系统,最初的系统或采用直序(DS)或采用跳频(FH)来进行无线传播,主要工作在900 MHz或2.4 GHz的频带上,最初的比特率是2 Mbit/s,现在的WLAN更多的是提供5.5 Mbit/s和11 Mbit/s的比特率,而54 Mbit/s的方案很快就会进入实施阶段。WaveLAN硬件提供对高层的以太网兼容接口,这也就是说,同样的包头、CRC和帧大小都可以使用,且也能提供面向无连接的尽力而为业务。WaveLAN网络是基于多播的,采用带有冲突避免的载波侦听多路存取(CSMA/CA)方法共享信道,取代了以太网的带有冲突检测的载波侦听多路存取(CSMA/CD)方法。在无线网中,由于在同样的频带下需要同时发送和接收,冲突检测的实现有一定的困难,因此,CSMA/CA就代替了CSMA/CD而被采用。

  由于覆盖域变小且有高的系统带宽,发送和传播延时就变小了。在存在窄带干扰和运作区域存在障碍物的情况下,系统也表现出较好的健壮性。使用最大的帧时,典型的帧丢失率低于2.5%。由于桌上型电脑卡和便携式电脑卡的同步技术不同,它们的吞吐量也就不一致,同时,主机的处理能力也会影响不同类型的主机间的吞吐量和帧丢失。双向通信时,同步可能会导致过多的冲突。WLAN系统提供接收门限机制来隔离开相邻的WaveLAN网络,但不提供能量控制。新的WLAN支持多频带以避免相邻网络的干扰。

  为了实现不同供应商提供的WLAN设备的相互协调工作的能力,IEEE制定了802.11标准。802.11标准对WaveLAN的增强主要包括支持确认和重发、带预约的自由竞争发送和由控制主机协调WLAN工作的操作模式。最初的标准规定无线传输要工作在2.4 GHz频带和1 Mbit/s或2 Mbit/s的比特率,无论在DS和FH传播方式中都要如此。随后,发起了两个新的标准化计划以提供更高的速度。802.11a使用了一个高速(正交频分复用,OFDM)的物理层,使它工作在5 GHz的频带上,同时,它提供的比特率在6 Mbit/s和54 Mbit/s的范围内变化。802.11b是为提高现存物理层上的比特率而设计的。商用的802.11b解决方案或者工作在5.5 Mbit/s或工作在11 Mbit/s的比特速率上,使用的是2.4 GHz的频带。

  2.2 蜂窝通信网

  当前的CC系统主要的特征是适当的比特率、小的帧结构和电路工作模式。它们使用时分多址(在GSM和IS-54中)或码分多址(在IS-95中)来共享媒介。数据帧携带着编码的音频或高层的数据。与WLAN相比较,由于速率低和距离较长的原因,CC系统表现出较高的延时,而且由于建筑物和小山引起的多径衰落的存在,户外的CC环境更加恶劣。如果帧丢失是随机分布的话,1%~2%的帧丢失率不会影响到话音的质量,这一点是通过比特交织来实现的,它很大程度上增加了处理延时。CC系统通过使用一种互通功能(IWF)连接到其他网络。IWF提供了模拟网端的数/模转换接口和综合业务数字网(ISDN)端的速率适配/帧转换接口。为了与分组网络互相协调操作,IWF使用了无线链路协议(RLP)与移动设备通信。RLP可支持IP数据报分割和重新组装,因此就提供了透明的Internet连接和错误恢复,这样就屏蔽了无线的包丢失。图1表明了IWF位于CC系统和Internet之间,起到Internet网关(IGW)的作用。


图1 CC系统和Internet之间的连接

  全球通(GSM制式)提供了9.6 kbit/s的全速率信道,不透明模式RLP使用240位的帧,使用选择重发(SR)自动重发请求(ARQ),使得原来10-3的误比特率减小到10-8,但这些以变化的吞吐量和重发带来的延时为代价。

  IS-54(TDMA制式)支持9.6 kbit/s全速率信道,不透明模式RLP使用带有256比特的帧结构的高级ARQ方案,每个帧都独立地确认多个连续帧。发送者保留(重发)帧的顺序,因此当一个帧被确认时,所有在它前面发送的帧如果还没有被确认,就认为这些帧已经丢失。

  IS-95(CDMA制式)支持8.6 kbit/s全速率信道,不透明模式无线链路协议(RLP)使用172比特的帧。网络层包首先被封装进尺寸大小变化的点到点协议(PPP)帧中,然后将其分割成固定大小的无线链路协议帧,这样就同时具有了尺寸变化帧的优点和大小固定帧的有效的错误恢复。帧在几次重发后如果还没收到确认就丢失此帧,因此就协调了有限延时变化的可靠性。余下的包丢失率就变成了10-4。

  3 无线链路上的TCP性能

  3.1 TCP基础

  Internet上最流行的传输层协议是TCP,它提供了可靠的字节流服务。TCP提供了对用户数据透明的分段和重组,并且能进行流量控制和拥塞控制。TCP数据报在顺序到达时将被累积确认,而不按顺序的包将引起多重确认信息的发送。当收到多重(通常3重)确认信息时,发送者就知道有包丢失,并缺省地认定是下一个包被丢失。因为IP可以重排数据报,所以TCP不能立即认定包序列中的所有的空隙都意味着包丢失。当会话空闲或确认信息丢失时,TCP使用超时设定来检测包丢失。重发时钟会根据前面的往返时间(RTT)来不断更新调整。因为延时超时设定使恢复变慢,同时前面的包可能导致额外的重发,因此,准确性就变得非常关键。

  TCP还保留一个拥塞窗口,它是对不引起拥塞的传送数据包数量的一个估计。新的数据包仅仅在这个窗口和接受者窗口同时允许的情况下才被发送。拥塞窗口开始时是一个数据包,新的确认信息使它增加一个数据包,因此每个RTT后,它就会翻倍。这是慢启动阶段(指数增长)。在图2中,在4个RTT后,当超时时钟检测到一个包丢失时,慢启动停了下来。慢启动门限随后被设为拥塞窗口的一半大小,拥塞窗口重新设置为1个数据包,丢失的数据包被重新发送。慢启动重复地执行,直到3个RTT后到达门限值为止,从而可以让路由器排完它们的数据队列。随后,拥塞窗口每经过一个RTT就增加一个包,这是拥塞避免阶段(线性增长)。当有丢失包通过多重确认信息被检测到时,就意味着后来的包已经被收到了,TCP重新发送丢失的数据包,并减半拥塞窗口,重启拥塞避免状态。多的数据包丢失可能引起慢启动门限的一再减小,从而引起更慢的拥塞避免阶段,导致吞吐量大幅度下降。


图2 TCP拥塞窗口的动态

  3.2 TCP性能

  TCP假定所有的包丢失都是由拥塞引起的,但在无线链路中这个假设不再可靠。在距离25.9m的链路上传送大小为1 400字节的帧时,WaveLAN的帧错误率(FER)达到1.55%,并伴随着成串的包丢失。把帧减小到300字节时,FER减小一半,但引起了组帧开销。在共享的媒介WLAN中,前向TCP业务(数据)与反向的通信数据(确认信息)存在竞争,这将导致冲突发生,同时引发FER的急剧增加。主机移动也能使WaveLAN的FER增加将近30%。在一个实际标度为1.6 Mbit/s的WaveLAN上做文件传输测试,实际上只得到1.25 Mbit/s的吞吐量。22%的吞吐量减小是由FER引起的,只有1.55%是由于频繁的启动拥塞控制导致TCP的发送速率持续减小引起的。如果包错误是均匀分布的而不是成串出现的,吞吐量将会上升到1.51 Mbit/s。

  CC链路在透明(语音)模式时有1%~2%的残余FER(在低层错误恢复后),即使它们使用短的帧。全速率IS-95链路把1 400字节的IP数据包分割为68帧。假定帧错误相互独立,则一个数据包在FER为1%的链路上传输时,成功传输的概率是50.49%。由于复帧在传输前插入了数据位以相互隔离,所以,帧错误的突发将比比特错误突发要少。编码和数据插入减少了包丢失率,同时使得帧错误随机出现,因此避免了通话质量的下降,但同时接收到数据后要进行的去插入数据的处理将会增加时延。短IP数据包有较少的错误,但同时却也增加了头开销。TCP/IP头压缩技术可以用在慢的CC链路上,压缩的TCP/IP头只有3~5个字节。不幸的是,头压缩与网络层的加密不兼容,并且可能负面影响到TCP错误恢复和链路层复位,从而引起整个TCP窗口的数据丢失。

  当不透明模式RLP工作在GSM上时,通常是在TCP时钟期过去前从包丢失中恢复过来,但这样就有高的和变化很大的RTT值。在旧金山的GSM网上用ping进行的测试表明,95%的RTT值在600 ms左右,有20 ms的标准偏离。其他地方的GSM网上用ping测试,也有同样的结果。然而,在实际运行的网上做的大文件传输实验却表明,RTT会到达相当高的值(12 s)。图3示出在Oulu 和Finlan的商业网上传输文件时的RTT测试结果。RTT值是由处理时间和2×150 ms的GSM信道延时组成的,另外还要加上250~1 250 ms数据包发送时间和35 ms的确认信息时间。这个比较大的发送延时是由隔离位插入、速率适配、缓存和GSM网络元素间的接口引起的。


图3 GSM上的TCP RTT变化

  逐渐增长的TCP最大传输单元(MTU)的尺寸减小了TCP/IP头的开销,因此提高了吞吐量,但同时也增大了交互的响应时间。图4表示出在运行的GSM网上的,典型的吞吐量随TCP MTU大小而变化的函数图。但在实际实验中,当MTU大小为710字节时,TCP吞吐量最大,同时测试还表明,GSM上的TCP偶然会有6~12 s的中断,这是由RLP层持续2 s的中断引起的。对于这个问题的分析表明一些IP数据包被缓存后,在得到释放后就不再是有序的了,这是一个在运行的GSM网络上出现的现象,在小的测试网络中很少遇到这种情况,也不能模拟。中断也可能是由链路复位引起的,当一个RLP帧在几次重试后还不能发送后,就会导致这种情况发生,当发生严重的协议违背时也会引发这类事件。这就导致发送者和接收者序列数字被重新设置并冲刷掉所有的缓存区,同时意味着实际中的GSM RLP不够可靠。为了减少复位的次数,在连接建立期间可以增加重发的最大次数(缺省6次),吞吐量也可以因为适配RLP帧大小而上升。尽管尺寸小的帧简化了RLP操作并使它在最差信道情况下更健壮,但选择一个与主要情况相适配的帧尺寸将会使吞吐量上升。


图4 GSM上的TCP性能与MTU尺寸的变化图

  当端到端的路径包括多路无线链路时,累积的包丢失将更加减少吞吐量,同时也会引起对无线链路的不充分利用,这是电路交换CC链路的一个重要的问题。此外,当TCP包在经过路径上的几个无线链路后丢失时,它的重发必须再次通过这些已经通过的路径,因此浪费了带宽。包丢失还有更明显的影响,使路径上有更高的端到端的延时,这就需要TCP维持大的发送窗口来保持数据流量。在这样的路径上,TCP还会遭遇到虚假的超时设定,但如果发送者能等待确认信息的到来更长的时间,这种超时设定是可以避免的。在切换期间,CC系统支持较长时间的连接断开,这会导致虚假超时发生。另一个问题就是,当包被重排超过两倍的TCP确认门限时,这是一个GSM RLP中的偶然事件,就会发生虚假快速重发。

  表1示出LAN路径(单个LAN上)上的TCP吞吐量和WAN路径(WLAN加上15个有线链路)上TCP的吞吐量的比较。我们首先示出没有任何包丢失的情况;然后是在WLAN中,在帧丢失率是2.3%,帧大小是1 400字节的情况下的数据。

表1 LAN和WAN连接上的TCP吞吐量

 

没有无线包丢失

有无线包丢失

完成百分比

LAN

1.5Mbit/s

0.70Mbit/s

46.66

WAN

1.35Mbit/s

0.31Mbit/s

22.96

  表2示出单个链路路径的吞吐量,使用的是IEEE802.11或802.11b的WLAN。可以看到,高速链路受包丢失的影响更大,因为TCP在每个丢失后需要更长的时间才能到达它的峰值。

表2 IEEE802.11 WLAN连接上的TCP吞吐量

 

物理比特率

吞吐量

完成百分比

IEEE 802.11

2Mbit/s

0.98Mbit/s

49

IEEE 802.11b

11Mbit/s

4.3Mbit/s

39.1

  4 TCP性能的增强

  4.1 传输层解决方法

  无线链路上的TCP性能的退化通常被错误地认为是拥塞导致无线包丢失引起的,因此,常见的建议是对现在的TCP进行适当的修改。在CC系统的切换期间,包可能延时甚至丢失,对这些包丢失的恢复工作应该在切换完成后立即开始,而不能有短暂的时间间隔。TCP能通过从低层接收正确的信号来实现这个要求,另外TCP还可使用低层的移动线索来试探着辨别切换引起的包丢失。由于这些包丢失,TCP在恢复期间能避免减半慢启动门限,这样就跳过了拥塞避免阶段。另一个方法是在无线链路终端点的切换期间阻塞TCP发送者,主要是通过透明的关闭接受者的通告窗口来实现。发送者随后冻结所有挂起的时钟,并开始周期地探测接收者的窗口。然而,缩小通告的窗口就违反了TCP的准则。

  切换完成后,拥塞避免帮助探测新链路的容量。尽管有其他的无线包丢失,对于恢复来说重发就可以了。因为端到端的重发很慢,TCP连接可能被分离开,这要由连接有线和无线的中间点路由器完成。因此端到端的连接就被分解为无线链路路径和有线链路路径两个单独的TCP会话。一个最佳化错误恢复的协议可作为无线链路上的替代方案。因为确认信息能在数据包到达目的地之前到达发送者,所以这种分离方案就违背了端到端TCP的语义。为了维持TCP的语义,确认信息必须被延时,因此就减少了吞吐量。中间点面临重大的开销,因此包就要经过两次TCP处理,并且要保持相当大的连接前状态。

  Eifel方案是修改了TCP来避免切换和链路层重发导致的延时引起的虚假超时设定和快速重传。由于这些问题都是由于TCP不能区别原始数据报和重传数据报的确认信息,Eifel方案让TCP向每个出去的数据包都添加时间标记。时间标记在确认信息中返回,因此,很容易就避免了超时设定,而且还没有改变TCP语义。然而,端到端的TCP恢复却不能被加速,如果仅仅端点需要修改的话,TCP增强方案就更有吸引力了,在实际中,还需要其他的改动。一些方法需要从低层来的信令以检测切换,分离TCP方案需要其他的TCP兼容协议运行在无线链路上来取得更加有效的错误恢复。

  4.2 链路层解决方法

  除了修改TCP外,我们也可以屏蔽掉无线包丢失。在CC系统中,这可以通过不透明模式RLP实现。另一个解决方法是在IP层执行局域错误恢复,就像在探听(Snoop)TCP一样。Snoop通过维护每个TCP连接经过的中间点来跟踪TCP数据和确认信息。Snoop缓存未确认的TCP数据报,同时使用多重确认信息传达丢失指示,再加上本地时钟,透明地重发丢失的数据。它隐藏了标示着TCP发送者的无线数据丢失的多重确认信息,因此防止了多余的TCP恢复。Snoop使用TCP数据报提供的信息避免了链路层的控制开销,比分离TCP方案更有效,并且没有违反TCP的语义。它同时还通过抑制多重确认信息避免了局部的冲突和TCP重发。

  Snoop要求TCP接收者位于中心点后面。如果无线主机正在向一个远端接收者发送数据,TCP确认信息就会返回得很晚,从而导致不能有效地恢复,并且甚至可能发生拥塞丢失。在这种情况下,TCP需要使用直接丢失通告(ELN)来区别拥塞丢失和无线丢失。如果Snoop代理检测到一个与拥塞无关的丢失,它就把ELN比特设置到TCP头中,并且把它传给接收者,接收者再把它返回给发送者。Snoop还能使用队列长度信息从无线错误中辨别拥塞。当接收到一个ELN通知时,TCP发送者重发丢失的数据包而不激发拥塞控制。尽管ELN可用于大多数的拓扑结构中,但它需要改为路由器算法。同时,当一个带有ELN比特设置的确认信息返回时,丢失的数据报仅仅在过去一个RTT时间间隔后被重发。

  CC系统RLP消除了Snoop对分层的违反。它在IP层检查TCP头,但它们可能与TCP并行地重发数据。这种情况发生得很少,而且,在完全可靠的 RLP中,RLP在几次尝试失败后就会放弃错误恢复,从而就防止了这种事件的发生。与TCP修正方案相比,链路层方案可以在局域起作用,并要有低的往返延时以允许快速恢复。其主要的局限性是它们提供了单层的恢复,这不适合于所有的高层协议和应用。

  5 无线系统的发展和TCP

  CC系统的趋势是提供更高的速度和更好的包数据业务支持。最高数据速率在小区域和微小蜂窝内得到实现,在这些区域中,用户的密度也比较高。高速电路交换数据(HSCSD)系统是GSM的扩展,以提供高达56 kbit/s的比特率,它主要是通过为每个数据电路保留多个TDMA时间片来实现。通用分组无线业务(GPRS)是分组交换的GSM扩展,它通过动态TDMA时间片的预留支持高达171 kbit/s的比特率,可提供20~40 kbit/s的用户吞吐量。试验表明,Internet数据包丢失率总在2%上下。第3代欧洲CC系统UMTS(通用移动电信系统)是基于宽带CDMA的,支持各种比特率的电路交换和分组交换模式。第一阶段包括与GPRS同样的业务,可以提供速度高达384 kbit/s的比特率,即将到来的阶段有望在有限的区域内提供2 Mbit/s的比特率。在美国,GSM EDGE/IS-136 HS系统能提供270~722 kbit/s的比特率,在有限的区域中甚至能提供超过2 Mbit/s的速率。

  很多小范围(室内)系统或个人局域网(PAN)已经被设计出来,以提供低比特率的服务,比如蓝牙就是一个扩频系统,它提供400~700 kbit/s的比特率。然而蓝牙还应当提供与低端WLAN相同的TCP性能,它的无线链路层还存在很多与IEEE 802.11互相兼容方面的严重的问题。IEEE802.15方案规定了基于蓝牙的PAN标准,它就是用来解决上面的问题。为了得到较高的速度,本地多点分配系统(LMDS)将提供对宽带固定无线Internet的访问,它将使用28 GHz或40 GHz的频率段。LMDS是一个无线本地环系统(WLL),为固定主机提供1~2 GHz的带宽,同时,它使用了高效的链路层FEC方案,它能够可靠地运载TCP业务。

  WLAN系统的趋势是提供较高的速度,同时也支持在两个相邻网络间的移动,每个网络实质上就成为一个微蜂窝。在人口稀少的地方能被陆地或卫星系统用很大的蜂窝覆盖。由于在一个给定的区域中增加蜂窝的数量意味着要使用更多昂贵的基础设施,所以不同的系统使用不同的蜂窝尺寸来实现它们的目的。TCP/IP支持通过把这些无线系统变成Internet的一部分而使它们能够互操作和兼容。下一步就是提供无线系统之间的直接的互操作性,这样就允许用户不仅在同一系统的蜂窝之间透明地移动,还可以在不同的系统之间做到这一点。在这些一体化的分层蜂窝系统中,在用户密度逐渐增加的区域,大的蜂窝将逐渐被多个小蜂窝覆盖。

  因为切换带来的连接中断反过来影响了TCP的性能,分层蜂窝系统必须认真地设计以避免增加切换引发的问题。小区域和微蜂窝的高数据速率将导致更频繁的切换和潜在的增加每个切换期间的包丢失。不同系统之间的切换还可能会极大地改变下面无线链路的性能。为了减少这些问题的数量,关键就是要加强两层之间的相互协作,从而使协议能在需要时适应它们的行为。更深入的研究是直接对适配层进行研究,让它以有序的方式向高层提供信息。欧盟的WINE方案研究了协议的自适应性和链路决定的配置,以优化无线链路上的IP性能,并且没有向TCP显露很多的底层细节。一种增强协议代理方法已经得到发展,即无线适配层(WAL)用于处理自适应性。正出现的软件无线电技术允许物理层和数据链路层参数能实时配置,它必将更加增强链路的自适应性,因此,协议自适应在未来将变得异常重要。

参考文献

1 DeSimone A, Chuah M C and Yue O C. Throughput Performance of Transport-layer Protocols over Wireless LANs. Proc IEEE GLOBECOM'93, Dec 1993: 542-549
2 Xylomenos G and Polyzos G C. TCP and UDP Performance over a Wireless LAN. Proc IEEE INFOCOM'99, Mar 1999: 439-446
3 Nanda S, Ejzak R and Doshi B T. A Retransmission Scheme for Circuit-Mode Data on Wireless Links. IEEE JSAC, Oct 1994,12(8): 1338-1352
4 Ludwig R , Rathonyi B. Link Layer Enhancements for TCP/IP over GSM. Proc IEEE INFOCOM'99, Apr 1999:415-422

[摘要] 文章以无线LAN和蜂窝通信系统为例,首先回顾了无线链路的特征;然后概述了TCP/IP协议组用于无线链路时的性能问题,并为解决这些问题介绍了几种建议,验证了它们的优点和局限性;最后讨论了未来无线系统的发展方向,以及它们即将面临的与TCP性能有关的挑战。

[关键词] 无线链路 传输控制协议 无线局域网 蜂窝通信 蜂窝网

[Abstract] Taking the wireless LAN and cellular communication systems as examples, the paper first reviews the characteristics of the Wireless Link, and then presents some suggestions on improving the performances of TCP/IP protocol suite over the Wireless Link, along with the evaluation of those suggested technical solutions. Lastly the development trend of the future wireless system and challenges it may confront, concerning TCP performance, are discussed.

[Keywords] Wireless link TCP WLAN CC Cellular network