适合中小运营商的网游优化方案
2011-08-11王跃辉
王跃辉, 魏 芳
(①上海交通大学,上海 200240;②上海贝尔股份有限公司,上海 201206)
0 引言
近年来,随着计算机宽带网络的不断发展壮大,网民人数的不断增加,互联网产业中涌现出了种类繁多的网络应用以满足用户的多方面的需求,如门户、论坛、社交网络(SNS,Social Network Service)社区、电子商务、点对点(P2P,Peer to Peer)下载、在线视频、即时通信以及网络游戏等。这些应用带来了网络流量的爆炸性增长,但同时由于不同种类的应用其流量特征差异巨大且增长迅速,因此也为网络的运维管理带来了新的挑战。
网络游戏是上述诸多网络应用中,用户黏性最强的应用之一,网游产业在当前的互联网产业中占有很大的份额,根据CNNIC最新发布的《第 27 次中国互联网络发展状况统计报告》[1],截止到2010年12月,我国的网游用户达到了3.04亿,用户使用率达到66.5%,显示出非常强的用户黏性。
与其他类型的应用相比,网络游戏的流量特征非常明显,主要表现为:单个数据包小、数据传输频繁、整体应用带宽占用很小、实时性和稳定性要求非常高等方面。由于现有条件下我国的网络环境比较复杂,在一些网络使用的高峰时段时有出现因为网络质量不佳而产生的游戏卡壳、掉线等现象,影响到用户玩网游时的体验,严重时还引起用户的投诉。为了保证网游用户的使用体验,非常有必要对这一类的应用做有针对性的网络优化设计。
1 影响网游通信的因素和现有方案
如前所述,网络游戏的数据对于传输的实时性和稳定性要求很高,一般来说,对于包括大型多人在线角色扮演、即时战略、在线竞技/休闲等大型网游来说,数据包的延时需要保持在200 ms左右,丢包率接近0,才能支持用户的流畅使用。从网络的角度讲,会导致用户丢包和延迟增加的位置主要在从用户到网游服务器的网路中,网络资源相对有限的位置,比如网络运营商(ISP, Internet Service Provider)的互联互通的接口位置和从网络边缘接入到核心网的网络汇聚位置等。目前,网游加速的解决方案多是从路由优化或者网络设备改造2个角度来入手。
以迅游为代表的游戏加速软件提供商,主要采取前一种的方式对游戏进行加速。这类方案假设在同一运营商内部的网络资源是很充裕的,但是跨ISP则会遇到瓶颈,因此需要针对这一问题进行路由优化。用户在使用时,需要首先在客户端安装加速软件,游戏启动后,加速软件会将游戏产生的通信数据全部重新定向到部署在多线机房的加速服务节点,借此绕开大型运营商(电信骨干网(CTNET)、联通骨干网(CUNET)、教育网等)的互联互通接口,提升游戏数据传输的质量,实现“跨网络”的游戏加速,整个“加速”过程只需要选择合适的数据中心(IDC,Internet Data Center)机房位置,不需要运营商支持。对于电信、联通这类大型运营商来说,一方面绝大部分网游服务器都部署在他们的网络中,另一方面他们的多线机房很多,容易部署加速节点,因此加速效果非常明显。但是对于并不具备这些优势的中小型 ISP的用户来说,这一方案则很难奏效。
以TP-link ER5110为代表的硬件产品[2]则着眼于通过网络设备实现游戏加速功能:首先,通过端口、深度包检测(DPI,Deep Packet Inspection)或者深度流检测(DFI,Deep Flow Inspection)[3-4]等技术,实现对游戏数据的识别和判断;然后通过优先算法,实现对于疑似游戏数据包的“优先”转发。这一方案在使用时,用户无需在客户端做任何操作,所有数据由网络设备判断和引导。然而,这一方案仍然有其局限性:首先,网络游戏更新速度非常快,通过硬件升级的方式进行游戏特征更新的方案操作起来相对较慢;其次,DPI或DFI识别不能做到100%的数据包识别,有可能导致部分数据包不能被加速;最后,这种处理方法要求检测所有通过硬件设备的数据包,而其中游戏数据包可能只占了总数据量的5%,而使用DPI或者DFI会大量消耗硬件资源,导致系统容量很难大幅度增加。目前市面上的主流产品通常只能支持100 Mb/s量级的出口带宽,多应用于网吧等较小规模的应用场景。
2 适合中小运营商的网游加速方案
为了设计一种既经济又有效的针对中小ISP的游戏加速方案,为此,这里提出一种新的网络架构,以实现通过较小的代价来对用户的游戏加速数据进行优化的效果。整个方案的网络构架和数据流程如图1所示。
图1 游戏加速网络拓扑
①在用户的个人电脑上加装游戏加速客户端软件,该软件可以有效提取出用户的个人通信数据,将其重定向到中小运营商网内的一台加速服务器上;
②加速服务器将用户发过来的上行数据包的源IP地址换成加速服务器本地地址后,继续向游戏服务器(在大运营商网络中)转发数据包;
③发往游戏服务器的数据包必须经过小运营商和大运营商相连通的交换机,在该交换机上设置优先转发源IP和目的IP为加速服务器IP的数据包[5-6];
④由于大运营商网内的网络资源充裕,则数据传输流程中没有新的瓶颈,可以迅速转发到游戏服务器中;
⑤从游戏服务器的角度来看,用户是从小运营商的加速服务器发送数据包过来的,因此,游戏服务器的回包地址指向加速服务器;
⑥在经过互联互通的交换机时,交换机优先转发目的IP为加速服务器的数据包,数据可以以最快速度回到加速服务器;
⑦加速服务器将数据包返回用户PC,并由PC上的加速软件处理后,返回给网游主程序。
3 方案验证
为了确认所提出的方案确实有效,在实验室环境中设计了一个仿真实验进行测试。为真实模拟现网中遇到的情况,测试需要满足以下条件:
①有两个相连通的网络;
②两个网络连接处为带宽瓶颈;
③可通过其他设备调节两个网络的连接处的带宽使用率(从几乎空闲到满负荷);
④两个网络连接处的设备可以优先传送特定的IP数据包;
⑤用来模拟小运营商的网络中,至少有一台可以访问互联网的,且必须安装window操作系统的PC,以测试真实的游戏加速效果(魔兽世界有专门开发的游戏延时测试工具,这里使用魔兽世界作为网游质量检测工具)。
3.1 测试设备和测试环境
根据前述的实验前提设计了测试环境。测试时用到的设备如表1中所列,测试环境中的网络设备连接和网络配置情况如图2所示。
表1 测试设备列表
图2 测试环境——网络连接和网络配置
如图 2所示,测试环境分为 2个网段,分别为192.168.0.0/24和192.168.8.0/24:前者用来模拟小型ISP,安装了魔兽世界客户端的笔记本电脑和加速服务器,1台流量产生服务器,三层交换机的 vlan121以及连接服务器的 eth0网卡都连接在这个网段;后者用来模拟大型ISP,包括三层交换机的vlan122、百兆路由器和另一台流量产生服务器。由于百兆路由器和千兆交换机之间的连接为100 M,而千兆交换机内部的连接可以保持千兆,因此可以籍此模拟内部网络资源充分而出口流量拥堵的情况。
如图3所示,左右两侧的红色服务器为流量产生服务器,通过服务器使用FreeBSD操作系统,安装web-polygraph[5]软件。该软件分为server端和client端,在server端可以随机生成WEB页面,并由client端访问,以生成HTTP网络流量。通过设置client端的并发session和每个WEB页面的大小,可以精细调整两台服务器之间的流量大小。考虑到对于图 2中的小ISP网络用户而言,绝大部分资源都在大ISP中,所以在本次测试中,以192.168.0.0/24网段的服务器为client端,以192.168.8.0/24网段的服务器为server端进行流量的模拟。
3.2 测试结果和分析
(1)使用web-polygraph软件模拟互联网访问流量
测试时,首先单纯启动web-polygraph软件模拟互联网访问流量。Web-polygraph软件是一款http流量模拟仿真软件,分为客户端(client-side)和服务器端(server-side)2部分,详细的配置和使用说明可以在参考文献[7]中查询。当 client和server都启动后,在server端会按照配置好的页面大小随机生成访问页面,同时响应client发来的http请求,从而实现对http访问的模拟。Client端的请求发生频数是可以调节的,在本次测试中可以使用平均每秒目标请求数(MOPS,Mean Object Per Second)来表征每秒种发出的请求个数。由于在server端已经配置好随机生成的目标文件大小的分布,当网络资源充分的前提下,可以籍此估算出实际的下行平均流量:
下行平均流量速率=平均每秒目标请求数×平均页面大小。
在实际测试过程中保持平均页面大小不变,改变 client端的平均每秒目标请求数,同时通过FreeBSD自带的命令监控网卡上的网络流量,获得响应曲线如图3所示。
图3 平均每秒目标请求数和网卡流量之间的关系
如图3所示,当网卡流量在70 Mb/s以下的时候(对应平均目标请求数在550以下时),网络流量和平均每秒目标请求数直接保持了良好的线性关系(对这段数据的线性拟合结果表明,其线性相关度好于99%)。但是当请求继续增加是,网卡上的流量不再线性增长,意味着此时网络开始发生拥堵。
由此可知,通过在client端增加平均目标请求数的方式,确实可以人为模拟出网络拥堵的测试条件。
(2)在流量拥堵的情况下ping包的延时变化
在通过web-polygraph模拟出网络拥堵环境后,首先通过ping包的延时变化来观察随着网络流量的增长,包传输的延时变化情况。测试时保持如(1)中的平均页面大小不变,改变平均每秒目标请求数大小,同时持续从 client服务器向server服务器发送ping包,记录结果,并取500次的测试结果做平均,作为该平均目标请求数对应的ping包延时,得到如图5的响应曲线。
从图4中可以看出,随之平均每秒目标请求数的增加,也即网络流量的不断增长,ping包的延时起初没有显著的变化,但是当流量开始趋向于占满全部网络资源的时候,ping包的延时有了显著的增长,拐点发生的位置和图4中所示的网络资源趋于饱和的位置重叠,均为550到600之间。
由此可见,当网络开始拥堵的时候,ping包的延时会有显著的增加。网游的通讯数据过程比ping协议要复杂得多,当拥堵发生的时候,其通讯质量很可能会受到更大的影响。进一步的,对游戏通讯的数据受网络拥堵环境的影响这个问题作了测试,同时也对于启动游戏加速服务以后的游戏通讯质量改善情况做了测试。
图4 ping包延时随着平均每秒目标请求数变化的情况
(3)启用加速服务和不启用加速服务的游戏效果对比
为了量化测试游戏数据通讯的效果,这里采用经典的魔兽世界网络游戏的通讯测试工具来测试网游客户端和游戏客户端之间的通讯延时。测试选取工作日的上午 9:00-11:00,网游服务器相对空闲的时段进行。测试时尽量保持基本类似的网游动作,以避免通讯数据包之间的差异过大。
测试首先不开启游戏加速服务,直接通过笔记本电脑接入192.168.8.0/24网段,打开魔兽游戏,登录游戏服务器,一面改变web-polygraph的平均每秒目标请求数,一面记录魔兽世界的游戏通讯延时情况。
之后再开启游戏加速服务,重新接入与之前相同的服务器,并做同样的测试。如前所述,游戏加速服务分成2部分:
①使用自行编写的游戏加速客户端和服务器端软件,在客户端,通过在 Windows XP系统的 LSP(Layered Service Provider)层[8]直接对魔兽世界进程对外通讯数据的流入流出进行修改操作,将发出的数据包重定向到加速服务器端,同时接收加速服务器发出的数据,并将其发给游戏进程;在服务器端,将发给网游服务器的数据包源IP修改为加速服务器自己的IP地址,同时将网游服务器返回的数据包发还给游戏加速客户端软件。
②在思科3750交换机和TP-link路由器上对于源地址和目标地址为游戏加速服务器地址的数据包均配置1 Mb/s的优先带宽保障,确保来自和发往游戏加速服务器的数据包会被优先转发。
测试得到的随着平均每秒目标请求数的增加,游戏延时的变化情况如图5所示。
从图5中可以清楚看到,在不启用游戏加速服务的前提下,当网络接近拥堵的时候(平均每秒目标请求数550左右),游戏通讯延时突然迅速增加直至掉线,无法继续使用;而当游戏加速启动后,游戏的延时状态稳定在200 ms左右,这表明该游戏加速解决方案能够在不增加瓶颈点网络资源的情况下,保证网络游戏的用户即使在网络出口拥堵的状态下使用体验也不会下降。
图5 启动和未启动游戏加速情况下,随着平均每秒目标请求数增加,魔兽世界网游通讯数据包的延时变化情况
4 结语
文中首先提出了网络条件对于用户使用网游等对延时、丢包等QoS指标非常敏感的网络应用体验的影响,分析了当前主流的2种解决方案及这两类方案在中小型网络运营商网络环境下的局限性;针对这一局限,提出一个新的网游加速解决方案,并通过模拟仿真实验予以验证。实验表明该方案可以在不额外增加出口网络资源的前提下,保证网游等网络应用的用户体验。这一方案可以进一步扩展到其他类似的应用上,从而使得网络使用效率大大提升。
[1]CNNIC报告.第27次中国互联网络发展状况统计报告[EB/OL].(2011-01-09)[2011-02-26]. http://www.cnnic.net.cn/dtygg/dtgg/201101/P020110119 3289601922 87.pdf.
[2]TP-LINK产品白皮书.(2008-04-19)[2010-09-21]http://www.tplink.com.cn/pages/produ ct-list.asp?c=17.
[3]赛门铁克技术报告.THOMAS Porter. The Perils of Deep Packet Inspection[EB/OL].(2010-10-19)[2011-03-04].http://www.syma ntec.com/connect/articles/perils-deep -packet-inspection
[4]杨万安, 胡其华. 一种网络数据包的有效分类方法[J]. 计算机应用与软件, 2010, 2(02)118-121.
[5]罗章庆, 李玉宏, 李玲, 等.支持优先级与公平策略的队列工程[J].通信技术, 2010, 43(08)32-34.
[6]孙翔, 陈念伟. 传统局域网的QoS 保障机制的分析与应用[J]. 通信技术, 2007, 40(08) 37-39.
[7]Web polygraph Project[EB/OL].(2010-10-14)[2011-01-06]http://www. web-polygraph.org/.
[8]WEI Hua, JIM Ohlund, BARRY Butterklee. Unraveling the Mysteries of Writing a Winsock 2 Layered Service Provider[EB/OL].(1999-05-01)[2011-03-02]http://www.microsoft.com/msj/0599/layeredservice/la yeredservice.aspx.