CDMA2000 1x系统为移动数据增值业务的开展提供了高速的空中传输保证。在此基础上运营商基于CDMA移动分组网开展了丰富多彩的移动数据业务,其中WAP业务以业务内容丰富,使用简单等特点得到迅速发展。随着业务的开展,如何从技术上优化WAP系统性能,提高用户的使用感受变得十分必要。
1 HTTP重定向问题及解决方案
1.1 CDMA WAP业务中的HTTP重定向应用
CDMA WAP业务和计费系统中大量采用重定向技术,完成内容提供商(CP)的内容挂接,以及相关的浏览、下载和后台计费等业务。无线应用协议(WAP)网关、计费网关对于超文本传输协议(HTTP)重定向的缺省处理是简单转发,也就是将来自WAP入口或者CP服务器的HTTP重定向响应返回给移动终端,由终端的浏览器进行解析和处理[1]。CDMA WAP业务中的HTTP重定向过程如图1所示。
终端浏览器在收到HTTP重定向响应后,提取其中响应头位置的值,作为新的统一资源定位(URL)信息,重新发起HTTP请求,这些操作没有用户干预,用户并不知晓是否发生了重定向操作。重新发起的HTTP请求经过服务器处理后,将得到新资源对应的结果信息,显示给用户。
1.2 WAP业务中HTTP重定向对业务性能的影响
发生重定向的WAP1.x系列终端通过WAP1.x网关进行浏览的过程如图2所示。
图2描述了WAP1.x系列移动终端进行WAP业务访问时发生的通信时序,图中阴影部分是重定向过程的内部通信细节。可以看出,由于存在重定向,终端浏览器从发起浏览请求到最后看到响应结果,至少额外需要两个发送方和接收方之间往返(Round-Trip)的时间开销。除此之外,在WAP实际数据通路上的各个功能部件上,还额外增加了很多计算开销。这些开销增加了通信过程的迟滞时间,严重地影响了用户的使用。
发生重定向过程的WAP2.0终端通过WAP2.0网关的浏览过程如图3所示。
图3描述了WAP2.0系列移动终端进行WAP业务访问时发生的通信时序图,图中阴影部分是重定向过程的内部通信细节。由于存在重定向,WAP2.0网关和终端之间增加了两个Round-Trip的时间开销,而在WAP2.0网关和业务系统之间增加了两个Round-Trip和一次建立TCP连接的三路握手(三个报文段完成连接的建立的过程)的时间开销。除此之外,还增加了额外的各功能模块的计算开销。
1.3 解决HTTP重定向所导致性能损耗的方案
WAP业务系统中频繁发生的重定向操作对WAP业务访问产生了障碍,额外的时间开销和运算消耗将会大大降低这些业务的使用性能,在实际应用中有必要加以改善。
理论分析和实际测试数据都表明,大量存在的HTTP重定向操作,显著地依赖效率低下的移动终端的处理能力,显著地占用了缓慢的空中接口通信开销,空中无线传输效率较低,实际情况一般在9~100 kb/s之间。而WAP网关、WAP业务平台等后台网络系统一般通信带宽都能保证100 Mb/s以上。所以,如何将重定向操作所产生的空中来回传输过程转移到后台网络系统上来,将本该由低效缓慢的移动终端处理的重定向计算功能转移到后台系统上来,是本解决方案的核心思想。
在后台系统中,设计添加一个功能部件,专门负责拦截过滤所有的HTTP请求和响应,对于发生重定向操作的HTTP响应,WAP网关和计费网关缺省处理是透明地转发给客户端,而本模块将拦截所有发生重定向的HTTP响应,进行特殊处理,如图4所示。
每个从业务系统(WAP入口、计费网关或CP服务器)返回的HTTP响应,需要进行过滤处理,获取HTTP响应的状态码,如果为301、302、303,则判断发生了重定向操作[2]。从响应的HTTP头中读取位置头域的值,这个值即是要重定向过去的真实的绝对URL。对这个URL进行解析,分析出主机地址、端口、路径等信息。清除掉或者缓冲刚才建立到业务系统的TCP连接,清除此刻前的HTTP响应的内容,重新发起新的HTTP请求,并等候新请求对应的结果。得到结果后,判断如果是正常响应,就生成客户的HTTP响应,并在返回给客户的响应中添加请求对应的结果,以便终端能识别出本系统处理重定向后的新内容。
重定向操作全部被重定向代理拦截并代理移动终端来予以处理,需要终端配合的所有操作过程全部不存在了,可大大地缩短访问过程的延迟时间。
此外,系统设计时需要添加特殊措施,防止出现无限次的相互递归重定向而导致系统出现工作逻辑上的死循环。递归重定向是一个常见的网络陷阱,很多攻击手段中都利用处理重定向操作的漏洞来瘫痪整个后台网络系统。
2 TCP连接优化问题及解决方案
WAP1.x的所有业务访问,在到达WAP网关之后,全部是基于TCP连接上的HTTP数据传输,而WAP2.0的业务访问,从移动终端开始,经过WAP2.0网关的所有环节,全部都是采用TCP连接和HTTP数据通信。通过TCP连接承载的HTTP数据业务内容将严重依赖TCP连接的建立机制、拆除方法、连接维持和数据传输效率。对于成千上万的并发用户的访问,TCP连接的建立、拆除、数据传输、等候响应等变得异常频繁,TCP连接的任何一点变动,经过瞬间成千上万用户的同时在线请求这个倍增器,在宏观上将出现非常明显的变化,直接影响到用户的使用体验。下面详细讨论对CDMA WAP网络运营环境的进行相关优化而采取的措施和相关技术改进方案。
2.1 CDMA WAP系统中存在的TCP连接
先从微观分析发生一次用户浏览操作必须经历的TCP连接全部过程,在对这个过程详细分析的基础上,来探讨技术上的改进方案。用户浏览操作经历的TCP连接过程如下:
(1)用户通过移动终端,发起浏览请求,WAP1.x首先建立WSP会话,在这个会话基础上发送WSP-Method请求到网关,WAP2.0终端先建立到WAP2.0网关的TCP连接,在这个连接基础上发送HTTP-Method请求到网关。到这一步,WAP1.x通过UDP数据报承载的WAP请求,和WAP2.0终端的TCP连接建立数据传输。依赖于无线网络环境,包括空中无线信号的覆盖、传输速率、数据编码机制、无线网络的接入、临时内部地址分配、数据路由等等,我们能采取的优化措施有限。对这一步,本优化方案将不涉及任何内容。
(2)从WAP网关开始,随后发生的数据通信全部是基于TCP连接的。WAP网关收到移动终端的Method请求后,进行相关处理,开始建立到计费网关的TCP连接,建立成功后,通过这个连接将HTTP请求数据发送过去,并等待响应结果。等待一定时间后,可能会出现两种结果:一是计费网关长时间没有发送响应,网关等候超时了。这时网关将给移动终端反馈超时等候信息提示;二是计费网关发送回来了响应,网关将这些结果反馈给移动终端显示。
(3)从计费网关之后,所有的数据交换全部是基于TCP连接。通过TCP连接进行数据传输的全部过程完全类似WAP网关,所以,类似WAP网关进行数据交换的过程上的优化,这里不再详述。
2.2 WAP系统中TCP连接分析及优化措施
2.2.1 WAP网关和计费网关间连接的优化措施
通常WAP网关到计费网关之间需要建立很多个TCP连接,一般是WAP网关接收到一个终端请求,就建立一个到计费网关的TCP连接。TCP连接建立过程要经历三路握手,三路握手的时间开销是很大的,至少消耗掉1.5个Round-Trip的时延[3]。此外,由于用户请求数量非常多,每来一个请求就建立一个TCP连接,很容易让系统产生大量激活的TCP连接,而操作系统瞬间能支撑的并发TCP连接个数非常有限。在TCP连接数目达到一定极限后,随后的TCP连接请求将会失败,导致很多用户的请求不被受理,用户被告知系统繁忙,从而无法得到正确结果。可以采取如下优化措施:
(1)采用TCP连接池机制,维持一定数目的连接数量。每个TCP连接完成数据传输后,并不是马上被拆除掉,而是将它回收到连接池中进行管理。当一个新的请求到来时,无需花费三路握手过程来新建立一个连接,而是从连接池中取出一个被回收的TCP连接即可。
(2)采用请求队列来排队用户的请求,采用先进先出的策略来防止大并发访问量下的用户请求被拒绝的情况发生。为了保障系统能满负荷但又高效快速地工作,到计费网关之间的TCP连接总数必须保证低于一个极限值。超过这个极限值的请求将被送到缓冲队列中,排队等候,等系统腾出时间或者不忙时,再用先到先处理的次序处理。
通过上述两种优化措施,可以极大地缩短WAP网关到计费网关之间的数据传输时间,提高系统处理终端的用户并发访问量。
实用中,终端用户每发起一个浏览请求,都在WAP网关那里激活一个事务处理流程:接受并理解用户的请求,将请求转发到计费网关,等候结果。所以,这个流程大部分时候是处于等待状态。在某一个瞬间,并发存在的事务处理流程总个数是有一定数目限制的。超过这个限制的后续终端用户请求将被拒绝,用户被告知系统繁忙或者访问错误,无法得到正确结果。导致的结果是影响用户单位时间内的并发访问量。优化的关键如何提高单位时间内事务处理流程数量。提高数量有两种途径:
(1)提高硬件系统的配置,增加内存、增加CPU数量、增大CPU处理速度,从而提高处理能力。这种方法需要增大硬件投入。
(2)将每一个处理流程的等候时间缩短,缩短到用户体验被认可的最高值。比如,用户发起一个请求后,如果10 s还没有结果显示,可能用户就放弃这次浏览,但WAP网关可能处理这个请求需要等待时间60 s。如将等候时间从60 s缩短到20 s,那么原来要等候60 s,现在只能等候20 s,腾出来的40 s用于别的用户请求。这样将大大增加单位时间内的用户请求的数量,从而提高效率。
2.2.2 计费网关与CP服务器连接的优化措施
实用中,计费网关不同于WAP网关的地方是,WAP网关只需将所有的HTTP请求全部通过跟计费网关相连的TCP通道,转发给计费网关,而计费网关则需要对所有的HTTP请求进行域名解析,根据解析的地址,建立能到达该地址的TCP连接。所以,计费网关建立TCP连接的情形比WAP网关要复杂很多。
计费网关TCP连接比较复杂的原因主要是:用户请求的内容位于互联网上的CP服务器里,CP服务器的位置和网络环境千差万别,有的CP服务器与计费网关之间带宽足够宽,有的带宽很窄;有的CP服务器域名或者IP地址解析和反向解析消耗的时间非常长,有的则很短。正是由于这些因素存在,从计费网关到CP服务器的TCP连接建立可能很容易,也可能非常费时,甚至很长时间都建立不起来。这样,计费网关在长时间得不到CP服务器的响应时将一直不给WAP网关应答,WAP网关也不给用户应答。造成用户守候移动终端屏幕,看不到任何结果。
这个过程的最糟糕情况是:如果很多用户同时访问这种建立TCP连接有问题的CP服务器,将会使得WAP网关、计费网关处于等候状态,这些系统资源将会全部消耗在长时间的等候中,新的用户请求不能得到处理,如同整个后台系统完全崩溃一样。
对于计费网关,出现这种异常情况的概率非常大,系统很容易处于休克状态,从而使计费网关在整个WAP业务访问环节中,显得比较脆弱和易受攻击。
针对这种情况,可以对计费网关的TCP连接管理和控制提出如下改进措施:
(1)改善网络硬件环境,尤其是对域名服务器(DNS)的全球同步和缓存进行优化配置,提高计费网关的域名查找效率,使对外建立TCP连接的速度从网络环境上得到保障。
(2)采用非阻塞通信机制,优化计费网关的TCP通信处理。非阻塞通信方式能防止一些由异常极端情况所导致的系统处于服务停滞的现象,如当某个CP提供的URL对应的主机域名不存在或者刚刚申请,全球域名系统还没有完全同步时,域名的解析将非常耗时。或者某个CP的IP地址是个虚拟IP,或者是个IP陷阱,那么建立到这个IP的连接会非常耗时,等待时间一般都是以分钟为数量级的。当有大量的并发用户同时访问这个陷阱CP时,阻塞通信方式的结果是所有的工作进程/线程全部被阻塞,新的用户请求被拒绝,系统处于休克状态。非阻塞通信方式并不会将工作进程/线程阻塞,而是将等待操作交给事件监听模块,采用异步通知机制提醒解析成功、连接成功或读写成功,辅以定时器的控制,系统仍然可以继续如常地处理和响应用户的新请求。
(3)提高单位时间内,计费网关的用户请求通过量和处理量。这个措施主要包括两项内容:一是缩短每一个请求的处理时间,从以前的60 s,缩短到20 s,如果20 s内TCP连接没有建立成功,或者没有得到响应结果,系统将终止这个请求的处理,返回结果异常给WAP网关;二是系统太繁忙而来不及处理新的请求时,不能拒绝新的请求,而是将这些请求放到请求队列中缓冲起来,等系统不忙时,继续处理缓冲中保存的客户请求。
通过对WAP网关到计费网关和CP的TCP连接优化,WAP后台业务处理系统的处理性能可以得到了显著改善,系统崩溃和服务被拒绝的可能性将大大降低。
3 结论
以上主要对CDMA WAP系统中对用户访问速度和系统性能影响比较大的方面进行了有针对性的分析,并进而提出若干优化措施,希望能够对通信运营商CDMA WAP系统的建设有所帮助。
4 参考文献
[1] 中国联通. 中国联通800 MHz CDMA数字蜂窝移动通信网WAP业务技术体制 [Z].
[2] IETF RFC2616 Hypertext Transfer Protocol — HTTP/1.1 [S].
[3] Stevens W R. TCP/IP详解 [M]. 范建华译. 北京: 机械工业出版社, 2000,4.
收稿日期:2004-08-18
[摘要] 文章对CDMA WAP系统中超文本传输协议(HTTP)重定向问题、传输控制协议(TCP)连接问题进行了分析,进而提出了具体的优化措施,目的在于提高用户访问速度,改善WAP系统整体处理性能,进而增强系统稳定性。
[关键词] 码分多址;无线应用协议;超文本传输协议重定向;TCP连接;性能优化
[Abstract] HTTP redirection and TCP connection in the CDMA WAP system are analyzed, and then detailed optimization solutions for improving access rate, system performance and system stability of the CDMA WAP system are proposed.
[Keywords] CDMA; WAP, HTTP redirection; TCP connection; performance optimization