以文本方式查看主题

-  曙海教育集团论坛  (http://sun4.cn/bbs/index.asp)
--  WAP平台开发  (http://sun4.cn/bbs/list.asp?boardid=50)
----  CDMA WAP系统的性能优化 | 国内  (http://sun4.cn/bbs/dispbbs.asp?boardid=50&id=2165)

--  作者:wangxinxin
--  发布时间:2010-12-6 11:45:40
--  CDMA WAP系统的性能优化 | 国内
一 引言
"w,r$?.o8O:X#E-OMSCBSC 移动通信论坛  CDMA 20001x系统为移动数据增值业务的开展提供了高速的空中传输保证,运营商基于CDMA移动分组网开展了丰富多彩的移动数据业务。其中WAP业务以其业务内容丰富、使用简单等特点得到迅速发展。随着业务的开展,如何从技术上优化WAP系统性能,提高用户的使用感受变得十分必要, 二 HTTP重定向问题   1. CDMA WAP业务上HTTP重定向的应用   CDMA WAP业务和计费系统中大量采用重定向技术,完成CP内容挂接,相关的浏览、下载以及后台计费等业务。WAP计费网关、WAP网关对于HTTP重定向的缺省处理是简单转发,也就是将来自WAP Portal或者CP服务器的HTTP重定向响应,返回给移动终端,由终端的浏览器进行解析和处理。网络拓扑结构图如图1所示。 图片点击可在新窗口打开查看
2x+b;q/F2U移动通信,通信工程师的家园,通信人才,求职招聘,网络优化,通信工程,出差住宿,通信企业黑名单图1 CDMA WAP业务上HTTP重定向网络拓扑图   终端浏览器在收到HTTP重定向响应后,提取其中响应头Location的值,作为新的URL,重新发起HTTP请求,这些操作并没有用户的干预,用户并不知晓是否发生了重定向操作。重新发起的HTTP请求经过服务器处理后,将得到新资源对应的结果,并显示给用户。   2. WAP业务中HTTP重定向对业务性能的负面影响   WAP1.x系列移动终端通过WAP1.x网关进行WAP业务的访问。在重定向过程中,由于存在重定向,终端浏览器从发起浏览请求到最后看到响应结果,至少额外需要两个Round-Trip的时间开销。除此之外,还在WAP实际数据通路上的各个功能部件上,额外增加了很多计算开销。这些开销增加了通信过程的迟滞时间,严重地影响了用户的使用体验。   而在WAP2.0系列移动终端通过WAP2.0网关进行WAP业务访问时,在重定向过程中,由于存在重定向,WAP2.0网关和终端之间增加了两个Round-Trip的时间开销,而在WAP2.0网关和业务系统之间增加了两个Round-Trip和一次建立TCP连接的三路握手的时间开销。除此之外,还增加了额外的各功能模块的计算开销。   3.HTTP重定向所导致性能损耗的解决方案   WAP业务系统中频繁发生的重定向操作将是整个WAP业务访问的致命障碍,额外的时间开销和运算消耗将会大大降低这些业务的使用性能,在实际应用中,是不能允许的。   理论分析和实际测试数据都表明,大量存在的HTTP重定向操作,显著地依赖效率低下的移动终端的处理能力,显著占用了缓慢的空中接口通信开销,空中无线传输效率较低,实际情况一般在9k-100k之间。而WAP网关、WAP业务平台等后台网络系统一般通信带宽都能保证在100M以上,所以,如何将重定向操作所产生的空中来回传输过程转移到后台网络系统上来,将本该由低效缓慢的移动终端处理的重定向计算功能转移到后台系统上来,是本解决方案的核心思想。   在后台系统中,设计添加一个功能部件,专门负责拦截过滤所有的HTTP请求和响应,对于发生重定向操作的HTTP响应,WAP网关和计费网关缺省处理是透明地转发给客户端,而本模块将拦截所有发生重定向的HTTP响应,进行特殊处理,如图2所示。
*@,u+q"Q(W.a:Tmscbsc 移动通信论坛拥有30万通信专业人员,超过50万份GSM/3G等通信技术资料,是国内领先专注于通信技术和通信人生活的社区。图片点击可在新窗口打开查看
2J9P9d8B6Z)@ |  国内领先的通信技术论坛图2 HTTP重定向性能损耗解决方案   每个从业务系统(WAP Portal、计费网关或CP服务器)返回的HTTP响应,需要进行过滤处理:获取HTTP响应的状态码,如果为301,302,303,则判断发生了重定向操作。从响应的HTTP头中读取Location头域的值,这个值就是要重定向过去的真实的绝对URL。对这个URL进行解析,分析出主机地址、端口、路径等信息。清除掉或者缓冲刚才建立到业务系统的TCP连接,清除此刻前的HTTP响应的内容,重新发起新的HTTP请求,并等候新请求对应的结果。得到结果后进行判断,如果是正常响应,就生成客户的HTTP响应,并在返回给客户的响应头中添加Content-Location头域,域值为刚才Location域值的内容,以便终端能识别出本系统处理重定向后的新的内容。   重定向操作全部被重定向代理拦截并代理移动终端来予以处理,需要终端配合的所有操作过程全部不存在了,这大大缩短了访问过程的延迟时间。   此外,系统设计时根据需要添加了特殊措施,防止出现无限次的相互递归重定向,从而导致系统出现工作逻辑上的死循环。递归重定向是一个常见的网络陷阱,很多攻击手段中都利用处理重定向操作的漏洞来使整个后台网络系统瘫痪。 二 TCP连接优化   WAP1.x的所有业务访问,在到达WAP网关之后,全部是基于TCP连接上的HTTP数据传输;而WAP2.0的业务访问,从移动终端开始,经过WAP2.0网关的所有环节全部都是采用TCP连接和HTTP数据通信。通过TCP连接承载的HTTP数据业务内容,将严重依赖TCP连接的建立机制、拆除方法、连接维持及数据传输效率等。对于成千上万的并发用户的访问,TCP连接的建立、拆除、数据传输、等候响应等变得异常频繁。TCP连接的任何一点变动,经过瞬间成千上万用户的同时在线请求,在宏观上将出现非常明显的变化,直接影响到用户的使用体验。   1. CDMA WAP 系统中存在的TCP连接   先从微观分析发生一次用户浏览操作必须经历的TCP连接全部过程,通过对这个过程的详细分析,来探讨技术上的改进方案。   第一步,用户通过移动终端,发起浏览请求,WAP1.x首先建立WSP会话,在这个会话基础上发送WSP-Method请求到网关,WAP2.0终端先建立到WAP2.0网关的TCP连接,在这个连接基础上发送HTTP-Method请求到网关。对这一步,本优化方案将不涉及任何内容。   第二步,从WAP网关开始,随后发生的数据通信全部是基于TCP连接的。WAP网关收到移动终端的Method请求后,进行相关处理,开始建立到计费网关的TCP连接,建立成功后,通过这个连接将HTTP请求数据发送过去,并等待响应结果。等待一定时间后,可能会出现两种结果:一是计费网关长时间没有发送响应,网关等候超时了,这时网关将给移动终端反馈超时等候信息提示;二是计费网关发送回来了响应,网关将这些结果反馈给移动终端显示。   第三步,从计费网关之后,所有的数据交换全部是基于TCP连接。通过TCP连接进行数据传输的全部过程完全类似WAP网关。   2. WAP网关到计费网关和CP的TCP连接分析及优化措施   (1) 网关到计费网关之间需要建立很多个TCP连接,一般是WAP网关接收到一个终端请求,就建立一个到计费网关的TCP连接。TCP连接建立过程要经历三路握手,三路握手的时间开销是很大的,至少消耗掉1.5个Round-Trip的时延。此外,用户请求成千万,每来一个请求就建立一个TCP连接,很容易让系统产生大量的激活TCP连接,而操作系统瞬间能支撑的并发TCP连接个数非常有限。在TCP连接数目达到一定极限后,随后的TCP连接请求将会失败,这导致很多用户的请求不被受理,用户被告知系统繁忙,而无法得到正确结果。   优化措施:   ● 采用TCP连接池机制,维持一定数目的连接数量。每个TCP连接完成数据传输后,并不是马上被拆除掉,而是将它回收到连接池中进行管理。当一个新的请求到来时,无需花费三路握手过程来新建立一个连接,而是从连接池中取出一个TCP连接即可。   ● 采用请求队列来排队用户的请求,采用先进先出的策略,防止大并发访问量下的用户请求被拒绝的情况发生。为了保障系统能满负荷,但又高效快速的工作,到计费网关之间的TCP连接总数必须保证低于一个极限值,超过这个极限值的请求将被送到缓冲队列中,排队等候,等系统腾出时间或者不忙时,采用先到先处理的方法。   通过上述两种措施,可以极大地缩短WAP网关到计费网关之间的数据传输时间,提高系统处理终端用户的并发访问量。   (2) 终端用户每次发起一个浏览请求,都在WAP网关那里激活一个事务处理流程:接受并理解用户的请求,将请求转发到计费网关,等候结果。所以,这个流程大部分时间出于等待状态。在某一个瞬间,并发存在的事务处理流程总个数是有一定数目限制的,超过这个限制的后续终端用户请求将被拒绝,用户被告知系统繁忙或者访问错误,而无法得到正确结果。   优化措施:   这个问题导致的结果是影响用户单位时间内的并发访问量。优化的关键是如何提高单位时间内事务处理的流程数量。提高数量有两种途径:   ● 提高硬件系统的配置,增加内存、增加CPU数量、增大CPU处理速度,从而提高处理能力。这种方法需要增大硬件投入。   ● 将每一个处理流程的等候时间缩短,缩短到用户体验被认可的最高值。比如,用户发起一个请求后,10秒钟还没有结果显示,可能用户就放弃这次浏览,但WAP网关可能在处理这个请求的等待时间是60秒。我们将等候时间从60秒缩短到20秒,那么原来要等候60秒,现在只能等候20秒,腾出来的40秒用于别的用户请求。这样,将大大增加了单位时间内用户请求的数量,从而提高效率。   但计费网关不同于WAP网关的地方是,WAP网关只需将所有的HTTP请求全部通过与计费网关相连的TCP通道,转发给计费网关;而计费网关则需要对所有的HTTP请求进行域名解析,根据解析的地址,建立能到达该地址的TCP连接。所以,计费网关建立TCP连接的情形比WAP网关要复杂很多。   计费网关TCP连接比较复杂的原因主要是:用户请求的内容是位于互联网上的CP服务器里的,CP服务器的位置和网络环境是千差万别的,有的CP服务器与计费网关之间的带宽足够宽,有的则很窄,有的CP服务器域名或者IP地址解析和反向解析消耗的时间非常长,有的则很短。正是由于这些因素的存在,从计费网关到CP服务器的TCP连接建立可能很容易,也可能非常费时,甚至很长时间都建立不起来。这样,计费网关在长时间得不到CP服务器的响应时,将一直不给WAP网关应答,WAP网关也不给用户应答,用户将守候移动终端屏幕,看不到任何结果。   这个过程的最糟糕情况是:如果很多用户同时在访问这种建立TCP连接有问题的CP服务器,将会使得WAP网关、计费网关全部处于等候状态,这些系统资源将会全部消耗在长时间的等候中,新的用户请求不能得到处理,如同整个后台系统完全崩溃一样。   对于计费网关这一步,出现这种异常情况的概率非常大,系统很容易处于休克状态,从而使计费网关在整个WAP业务访问环节中,显得比较脆弱和易受攻击。   针对这种情况,对计费网关的TCP连接管理和控制,提出了若干改进措施,分别如下:   ● 改善网络硬件环境,尤其是对DNS服务器的全球同步和缓存进行优化配置。计费网关的域名查找效率提高了很多,对外建立TCP连接的速度从网络环境上得到保障。   ● 采用非阻塞通信机制,优化计费网关的TCP通信处理。非阻塞通信方式能防止一些异常极端情况所导致的系统处于服务停滞现象,如当某个CP提供的URL对应的主机域名不存在或者刚刚申请,全球域名系统还没有完全同步时,域名的解析将非常耗时;或者某个CP的IP地址是个虚拟IP,或者是个IP陷阱,那么建立到这个IP的连接会非常耗时,等待时间一般都是以分钟为数量级的,且有大量的并发用户同时访问这个陷阱CP时,阻塞通信方式的结果是所有的工作进程/线程全部被阻塞,新的用户请求就会被拒绝,系统处于休克死亡状态。非阻塞通信方式并不会将工作进程/线程阻塞,而是将这种等待操作交给事件监听模块,采用异步通知机制提醒解析成功或者连接成功或者读写成功,如果这些操作被阻塞掉,并辅以定时器的控制,系统仍然继续如常地处理(下转第5页)(上接第23页)和响应用户的新请求。   ● 提高单位时间内计费网关的用户请求通过和处理量。这个措施主要包括两项内容:一是缩短每一个请求的处理时间,从以前的60秒,缩短到20秒,如果20秒内TCP连接没有建立成功,或者没有得到响应结果,系统将终止这个请求的处理,返回异常给WAP网关。二是系统太繁忙而来不及处理新的请求时,不能拒绝新的请求,而是将这些请求放到请求队列中缓冲起来,等系统不忙时,继续处理缓冲中保存的客户请求。   通过对WAP网关到计费网关和CP的TCP连接优化,WAP后台业务处理系统从处理性能上得到了显著改善,系统崩溃和服务被拒绝的可能性大大降低。   以上论述主要针对CDMA WAP系统中对用户访问速度和系统性能影响比较大的方面进行有针对性地分析,并进而提出若干优化措施,希望能够对运营商CDMA WAP系统的建设有所帮助。