返回
首页

大文学移动版

m.dwxdwx.com

258 专业级分析
上一章 返回目录 下一章

总算写出来了,这章写吐血了。

----------------------

“我、kgs服务器、神子以及那些观战者们,我们身处世界各地。我们每个人的本地计算机,采用的都是当地时间。kgs允许观战者在对局中发出即时评论。当然这些评论对于对局双方,由客户端事先屏蔽,在对局结束后才会显示出来。每个用户的评论发送到服务器后,服务器再将这些话以广播方式,转发给对局室中的所有观战者和两个对局者的客户端。”

“网络聊天存在一个时间同步问题。为了保证观战者们能即时互动聊天,就需要一个时间戳,以方便发言者寻找自己的评论。由于每个人的本地时间不同,这个时间戳使用的不是常规的时钟记录,而是当前对局中的手数(即所有已下棋子数)。当所有人收到即时评论时,会看到每条评论都显示在发送时刻的对应手数下。”

“从技术角度讲,这不是一个好方法。因为通常对局者的每招棋思考时间不同。那么很可能出现某手棋累积了较多评论的情况,这样未必方便观战者浏览和查找自己的发言。”

“不过好在这种方法容易实现,而网络对局时间又较短,每手棋的思考时间不会过于长久(职业棋战中,一手棋的思考时间可能要以小时计;网络对局多为几分钟或更短。)。所以用手数作为时间戳,还是能较为动态地描绘棋局进程。况且绝大多数人,不会在观战时,讨论大量和棋局无关的事情。这使得对局者在复盘时,能从旁观者角度看到一些有价值的针对性评论,有助于更好地理解和检讨对局双方的招法得失。”

“而在我和神子的对局中,手数时间戳发挥出了特殊效用。由于我在对局中追求超快速行棋,每手棋的花费时间趋向恒定。因此手数时间戳,基本上可以看作是一种时钟计时。kgs对于用时的设定,是自动默认最小用时单位为半秒。就是说不管你落子多快,客户端的计时功能认为你下一步棋,至少要用0.5秒的时间。当用时不足0.5秒时,以0.5秒计算。比如1.7秒记为两秒,2.1秒记为2.5秒。所以像神子那样,虽然他一秒钟或许能下30手棋,但是计时器会算作使用了15秒时间。”

(我忽然打断萧申贤的叙述,差点给他忽弄过去。我问他如果早知道kgs的自动默认最小用时单位,怎么还会去推算美国到中国的网络完美通讯用时。谁知萧申贤一拍脑袋说“我没告诉你,我把kgs的客户端程序反解码后,查看了他们的配置文件”。什么反解码,这家伙果然还是把人家的客户端给黑了。)

“由此我得出这样的结论,以我第二局棋中的下法为准,我下一手棋实际使用的时间介于0.5秒到1.5秒之间,计时器应该记为1秒到1.5秒。而神子虽然近乎和我同时落子,但每手棋被硬性记为0.5秒。所以棋盘上每手棋都具有计时功能,可以看作是个时间间隔不均衡运行的时钟。它的计时规则大约为1(或1.5)s,0.5s,1(或1.5)s,0.5s,1(或1.5)s,0.5s……”

“我和神子的对局有大量观战者,因此几乎每时每刻都有人在说话。那些聊天评论加上手数时间戳,便组成了一组对应数据。而这一组组数据,可以和我记录下来的网络流量产生映射关系。从而使我能分析客户端接收到的真实数据信息。”

“可惜,在我比对了流量数据以及观战者聊天记录后,发现两者之间在时间上无法很好的对应起来。根据对局结束后显示的手数以及评论看,一般在我下棋的时间里,评论数量略多于神子两到三倍。那么相应的,网络流量在这段时间里会变高;轮到神子下时,又会有短暂地变低。这种变化应该是有规律地发生,时间间隔遵循一长一短。”

“然而,我在流量记录中,只能找到有规律的时间间隔,但其间的网络流量看不出太大的差异。起初我以为是这些评论转换成字符后,产生的数据量太小,所以在网络传输中显得流量相近。这就好比你去打热水,一个热水瓶能装一瓶水,但你装半瓶水一样可以。而旁人看来,你无论是打一瓶水还是半瓶水,都是用一个热水瓶。不过如果你想打一瓶半热水,就一定要用两个热水瓶。”

“网络传输协议通常使用数据包。这数据包就是热水瓶,打入一个数据包的数据就是热水。如果数据太少,在流量上就像是只有一个热水瓶送来送去,谈不上差别。但这只是我的猜想,科学研究讲究验证,不能只凭猜想。于是我决定再做一次实验,和神子下第三盘棋。”

“不过这次我要增加数据采集的样本。我又找来一台笔记本,用一个普通账号登入kgs后,作为观战者进入我和神子的对局。同时,我也对这台笔记本进行流量监测。第三局棋我继续使用第二局的下法,而且有了前面的经验,这次我下得更快了。对局的结果,神子依旧大胜,但我坚持到三百多手才艰难‘认输’。认输的局面难看异常,那时也早气走了大半的观战者。他们中有些人离开时,忿恨地留了几句粗话给我。我一笑置之,甚至还要感谢他们。他们的中途退场,使得这局棋网络流量前后发生变化,更方便我分析比较数据。”

“然而结果又出乎我的意料,对局电脑和笔记本的流量记录居然不一样。用来充当观战者的笔记本,其流量记录显示,评论产生的数据量一点都不小,完全符合观测流量变化的要求。根据手数推算出的时间,也能找到对应的流量记录。相反,我的对局电脑,流量记录一如第二局的记录。对局中的流量小而相对平稳,只是在对局结束后出现数据井喷。”

“拿着两份不同的流量记录,我陷入沉思,试图想通里面的关节。很快,我想到一个可能性。我和神子作为对局者,我俩的客户端接收数据信息的模式,或许和单纯的观战者不同。比如我们只接收对方的对局信息,但并不同时接收聊天评论。这也就是为什么,我们的流量比观战者的流量要小。而最后的数据井喷,则是服务器一次性将所有对局中的聊天信息,发送过来导致的。”

“要验证这点并不难,我重新开了一局棋,采用神子的对局设定。不过这次的对手不是神子,而是等待任意一个9d。同时我的另一个账号,作为观战者进入棋局观战。虽然不是和神子对局,但由于是两位9d的交手,还是吸引到不少观战者。”

“这个9d比之神子的水平差上不少,我用与神子的对局方法,竟然和他杀得难分难解。而且他显然对于五分钟包干的超快棋不适应,在时间使用上,范了我对神子的第一局棋中的相同错误。最终,他在我的超快招法压迫下,超时负。而我同样得到了自己想要的流量记录。”

“我一比较新得到两份流量记录,却发现它们的流量对应程度很高。特别是流量的时间记录,完全和手数能匹配起来。这不仅没能验证我的猜想,而是把它给推翻了。这是怎么回事?于是我又作了两次实验,一次是与神子对局,一次是与普通9d对局。实验所得前后两组流量,依旧各不相同。我恍然大悟,我的猜想没有错,只是那只发生在我和神子对局中而已。”

“之后我又以录像方式,记录了我作为对局者以及观战者的对局进程。两者比较显示,我与神子对局时,棋局里计时钟都是加速运行的。我俩下棋花费的实际时间,比kgs程序依据计时规则记录的用时要短。比如我俩一局棋下了三百步,实际用时才不到两百秒,但在观战者的客户端上则接近三百秒,”

“这其中的缘故说白了也不难理解。我和神子每步棋的信息,是由服务器以广播方式,发送给棋局中的所有人(对局者与观战者)。kgs的最小用时单位,决定了发送的最快频率为2次/秒,即0.5秒发送一次。因为计时规则要求,下一手棋至少花费0.5秒。这个0.5秒的设定,现在看来是用作加载聊天评论的,并增加网络通讯的容错性。总之,那三百手棋中,神子的一百五十手会用去75秒。”

(这时我又叫停喊休息,萧申贤讲的东西专业不对口,我不全神贯注,想听明白可不容易。我觉得光是听,自己的脑力就消耗巨大,心说:也多亏是张老这样的牛人,不然绝对搞不定那个神子,更别说弄清神子的来历了。

我看看手表,他都讲了快两个小时了。我琢磨着这么讲下去,讲到明天也未必结束得了。所以休息五分钟后,我提出“请张老同志化繁为简,少讲过程,多说结果,把神子和股神的关系交代清楚即可”。)(未完待续。如果您喜欢这部作品,欢迎您来起点()投推荐票、月票,您的支持,就是我最大的动力。)

上一章 返回目录 下一章
热门小说
终末忍界你老婆掉了我只有两千五百岁信息全知者反叛的大魔王绝对一番奸夫是皇帝玄尘道途盖世双谐五胡之血时代
相邻小说
丑女倾城:世子殿下太猖狂丑女无敌:总裁boss轻轻皮丑女蜕变攻略快穿之丑女拯救计划龙血战尊综之金手指大全我的金手指能进化我的金手指能进化我是天道金手指纨绔打脸逆袭中[穿书]