丽江行记——雪山

好吧,这就是拖了半年的丽江行记。 先说废话:从丽江回来之后一直忙于雅思,几乎没有好好坐下来回味的心情。然而就在今天这样绵绵的阴雨中,看着窗外高高耸立的混凝土丛林,突然间回忆起了丽江的雪山。

丽江是个能让人在夏季感受到冬季的地方。 去雪山的那天,天气很冷,但是并没穿多少衣服。于是只好靠着不停的运动来保证体温。而我恰好忘记带相机的电池,于是破天荒地能够以另外一种情绪去触摸这样神秘的壮丽。 下了缆车,不断地走着,慢慢地已经看不到同伴们了。于是一个人愈发走的快了,一直向着远方那似乎不算太远的制高点走去。耳机里放着Engima,辽远而空寂的声音回荡在脑海里。越走越高,越走越快,越走越冷,似乎冥冥中有什么神秘的存在呼唤着我。

走到牦牛坪的制高点的时候,天阴了,但是偶尔还是可以看见太阳从厚厚的云层中送出的一缕光。 于是坐下来,默默地抬头看着天。 仿佛近在咫尺的天空,厚厚的云层缠绕着面前雪山那朦胧的山顶。一忽间,突然看到了雪山的全貌,说不清是什么样的光景,只是感到了由衷的赞美与隐约的恐惧。也许是人对自然的根植于DNA深处的恐惧? 完全放松下来,坐在木质的椅子上。耳边若隐若现的牦牛铃铛声,仿佛听到谁在沙哑地吟唱着古老的乐章,尘世间亘古不变的旋律。山顶有风,风里送来了清新的空气,突然觉得雪山在无声地叹息着,俯瞰着变幻的人间。 情不自禁跳到椅背上,像儿时常玩的那样,张开双臂,在木质栏杆上站立,行走。心情很好。好像还被某位同伴拍下来了,之后看照片的时候只觉得天地间都是那样的孤独,只有我的头发在空中凌乱的飞舞着。

也是在牦牛坪地制高点上,突然间确定下了以后想要去到处独自流浪的心愿,以前还不曾有这么强烈的愿望。也许是因为一个人站在云层下面的感觉太神秘了,我已经深深沉醉其中无法自拔了吧。

2010-12-12 10:18:13 +0000

leecher的前世今生

前言:事实上leech/leecher这个词最早出现在p2p世界的时候并不是特指吸血的,而是相当于今日的download,即正在下载的客户端(相对于下载已经完毕正在进行上传的客户端)。leecher是何时被用来指代用各种手段使得数据不公平交换的技术和客户端,已经不可考,但是无疑的,emule世界出现的anti-leecher相关技术是最为明确的标志。

这篇文章将不再考证anti-leecher出现的历史和背景,而是主要着眼于emule世界中leecher的性质和行为。

下文中所说的emule网络,指代所有使用eD2K协议进行数据交换的p2p网络(为了避免使用电驴网络这个目前在中国指代意义混乱的名词)。

一、leech与leecher

关于吸血的定义,我在另一篇文章EMULE讨论:什么是吸血,如何定义吸血行为,如何对抗吸血行为已经讨论过了。这里要重新强调的一点是,必须从行为的本质上分析吸血行为,而不是单纯地从上传或者不上传来判断是否属于吸血。

首先我将展开论述这一点。

如上所述,emule是建立在p2p(=peer-to-peer ,peer这个词自身就含有地位平等的意义)上的网络,因此它是建立在平等的数据交换这个基本前提上的。这里的平等,与公平有本质上的不同,它强调的是客户端之间的地位是对等的(即不是服务器端到客户端的数据传输方式),因此每个客户端的(获取数据的)权利和(上传数据的)义务是平等的。emule的公平是由平等的数据交换而产生的公平,不是一般意义上的我给你多少你就给我多少的公平。emule并不要求获取了1G的数据量就必须上传1G的数据量(也就是公平),而是要求将所获取到的数据在其他客户端发出需求的时候回馈至网络中。在这个层面上,emule的信用系统(credit system)的作用是巨大的,它保证了上传数据较多的客户端会取得较高的数据获取优先权,从而实现了数据传输的良性循环。同时通过一些策略保证了新加入网络的客户端也能够较为优先的获取数据(因为新加入的客户端必然没有很大的上传积累量,即没有很高的因上传而带来的信用“积分”),以利于网络能够不断拓展。而emule的文件优先级的设计,使得信用系统(即俗称的积分)成为程序确定上传哪个文件、上传多少给某个特定的客户端的唯一依据,这也是保证数据传输的良性循环非常重要的一环。(因此使用者可以控制自己的哪些文件用于上传,但是不能控制将某个文件上传给特定或确定的客户端,通常所说的emule的公平的意义正在于此。)

吸血行为恰好相反。吸血行为的本质,就是通过控制上传(的具体内容和数据量),来欺骗性的获得数据获取优先权,以便能够最大化地进行下载。leecher并非不上传,因为在emule的credit system的作用之下,不上传数据而想获得下载,必须依靠信用系统给予新客户端的“优惠”,但是这个“优惠”具有时效性不能长期使用,在下载较大的文件时必然会产生一段时间之后几乎无法获取数据的情况。(相应的,有一种吸血行为是每次启动都变换userhash来伪装成新手,这是很不便的,因为并不是所有的客户端程序都可以随时关掉重开的)。

二、leecher的上传与正规客户端的上传的差异

上面已经论述了leecher必须上传的原因,下面将要讲到的部分,就是leecher的上传如何体现了leecher的本质。

在我们所熟知的http下载中,并不存在吸血这样的事物。leecher是伴随着p2p出现的新鲜事物,它的基本特征就是为了最大化数据的获取,即使破坏数据传输的良性循环也在所不惜。因此我们通常说,吸血是“一切上传仅为了下载”。它不考虑整个网络的数据循环和发展,而只注重最大化下载。如果是在http下载中这无可指摘,但是放到依靠平等的客户端互相传输数据的p2p网络中就变成了严重的问题。

下面的这个部分,并不涉及community boost所形成的私有网络。

leecher向正规客户端上传数据是具有选择性的。它不向自己没有数据需求的客户端上传数据,甚至采用failed upload这样的技术手段骗取上传积分,以提高在正规客户端的上传队列中的排名,更早更多地获得下载。因此,它上传的数据,不是为了回应其他客户端的请求以将数据在网络中传播出去形成数据的循环,而是满足自身下载需求。换言之,它的“给”,从头到尾都是为了“拿“。

leecher不考虑与其他客户端之间的数据交换,只是一味的通过各种技术手段尽多尽快的获取数据,因此会造成在宏观上的数据单向流动,从而会破坏数据的良性循环,影响emule网络的正常传输,严重时就会直接毁掉依赖对等传输的emule网络。

三、community boost(社区吸血)

社区吸血是当前非常典型的、也是较为主流的leecher类型。社区吸血的主要特征就是一个小团体内部进行数据交换,但是极少反馈给作为数据来源的全球emule网络,通常把这个小团体称为”私有网络“(private network)。

社区吸血的标志性技术手段,是通过特定的用户名(或用户名的部分)及/或userhash及/或mod string来对特定的客户端进行加分,以给予其相对较高的数据获取优先权。非常明显,这个信用系统是特别改造过的,且这种信用系统与对上传者高回报的信用系统(常见的非官方信用系统)是完全不同的。私有网络的内部数据交换,可以是不完全”公平“的,但是因为其小范围的特性,私有网络的成员仍然享有相对于公共网络成员而言完全不可想象的数据获取优先权。另外,由于社区吸血的私有网络内部,使用的多是一些leecher mod或者有吸血行为/技术手段的客户端,本身就对emule网络有一定的破坏性,使得社区吸血几乎就相当于一个毒瘤。

必须指出的一点是,社区吸血并不是通常想象的那种一个自己自足偶尔跟外界交换的”小水塘“,它的每一个节点都在不断的从公共网络中获取数据,但是获取到的数据在这个私有网络内部的交换的数据量远远大于回馈至公共网络的数据量。因此不管是从微观上看还是从宏观上看,社区吸血都造成了数据交换中事实上的大范围不平等。

2010-11-07 04:56:46 +0000

模拟人生与我(的一些琐事)

如果要回忆,在垂涎了模拟人生多年之后,正式开始玩始于目前在用的这台本的购入。也就是说,三年多了。从模拟人生2到模拟人生3,所有的资料片和物品包都不遗余力的下载安装。倒是很少用自定义MOD,但是喜欢自己盖房子。。。

大约每次玩模拟人生,都要花掉几个小时去盖房子或者调整房子。复习古建史的时候,曾经盖了个非常符合比例的三进两跨的四合院。也曾经盖过尖塔似的别墅。喜欢盖内院或者连廊,也喜欢高耸的屋顶。至于说微调的自带房屋,则是数不胜数(其实每一栋都有调过)。迄今为止最遗憾的,莫过于不能盖我最喜欢的孟莎式屋顶。

通常玩模拟人生的人,主要的经历是花在模拟人和剧情上,倒是很少遇到像我这种痴迷于盖房子的人。专业习惯?不过用模拟人生来观察人的行为也是很有趣的事情了,毕竟它的AI是根据人的行为模式设计的么。(只不过寻路的AI真是不怎么样就是了)

最早的时候比较蠢,居然是用大锤把现成的房子一点点敲掉变成空地再盖。后来慢慢也就明白了。不过自己盖出的房子总会比较大,模拟人在里面生活起来比较累,只怪我是个没有克制的人,总想把尽量多的装饰物放进去。(充分说明房子太大也是恐怖的事情喵)可是改自带的房屋又总觉得太小了。。。真纠结。

模拟人生2的一个资料片可以住在公寓里并且找个室友一起合租,还是挺有趣的。模拟人生3的新资料片Late night也有公寓,拭目以待了。毕竟公寓和独栋住宅是完全不一样的啊。

这个游戏我大概会一直玩下去吧。除非哪天不能自己建房子了。。。

2010-10-26 01:27:40 +0000

 

Unless otherwise stated, all works on this site are under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Creative Commons License