标题:网游加速器 出处:Felix021 时间:Sun, 14 Aug 2011 19:34:56 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?2031 内容: 世界上最遥远的距离不是生与死,而是电信和网通之间的距离。 最近晚上都会玩会儿游戏,但是家里是网通的宽带,延迟很大,有时甚至直接提示无法连接服务器,略囧。 为了能够比较顺畅地玩游戏,以前曾经用过“迅雷网游加速器”和“99sushe网游加速器”这两个软件。 以前两款都是收费的,但是都有免费的3~7天试用期。用上以后,可以明显感觉到延迟变小,游戏可玩性增强,只是免费试用期比较短,用了几天以后必须换个账号才行,很麻烦。 不过最近迅雷网游加速器居然永久免费了,毕竟是马上要上市的公司,财大气粗。。 有网游需求的各位同学,推荐试试: http://jsq.xunlei.com ----- p.s. 写本文的主要目的是参加“写博客,免费得加速器VIP”活动,最多可以送一年,有兴趣的同学也别错过机会…… 鉴于本博客是技术博客,简单扯两句。。网游加速器的原理和主要模型其实很简单。 以开头那句话为例,游戏客户端A@网通,网游服务器B@电信,可知A-B之间的延迟通常大得离谱。 于是,搞一台有双网卡的机器X,分别接入电信和网通的线路(这样可以使得 A-X 和 X-B 之间的延迟都很小),并且用iptables之类的东西,配置来自不同网卡的数据包的走向,这样就可以搭好两个网络之间的一座桥。在客户端A,可以使用hook技术拦截游戏发出的数据包,将其处理以后发给这台X,由X将数据包发给游戏服务器B(本来是A->B, 现在变成A->X->B),然后B返回的数据包由X转给A(B->X->A),这样就能够使得A-B之间的通信延迟大幅降低。 但是在具体实施上还会遇到很多问题,比如 1. 一台服务器显然不够全国这么多玩家使用,于是需要设置多台服务器。 2. 并不是所有A和X之间的延迟都一样,应该使用ping(icmp)来选择延迟最小的。但是要同时考虑到负载均衡的问题,一台服务器不能连入太多客户端。 3. 从效益上考虑,一台服务器应该尽可能多地承载客户端,这时需要改进技术,比如使用epoll/kqueue来替换传统的select/poll。并且,有些游戏对延迟要求高,有些要求低,可以在一定程度上优化服务器的处理方式。 4. 在用户的机器上,需要对不同的网游客户端进行优化,有些客户端可能会防外挂(这里可能涉及到运营的策略)。还要考虑防火墙的穿透问题。 5. 全国有各种大大小小的运营商,电信网通教育网移动这些是大的,各个地方还会有很多小的运营商,需要增加各种服务器。 6. 。。。。 好了,字数很够了,就废话这么多吧。 Generated by Bo-blog 2.1.0