Archive for the "Personal" Category

Extending the Collaborative Online Visualization and Steering Framework for Computational Grids with Attribute-based Authorization(翻译)

Extending the Collaborative Online Visualization and Steering Framework for Computational Grids with Attribute-based Authorization

使用基于属性的授权机制对计算性网格的协作在线可视化和引导框架进行扩展

摘要

合作在线可视化和引导(COVS)已经成为了引导一个并行仿真实验并动态改变其参数或者仅仅通过可视化来给地理分散的合作者共享仿真结果的一项重要技术,特别是在由高性能计算(HPC)驱动的网格基础设施中。在较前的工作中,我们已经给出了一个基于UNICORE网格中间件(DEISA中使用此中间件)的COVS框架的参考实现。本文列出了COVS在框架设计和实现上的现有限制,包括不具有细致授权的能力等,而这种授权能力在合作COVS会话中是必需的。这些能力使用终端用户的诸如角色、项目成员关系或者参与专有虚拟组织(VO)等个人信息。我们概述了解决方案并且给出了一个使用属性授权机制的扩展框架的设计与实现,如最近广泛使用的基于安全断言标记语言(SAML)的虚拟组织成员关系服务(VOMS)等属性授权机制。

1. 简介

世界范围内的网格基础设施如DEISA、EGEE、OSG和TeraGrid提供了各种各样的网格服务,以实现用于e-science的大规模资源共享。虚拟组织允许跨越组织边界共享这些资源,并且能够有效的利用提供的诸如超级计算机或集群等网格计算资源。许多虚拟组织和网格基础设施内部的科学研究程序着力于物理、生物、化学或其他特定领域过程的仿真。现有的许多网格基础设施如DEISA或TeraGrid,由于高性能计算的驱动,通常使用并行计算技术(MPI[24],OPENMP[10])运行网格程序来仿真上述过程。这些仿真的结果通常有一个分离的后续处理步骤,例如,在可视化程序中查看仿真结果等。基于这些中间结果,可以在另一个计算周期中改变仿真参数。

为了提高e-scientists的有效性,合作在线可视化和引导(COVS)技术尝试同步仿真过程和仿真结果可视化。在线可视化意味着e-Scientists可以立即观察到仿真过程中的处理步骤,进而允许计算性引导在超级计算机运行时引导仿真的计算。在此上下文中,在较前的工作中,我们已经给出,当在诸如DEISA等UNICORE网格中使用一个COVS框架[22],e-scientists的有效性能够通过改变强安全环境和协作的基于web服务的特性来获得长远的提高。在本文中,我们讨论了地理分散的可视化会话中面临的挑战,引出了对细致授权机制的需求。在现有的网格中,终端用户的诸多属性如VO、组成员关系、不同的角色和能力等都是可用的,但COVS框架仅限于基于身份标识的授权认证机制(如使用X.509证书),本文给出了一个允许基于属性的授权认证机制的扩展。

本文组织方式如下,在回顾计算性网格的可视化和指引能力后,第二部分介绍了COVS框架在UNICORE中的实现并且列出了该实现对细致授权机制的限制。第三部分描述了哪些技术符合基于属性的授权认证机制并且能够在现有的网格环境中使用。基于这些技术,我们在第四部分给出了我们对COVS架构的扩展,第五部分描述了两个科学程序作为这个新特性的用例。最终,在第六部分回顾了相关工作,第七部分给出了我们的结论。

2. 协作在线可视化和指引框架的限制

协作在线可视化和计算性指引(COVS)框架使得网格程序具备了交互能力(如计算性指引)和可视化反馈机制。在早期工作中[26],我们给出了一个基于可视化接口工具包(VISIT)[13]的COVS技术实现原型和一个被称为计算资源统一接口(UNICORE)[28]的DEISA的网格中间件。此后,该方法被用于更广范围的COVS框架[23],随后我们在Grid 2007会议上将之发表[22],该方法具有较好的易用性和较高的性能。最近,我们深入研究了[21]在UNICORE中CVOS框架实现的计算性指引能力的影响[21],该UNICORE常用于的大规模DEISA HPC系统(如IBM BlueGene/P JUGENE,共有65536个处理器)。

现有COVS框架的架构如图1所示,图中给出了一个有两个地理上分散的参与者(如客户A和客户B)合作的情景。两者都运行一个科学可视化程序,外加一个COVS网格组件插件,该插件用于扩展GPR UNICORE网格客户端[25]。网格客户端用于访问两个COVS服务,该服务用UNICORE的Web服务资源框架(WS-RF)[1]的实现的工厂模式实现。因此,客户端是用来调用COVS工厂服务,该工厂服务创建了可以通过COVS服务访问的COVS会话资源。一个会话资源的实例代表一个管理不同参与者的合作可视化会话,对不同参与者的管理通过控制VISIT合作服务器和VISIT复用器来实现。VISIT合作服务器用于在参与者之间交换信息,交换通过使用SSH的专用连接完成,VISIT复用器负责通过SSH专用连接将仿真的结果分发给n个参与者。这些连接实用UNICORE网格中间件的强安全特性创建,在[26]中有关于这些连接的详细描述。总的来说,仿真实验的科学数据通过二进制加密的安全专用连接传输以达到令人满意的性能,使用Web服务的仿真工作的提交和合作会话的管理的开销就整体性能而言并不是主要的。

clip_image002

1 UNICORE网格中间件中COVS框架实现

尽管我们的框架实现已经广泛使用,在提及细致的授权认证能力时,我们最近发现了该框架的一些限制,正是这些限制驱使我们提出了本文中的方法。在典型的场景中,COVS服务常用于一个虚拟组织内部,而不是用于许多地理分散的虚拟组织成员之间,在一个COVS会话中,这些成员通常有不同的角色并且拥有不同的能力。更详细地,如果一个人使用我们的框架并且与其他n-1个人共享一个并行仿真实验的可视化视图,那么我们称此人扮演一个participator角色。当一部分人扮演参与者角色时,另一部分人可能同时扮演若干个角色。这意味着我们的框架对某一个角色提供的功能不同于对另外其他角色提供的功能。例如,只有master角色的participator能够使用框架来提交或者控制一个运行在计算性网格资源上并行仿真。因此,其他参与者不需要(也不应该被允许)提交一个仿真,因为一个已经提交的并行仿真的结果将会被共享给其他参与者。 为了避免任何终端用户都可以加入一个会话,我们定义了approver角色,该角色决定哪些参与者可以加入到可视化会话中。approver角色基于候选人的不同角色和预定义的能力来决定谁能够加入到会话中。此外,在一次合作会话中,引导并行仿真的技术能力产生了在指引过程中对参与者互斥的需求。指引过程需要仿真领域的知识,因此,只有小部分参与者能够扮演领域专家的角色,并且只有这一小部分人被允许改变仿真的行为。由此得出,在同一时间,在一个COVS会话中只能有一个参与者扮演steerer的角色并控制并行仿真,这样才能保证仿真的

April 11th, 2009

工作以后十不要

虽然有点长,但觉得真的不错,转来大家一起分享
工作了这么长时间,才发现自己还真得不会说话!虽然平时也爱打打闹闹,但是说者无心听者有意!不管是同事还是朋友,会说话总是会让你增色不少!希望下文能够给大家一些启示!
第一:不要认为停留在心灵的舒适区域内是可以原谅的。
每个人都有一个舒适区域,在这个区域内是很自我的,不愿意被打扰,不愿意被push,不愿意和陌生的面孔交谈,不愿意被人指责,不愿意按照规定的时限做事,不愿意主动的去关心别人,不愿意去思考别人还有什么没有想到。这在学生时代是很容易被理解的,有时候这样的同学还跟“冷酷”“个性”这些字眼沾边,算作是褒义。然而相反,在工作之后,你要极力改变这一现状。否则,你会很快变成鸡尾酒会上唯一没有人理睬的对象,或是很快因为压力而内分泌失调。但是,如果你能很快打破之前学生期所处的舒适区域,比别人更快的处理好业务、人际、舆论之间的关系,那就能很快的脱颖而出。
在会议上,一个停留在心灵舒适区域的人会消极的听取领导的话语,消极的待命,很死的完成上级交给的事情,但从来不关心此事以外的任何事情,更不会想到多做一步,让接下来的别人的工作更加容易上手。而敢于打破这个舒适区域的人,敢于在适当的时候提出自己的看法和不理解,并在得到上级认可和指点之后把手头的工作尽快的完成,并随时接受别人的批评和调整。(注意:永远不要等待别人把你的想法说出来,这是典型的前者)
在工作上,当前者遇到一名新的同事,他会装作没有看见,继续自己的工作。殊不知新来的同事不久就变成了自己的上司。而后者则大方客气的自我介绍,并了解对方和自己的关系。
在聚会上,前者总是等待别人发言,并喜欢私下里评论对方的言语;如果这个桌子上没有人发言,那直到用餐结束,也没有人认识你。而后者是勇敢的和一同吃饭的开始介绍和闲谈,这看起来很困难,有时候会有失面子,但往往你会发现,对方是多么希望能和你说几句话。
以上只是很小的几个例子,但是要说明的是,大学生在走出校园的同时就要在工作上把校园中的“随意性”从身边赶走,尽早的冲出自己的舒适区域,开始做好和这个社会交流的准备。
开始工作之后的十个不要—-(二)
第二:不要把“好像”;“有人会……”;“大概”;“晚些时候”;“或者”;“说不定”之类放在嘴边。尤其是和上级谈论工作的时候。
我十分痛恨听到的一句话是:“我晚些时候会把这个文件发给所有的人”;因为这往往预示着我必须时刻提醒他不要忘记。同样,以下这些言辞也会让人觉得厌恶至极:
“到时候有人会把那些东西都准备好”
“大概是明天”
“明天或者后天客户会过来拜访”
“好像他说……”
一般是人都会这样说话的,因为这样第一给自己留下了广阔的余地,第二也不会给别人造成很大的压迫感,好像什么事情一定要弄个水落石出似的。说实话大学里面再用功的人都有一半是混的。一个人要么是在课堂上是混的,要么下课之后是混的。两个都没有带有混的色彩的人,要么是超级牛人,要么是神经病。所以,就因为人人都在混的,所以校园是一个浪漫的地方,校园也容易让人单纯。所以学生社团的工作往往是效率很低的,我现在回想起学校里做的工作,当时还觉得挺卖力的,但工作了之后才开始感觉到什么是效率。当你进入了用金钱计算时间的地方之后,你要尽可能的避免在学校里养成的这种习惯。如果上级问你什么时候能实施你给他的承诺,而你回答“今晚或者明天早上”这样的答案对于他来说完全等同于你没有回答,并且还给他留下了一个坏印象。(当然,这样的回答往往在学校社团,学生会工作中是常见的)
有一个寓言故事,一只小老鼠刚刚出世不久,老鼠妈妈问小老鼠:你现在能看见了吗? 小老鼠说:能。 老鼠妈妈说:那你能看到那块红薯吗? 小老鼠说:是的。老鼠妈妈说:那是一块石头,这说明你不但还看不见东西,你连嗅觉都还没有。
似是而非的应答往往一样会暴露出你更多的弱点。可能是以下中的一个或几个:
1.你之前没有想到这个工作,或者一直在拖延。
2.你没有责任心,认为这些并不重要。
3.你应付上级。
4.你不敢说真话。
5.你喜欢逞能,答应一些做不到的事情。
6.你不能独立工作。
当你的上级在以上选项中怀疑的时候,潜意识中你已经同时具备了以上所有的弱点了。
相反的看来,这样的回答,总是让上司恼火。
第一,他的问题没有得到回答,只是起到了提醒你的作用。
第二,他依然需要记住提醒你,因为他不知道你是否真正已经落实了工作。
第三,他不知道有多少你已经做了的事情中,都是这样没有落实的。(这点非常致命)
第四,往往因为没有得到满意的答案,上司自己的计划不得不被耽搁或推迟或不能给出明朗的结束时间。
所以———
甲问:你什么时候能把要这个漏洞修好?
乙说:我已经通知他们了,他们大概明天就会来修的。
一天后
甲问:维修公司什么时候回来,你找的是哪家维修公司?
乙说:好像他们说安排不出人来,如果可以的话,今天晚上或者明天下午就能过来。
一天后
甲问:漏洞怎么还没有修好?
乙说:我晚点再问问他们。
甲说:今天下午之前不解决,明天不用来上班了。
第三:不要拖延工作
很多人喜欢在学习和玩耍之间先选择后者,然后在最后时间一次性赶工把考试要复习的东西突击完成。但是在工作中请不要养成这样的习惯,因为工作是永远做不完的,容不得你“突击”。又或者,当你在徘徊和彷徨如何实施的时候,你的领导已经看不下去,自己去做了。—-这是一个危险的信号。
往往我们总是想把事情从头到尾全部想好了,才开始走第一步—–就摔倒了。
举个例子: 我小学的时候第一次给我一个喜欢的女孩子打电话的时候,想象了各种情况——-1,她接电话的时候在做作业。2,她在做作业,她妈妈接的电话。3.她也很无聊,很想找人说话。4.她正在被父母训斥。 5.她正在想另外一个男孩。6.她父亲接电话。 7.她家正好来了什么亲戚,亲戚接了电话。 8.她接了电话,但父母就在身边,说话不方便。。。。。等等等等。我整整想了一个下午,想好了各种情况的心理准备和应对的策略。然后勇敢的拿起电话机,按下了那几个按钮。结果——-她不在家。
所以,当你徘徊不前而手足无措的时候,你要意识到你正在拖延工作。徘徊是因为害怕这个事情可能发生的后果需要自己承担或应付。工作的时候需要一种起码的自信,相信自己有能力,不管下一步是什么状况,我都能把它引导到我需要的那条线上去的。另外,告诉自己,不要想太多时间,如果不知道,就赶快求助,或想办法,苦恼和忧虑会给你更多的压力也会把剩下的时间蚕食殆尽。
另外,警告一下:永远不要想,我知道了,先把上级派的事情放一下,等这集《越狱》看完再说。—-90%的情况下,你会忘记,或者来不及,因为

January 1st, 2009

科研社会网络实用化的想法

 

今天在改论文的时候,仔细想了想论文里的原型系统实现,觉得论

文里没有写清楚具体如何将科研社会网络实用化,因此我自己又想

了想,决定自己改一改。

我首先用FreeMind画了个图,在这里ssn.rar可以下载到,大致是这样的。

科研社会网络的实用化或者说比较简单的部署和实现方案是这样的:

                                                                 image

这是实现方案上的。还有待进一步细化,我个人在开发网站方面的能力并不是很强,希望可以有人合作。

另外,关于市场方面,就是这个网站和客户端工具有没有用户,我想是有很多的用户的,这个东西主要面向科研人员这个群体,详细的内容请见我的硕士论文(初始版本,后面再贴)。

October 28th, 2008

[转载]迅雷协议分析–多链接资源获取

作 者: xee
时 间: 2008-02-23,22:13
链 接: http://bbs.pediy.com/showthread.php?t=60110
【文章标题】: 迅雷协议分析
【文章作者】: vessial
【邮件地址】: vessial@hotmail.com
【作者主页】: http://blog.csdn.net/xee
【生产日期】: 20071122
【软件名称】: Thunder 5.7.4.404
【使用工具】: OD+Wireshark
【作者声明】: 本文仅供研究学习,本人对因这篇文章而导致的一切后果,不承担任何法律责任。本文中的不足之处请各位多多指教,欢迎转载,但转载请保留文章的完整性.
———————————————————————————————————-
分析背景: 本文基于迅雷版式本5.7.4.404
分析目的: 通过分析研究得出迅雷客户端与服务器通信,获取下载资源的链接地址,以及它们通信的加     
              密方式,以及附带的源码,欢迎大家讨论.
涉及算法: MD5, 128 bit AES
———————————————————————————————————-
   大家都知道迅雷下载为什么这么快,因为它是通过P2SP下载的,就是可以从多个具有相同下载资源的服务器上进行下载,这样下载速度就会很快了,问题是你要从一个指定的下载链接下载文件,它是怎么知道其它的服务器也有相同的资源了,这就是本文讨论的重点,我就不废话了.
   迅雷客户端与服务器通信获取多个下载资源的一个方式就是通过http协议,通过80端口进行加密传输,类似下面
这个就是客户端向服务端58.254.39.10发送资源查询的包
0×0000   50 4F 53 54 20 2F 20 48-54 54 50 2F 31 2E 31 0D   POST / HTTP/1.1.
0×0010   0A 48 6F 73 74 3A 20 35-38 2E 32 35 34 2E 33 39   .Host: 58.254.39
0×0020   2E 31 30 3A 38 30 0D 0A-43 6F 6E 74 65 6E 74 2D   .10:80..Content-
0×0030   74 79 70 65 3A 20 61 70-70 6C 69 63 61 74 69 6F   type: applicatio
0×0040   6E 2F 6F 63 74 65 74 2D-73 74 72 65 61 6D 0D 0A   n/octet-stream..
0×0050   43 6F 6E 74 65 6E 74 2D-4C 65 6E 67 74 68 3A 20   Content-Length:
0×0060   33 39 36 0D 0A 43 6F 6E-6E 65 63 74 69 6F 6E 3A   396..Connection:
0×0070   20 4B 65 65 70 2D 41 6C-69 76 65 0D 0A 0D 0A 34    Keep-Alive….4
0×0080   00 00 00 96 00 00 00 80-01 00 00 02 3A A0 8A 5E   …?..€….:爦^
0×0090   52 22 AC 5E FA C8 F6 54-E8 DC 9A BC E6 78 11 D9   R”琟鯰柢毤鎥.?
0×00A0   59 C3 E8 64 8E B8 93 EA-E7 43 28 BA 16 FF C4 A9   Y描d幐撽鏑(?末
0×00B0   DC AB 26 7C 56 08 47 D9-A9 37 F6 C1 3A 7B 68 C8   塬&|V.G侃7隽:{h?
0×00C0   11 74 9D 62 6D 4C 6C E7-AD 08 46 70 31 AC 97 34   .t漛mLl绛.Fp1瑮4
0×00D0   AE 15 18 37 B3 97 32 91-13 F8 FB AA 30 75 10 02   ?.7硹2??u..
0×00E0   78 8E F6 38 1D 43 6B B9-F4 DE C4 09 23 3A 27 8B   x庼8.Ck刽弈.#:’?
0×00F0   E6 2C 5D 87 BF 4C BF BF-54 15 4E DB 8F 77 95 C0   ?]嚳L靠T.N蹚w暲
0×0100   67 EE 1E B4 B4 36 F6 EF-CF 96 77 1A EA 9E 63 11   g?创6鲲蠔w.隇c.
0×0110   40 FC E1 23 81 90 92 5E-FE 23 36 FB 1A 23 37 9A   @#亹抆?6?#7?
0×0120   7D 20 95 CA 47 C2 DA E9-E8 FE 30 4C A0 FE 4F 6E   } 暿G纶殍?L狛On
0×0130   A0 A5 81 45 BA AF 68 EE-60 A1 D5 00 A8 DC CC 80   牓丒函h頯≌.ㄜ虁
0×0140   84 0C 19 CF 81 B9 13 C0-13 07 E8 70 05 79 15 F5   ?.蟻??.鑠.y.?
0×0150   D5 2B 05 A1 DD 34 D8 D9-C3 E7 05 70 05 79 15 F5   ?.≥4刭苗.p.y.?
0×0160   D5 2B 05 A1 DD 34 D8 D9-C3 E7 05 70 05 79 15 F5   ?.≥4刭苗.p.y.?
0×0170   D5 2B 05 A1 DD 34 D8 D9-C3 E7 05 10 3A CC 2F 13   ?.≥4刭苗..:?.
0×0180   E1 E1 8C 7B C9 C5 48 B3-85 73 55 87 EE 99 14 67   後寋膳H硡sU囶?g
0×0190   B2 1B 01 1B 56 01 2F FB-47 07 88 BD 4C D2 1A 08   ?..V./鸊.埥L?.
0×01A0   14 42 F3 F5 C2 7C 26 9E-24 00 A4 EA 5F 20 FC CA   .B篚聕&?.り_ 
0×01B0   80 F6 9B C9 28 5B 55 22-94 33 4F 3E 1B C6 31 23   €鰶?[U"?O>.?#
0x01C0   82 B1 97 3E C1 00 2F EF-CE 06 7B AA CD A6 61 F5   偙??/镂.{?
0x01D0   C9 59 8E DB F6 49 73 9C-B9 08 05 C3 1E EB A6 D3   蒠庅鯥s湽..?毽?
0x01E0   0F BB 86 FD FC CC 99 89-61 A9 B1 F9 30 C7 48 B1   .粏虣塧┍?荋?
0x01F0   79 6C 75 26 8C F5 46 F4-7F 04 ED D1 2B 16 2D 94   ylu&岝F?.硌+.-?
0x0200   2F 2C DE 6E 7B 97 E7 28-8B DA 0D
很明显从上面你看不出你熟悉的东西,通过分析,我发现了一些特征,
发现这些包的特征和结构如下:
0--3字节为命令请求
4--7字节我猜想为包序号:)
8--11字节为加密包体长度
12--最后为了加密的包体
拿上面的包为例
    |<--cmd-->|  |<--seq-->|  |<-length->|
    34 00 00 00 96 00 00 00 80-01 00 00接下来的数据就是AES加过密的数据了.
注意上面的数据来自于http的content数据.
既然是通过AES加密了,那密钥是什么了,它是怎么生成的了,不会是DHE吧,那我估计就歇菜了,
功能不负有心人啊,这个AES的密钥是通过包的前8个字节生成的,也就是命令请求字和序列号
和56个填充字组成的64个字节通过MD5计算出来的,刚好是16个字节.
但是这个填充的56个字节和标准的MD5填充的不一样.该填充数据如下:
                                          80 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
它们组合到一起就是:
  34 00 00 00 96 00 00 00 80 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
经过MD5计算得到的HASH值如下:
f5 26 32 d9 0b 36 f0 58 25 53 71 a2 ae 2f 3e d3
这个就是数据包的AES加密解密的密钥.
于是上面的数据包解密出来就是
94 01 05 00 00 00 c1 0b 10 00 00 00 30 30 31 36     ?   ?   0016
36 46 35 41 45 45 44 33 30 30 30 30 14 00 00 00     6F5AEED30000  
7f 2f 32 dc d5 76 bc 1e 37 ef 83 30 0f 45 80 80     /2苷v?7飪0E€€
6b 83 48 91 2b 00 00 00 68 74 74 70 3a 2f 2f 64     k僅?   http://d
6f 77 6e 2e 73 61 6e 64 61 69 2e 6e 65 74 2f 54     own.sandai.net/T
68 75 6e 64 65 72 35 2e 37 2e 34 2e 34 30 34 2e     hunder5.7.4.404.
65 78 65 00 00 00 00 00 00 00 00 e0 86 6e 00 00     exe        鄦n 
00 00 00 7d 7d 14 00 00 00 00 00 7a 65 13 00 00        }}     ze 
00 00 00 e9 a3 46 00 00 00 00 00 00 00 00 00 50        椋F         P
00 00 00 03 00 00 00 65 78 65 0b 06 01 05 02 00           exe 
20 05 00 00 00 00 00 00 00 00 00 00 00 00 00 05&nb
sp;                 
02 80 d1 10 00 00 00 00 00 00 00 00 00 00 00 00     €?           
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00                    
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00                    
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00                    
00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 09                     
00 00 00 35 2e 37 2e 34 2e 34 30 34 04 00 00 00        5.7.4.404  
30 30 30 30 00 00 00 00 00 00 00 00 00 00 00 00     0000           
00 00 00 00 00 00 00 00 da 3d 00 c2 c0 a8 b7 01             ? 吕ǚ
01 80 0c 00 00 00 00 00 14 00 00 00 c6 76 99 e7     €         苬欑
6e 66 10 4d 7c be c2 bc 40 3e 6f c2 30 9a 44 65     nfM|韭粿>o?欴e
00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00                   
00 14 00 00 00 54 68 75 6e 64 65 72 35 2e 37 2e         Thunder5.7.
34 2e 34 30 34 2e 65 78 65 07 07 07 07 07 07 07     4.404.exe
这就是构造的加密前的包,简单的说一下这个包的结构,你可以看到那个链接地址,
那是我下载这个程序的原始链接地址,我是用迅雷从
http://down.sandai.net/Thunder5.7.4.404.exe下载Thunder5.7.4.404.exe
那看看服务器回复的包有些什么了,
34 00 00 00 0c 00 00 00 f0 07  . n...4.........
0040   00 00 66 2b 99 1a af ed 82 56 af b2 93 c2 03 84  ..f+.....V......
0050   54 4d 1e 13 6a 65 7c 37 31 32 92 2c 7f 31 b5 32  TM..je|712.,.1.2
0060   8c 1e 5f b9 b9 10 f8 63 a1 45 a8 e1 76 f8 5b 2d  .._....c.E..v.[-
0070   1d 07 7a 1d 8d e9 82 d6 b8 34 ef f2 ec 5d 1b eb  ..z......4...]..
0080   a1 24 96 c4 ad 96 3e 55 0e 73 df 75 c2 9d 8b cc  .$….>U.s.u….
0090   1e db dc b2 dc 7c 56 3a e8 01 d8 a1 a2 21 05 31  …..|V:…..!.1
00a0   b0 90 a2 40 8f 86 31 da c8 ee 85 c1 3c 5b 40 1b  …@..1…..<[@.
00b0   ef d5 5f a4 7d 96 8a 5f d3 38 7f b1 f2 bd b5 95  .._.}.._.8......
00c0   f7 15 a5 39 1a 1d 73 56 b0 12 cd 2e cf d9 fa 62  ...9..sV.......b
00d0   e3 d8 08 6c 93 68 02 15 4e ca 34 d8 9c 09 fa 6a  ...l.h..N.4....j
00e0   62 35 43 5e de d4 52 f8 2b 61 0c 64 c4 bd d1 0a  b5C^..R.+a.d....
00f0   fc 95 3f 22 e8 68 4d 1c 65 82 93 43 24 e7 55 5e  ..?".hM.e..C$.U^
0100   f2 db 7e 07 3b bc bc ad 30 54 78 be f2 45 1e 2d  ..~.;...0Tx..E.-
0110   2a 6b 11 9b 9e c7 2d 31 d9 e6 d8 3b 33 c9 26 b5  *k....-1...;3.&.
0120   41 e3 61 a1 ba 90 1d 70 55 d0 93 3f a4 f9 6a 55  A.a....pU..?..jU
0130   f9 19 43 e2 6c 38 a1 57 15 aa 2e d4 18 f1 c6 fe  ..C.l8.W........
0140   fe bf e3 e3 62 1a 9e 6f 3b ee c1 44 b1 f8 d8 23  ....b..o;..D...#
0150   2c 66 f1 c4 43 a6 9f 0b a7 d5 5c 8c e5 68 19 9f  ,f..C.....\..h..
0160   db aa 7c fa 6e 3a dd 4e f0 53 ce 45 51 25 18 8d  ..|.n:.N.S.EQ%..
0170   a0 0d f0 8f e0 b0 cb 12 6d 92 80 f4 4f eb a9 c0  ........m...O...
0180   f4 27 4e 34 c0 8d 96 8e 3b 20 57 b0 fb df 5a 4b  .'N4....; W...ZK
0190   18 e7 2d 54 6f ad da be a6 1e 94 1e f9 2b 9f d7  ..-To........+..
01a0   03 8d de c6 16 0b f4 a1 07 d2 15 85 7c fc 78 df  ............|.x.
01b0   26 3d a7 eb 2f 0b 5f fa 60 4a 73 a5 5a 7e 4a 4e  &=../._.`Js.Z~JN
01c0   80 a3 9a ad ae 53 b4 dc 6d a8 04 35 96 e5 93 70  .....S..m..5...p
01d0   7d 26 07 07 62 cc ce 3f ee 87 5e c4 b2 e5 0e b0  }&..b..?..^.....
01e0   b3 c5 ef dd 9b 2d ef 4b 13 2a ad 39 13 59 25 55  .....-.K.*.9.Y%U
01f0   c2 76 1b 95 74 66 2d 1c 3a 2f f6 f5 4e a4 dd 09  .v..tf-.:/..N...
0200   c8 36 66 bd cd c2 d6 ff 29 cd 20 a3 19 ab 3f d4  .6f.....). ...?.
0210   75 67 b5 d4 37 18 24 c0 57 67 f4 8d 06 33 95 1b  ug..7.$.Wg...3..
0220   03 89 16 f0 b8 e5 52 4f a3 d4 be 38 c9 cc 89 65  ......RO...8...e
0230   e7 ef 32 df 2e 9f 87 a4 2f 8f c3 a3 41 77 7b cd  ..2...../...Aw{.
0240   3e b7 be 5f df c5 ef 81 ff c0 78 c1 8d ef 12 6e  >.._......x....n
0250   e0 e1 e6 d6 28 45 17 61 6c 30 ec 6d 0c 72 1a 58  ....(E.al0.m.r.X
0260   30 f7 ec 19 7e 89 cd 52 52 f8 81 b1 fa c5 b2 61  0...~..RR......a
0270   f9 e1 6f a9 8a bf 42 e0 62 0b a7 bf 27 c8 bd f4  ..o...B.b...'...
0280   ee c9 fe 2c f2 98 8e 41 4c 15 02 9f 09 8d 14 44  ...,...AL......D
0290   a2 a5 53 4f 17 96 d4 d8 4b d2 e3 a7 8b 0c 86 b5  ..SO....K.......
02a0   cb cc 67 8d 33 5a 5b 66 de 89 ad e9 5a de f3 92  ..g.3Z[f....Z...
02b0   43 62 f8 36 13 8e ba e3 39 3e 08 03 88 0e c4 d0  Cb.6....9>......
02c0   5f a6 08 09 23 23 d8 7c 93 ce 78 af 34 ca 49 9e  _...##.|..x.4.I.
02d0   66 1a 07 b9 60 dc 54 5c 88 fe a9 f9 00 59 42 56  f...`.T\.....YBV
02e0   da de a8 4b df a4 b6 b1 7e a7 fa fb 0e 7f eb d7  ...K....~.......
02f0   a2 06 10 f2 fe 1b cb b1 67 79 a2 10 38 3e 66 7b  ........gy..8>f{
0300   a9 0e aa 7e b4 98 a3 56 3b fc ce 27 0f cb 17 7c  ...~...V;..'...|
0310   8f 8e f5 d7 9d db 35 80 0b 8d 2e c0 1e cb e1 32  ......5........2
0320   88 95 bd 59 b2 d2 61 2a 79 cb 3c 84 ec 24 6c 59  ...Y..a*y.<..$lY
0330   bb bd b0 b5 c6 63 c4 7f 10 35 05 dd 15 ad ca a9  .....c...5......
0340   cc c2 26 7f 59 7d 70 82 83 1c 6d 17 41 bb ec 7a  ..&.Y}p...m.A..z
0350   73 1c d6 48 a8 61 8a 09 8d d1 9d 54 73 0e 5a df  s..H.a.....Ts.Z.
0360   18 bc aa 17 a3 c0 ba 94 3b bd bf 0f db 7e 8d 3e  ........;....~.>
0370   1d 33 01 3b 7c df 28 c5 c0 36 09 49 9a 6f c3 44  .3.;|.(..6.I.o.D
0380   a0 1f b5 af 0a 1d d6 42 27 51 fe cc 95 3b 22 c5  .......B'Q...;".
0390   84 da 97 8c 7e fa c2 eb cc 2d c2 64 f4 01 d4 71  ....~....-.d...q
03a0   6c 73 2d 46 74 ef 42 f3 c4 7d 14 96 09 ce 41 de  ls-Ft.B..}....A.
03b0   f1 95 f8 4e 9d 15 a8 96 5e 77 50 4c b6 e5 35 c2  ...N....^wPL..5.
03c0   66 52 69 ba 38 67 d6 83 25 54 f1 93 67 99 01 f4  fRi.8g..%T..g...
03d0   d3 7e 46 7e 60 a2 79 9b eb fc 3f 7f e7 b1 31 cc  .~F~`.y...?...1.
03e0   b2 e7 38 4b 3a ec c8 06 2c c9 52 d3 63 85 53 e7  ..8K:...,.R.c.S.
03f0   c5 b0 85 7f b0 da 93 48 d9 42 68 0f fe d2 c5 fd  .......H.Bh.....
0400   82 22 c8 db 3f 16 e3 a2 a5 24 b5 33 5e 45 f3 05  ."..?....$.3^E..
0410   fc ed bb fc 6f 9e 8c 28 c8 c7 66 28 4f 99 b8 32  ....o..(..f(O..2
0420   31 16 48 81 a1 5e b7 2d f2 72 f7 4d f5 ad 04 7c  1.H..^.-.r.M...|
0430   c8 30 79 03 26 7a 60 48 30 0a 74 18 07 84 cf b6  .0y.&z`H0.t.....
0440   8b ab 51 bd
53 a0 bf 28 28 3d 98 3b ee 75 80 0a  ..Q.S..((=.;.u..
0450   01 d1 ba ae d8 e4 38 9d 82 25 ef 86 eb ff 7b d3  ......8..%....{.
0460   53 fd 18 af 38 e5 f3 02 0b ab 87 b7 06 2a 4d 4a  S...8........*MJ
0470   b4 67 e8 5e 29 22 bb f0 f8 af 7c 01 85 46 6c 9b  .g.^)"....|..Fl.
0480   0c fb 92 5e ce 44 26 28 b4 cf 1d 14 98 85 f4 09  ...^.D&(........
0490   22 ac bc 16 b5 27 35 59 1e 1b f8 e9 07 e2 59 d5  "....'5Y......Y.
04a0   2f c0 db 7f 60 24 61 bc f5 fb 4c 5d 07 f8 19 ca  /...`$a...L]….
04b0   75 c7 9d f2 b1 40 e6 35 c9 22 58 32 db b4 16 24  u….@.5.”X2…$
04c0   48 95 81 65 cb ce 68 d8 eb 18 84 64 ea b7 e6 da  H..e..h….d….
04d0   33 d1 a0 93 1d c2 af 93 ab 0d fa ac 5c d5 9b 16  3………..\…
04e0   f7 44 50 d5 0d e5 84 da 22 02 ce e3 e6 c9 5e 76  .DP…..”…..^v
04f0   47 34 c3 7d 9a 6d 18 61 dc 93 d8 56 39 0d b3 17  G4.}.m.a…V9…
0500   26 52 a0 2a db 32 5d 0c 10 08 37 e3 94 d5 a5 d2  &R.*.2]…7…..
0510   73 b9 e9 cb b8 a3 55 e6 f2 76 4b 39 ae 4f 70 d4  s…..U..vK9.Op.
0520   61 ac 0e 9d b7 69 9c 05 09 f7 5d cd 13 62 b6 74  a….i….]..b.t
0530   8f 10 c1 07 1b 5f 01 f5 80 42 e9 26 ca 3f 45 ee  ….._…B.&.?E.
0540   77 c1 6f a9 8a bf 42 e0 62 0b a7 bf 27 c8 bd f4  w.o…B.b…’…
0550   ee c9 f7 11 26 bb 9f ff 34 ab ae 90 5f 58 c3 2c  ….&…4…_X.,
0560   3c 59 f3 d3 c5 53 58 58 c9 ca 76 89 04 ad bc b2  <Y…SXX..v…..
0570   05 2d 92 c4 9e 05 6a 91 f8 dd 97 36 11 50 12 c9  .-….j….6.P..
0580   16 00 e9 37 8c e0 7c 71 0e 8c 54 f6 de 95 d8 d1  …7..|q..T…..
0590   62 85 46 c1 3f 0c f6 bb c1 81 97 d9 bf 2d 6c 4c  b.F.?……..-lL
05a0   32 89 01 e5 cb 58 60 03 8e 52 ec 77 22 dd 5d 5c  2….X`..R.w”.]\
05b0   5c d0 41 8b 2a 99 3b df 61 30 3c 81 c5 d6 51 35  \.A.*.;.a0<…Q5
05c0   19 0c 84 f3 29 a9 bc 62 97 c0 1a 13 cf a2 ca 82  ….)..b……..
05d0   d6 14 b0 7e 04 38 93 c9 cd ba 99 49 c3 08 96 f7  …~.8…..I….
05e0   98 46 b6 d7 0e 3e a4 a9 78 81                    .F…>..x.
服务器回复包如下:
                                         34 00 00 00 0c 00 00 00 f0 07  . n…4………
0040   00 00 66 2b 99 1a af ed 82 56 af b2 93 c2 03 84  ..f+…..V……
0050   54 4d 1e 13 6a 65 7c 37 31 32 92 2c 7f 31 b5 32  TM..je|712.,.1.2
0060   8c 1e 5f b9 b9 10 f8 63 a1 45 a8 e1 76 f8 5b 2d  .._….c.E..v.[-
0070   1d 07 7a 1d 8d e9 82 d6 b8 34 ef f2 ec 5d 1b eb  ..z......4...]..
0080   a1 24 96 c4 ad 96 3e 55 0e 73 df 75 c2 9d 8b cc  .$….>U.s.u….
0090   1e db dc b2 dc 7c 56 3a e8 01 d8 a1 a2 21 05 31  …..|V:…..!.1
00a0   b0 90 a2 40 8f 86 31 da c8 ee 85 c1 3c 5b 40 1b  …@..1…..<[@.
00b0   ef d5 5f a4 7d 96 8a 5f d3 38 7f b1 f2 bd b5 95  .._.}.._.8......
00c0   f7 15 a5 39 1a 1d 73 56 b0 12 cd 2e cf d9 fa 62  ...9..sV.......b
00d0   e3 d8 08 6c 93 68 02 15 4e ca 34 d8 9c 09 fa 6a  ...l.h..N.4....j
00e0   62 35 43 5e de d4 52 f8 2b 61 0c 64 c4 bd d1 0a  b5C^..R.+a.d....
00f0   fc 95 3f 22 e8 68 4d 1c 65 82 93 43 24 e7 55 5e  ..?".hM.e..C$.U^
0100   f2 db 7e 07 3b bc bc ad 30 54 78 be f2 45 1e 2d  ..~.;...0Tx..E.-
0110   2a 6b 11 9b 9e c7 2d 31 d9 e6 d8 3b 33 c9 26 b5  *k....-1...;3.&.
0120   41 e3 61 a1 ba 90 1d 70 55 d0 93 3f a4 f9 6a 55  A.a....pU..?..jU
0130   f9 19 43 e2 6c 38 a1 57 15 aa 2e d4 18 f1 c6 fe  ..C.l8.W........
0140   fe bf e3 e3 62 1a 9e 6f 3b ee c1 44 b1 f8 d8 23  ....b..o;..D...#
0150   2c 66 f1 c4 43 a6 9f 0b a7 d5 5c 8c e5 68 19 9f  ,f..C.....\..h..
0160   db aa 7c fa 6e 3a dd 4e f0 53 ce 45 51 25 18 8d  ..|.n:.N.S.EQ%..
0170   a0 0d f0 8f e0 b0 cb 12 6d 92 80 f4 4f eb a9 c0  ........m...O...
0180   f4 27 4e 34 c0 8d 96 8e 3b 20 57 b0 fb df 5a 4b  .'N4....; W...ZK
0190   18 e7 2d 54 6f ad da be a6 1e 94 1e f9 2b 9f d7  ..-To........+..
01a0   03 8d de c6 16 0b f4 a1 07 d2 15 85 7c fc 78 df  ............|.x.
01b0   26 3d a7 eb 2f 0b 5f fa 60 4a 73 a5 5a 7e 4a 4e  &=../._.`Js.Z~JN
01c0   80 a3 9a ad ae 53 b4 dc 6d a8 04 35 96 e5 93 70  .....S..m..5...p
01d0   7d 26 07 07 62 cc ce 3f ee 87 5e c4 b2 e5 0e b0  }&..b..?..^.....
01e0   b3 c5 ef dd 9b 2d ef 4b 13 2a ad 39 13 59 25 55  .....-.K.*.9.Y%U
01f0   c2 76 1b 95 74 66 2d 1c 3a 2f f6 f5 4e a4 dd 09  .v..tf-.:/..N...
0200   c8 36 66 bd cd c2 d6 ff 29 cd 20 a3 19 ab 3f d4  .6f.....). ...?.
0210   75 67 b5 d4 37 18 24 c0 57 67 f4 8d 06 33 95 1b  ug..7.$.Wg...3..
0220   03 89 16 f0 b8 e5 52 4f a3 d4 be 38 c9 cc 89 65  ......RO...8...e
0230   e7 ef 32 df 2e 9f 87 a4 2f 8f c3 a3 41 77 7b cd  ..2...../...Aw{.
0240   3e b7 be 5f df c5 ef 81 ff c0 78 c1 8d ef 12 6e  >.._......x....n
0250   e0 e1 e6 d6 28 45 17 61 6c 30 ec 6d 0c 72 1a 58  ....(E.al0.m.r.X
0260   30 f7 ec 19 7e 89 cd 52 52 f8 81 b1 fa c5 b2 61  0...~..RR......a
0270   f9 e1 6f a9 8a bf 42 e0 62 0b a7 bf 27 c8 bd f4  ..o...B.b...'...
0280   ee c9 fe 2c f2 98 8e 41 4c 15 02 9f 09 8d 14 44  ...,...AL......D
0290   a2 a5 53 4f 17 96 d4 d8 4b d2 e3 a7 8b 0c 86 b5  ..SO....K.......
02a0   cb cc 67 8d 33 5a 5b 66 de 89 ad e9 5a de f3 92  ..g.3Z[f....Z...
02b0   43 62 f8 36 13 8e ba e3 39 3e 08 03 88 0e c4 d0  Cb.6....9>......
02c0   5f a6 08 09 23 23 d8 7c 93 ce 78 af 34 ca 49 9e  _...##.|..x.4.I.
02d0   66 1a 07 b9 60 dc 54 5c 88 fe a9 f9 00 59 42 56  f...`.T\.....YBV
02e0   da de a8 4b df a4 b6 b1 7e a7 fa fb 0e 7f eb d7  ...K....~.......
02f0   a2 06 10 f2 fe 1b cb b1 67 79 a2 10 38 3e 66 7b  ........gy..8>f{
0300   a9 0e aa 7e b4 98 a3 56 3b fc ce 27 0f cb 17 7c  ...~...V;..'...|
0310   8f 8e f5 d7 9d db 35 80 0b 8d 2e c0 1e cb e1 32  ......5........2
0320   88 95 bd 59 b2 d2 61 2a 79 cb 3c 84 ec 24 6c 59  ...Y..a*y.<..$lY
0330   bb bd b0 b5 c6 63 c4 7f 10 35 05 dd 15 ad ca a9  .....c...5......
0340   cc c2 26 7f 59 7d 70 82 83 1c 6d 17 41 bb ec 7a  ..&.Y}p...m.A..z
0350   73 1c d6 48 a8 61 8a 09 8d d1 9d 54 73 0e 5a df  s..H.a.....Ts.Z.
0360   18 bc aa 17 a3 c0 ba 94 3b bd bf 0f db 7e 8d 3e  ........;....~.>
0370   1d 33 01 3b 7c df 28 c5 c0 36 09 49 9a 6f c3 44  .3.;|.(..6.I.o.D
0380   a0 1f b5 af 0a 1d d6 42 27 51 fe cc 95 3b 22 c5  .......B'Q...;".
0390   84 da 97 8c 7e fa c2 eb cc 2d c2 64 f4 01 d4 71  ....~....-.d...q
03a0   6c 73 2d 46 74 ef 42 f3 c4 7d 14 96 09 ce 41 de  ls-Ft.B..}....A.
03b0   f1 95 f8 4e 9d 15 a8 96 5e 77 50 4c b6 e5 35 c2  ...N....^wPL..5.
03c0   66 52 69 ba 38 67 d6 83 25 54 f1 93 67 99 01 f4  fRi.8g..%T..g...
03d0   d3 7e 46 7e 60 a2 79 9b eb fc 3f 7f e7 b1 31 cc  .~F~`.y...?...1.
03e0 &nb
sp; b2 e7 38 4b 3a ec c8 06 2c c9 52 d3 63 85 53 e7  ..8K:...,.R.c.S.
03f0   c5 b0 85 7f b0 da 93 48 d9 42 68 0f fe d2 c5 fd  .......H.Bh.....
0400   82 22 c8 db 3f 16 e3 a2 a5 24 b5 33 5e 45 f3 05  ."..?....$.3^E..
0410   fc ed bb fc 6f 9e 8c 28 c8 c7 66 28 4f 99 b8 32  ....o..(..f(O..2
0420   31 16 48 81 a1 5e b7 2d f2 72 f7 4d f5 ad 04 7c  1.H..^.-.r.M...|
0430   c8 30 79 03 26 7a 60 48 30 0a 74 18 07 84 cf b6  .0y.&z`H0.t.....
0440   8b ab 51 bd 53 a0 bf 28 28 3d 98 3b ee 75 80 0a  ..Q.S..((=.;.u..
0450   01 d1 ba ae d8 e4 38 9d 82 25 ef 86 eb ff 7b d3  ......8..%....{.
0460   53 fd 18 af 38 e5 f3 02 0b ab 87 b7 06 2a 4d 4a  S...8........*MJ
0470   b4 67 e8 5e 29 22 bb f0 f8 af 7c 01 85 46 6c 9b  .g.^)"....|..Fl.
0480   0c fb 92 5e ce 44 26 28 b4 cf 1d 14 98 85 f4 09  ...^.D&(........
0490   22 ac bc 16 b5 27 35 59 1e 1b f8 e9 07 e2 59 d5  "....'5Y......Y.
04a0   2f c0 db 7f 60 24 61 bc f5 fb 4c 5d 07 f8 19 ca  /...`$a...L]….
04b0   75 c7 9d f2 b1 40 e6 35 c9 22 58 32 db b4 16 24  u….@.5.”X2…$
04c0   48 95 81 65 cb ce 68 d8 eb 18 84 64 ea b7 e6 da  H..e..h….d….
04d0   33 d1 a0 93 1d c2 af 93 ab 0d fa ac 5c d5 9b 16  3………..\…
04e0   f7 44 50 d5 0d e5 84 da 22 02 ce e3 e6 c9 5e 76  .DP…..”…..^v
04f0   47 34 c3 7d 9a 6d 18 61 dc 93 d8 56 39 0d b3 17  G4.}.m.a…V9…
0500   26 52 a0 2a db 32 5d 0c 10 08 37 e3 94 d5 a5 d2  &R.*.2]…7…..
0510   73 b9 e9 cb b8 a3 55 e6 f2 76 4b 39 ae 4f 70 d4  s…..U..vK9.Op.
0520   61 ac 0e 9d b7 69 9c 05 09 f7 5d cd 13 62 b6 74  a….i….]..b.t
0530   8f 10 c1 07 1b 5f 01 f5 80 42 e9 26 ca 3f 45 ee  ….._…B.&.?E.
0540   77 c1 6f a9 8a bf 42 e0 62 0b a7 bf 27 c8 bd f4  w.o…B.b…’…
0550   ee c9 f7 11 26 bb 9f ff 34 ab ae 90 5f 58 c3 2c  ….&…4…_X.,
0560   3c 59 f3 d3 c5 53 58 58 c9 ca 76 89 04 ad bc b2  <Y…SXX..v…..
0570   05 2d 92 c4 9e 05 6a 91 f8 dd 97 36 11 50 12 c9  .-….j….6.P..
0580   16 00 e9 37 8c e0 7c 71 0e 8c 54 f6 de 95 d8 d1  …7..|q..T…..
0590   62 85 46 c1 3f 0c f6 bb c1 81 97 d9 bf 2d 6c 4c  b.F.?……..-lL
05a0   32 89 01 e5 cb 58 60 03 8e 52 ec 77 22 dd 5d 5c  2….X`..R.w”.]\
05b0   5c d0 41 8b 2a 99 3b df 61 30 3c 81 c5 d6 51 35  \.A.*.;.a0<…Q5
05c0   19 0c 84 f3 29 a9 bc 62 97 c0 1a 13 cf a2 ca 82  ….)..b……..
05d0   d6 14 b0 7e 04 38 93 c9 cd ba 99 49 c3 08 96 f7  …~.8…..I….
05e0   98 46 b6 d7 0e 3e a4 a9 78 81                    .F…>..x.
解密如下:
058B2378  91 01 05 00 00 00 D2 07 01 B8 F7 6C 00 00 00 00  ?…?各l….
058B2388  00 14 00 00 00 90 4B 81 47 A5 0F 1E F6 6C 85 FA  ….怟丟?鰈咜
058B2398  16 13 91 76 8A 91 C8 84 1A 00 00 00 00 00 00 00  憊姂葎…….
058B23A8  00 0A 00 00 00 8B 00 00 00 44 00 00 00 68 74 74  …..?..D…htt
058B23B8  70 3A 2F 2F 64 6F 77 6E 6C 6F 61 64 2E 7A 6F 6C  p://download.zol
058B23C8  2E 63 6F 6D 2E 63 6E 2F 64 6F 77 6E 2E 70 68 70  .com.cn/down.php
058B23D8  3F 73 6F 66 74 69 64 3D 31 33 35 33 37 33 26 73  ?softid=135373&s
058B23E8  75 62 63 61 74 69 64 3D 33 33 26 73 69 74 65 3D  ubcatid=33&site=
058B23F8  38 2F 00 00 00 68 74 74 70 3A 2F 2F 64 6F 77 6E  8/…http://down
058B2408  6C 6F 61 64 2E 7A 6F 6C 2E 63 6F 6D 2E 63 6E 2F  load.zol.com.cn/
058B2418  6C 69 6E 6B 2F 31 34 2F 31 33 35 33 37 33 2E 73  link/14/135373.s
058B2428  68 74 6D 6C D0 42 0B 00 00 A0 00 00 00 5A 00 00  html蠦 ..?..Z..
058B2438  00 00 00 00 D6 00 00 00 7F 00 00 00 68 74 74 70  ….?..…http
058B2448  3A 2F 2F 72 65 64 69 72 65 63 74 2E 6D 79 64 6F  ://redirect.mydo
058B2458  77 6E 2E 63 6F 6D 2F 6D 79 64 6F 77 6E 2F 70 72  wn.com/mydown/pr
058B2468  65 64 6F 77 6E 2E 6A 73 70 3F 69 64 3D 34 30 38  edown.jsp?id=408
058B2478  37 32 39 26 70 3D 30 26 6A 3D 31 32 26 6D 3D 31  729&p=0&j=12&m=1
058B2488  26 75 72 6C 3D 68 74 74 70 3A 2F 2F 6A 73 31 2E  &url=http://js1.
058B2498  6D 79 64 6F 77 6E 2E 63 6F 6D 2F 73 6F 66 74 2F  mydown.com/soft/
058B24A8  32 30 30 37 31 30 2F 54 68 75 6E 64 65 72 35 2E  200710/Thunder5.
058B24B8  37 2E 34 2E 34 30 31 2E 65 78 65 3F 00 00 00 68  7.4.401.exe?…h
058B24C8  74 74 70 3A 2F 2F 77 77 77 2E 6D 79 64 6F 77 6E  ttp://www.mydown
058B24D8  2E 63 6F 6D 2F 73 6F 66 74 2F 6E 65 74 77 6F 72  .com/soft/networ
058B24E8  6B 2F 64 6F 77 6E 6C 6F 61 64 2F 32 32 39 2F 34  k/download/229/4
058B24F8  30 38 37 32 39 5F 64 73 2E 73 68 74 6D 6C D8 82  08729_ds.shtml貍
058B2508  0E 00 00 49 22 00 00 5A 00 00 00 00 00 00 5F 00  ..I”..Z……_.
058B2518  00 00 26 00 00 00 68 74 74 70 3A 2F 2F 64 2E 35  ..&…http://d.5
058B2528  32 70 6B 2E 63 6F 6D 2F 64 6F 77 6E 2E 61 73 70  2pk.com/down.asp
058B2538  3F 69 64 3D 31 35 32 26 6E 6F 3D 33 21 00 00 00  ?id=152&no=3!…
058B2548  68 74 74 70 3A 2F 2F 64 6F 77 6E 2E 35 32 70 6B  http://down.52pk
058B2558  2E 63 6F 6D 2F 73 6F 66 74 2F 31 35 32 2E 68 74  .com/soft/152.ht
058B2568  6D 30 92 10 00 FF 95 00 00 00 5A 00 00 00 00 00  m0?.?..Z…..
058B2578  00 AA 00 00 00 3D 00 00 00 68 74 74 70 3A 2F 2F  .?..=…http://
058B2588  36 31 2E 31 34 35 2E 31 31 33 2E 31 31 37 2F 62  61.145.113.117/b
058B2598  35 2F 64 6F 77 6E 2E 73 61 6E 64 61 69 2E 6E 65  5/down.sandai.ne
058B25A8  74 2F 54 68 75 6E 64 65 72 35 2E 37 2E 34 2E 34  t/Thunder5.7.4.4
058B25B8  30 31 2E 65 78 65 55 00 00 00 68 74 74 70 3A 2F  01.exeU…http:/
058B25C8  2F 36 31 2E 31 34 35 2E 31 31 33 2E 31 31 37 2F  /61.145.113.117/
058B25D8  62 35 2F 64 6C 2E 70 63 6F 6E 6C 69 6E 65 2E 63  b5/dl.pconline.c
058B25E8  6F 6D 2E 63 6E 2F 68 74 6D 6C 5F 32 2F 31 2F 38  om.cn/html_2/1/8
058B25F8  39 2F 69 64 3D 34 32 34 34 33 26 70 6E 3D 30 26  9/id=42443&pn=0&
058B2608  6C 69 6E 6B 50 61 67 65 3D 31 2E 68 74 6D 6C 68  linkPage=1.htmlh
058B2618  77 0C 00 FF 81 00 00 00 5A 00 00 00 00 00 00 7A  w..?..Z……z
058B2628  00 00 00 3E 00 00 00 68 74 74 70 3A 2F 2F 77 77  …>…http://ww
058B2638  77 2E 39 39 37 2E 63 6E 2F 73 6F 66 74 2F 64 6F  w.997.cn/soft/do
058B2648  77 6E 6C 6F 61 64 2E 61 73 70 3F 73 6F 66 74 69  wnload.asp?softi
058B2658  64 3D 37 36 36 26 64 6F 77 6E 69 64 3D 30 26 69  d=766&downid=0&i
058B2668  64 3D 37 39 30 24 00 00 00 68 74 74 70 3A 2F 2F  d=790$…http://
058B2678  77 77 77 2E 39 39 37 2E 63 6E 2F 73 6F 66 74 2F  www.997.cn/soft/
058B2688  31 2F 31 38 2F 37 36 36 2E 68 74 6D 6C 68 FA 0B  1/18/766.htmlh?
058B2698  00 00 3C 01 00 00 5A 00 00 00 00 00 00 80 00 00  ..<..Z……€..
058B26A8  00 33 00 00 00 68 74 74 70 3A 2F 2F 64 6F 77 6E  .3…http://down
058B26B8  38 2E 7A 6F 6C 2E 63 6F 6D 2E 63 6E 2F 78 69 61  8.zol.com.cn/xia
058B26C8  7A 61 69 2F 54 68 75 6E 64 65 72 35 2E 37 2E 34  zai/Thunder5.7.4
058B26D8  2E 34 30 31 2E 65 78 65 35 00 00 00 68 74 74 70  .401.exe5…http
058B26E8  3A 2F 2F 64 6F 77 6E 6C 6F 61 64 2E 77 77 77 2E  ://download.www.
058B26F8  66 65 6E 67 6E 69 61 6
F 2E 63 6F 6D 2F 6C 69 6E  fengniao.com/lin
058B2708  6B 2F 31 34 2F 31 33 35 33 37 33 2E 73 68 74 6D  k/14/135373.shtm
058B2718  6C F8 F4 08 00 00 8F 00 00 00 5A 00 00 00 00 00  l..?..Z…..
058B2728  00 97 00 00 00 4A 00 00 00 68 74 74 70 3A 2F 2F  .?..J…http://
058B2738  64 6F 77 6E 6C 6F 61 64 2E 77 77 77 2E 66 65 6E  download.www.fen
058B2748  67 6E 69 61 6F 2E 63 6F 6D 2F 64 6F 77 6E 2E 70  gniao.com/down.p
058B2758  68 70 3F 73 6F 66 74 69 64 3D 31 33 35 33 37 33  hp?softid=135373
058B2768  26 73 75 62 63 61 74 69 64 3D 33 33 26 73 69 74  &subcatid=33&sit
058B2778  65 3D 38 35 00 00 00 68 74 74 70 3A 2F 2F 64 6F  e=85…http://do
058B2788  77 6E 6C 6F 61 64 2E 77 77 77 2E 66 65 6E 67 6E  wnload.www.fengn
058B2798  69 61 6F 2E 63 6F 6D 2F 6C 69 6E 6B 2F 31 34 2F  iao.com/link/14/
058B27A8  31 33 35 33 37 33 2E 73 68 74 6D 6C 68 00 0B 00  135373.shtmlh. .
058B27B8  00 9D 00 00 00 5A 00 00 00 00 00 00 93 00 00 00  .?..Z……?..
058B27C8  48 00 00 00 68 74 74 70 3A 2F 2F 64 6F 77 6E 6C  H…http://downl
058B27D8  6F 61 64 2E 77 77 77 2E 78 69 79 75 69 74 2E 63  oad.www.xiyuit.c
058B27E8  6F 6D 2F 64 6F 77 6E 2E 70 68 70 3F 73 6F 66 74  om/down.php?soft
058B27F8  69 64 3D 31 33 35 33 37 33 26 73 75 62 63 61 74  id=135373&subcat
058B2808  69 64 3D 33 33 26 73 69 74 65 3D 38 33 00 00 00  id=33&site=83…
058B2818  68 74 74 70 3A 2F 2F 64 6F 77 6E 6C 6F 61 64 2E  http://download.
058B2828  77 77 77 2E 78 69 79 75 69 74 2E 63 6F 6D 2F 6C  www.xiyuit.com/l
058B2838  69 6E 6B 2F 31 34 2F 31 33 35 33 37 33 2E 73 68  ink/14/135373.sh
058B2848  74 6D 6C 60 31 0A 00 00 90 00 00 00 5A 00 00 00  tml`1…?..Z…
058B2858  00 00 00 46 00 00 00 2E 00 00 00 68 74 74 70 3A  …F…….http:
058B2868  2F 2F 64 6F 77 6E 2E 73 61 6E 64 61 69 2E 6E 65  //down.sandai.ne
058B2878  74 2F 54 68 75 6E 64 65 72 35 2E 37 2E 34 2E 34  t/Thunder5.7.4.4
058B2888  30 31 2E 65 78 65 3F 32 30 00 00 00 00 FF FF FF  01.exe?20….
058B2898  FF 00 FF FF FF FF 5A 00 00 00 00 00 00 46 00 00  .Z……F..
058B28A8  00 2E 00 00 00 68 74 74 70 3A 2F 2F 64 6F 77 6E  …..http://down
058B28B8  2E 73 61 6E 64 61 69 2E 6E 65 74 2F 54 68 75 6E  .sandai.net/Thun
058B28C8  64 65 72 35 2E 37 2E 34 2E 34 30 31 2E 65 78 65  der5.7.4.401.exe
058B28D8  3F 31 36 00 00 00 00 FF FF FF FF 00 FF FF FF FF  ?16…..
058B28E8  5A 00 00 00 00 00 00 00 14 00 00 00 DB 98 C7 53  Z……….蹣荢
058B28F8  A5 56 35 B0 32 D2 7D 78 EB 84 D1 5D 2D 85 F9 4A  5?襺x雱裖-咘J
058B2908  00 00 04 00 5A 00 00 00 00 30 02 00 00 9C 2C 74  …Z….0..?t
058B2918  40 56 2A 24 19 09 36 4F C5 76 3D D5 9D 69 37 14  @V*$.6O舦=諠i7
058B2928  79 7F 89 18 D1 03 F7 09 F4 E2 68 FE D1 E4 E8 21  y???翕h滂!
058B2938  10 96 B8 EF 10 6A 86 81 F3 55 D4 1A E5 CD DA 50  柛?j唩骍?逋赑
058B2948  C7 FA 51 9A 39 46 E8 50 FB 65 30 6F 73 49 A4 89  曲Q?F鑀鹐0osI
058B2958  AF 8E B0 7E 33 FF 3E F0 30 97 54 19 A7 B6 A7 11  瘞皛3>?桾Ф?
058B2968  8B 88 DE 27 DB 3F D2 B7 1A 2A F4 79 4A EC 39 3B  媹??曳*魕J?;
058B2978  54 A6 75 59 DB 8B F2 3C BD BF 55 4E 06 36 40 E5  TY蹕?娇UN6@
058B2988  10 96 B8 EF 10 6A 86 81 F3 55 D4 1A E5 CD DA 50  柛?j唩骍?逋赑
058B2998  10 96 B8 EF 10 6A 86 81 F3 55 D4 1A E5 CD DA 50  柛?j唩骍?逋赑
058B29A8  19 5F FB 37 86 C5 B6 FC F8 B8 F9 2A 06 40 7F D4  _?喤饵?@
058B29B8  FA 73 18 7A C5 21 A9 37 D2 9A 19 61 81 4A C0 32  鷖z??覛a丣?
058B29C8  08 F9 CE 59 D1 08 A0 5D 81 48 20 FF 5C 3B 74 C0  Y?燷丠 \;t
058B29D8  6D D2 D2 E6 C4 DD 39 0D 9C ED 15 F0 C3 37 2A E5  m乙婺?.滍鹈7*
058B29E8  E1 67 D4 8C C8 47 29 81 2E 5C 79 52 BA 1F 7B 23  醙詫菺)?\yR?{#
058B29F8  0B E5 3C F6 BA E6 46 93 08 21 C8 58 0E B0 0C B6  ?龊鍲?!萖?
058B2A08  37 04 16 33 6E 9A 8A C8 32 E6 1C 43 E7 7F 95 9F  73n殜??C?暉
058B2A18  02 56 BF 7B E7 C9 3E CA B3 A8 2A 16 77 E6 33 CB  V縶缟>食?w?
058B2A28  0F 86 BD BD C2 26 A4 E3 C5 17 B0 DD 6E 59 FB 00  喗铰&ゃ?拜nY?
058B2A38  5E 34 7D 31 02 D2 79 9C 7E A2 1F 52 43 5F CB 3D  ^4}1襶渵?RC_?
058B2A48  10 96 B8 EF 10 6A 86 81 F3 55 D4 1A E5 CD DA 50  柛?j唩骍?逋赑
058B2A58  65 7E D0 9E 8A 98 CF 2F 3D 8C F2 D4 12 BC 72 3C  e~袨姌?=岒?紃<
058B2A68  0D 51 5F 23 4A DC 14 25 51 55 D9 E9 B7 9F C3 0C  .Q_#J?%QU匍窡?
058B2A78  10 96 B8 EF 10 6A 86 81 F3 55 D4 1A E5 CD DA 50  柛?j唩骍?逋赑
058B2A88  C8 49 5A D8 DC E6 7E 27 F5 B6 84 18 80 BC 65 59  菼Z剀鎫’醵?€糴Y
058B2A98  48 6F 11 11 DC EF FA F5 23 1E 85 DB 69 2D EF 43  Ho茱#呟i-顲
058B2AA8  10 96 B8 EF 10 6A 86 81 F3 55 D4 1A E5 CD DA 50  柛?j唩骍?逋赑
058B2AB8  98 5F 72 27 E3 3A 10 B0 CA 38 96 AA 08 AD 70 35  榑r’?笆8柂璸5
058B2AC8  BD 21 F1 0C 26 07 D7 19 9A 10 89 0A C5 A3 17 15  ??&???牛
058B2AD8  10 96 B8 EF 10 6A 86 81 F3 55 D4 1A E5 CD DA 50  柛?j唩骍?逋赑
058B2AE8  65 6E 72 8C F0 E7 0A AA FC FB 84 02 8F FB 71 3A  enr岎?麆忹q:
058B2AF8  A3 19 8B 60 BC 0A 8D 9B 19 D8 63 A3 FD 50 81 DD  ?媊?崨豤}P佪
058B2B08  AB 95 A5 1B 64 36 55 B0 FD 5E 2E 66 B0 86 44 3E  珪?d6U褒^.f皢D>
058B2B18  10 96 B8 EF 10 6A 86 81 F3 55 D4 1A E5 CD DA 50  柛?j唩骍?逋赑
058B2B28  6F 94 F4 EB 92 A0 02 7A 84 65 D2 FA 14 B3 92 CA  o旚霋?z別寅硳
058B2B38  34 1E DB CC 1C E8 A0 78 59 79 F4 AE 60 A6 91 FD  4厶锠xYy舢`
058B2B48  37 6C 16 FB 24 D2 AB E5 E2 BD A4 E2 3A 61 FA 4A  7l?耀邂饯?a鶭
058B2B58  31 78 4A CB B1 D5 97 27 5B E8 05 03 77 1F 69 1C  1xJ吮諚’[?wi
看见了吗,回复包解密后,里面带着的链接地址就是P2SP的多个可供下载的服务器的链接地址.
而且回复里面包含一些文件相关的信息,比如SHA-1 HASH值之类的,大家有兴趣的话,可以自
已分析它的包的结构,我下篇文章分析它的包结构,呵呵:)
注意,上面的发送包和回复包不是关联的,因为我调试的时候没有把它们关取在一起,送了不同的包进行分析的.
好了,客户端与服务器之间的获取多个下载源的加密通信过程就到此结束了,这儿我主要的只介绍
它们通信的加密算法而已,具体其它的协议以后有时间再发.
               时间仓促,如有不足之处,还请多多指教.
最后附上加解密的源代码.
#include <stdio.h>
#include <string.h>
#include <openssl/aes.h>
#include "thunder-md5.h"
unsigned char thunder[]={
        0×34, 0×00, 0×00, 0×00, 0×96, 0×00, 0×00, 0×00,0×80,0×00,
        0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,
        0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,
        0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,
        0×00,0×00,0×00,0×00,0×40,0×00,0×00,0×00,0×00,0×00,0×00,0×00};
unsigned char thunder_md5_pad[]={
        0×80,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,
        0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0x
00,0×00,
        0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,
        0×00,0×00,0×00,0×00,0×00,0×00,0×40,0×00,0×00,0×00,0×00,0×00,0×00,0×00};
unsigned char thunder_AES_key[16];//thunder MD5 padding data
unsigned char in[]={0×02,0×3A,0xA0,0×8A,0×5E
,0×52,0×22,0xAC,0×5E,0xFA,0xC8,0xF6,0×54,0xE8,0xDC,0×9A,0xBC,0xE6,0×78,0×11,0xD9
,0×59,0xC3,0xE8,0×64,0×8E,0xB8,0×93,0xEA,0xE7,0×43,0×28,0xBA,0×16,0xFF,0xC4,0xA9
,0xDC,0xAB,0×26,0×7C,0×56,0×08,0×47,0xD9,0xA9,0×37,0xF6,0xC1,0×3A,0×7B,0×68,0xC8
,0×11,0×74,0×9D,0×62,0×6D,0×4C,0×6C,0xE7,0xAD,0×08,0×46,0×70,0×31,0xAC,0×97,0×34
,0xAE,0×15,0×18,0×37,0xB3,0×97,0×32,0×91,0×13,0xF8,0xFB,0xAA,0×30,0×75,0×10,0×02
,0×78,0×8E,0xF6,0×38,0×1D,0×43,0×6B,0xB9,0xF4,0xDE,0xC4,0×09,0×23,0×3A,0×27,0×8B
,0xE6,0×2C,0×5D,0×87,0xBF,0×4C,0xBF,0xBF,0×54,0×15,0×4E,0xDB,0×8F,0×77,0×95,0xC0
,0×67,0xEE,0×1E,0xB4,0xB4,0×36,0xF6,0xEF,0xCF,0×96,0×77,0×1A,0xEA,0×9E,0×63,0×11
,0×40,0xFC,0xE1,0×23,0×81,0×90,0×92,0×5E,0xFE,0×23,0×36,0xFB,0×1A,0×23,0×37,0×9A
,0×7D,0×20,0×95,0xCA,0×47,0xC2,0xDA,0xE9,0xE8,0xFE,0×30,0×4C,0xA0,0xFE,0×4F,0×6E
,0xA0,0xA5,0×81,0×45,0xBA,0xAF,0×68,0xEE,0×60,0xA1,0xD5,0×00,0xA8,0xDC,0xCC,0×80
,0×84,0×0C,0×19,0xCF,0×81,0xB9,0×13,0xC0,0×13,0×07,0xE8,0×70,0×05,0×79,0×15,0xF5
,0xD5,0×2B,0×05,0xA1,0xDD,0×34,0xD8,0xD9,0xC3,0xE7,0×05,0×70,0×05,0×79,0×15,0xF5
,0xD5,0×2B,0×05,0xA1,0xDD,0×34,0xD8,0xD9,0xC3,0xE7,0×05,0×70,0×05,0×79,0×15,0xF5
,0xD5,0×2B,0×05,0xA1,0xDD,0×34,0xD8,0xD9,0xC3,0xE7,0×05,0×10,0×3A,0xCC,0×2F,0×13
,0xE1,0xE1,0×8C,0×7B,0xC9,0xC5,0×48,0xB3,0×85,0×73,0×55,0×87,0xEE,0×99,0×14,0×67
,0xB2,0×1B,0×01,0×1B,0×56,0×01,0×2F,0xFB,0×47,0×07,0×88,0xBD,0×4C,0xD2,0×1A,0×08
,0×14,0×42,0xF3,0xF5,0xC2,0×7C,0×26,0×9E,0×24,0×00,0xA4,0xEA,0×5F,0×20,0xFC,0xCA
,0×80,0xF6,0×9B,0xC9,0×28,0×5B,0×55,0×22,0×94,0×33,0×4F,0×3E,0×1B,0xC6,0×31,0×23
,0×82,0xB1,0×97,0×3E,0xC1,0×00,0×2F,0xEF,0xCE,0×06,0×7B,0xAA,0xCD,0xA6,0×61,0xF5
,0xC9,0×59,0×8E,0xDB,0xF6,0×49,0×73,0×9C,0xB9,0×08,0×05,0xC3,0×1E,0xEB,0xA6,0xD3
,0×0F,0xBB,0×86,0xFD,0xFC,0xCC,0×99,0×89,0×61,0xA9,0xB1,0xF9,0×30,0xC7,0×48,0xB1
,0×79,0×6C,0×75,0×26,0×8C,0xF5,0×46,0xF4,0×7F,0×04,0xED,0xD1,0×2B,0×16,0×2D,0×94
,0×2F,0×2C,0xDE,0×6E,0×7B,0×97,0xE7,0×28,0×8B,0xDA,0×0D};//Encrypt data
unsigned char out[4096];
int main(int argc, char *argv[])
{
     MD5_CTX c;
     AES_KEY aes_key;
     int i,j;
     MD5Init(&c);
     Transform((unsigned long *)c.buf,(unsigned long*)thunder);
     strncpy((char*)&thunder_AES_key,(const char*)&c.buf,16);
     AES_set_decrypt_key((const unsigned char *)&thunder_AES_key,128,&aes_key);
     for ( i=0;i<sizeof(in)/16;i++)
     {
         AES_decrypt((const unsigned char *)&in[i*16],(unsigned char *)&out[i*16],&aes_key);
     }
     for ( i=0;i<sizeof(in)/16;i++)
     {
         for ( j=0;j<16;j++)
         {
             printf(“%02x “,out[i*16+j]);
         }
         printf(“    “);
         for ( j=0;j<16;j++)
         {
             printf(“%c”,out[i*16+j]);
         }
         printf(“\n”);
     }
    return 0;
}

May 24th, 2008

《编程之美》趣味算法——控制CPU占用率曲线

问题:

用程序控制Windows任务管理器中的CPU占用率,包括以下三种情况:

1、固定在50%

2、固定在某一个值,这个值由用户决定

3、曲线是一条正弦曲线

分析:

首先来观察一下任务管理器,可以得到以下结论:

  • 大约1秒钟更新一次CPU占用率
  • 系统空闲的情况下,CPU占用率在5%以下,但是只要有轻微动作,包括鼠标移动,就会影响占用率
  • CPU空闲时,一个叫System Idle Process的进程占用了CPU

在任务管理器的一个刷新周期内,CPU忙和空闲时间的比值就是占用率。这样,可以写一个程序,控制CPU忙的时间即可。而让CPU忙可以用循环解决(想想死循环时CPU就100%的情况),而空闲可以用Sleep解决

解法:

1、让CPU在周期内运行busy和idle两个循环,通过控制比例来控制占用率。这里关键是估算50%所需的循环量。这里要注意一个问题,在一秒钟的周期里,不能够一次性运行完循环,然后彻底休息。这样很容易造成锯齿状的忽高忽低现象。以下是问题一的Code:

2、解法一的问题在于估算的难度和不准确。解法二使用GetTickCount函数获取运行时间,然后让循环和空闲运行相等的时间即可。

3、解法二中的做法可以精确调整循环和空闲的比例,因此调整比例就可以做出正弦曲线。

4、解法三在单核CPU上运行良好,在多核CPU上可以使用GetCurrentProcessSetProcessAffinityMask函数控制进程在制定CPU上运行。

以下是四个解法的Code:

// 解法1
int main()
{
for(;;)
    {
for(int i = 0; i < 9600000; i++)
            ;
        Sleep(10);
    }
return 0;
}
// 解法2
int main()
{
int busyTime = 10;  // 10ms
int idleTime = busyTime;  // 50% Usage
long startTime = 0;
while(1)
    {
        startTime = GetTickCount();
while1;
        idleSpan[i] = INTERVAL – busySpan[i];
        radian += SPLIT;
    }
    DWORD startTime = 0;
int j = 0;
while(1)
    {
        j = j % COUNT;
        startTime = GetTickCount();
while2;
24         idleSpan[i] = INTERVAL – busySpan[i];
25         radian += SPLIT;
26     }
27     DWORD startTime = 0;
28 int j = 0;
29 while (true)
30     {
31         j = j % COUNT;
32         startTime = GetTickCount();
33 while ((GetTickCount() – startTime) <= busySpan[j]) ;
34         Sleep(idleSpan[j]);
35         j++;
36     }
37 return 0;
38 }

呵呵,没事的时候钻研一下貌似感觉不错!

  1. GetTickCount() – startTime) <= busyTime)
                ;
            Sleep(idleTime);
        }
    }
    // 解法3
    #include <windows.h>
    #include <stdlib.h>
    #include <math.h>
    const double SPLIT = 0.01;
    const int COUNT = 200;
    const double PI = 3.14159265;
    const int INTERVAL = 300;
    int main()
    {
        DWORD busySpan[COUNT];
        DWORD idleSpan[COUNT];
    int half = INTERVAL / 2;
    double radian = 0.0;
    for(int i = 0; i < COUNT; i++)
        {
            busySpan[i] = (DWORD)(half + (sin(PI * radian) * half []
  2. GetTickCount() – startTime) <= busySpan[j])
                ;
            Sleep(idleSpan[j]);
            j++;
        }
    return 0;
    }

    解法四

    1 #include “Windows.h”
    2 #include “stdlib.h”
    3 #include “math.h”
    4
    5 const double SPLIT = 0.01;
    6 const int COUNT = 200;
    7 const double PI = 3.14159265;
    8 const int INTERVAL = 300;
    9
    10 int _tmain(int argc, _TCHAR* argv[])
    11 {
    12 SetProcessAffinityMask(
    13 GetCurrentProcess(),
    14 0×00000001          //cpu mask
    15         );
    16
    17     DWORD busySpan[COUNT];  //array of busy times
    18     DWORD idleSpan[COUNT];  //array of idle times
    19 int half = INTERVAL / 2;
    20 double radian = 0.0;
    21 for(int i = 0; i < COUNT; i++)
    22     {
    23         busySpan[i] = (DWORD)(half + (sin(PI * radian) * half []

May 22nd, 2008

程序结构的7个证明原理

程序结构的7个证明原理

程序结构应遵循7个证明原理,以确保程序的正确性、健壮性、灵活性、可重用和可读性等。

1. 单纯原理

所谓单纯性原理是指变量或指针等的使用遵循单一化的原则,即为不同的用途使用不同的变量或指针。采用了单纯原理,程序就可以明确的反映实际的问题。

如下面的程序,从一个文件中读入数据放到另一个文件中:

FILE* fp = NULL;

fp = fopen(m_strSrcFilePath, "r");

/* 读数据 */

fclose(fp);

/* 对数据进行处理 */

fp = fopen(m_strDesFilePath, "w");

/* 写数据 */

同一个指针变量fp在一个子程序中被用来作为两个不同文件的指针,虽然没有错误,但容易造成对fp理解困难,所以最好这样:

FILE* fpSrc = NULL; /* 源文件 */

FILE* fpDes = NULL; /* 目标文件 */

fpSrc = fopen(m_strSrcFilePath, "r");

/* 读数据 */

fclose(fp);

/* 对数据进行处理 */

fpDes = fopen(m_strDesFilePath, "w");

/* 写数据 */

2. 同型原理

同型原理是指相同逻辑的地方应该有相同的结构;能复用的代码就不要重写,用宏或者子程序实现。

例如下面这两个循环:

for(i = 0; i < m_aLinkMan.GetSize(); i++);

for(i = 0; i <= m_aLinkMan.GetSize()-1; i++);

仔细一看,会发现这两个循环其实是一样的,但对它们为什么形式不同会感到费解,引起阅读的障碍。

3. 对称原理

对称原理是指成对的操作应该成对地出现,并且出现在对称的位置上。比如:内存的申请与释放、文件的打开与关闭、if语句是否需要相应的else语句等。各系统、组成成分或模块都应遵循对称原理。

在Linux下,对称原理主要表现为以下几点:

malloc等分配内存的函数和free函数必须成对出现,而且必须保证释放掉指针不再被使用。

open/fopen等打开文件的函数和close/fclose函数必须成对出现,而且必须保证关闭的文件描述符或者流指针不再被使用。

使用signal或者sigaction设置信号处理程序时,应该先保存旧的信号处理程序,等处理完毕进行恢复。

还有其他一些函数也必须成对使用,如mmap/munmap,pthread_mutex_init/ pthread_mutex_destroy,sem_init/sem_destroy等等。

对于程序中的模块、函数,如有必要,也应该保持对称。

4. 层次原理

层次原理是形状的层次美原理。例如,意识到事物的主从关系,前后关系,本末关系等层次关系,追求事物应有的形态。必须使各个层次详细化、数据抽象化。层次的规定要彻底。

例如有如下代码:

struct p1 {};

struct p2 {

struct p1 *pp1;

};

struct p2 *pp2;

可以看出结构体p1和p2之间又很明显的层次关系,分配内存时,应先为pp2分配内存,然后为pp2->pp1分配内存;释放时,应该先释放pp2->pp1的内存,然后再释放pp2的内存。

再例如,进行多线程编程时,经常会需要进行互斥或者是信号量操作。那么应该先调用pthread_mutex_lock设置mutex进行互斥,然后再调用sem_wait进行信号量操作。若是顺序弄反了,则会引入一个race condition,从而可能产生死锁。

以上的例子只是比较简单的情况,在程序中可能存在非常复杂的情况,要注意判别。

5. 线性原理

线性原理是指事物的形状是由直线描绘出来的。例如,某个功能,是由几个功能的重叠组合加以实现的。因此,在程序中应该尽量不使用GOTO,SCHEDULE,POST/WAIT等功能。

6. 明证原理

逻辑的明证性原理,即应该努力的说明一些不太清除的逻辑,并且使其具有说服力。

实例:检查接收到的数据中带有的数据序号的连续性。数据序号是用2个byte表示的,从0开始,之后每个递增1,达到 0xffff后,再重头开始。还有,在0xffff上加上1就会变成0。

/*

* nowseq : 接受通知后的数据编号

* oldseq : 接受通知前的数据编号

* 已接受通知的数据编号,不等于接受通知前的数据编号加一,或者

* 被通知前的数据的编号为0xffff,现在已接受通知的编号不为0

*/

if 1 {

错误处理;

}

这个程序好像是正确的,可是,它有很多否定形的逻辑式,所以比较难以理解。首先,用肯定形式(也就是正常的条件)表示,再加上”!”,作为错误的条件,这样做可以使人放心。按照这样的做法操作,程序会形成下述情况,比原本的程序易懂。

if (!2) {

错误处理;

}

原程序中有逻辑错误。也就是, nowseq是0,oldseq是0xffff的时候,满足了if的第一个条件项的nowseq!=oldseq+1,所以虽然是正确的情况却被当成了错误。

7. 安全原理

安全原理是指意识到必然性的原理。例如,忽略没有必然性或者含糊不清的地方,用安全的方法、思想来设计。

举例,有调用程序(Caller)和被调用程序(Callee),两者间调用接口用的参数list是P。Caller没有把P内的Pi域中的初值设定为’0′,所以Callee侧是异常操作。

这个故障是在修正程序的时候产生的,调查故障的原因,发现原程序中也有相同的调用部分,那里是正确的代码。也就是说,把P全部清为0,(由此,Pi域的初值就设定为’0′ ),然后调用Callee。

修正程序,通过追加一个调用,修正的负责人模仿先前的调用部分,进行了编码,认为把P全体清为0是没有必要的,(可能是想把程序的步骤减少),于是,P全体清0的步骤被省略了。可是,不幸的是, Pi中也混入了错误。

这个例子中的问题是没有照搬正确操作的代码。虽然曾经把它清为0,可是不能保证之后它一直为0。使用前,把参数list清为0,是coding的基本原则。这样做是安全的,所以符合安全原理。

  1. nowseq != oldseq + 1) || (oldseq == 0xffff && nowseq != 0 []
  2. nowseq == oldseq + 1) || (nowseq == 0 && oldseq == 0xffff []
May 7th, 2008

About Recent Days

About four days pasted, I stay in my dormitory and done nothing. Felt boring.

April 25th, 2008

Galton’s board

Today I read some papers about complex network, I find the Galton’s board at it happens, because I’m free today, so I implement it to see the result, it’s really funny. As we all know, we can’t predict the movement of an individual ball, but we can still give a probabilistic description of the movement of the ball.

The probability P(x) of the horizontal position x of the ball can be described by a Gaussian distribution (Bell curve).

Each time a ball hits one of the nails, it can bounce right (or left) with some probability clip_image001(and clip_image002). For symmetrically placed nails, balls will bounce left or right with equal probability, so clip_image003. If the rows are numbered from 0 to clip_image004, the path of each falling ball is a Bernoulli trial consisting of clip_image005steps. Each ball crosses the bottom row hitting the clip_image006th peg from the left (where clip_image007) iff it has taken exactly clip_image006[1]right turns, which occurs with probability

clip_image008

I find a more detail page here and the formula is the same.

http://mathworld.wolfram.com/GaltonBoard.html

More reading:http://mathworld.wolfram.com/RandomWalk.html

clip_image010

I implement a application to simulate the condition of p=1/2.The source code in C/C++ is right here:

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <time.h>

#include <windows.h>

//#include <Winbase.h>

int level = 0;//用于递归的level

int TotalLevel = 0;//用户输入的level

int finalNum = 0;

int RandNum(int i)

{

int num = 0;

//以同样概率返回i或i+1中的一个

num = rand()%2 + i;

return num;

}

int RecursiveGo(int iNum)

{

int randnum = 0;

randnum = RandNum(iNum);

finalNum = randnum;

if(level < TotalLevel – 1)

{

level++;

RecursiveGo(randnum);

}

return true;

}

int main()

{

int temp = 0;

int ballnum = 0;//小球数目

printf(“请输入小球数目:”);

scanf(“%d”,&ballnum);

do

{

printf(“请输入层次数目:”);

scanf(“%d”,&TotalLevel);

}while(level >100);

//存放最终结果

int *numArray = (int*)malloc(sizeof(int) *(TotalLevel + 1));/* {0,0,0,0,0,0,0};*/

if(numArray == NULL)

printf(“内存分配失败\n”);

else

{

//初始化数组

for(int length = 0;length<TotalLevel + 1;length++)

numArray[length] = 0;

//初始化随机种子

srand( (unsigned)time( NULL ) );

for(int i = 0; i< ballnum;i++)

{

level = 0;

RecursiveGo(0);

temp = finalNum;

numArray[temp] ++;

}

for(int j=0;j<TotalLevel + 1;j++)

{

printf(“最终落入%d 的小球数目是:%d\n”,j,numArray[j]);

}

free(numArray);

numArray = NULL;

}

return 1;

}

April 12th, 2008

基于兴趣的科研社会网络软件设计与实现(硕士开题报告)

基于兴趣的科研社会网络软件设计与实现

一.课题名称、来源、选题依据
1.1 课题名称

基于兴趣的科研社会网络软件设计与实现

1.2 课题来源

实验室自主研发

1.3 选题依据

在科学研究过程中,研究者为了保存研究资料以便于今后查询,通常会使用科研文献管理软件进行文献管理,比较常用的有EndNote和NoteExpress等。但是现有的科研文献管理软件仅仅单纯的将研究者本地的科研文献组织管理起来,仅仅起到了管理的作用,不能够用于研究者之间的科研文献资料的交流,因此限制了研究者之间的交流。

将研究者作为节点,具有相同兴趣的研究者之间有一条边,这样就形成研究者网络。将如何有效地共享科研文献资料放到研究者网络中进行研究,问题演变成如何根据研究者的行为分析研究者的兴趣从而形成自组织虚拟社区并且向研究者进行个性化内容推荐。

研究者网络是社会网络的一个子集,可以借鉴现有的对社会网络的研究和分析方法来解决这两个问题。同时现在广为应用的P2P模式也可以应用到研究者网络中,每个研究者可以看作单独的实体,每个研究者之间完全对等,进行科学交流。

基于研究者的兴趣将科研文献管理的工作网络化,开发科研社会网络软件,对于研究者的研究工作的促进作用是巨大的。科研文献管理工作网络化将会更有效的增强科研文献资料的共享能力;增进研究者之间的交流;同时,根据研究者的研究兴趣,分析研究者之间的相似度,从而兴趣相同的研究者之间形成自组织的研究团体;根据研究者的研究兴趣,还可以定期或不定期的向研究者推荐其感兴趣的内容。这些对于促进科学研究的进步具有重大意义。

二.本课题国内外研究现状及发展趋势

社会网络是一个由节点(通常是独立的个体或组织)组成的社会结构,这些节点之间通常有一种或多种特定类型的联系,如价值,视角,观点,金融交易,朋友,血缘关系,厌恶,冲突,贸易,web链接,性关系,疾病传播或者定期航线等。

社会网络建立在这样的想法上:有一个可决定的结构使得人们无论直接地或间接地都可以彼此认识。譬如“六度分割”这种通俗化的概念——“在地球上的每个人最多通过六个私人关系就可以被联系在一起”,人们可以(但可能并不知道)通过普通的同事就相互联系起来。

对社会网络的分析大致经历了如下三个阶段:

(1)美国20世纪30年代的社会计量分析人员(他们的工作以形态心理学为根基) 打算调查幸福的感觉与人的社会生活结构如何相关联。这场运动紧密同Jacob Moreno联系在一起,他构想了社交图,这是一张把个人作为点、把与其他人的联系作为线的关系网络视觉图。在这场研究运动其他主要成员还有Kurt Lewin, 他最伟大的功绩是改进了团体关系的数学模型;还有Fritz Heider,集中于研究人们与其他人关系的感受。

(2)同样在30 年代, 哈佛大学研究员开始集中于研究在社会团体中的派系问题,来辨别在社会系统之内有凝聚力的小团体(譬如工作、教会、家庭、协会和俱乐部)。这个小组受到考古学家Alfred Radcliffe-Brown的影响,他工作的着眼点是美国的工厂和社区生活。

(3) 英国曼彻斯特的一个考古学家小组,借鉴了50 年代Radcliffe-Brown的成果。 这个小组的成员之一John Barnes,在1954年创造了“社会网络”这一特别术语。他与Elizabeth Bott在社会测量(sociometric)方法上共同合作,但着眼于人的非常规社会关系,而不是那些与机关和协会的联系。另外, 他们的工作集中于这些网络中的冲突和变化。Clyde Mitchell利用了从图表理论数学到改进观察的方式,扩展了传统的社会测量方法。

2.1主流社会网络应用

随着科学技术的发展,人类进入了信息飞速增长的时代,信息量的飞速增长带来了一些显著的问题,正如Herbert A .Simon(诺贝尔经济奖得主)所说:“信息消耗了接受者的注意力,因此信息过载就会产生注意力匾乏,从而迫切需要从大量的可能消耗接受者注意力的信息资源中进行注意力的有效定位”。人们如何更加迅速有效的获取自己所需要的信息成为研究的热点,这其中涉及到如何有效的发布信息,以怎样的方式组织信息,用户获取信息的方式,信息呈现给用户的形式。

社会网络主要应用于如何将信息有效的组织起来,即连接起来,同时社会网络还关心用户获取信息的方式,将用户按照一定规则组成虚拟社区,虚拟社区内部的沟通和交流更加便捷有效。

Internet诞生本身即是为了共享,从20世纪70年代末的BBS [2]到目前的博客(Blog)[3]、维基(Wiki)[4]、威客(Witkey)[5]、Orkut[6]、Wallop[7]、Digg[8]、Decilious[9]、Flickr[10]等,出现了很多社会网络的应用。

BBS:BBS全称Bulletin Board System(电子公告板),BBS能够发布内容,用户交流,是最初信息共享交流的雏形,我们认为BBS可以算作是最早的网络共享系统的雏形。目前已经有了基于P2P的BBS(Saku)[11],不需要类似于当前论坛的中心服务器,所有的数据分布存储于用户节点上。

Blog:中文名博客,是当前网络上流行一种信息表达形式。它顺序地记载一些想法、评论等,并且通过超级链接把相关的资源组织起来,从而形成一种对某一信息资源的小型信息库,使得信息以此为扩散地或集中点。博客通过Trackback的方式互相链接起来,组成一个类似于社会网络的知识网络。但是博客内容主要是个人思考之类,自有知识储存体现不多,可谓有思想而无知识;基于Web发布,不便于共享和交流。因而就其本质来说主要是一种基于Web的个人表达工具,而不是完善的网络共享机制。

Wiki:中文名维基,Wiki是一种多人协作的写作工具。Wiki站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展或者探讨。与大多数网络亚文化一样,Wiki也同样是体现开放、合作、平等、共享的网络文化。目前的Wiki多是基于中心服务器的。Wiki使用版本控制系统来维护数据的一致性。Wiki的版本控制系统能够保证内容被篡改之后回滚至以前正确的版本。Wiki更类似于创作共享模式,在共同创作一个文档的过程中,作者更多的在付出而非收获,无法实现真正意义上的知识共享。同BBS类似,目前已经有了基于P2P的Wiki系统[12],将写作过程中产生的内容分布存储于所有作者节点上,不需要中心化的服务器。

Witkey(威客):通过互联网把自己的智慧、知识、能力、经验转换成实际收益的人,他们在互联网上通过解决科学,技术,工作,生活,学习中的问题从而让知识、智慧、经验、技能体现经济价值。威客模式也不是真正的知识共享的方式。

Orkut:社会化交友网站。用户是独立节点,通过用户之间的关系可以建立很好的网络,除了论坛的帖子,和节点相关的内容主要是个人资料和关系,除了继续发展你的关系,这样的网络很难有更多的用处。网络结构:强。内容:弱。内容处理方式:弱。

Wallop:社会化交友网站。有一个类似Orkut的网络,以用户的Blog、照片、媒体文件等作为内容,通过网络可以方便得知属于你的网络中的其他用户的信息。网络结构:强。内容:中。内容处理方式:中。

Digg:社会化信息挖掘网站。网络结构比较松散,但网络中的节点(用户)提供大量的内容,对内容有极好的重组方式。网络结构:弱。内容:强。内容处理方式:强。

Decilious:社会化信息挖掘网站。网络结构比较松散,但网络中的节点(用户)提供大量的内容,对内容有极好的重组方式。网络结构:弱。内容:强。内容处理方式:强。

Flickr:社会化图片共享网站。通过关系或者兴趣组成一定的网络结构,节点(用户)提供大量的内容,通过tag和group等对内容进行重组。网络结构:中。内容:强。内容处理方式:中。

2.2 量化个人兴趣的方法的研究现状

现有对个人兴趣进行统计和计算的方法主要有以下几种:

(1)基于信息统计的用户档案匹配方法:该方法通过显式的方法(如问卷调查)收集用户的个性特征、需要、兴趣等信息。通过用户档案的匹配显式的发现具有相同兴趣的用户。

(2)基于用户打分享四度计算的方法。通过显式收集用户对购买过的产品、看过的书、电影、音乐等资源的打分值,来发现具有相似兴趣的用户。这种方法主要应用在写通过率技术中。性能最好的相似度计算方法主要有Pearson相关系数和向量相似度量中。

(3)基于隐式信息挖掘的方法。用户相互通信、交流、浏览网站等行为也隐藏了大量表征用户兴趣的信息,这些信息可用于反映人们之间的联系。

(4)基于社会网络构建的方法。社会网络构建的关键是通过收集用户彼此间的资源和信息交换来建立关联关系。

(5)基于小世界网络的方法。

2.3 社会网络发展趋势

社会网络需要解决三个问题,首先是网络结构的形成,即通过什么样的技术和手段将独立节点连接起来;其次是解决社会网络的内容,即每个节点能够为社会网络提供怎样的内容。最后社会化网络需要有性能较好的通过网络处理内容的方式,即以什么样的方式重新组合和处理网络中各个独立节点的内容。

当前网络结构形成的方法多种多样,但是通常是需要借服务器来建立社会网络,P2P技术是当前研究的热点,其核心观念是对等的观念,P2P技术不需要服务器,其核心特点包括伸展性、负载均衡、异构性、自适应开销、可扩展性、可用性、容错性、匿名性。可以预见,采用P2P技术来构建底层网络拓扑将会是今后的一个发展趋势。

社会网络的内容来源杂乱,内容数量巨大,因此需要以合适的方法来处理内容,以尽可能提取出准确的关于内容的信息便于用户使用。对内容的处理需要使用到分词技术,现有的分词技术往往是基于词表或者统计的,效率比较低下,因此有必要研究更好的分词算法,做到更加智能的分词。可以预见,对社会网络中内容的处理将向着智能化、语义化的方向发展。

内容在经过分词处理后,得到了较准确的关于内容的信息,如何有效地将内容传递给用户是一个值得深入研究的课题。基于用户存储的内容以及用户搜索内容的行为计算出用户的兴趣矢量,根据用户兴趣矢量计算用户之间的相似度,从而形成自组织社会网络;计算内容的兴趣矢量,根据用户兴趣矢量,向用户进行个性化内容推荐,这将是今后社会网络通过网络处理内容的方式的发展趋势。

社会网络的发展还处于起步阶段,要解决的问题还很多,值得深入探讨和研究的内容也很多。因此很有必要深入研究社会网络的三个要素,争取在拓扑结构构建,内容处理算法,内容分发算法方面有所突破,构建更好的社会网络。

三.课题在理论与实践上的意义,论文预期成果的学术价值与应用价值
3.1 课题在理论上与实践上的意义

本课题的基础是社会网络理论。一直以来,研究者之间进行交流的方式方法比较简单,通常是通过发表论文的方式来进行交流。每位研究者通常维护自身的一个巨大的论文库,通过科研文献管理软件将这些文献管理起来。显而易见的,研究者之间交流的渠道是不通畅的。本课题基于研究者的兴趣构建科研文献社会网络,首先根据研究者现有文献库以及研究者的行为分析出研究者的兴趣,进而根据研究者的兴趣,计算出不同研究者之间的兴趣相似度,从而形成自组织的研究者网络;同时,根据研究者的兴趣,定期或不定期的向用户做内容推荐。这样一个科研社会网络对于研究者研究工作的促进作用是巨大的。

在理论上,本课题将P2P技术和社会网络分析方法相结合,探寻信息共享的基础理论——计算机网络、社会网络分析中相关研究成果的新结合点,深入研究在现有理论基础上如何更好的满足研究者科研文献资料的需求,提出了分布式、高效的基于兴趣的科研社会网络这种文献资料共享模式,并明确提出了科研社会网络软件的整个架构,同时,提出了一个根据用户存储的资料和用户行为计算用户兴趣的模型和算法;并在此基础上提出了根据用户兴趣计算用户之间相似度的算法,以形成自组织社会网络;同时提出了计算内容兴趣倾向矢量的算法。在实践上,课题设计并实现了一个基于兴趣的科研社会网络软件。

3.2 论文预期成果的学术价值与应用价值

本课题预期的成果是一个高可用性的基于研究者兴趣的科研社会网络软件。其学术价值包括提出了结合P2P技术构建社会网络底层拓扑的算法;提出了根据用户现有资料以及用户行为计算用户兴趣矢量的算法;根据用户兴趣矢量计算不同用户之间相似度的算法;计算内容兴趣倾向矢量的算法。这些算法都是目前研究的热点。

从应用角度来说,本软件主要面向的是广大研究者群体。当前研究者广泛使用的文献管理软件中管理的文献以及研究者的笔记等是科研社会网络主要的内容来源,这样可以保证系统有大量的内容输入。同时科研社会网络软件能够让研究者找到更多的文献资料,允许研究者之间进行相互交流,根据研究者的兴趣形成自组织兴趣社区,定期不定期的根据研究者的兴趣项研究者推荐个性化的内容。可以预见,将会有大量研究者愿意使用本系统。

从实用的角度来说,软件部署简单,不需要服务器,并且网络的容错性和鲁棒性都很好,同时网络维护文件和数据的一致性,并且保证网络的高可用性。

四.课题需要解决的关键理论和实际问题

本课题的最终成果是构建一个P2P社会网络,其中的核心工作包括设计实现P2P结构化路由算法、冗余复制策略、副本管理机制、自组织社区形成和个性化内容推荐。P2P结构化路由算法是构建底层网络的基础;冗余复制策略是指内容如何存储,即存储策略;副本管理机制是指如何对存储的副本进行管理;自组织社区是指按照用户兴趣将用户组建成不同的社区;个性化内容推荐是指根据用户行为,分析用户兴趣,从而推荐用户感兴趣的内容。因此,理论上共需要解决五个问题:P2P结构化路由算法;冗余复制策略;副本管理机制;自组织社区构建;个性化内容推荐。

4.1 科研社会网络底层拓扑构建技术

科研社会网络底层采用P2P技术来搭建,重点需要研究P2P路由算法和资源查询算法。

P2P结构化路由算法提供了如下四个机制:

节点加入机制:允许节点动态加入网络,同时以一种合理的机制向网络宣告新节点的存在。

节点离开机制:允许节点动态离开网络,提供检测机制检测节点的离开,以合理的方式向网络通知节点的离开。

查询路由机制:节点(用户)在查询是路由机制保证查询请求的顺利路由,并且返回查询结果。

发布路由机制:当有新的内容要发布时,路由算法保证能够找到合理的节点来存储内容,找到合适节点的过程即为发布路由机制。

在科研社会网络中,我们通过P2P结构化路由算法搭建底层网络拓扑,将不同的节点连接起来,以实现资源的发布、搜索定位。采用Kademlia协议[35]作为网络底层的基础协议。

4.2基于分词的用户兴趣矢量算法

计算用户的兴趣矢量,首先必须对用户现有资料进行分词以获得足够的关于用户兴趣的关键词,同时需要获取用户日常行为中的关键词,在此基础上,计算用户的兴趣矢量。

对本地文档的处理包括三个部分,关键字提取、本地文档索引和本地文档搜索。

词是最小的能够独立活动的有意义的语言成分,然而汉语文本中词与词之间没有明确的分隔标记,而是连续的汉字串。自动识别词边界,将汉字切分成正确的词串的汉语分词问题是关键字提取的核心技术。分词技术实际上是将文档中的字进行拆分,对每个字需要根据其上下文甚至语境给出最佳的理解,在此基础上将字再组合成词,作为文档的关键信息。整个过程是一个先拆分再结合的过程。

现有的分词算法主要包括:

(1)基于词表的分词——最大匹配(MM)。这是一种有着广泛应用的机械分词方法,该方法根据一个分词词表和一个基本的切分评估原则,即“长词优先”原则,来进行分词。小规模的测试结果显示,其正确率高达95.422%,速度为65000字/分钟。

(2)基于统计的分词。这种方法首先切分出与词表匹配的所有可能的词,这种切分方法为“全切分”,运用统计语言模型和决策方法决定最优的切分结果。小规模的测试表明,其正确率为96.252%,分词速度40000字/分。

(3)基于规则和基于统计相结合。这种方法首先运用最大匹配做初步切分,再对切分的边界处进行歧义探测,发现歧义再运用统计和规则相结合的方法来判别正确的切分。小规模的测试表明,这种方法的准确率达到97.948%,分词速度为20000字/分。

为了提高分词的准确率,考虑采用基于规则和基于统计相结合的分词算法,同时在现有算法基础上进行改进,提高分词的准确率和速度。

在分词结束后,如何根据现有关键字来衡量用户的兴趣并进而建立用户兴趣矢量。设用户A有n个关键字Key1,……,Keyn,每个关键字出现的次数为Num1,……,Numn;则对于关键字Keyi其权重为Pi = clip_image002。将关键字按照权重由大到小,取前m(m待定)个关键字为Keym1,……,Keymm及其权重Pm1,……,Pmm,构成一个二维向量,1,将此二维向量定义为矢量I,定义I为用户A的兴趣矢量。

4.3基于兴趣矢量的自组织社区生成算法

现有的自组织社区生成方法主要有:

(6)基于信息统计的用户档案匹配方法:该方法通过显式的方法(如问卷调查)收集用户的个性特征、需要、兴趣等信息。通过用户档案的匹配显式的发现具有相同兴趣的用户。

(7)基于用户打分享四度计算的方法。通过显式收集用户对购买过的产品、看过的书、电影、音乐等资源的打分值,来发现具有相似兴趣的用户。这种方法主要应用在写通过率技术中。性能最好的相似度计算方法主要有Pearson相关系数和向量相似度量中。

(8)基于隐式信息挖掘的方法。用户相互通信、交流、浏览网站等行为也隐藏了大量表征用户兴趣的信息,这些信息可用于反映人们之间的联系。

(9)基于社会网络构建的方法。社会网络构建的关键是通过收集用户彼此间的资源和信息交换来建立关联关系。

(10) 基于小世界网络的方法。

设用户A的兴趣矢量为clip_image004=((clip_image006),……,(clip_image008)),用户B的兴趣矢量clip_image010=((clip_image012),……,(clip_image014))。则用户A和B的相似度使用如下算法计算:

(1)首先对clip_image016clip_image016[1]中关键字进行遍历,得到a个匹配的关键字记为clip_image018,……,clip_image020

(2)对每个关键字clip_image022匹配clip_image024,如果|clip_image026clip_image026[1]| <= 1/m,则认为A和B有对关键字clip_image022[1]有相同的兴趣,否则称A和B有对关键字clip_image022[2]有不同的兴趣。设A和B有相同兴趣的关键字数目为b,记为clip_image028,……,clip_image030

clip_image032= (a + b*q)/ [m(1+q)],clip_image034。其中a为第一步中的匹配关键字数目a,q为待定的权重系数,b为第二步中相同兴趣的关键字数目b,m为进行比较的关键字的总的数目。clip_image032[1]记为用户A和B的相似度。

当用户A和用户B发生联系的时候,用户A和用户B分别计算得到了clip_image032[2],当clip_image036threshold(0<threshold <1)时,用户A和B分别认为对方是自己的兴趣相同者,从而保存对方的信息,以便于今后进一步联系。

4.4基于兴趣矢量的个性化推荐算法

个性化推荐技术,即根据从资源中提取的特征进行内容推荐,或根据具有相似特征的用户或学习者对资源的获取顺序和规则来进行推荐。一般是基于用户的兴趣,偏爱,喜恶和目标,并将这些信息存储在服务器中进行推理和分析[36]

推荐系统的属性特征主要包括:

1)背景数据,即在推荐过程开始之前系统所拥有的信息

2) 输入数据,即为了获得推荐用户必须和系统之间进行的通信信息

3)推荐过程,即用以利用上述两种数据形成推荐的算法

表4-1列举了五种个性化推荐技术。

技术

背景数据

输入数据

推荐过程

协同过滤

U对I的评价

u对I的评价

找出U中和u相似的用户,在此基础上推断他们对i的评价

基于内容的过滤

I的特征

u对I的评价

生成一个适合u的评价行为的分类器,并用来推断其对i的评价

人口统计数的

推荐技术

对U的人口统计学信息及其对I的评价

u的人口统计学信息

找出在人口统计学上和u相似的用户,用于推断他们对i的评价

基于功能的推荐技术

I的特征

在I中的项上描述u的偏好的功能函数

将函数应用到I中的项上决定对i的评价

基于知识的推荐技术

I的特征及其如何满足用户需要的知识

对u的需要或是兴趣的描述

推断i和u的需要间的匹配度

假设I是可能的推荐项集合,U是系统已知偏好的用户集合,u是系统需要做出推荐与预测的用户,i是我们需要对用户二的偏好做出预测的项。

表4-1 现有个性化推荐技术

在得到用户的兴趣矢量后,想要对用户进行内容的个性化推荐,还必须解决一个问题,就是对内容主题与用户兴趣的匹配程度进行计算。在科研文献社会网络中,个性化推荐技术尽管推荐的是内容,但是推荐技术是建立在自组织社区内部的,因为只有在自组织社区内部用户才能相互进行联系并且获得足够的对方信息。内容与用户兴趣匹配的准则是简单的,假设内容有关键字k个,则采用与计算用户兴趣矢量相同的方法建立内容兴趣矢量,用计算用户相似度的方法计算内容与用户兴趣的匹配程度,并定义一个推荐的阈值。

五.课题研究的基本方法,实验方案及技术路线可行性论证
5.1 课题研究基本方法

本课题采用分阶段,逐步递进的方式开展研究。课题研究过程中将始终坚持理论探索与实践检验相结合的方法。本项目将主要研究知识的分布式存储策略,相对应的,整个科研社会网络的体系架构如图1所示。

clip_image038

图1 科研社会网络体系架构图

5.2 实验方案

针对以上拟解决的关键理论问题,科研社会网络实验方案如下所述:

(一)搭建科研社会网络底层拓扑

首先搭建科研社会网络底层拓扑,实现网络的基本功能。科研社会网络拓扑图如图2所示。

clip_image040

图2 P2P社会网络网络拓扑图

(二)基于用户现有资料库进行分词,计算得到用户兴趣

(三)根据用户兴趣计算用户兴趣矢量,得到用户相似度

(四)根据用户兴趣与内容的匹配程度,进行内容的个性化推荐

5.3技术路线

技术路线为:改进并设计结构化P2P底层网络拓扑构建算法;设计用户兴趣矢量计算方法,设计用户相似度计算方法,构建自组织社区;向用户推荐符合用户兴趣的内容;细节上优化系统,开发出切实可用的实际系统并大规模部署。

5.3.1科研社会网络底层拓扑构建技术

拟采用Kademlia协议作为结构化P2P底层拓扑构建技术。Kademlia协议是第三代的基于动态哈希表的P2P拓扑构造协议。由于其简单性、对称性等特点使得Kademlia协议被应用于目前流行的一些应用,如Emule,BitTorrent等文件共享软件。

Kademlia协议以异或运算为距离度量的基础,建立了全新的DHT拓扑结构,相比较于其他算法,路由效率较高。Kademlia协议定义了四个操作:(1)PING操作;(2)STORE操作;(3)FIND_NODE操作;(4)FIND_VALUE操作。PING操作的作用是探测一个节点,用以判断其是否仍然在线;STORE操作通知一个节点存储 <key,value>对,以便以后查询需要;FIND_NODE操作用于查找离目标节点距离在一定范围内的k个节点信息。FIND_VALUE操作类似于FIND_NODE操作,只是FIND_VALUE操作只返回一个节点信息,即存储着要查找的值得信息的节点[42]

当前Kademlia协议已经实现的功能在很大程度上能够满足科研社会网络的需求,但是考虑到研究者共享的特殊需求,需要修改Kademlia协议。当前Kademlia协议建立了Node和Value的映射以及Node和Node的映射,即用户和内容的映射以及用户和用户之间的映射。在科研社会网络中,还需要建立内容和内容之间的映射,同时还需要分析用户行为并且保存。

因此对于底层拓扑构建技术采取的研究方法是:(1)利用现有Kademlia协议,借鉴现有P2P文件共享系统中的应用方式;(2)针对研究者共享的特殊需求,修改并完善Kademlia协议;(3)通过小范围的试验,分析获取的实验数据,反馈并修改底层拓扑。

5.3.2基于分词的用户兴趣矢量算法

用户兴趣矢量算法研究技术路线为:考虑分词方法的改进;设计一个简单的兴趣矢量计算方法;深入了解现有的用户兴趣衡量的一些方法;借鉴并改进自己设计的算法;在软件中实现兴趣矢量算法并检验精确程度。

5.3.3基于兴趣矢量的自组织社区生成算法

自组织社区生成算法研究技术路线为:设计一个简单的自组织社区生成方法;深入了解现有的社区生成算法;改进自己设计的算法;在软件中实现自组织社区生成算法并检验效果。

5.3.4基于兴趣矢量的个性化推荐算法

研究方法为:(1)研究现有虚拟社区构建算法及个性化推荐算法;(2)考虑如何更加有效的反应出用户兴趣,从而改进算法;(3)将改进的算法在系统中实现。

5.4可行性论证

目前原型系统实验平台已经搭建成功。

本课题的研究建立在相关研究的成果基础之上,国内外已有一些成功经验可供借鉴,有一定的理论储备和一定的技术实现手段和工具,研究目标明确,内容符合实际;研究者对P2P底层覆盖网拓扑结构、数据分发机制、数据一致性维护和软件开发等相关问题有一定的专业知识能力。在课题组的老师和同学的指导帮助下,完全可以达到预期目标。

六.开展研究应具备的条件及已具备的条件,并估计在进行论文工作中可能遇到的困难与问题和解决措施
6.1 开展研究具备的条件

1) 收集了社会网络分析和P2P研究的相关资料,对课题的国内外现状、相关领域涉及的基础知识和系统设计所需要的技术有较为深刻的理解。

2) 本实验室有多年的网络多媒体开发经验,涉及网络协议、网络安全、网络多媒体传输等方面,其中我作为主要负责人完成了P2P VoIP——ppPhone [43]项目的开发,对P2P底层覆盖网拓扑结构理论上理解非常深刻,同时也极大的锻炼了我的工程实践能力,为本课题基于兴趣的科研社会网络软件的设计、实现、改进和完善打了坚实的基础。

3) 本实验室具备良好的软硬件开发环境,为本课题的研究提供了研究和实验平台。

4) 实验室的老师和同学理论和实践能力都很高,能在课题的研究中给予我理论和实践上的指导。

6.2 可能遇到的困难与问题

1) 目前国内外对该领域已有一定的研究,虽然可以借鉴许多优秀的研究成果,但也增加了创新难度;本人的研究方法尚有不足,还需改进。

2) 系统的设计和优化中,由于本人的项目开发实践相对较少,工程能力有限,可能遇到一些技术上的困难。

6.3 困难和问题的解决措施

对于遇到的困难,协作精神和集思广益的方法是制胜的关键。实验室的老师、同学无论是在工程实践还是理论探索方面都有着深厚的经验和技术积累。他们的指导对于本课题的研究将会提供不可估量的帮助。另外,课题组本身的不懈努力是所有工作进展的基础。遇到问题,从理论上深挖细究,从基础上寻找原因就一定能够有所收获。

七.论文研究的进展计划

1. 2007年11-12月:任务调研、确立研究目标、完成开题报告;

2. 2008年1-2月: 进一步改进和完善前一段时间实现的社会网络软件框架,搭建底层网络拓扑;

3. 2008年3月:用户兴趣衡量算法,设计并结合现有系统框架实现计算用户兴趣的模块;

4. 2008年4-5月:自组织社区构建模块,设计并实现到现有系统框架中。

5. 2008年6月:个性化推荐算法研究,设计并结合现有系统框架实现个性化推荐模块;

6. 2008年7-9月:实用化系统,应用到园区网,取得实验数据并反馈修改。

7. 2008年10-11月:整理近一年的研究工作,撰写毕业论文,准备答辩;

 在研究关键技术期间,发表一到两篇与研究相关的论文。

参考文献:

[1] 罗杰文. Peer to Peer ( P2P ) 综述[J].

[2] Bbs. http://en.wikipedia.org/wiki/Bulletin_board_system[J].

[3] Blog. http://en.wikipedia.org/wiki/Blog[J].

[4] Wiki. http://en.wikipedia.org/wiki/Wiki[J].

[5] Witkey. http://www.witkey.com[J].

[6] Orkut.

[7] Wallop. http://mywallop.com/[Z].

[8] Digg. http://www.digg.com[Z].

[9] Decilious. http://del.icio.us/[Z].

[10] Flickr. http://www.flickr.com/[Z].

[11] Saku. http://shingetsu.info/[J].

[12] Wiki P. http://sourceforge.net/projects/wooki/[J].

[13] 陈贵海李振华. 对等网络:结构应用和设计[M]. 2007.

[14] Gnutella. http://www.gnutella.com http://rfc-gnutella.sourceforge.net[J].

[15] Bittorrent. http://www.bittorrent.com[J].

[16] Mcmillan B. The BitTorrent Protocol[C]. In: 2004.

[17] Edonkey/emule. http://www.edonkey2000.com http://www.emule-project.net[J].

[18] Bickson Y K A D. The eMule Protocol Specification[C]. In: 2005.

[19] Freenet. http://freenetproject.org[J].

[20] Ian Clarke, Oskar Sandberg, Brandon Wiley A T W H. Freenet: A Distributed Anonymous Information Storage and Retrieval System[C]. In: 2000.

[21] Kazaa. http://www.kazaa.com[J].

[22] Jian Liang,rakesh Kumar K W R. The KaZaA Overlay: A Measurement Study[C]. In: 2004.

[23] 天网maze. http://maze.pku.edu[J].

[24] Gpu. http://gpu.sourceforge.net/[J].

[25] Seti@home. http://setiathome.berkeley.edu/[J].

[26] net D. http://www.distributed.net/[J].

[27] Groove. http://www.groove.net[J].

[28] Granary. http://hpc.cs.tsinghua.edu.cn/granary/[J].

[29] Oceanstore. http://oceanstore.cs.berkeley.edu/[J].

[30] Ben Y. Zhao, John Kubiatowicz A A D J. Tapestry: An Infrastructure for Fault-tolerant Wide-area Location and Routing[C]. In: 2001.

[31] Past. http://research.microsoft.com/~antr/PAST/[J].

[32] Druschel A R A P. Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems[C]. In: IFIP/ACM International Conference on Distributed Systems Platform.2001.

[33] Cfs. http://pdos.csail.mit.edu/papers/cfs:sosp01/[J].

[34] Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek H B. Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications[C]. In: SIGCOMM’01.San Diego, California, USA.: 2001.

[35] Maziereg P M A D. Kademlia: A Peer-to-Peer Information System Based on the XOR Metric[J]. 2002.

[36] Schwab,kobsa,a. &. Learning User Interests through Positive Examples Using Content Analysis and Collaborative Filtering[J]. User Modeling and User-Adapted Interaction. 2001.

[37] Zengc,xingcx&zhoul. Similarity measure and instances election for collaborative filtering[C]. In: Proceedings of the twelfth International World Wide Web Conference.2003.

[38] GoldbergkgUptad,digiovannim&naritah. Jester 2.0: Evaluation of a new linear time collaborative filtering algorithm[C]. In: International ACM SIGIR Conference on Research and Development in Information Retrieval.1999.

[39] Burke R. Knowledge-based Recommender Systems.[J]. Encyclopedia of Library and Information System. 2000.

[40] Gutman R H. Merchant Diferentiation through Integrative Negotiation in Agent-mediated Electronic Commere[D]. MIT, 1998.

[41] Rich E. User Modeling via Stereotypes[J]. Cognitive Science. 1979.

[42] Mmx. Kademlia 协议原理简介[J]. 2006.

[43] Ppphone. http://sourceforge.net/projects/ppphone[J].

  1. Keym1,Pm1),……,(Keymm,Pmm []
March 7th, 2008

P2P知识共享网络研究与实现

P2P知识共享网络研究与实现

一.课题名称、来源、选题依据
1.1 课题名称

P2P知识共享网络研究与实现

1.2 课题来源

实验室自主研发

1.3 选题依据
1.3.1 知识共享的需求

知识是通过实践、研究、联系或调查获得的关于事物的事实和状态的认识,是对科学、艺术或技术的理解,是人类获得的关于真理和原理的认识的总和[1]。知识是对事实或思想的一套系统的阐述提出合理的判断或者经验性的结果,它通过某种交流手段,以某种系统的方式传播给其他人[2]。总之,知识是人类积累的关于自然和社会的认识和经验的总和。

知识共享可以定义成:知识从一个人、群体或组织转移或传播到另一个人、群体或组织的活动。个体知识、组织知识通过各种交流手段为组织中其他成员所共享, 同时,通过知识创新, 实现组织的知识增值。知识只有通过相互交流、学习、共享才能得到发展, 知识的共享范围越广, 其利用、增值的效果越好。知识只有被更多的人共享, 才能使知识的拥有者获得更大的收益。知识共享包括两个方面的内容,分别是知识生成和知识的重复使用[3]。人类社会传承的数千年历史中,知识的共享一直是人类社会得以发展和进步的源动力。知识的共享对于促进人类社会的进步无疑更具有重要的意义。

1.3.2 传统知识共享的不足

知识的共享是如此的重要,以至于人类社会几乎每次重大的进步都与知识共享手段的进步有直接的关联。从最初的造纸术的发明,到现在互联网的发明,知识共享的手段越来越进步。但是我们仍然能够看到,当前的一些知识共享手段仍然是有局限的。

现在和未来我们需要的知识共享模式必须具备以下特点[4]:

(1 )不受地域 (地理的和网络的)、时间和其他任何条件的限制;

(2)共享机制中的每个人既是知识获得者,也是知识发布者,同时还是知识收集者;

(3)不需要耗费更多资源即可实现知识共享;

(4)知识的形式是不限的,可以是文字、数据或文件等等;

(5)机制是开放的,只要遵从共享规范,每个人都可以有自己的发布方式。

我们希望能够有一种随时随地允许人们共享自己的经验、想法等知识并且将人们的知识永久保存下去的一种方法或者工具,从而能够使得人类文明得以更好的传承,人类社会得以更好的发展。人们的视野总是受当时社会发展的程度所制约的,我们也不例外。在现有的技术基础上, P2P知识共享网络能够很好的实现上面提到的目标,即允许人们在任何时候任何地点共享自己的经验、想法,并且将被保存。

1.3.3 P2P知识共享网络优势

P2P的本质即为共享,P2P模式将计算机网络和分布式计算结合起来,网络的参与者共享他们所拥有的部分资源,这些共享资源由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体[5]。在此网络中的参与者既是资源(服务和内容)提供者(Server),又是资源(服务和内容)获取者(Client)。P2P具有非中心化、可扩展性、健壮性、高效性、隐私性和负载均衡等特性,这些特性能很好的避免传统的知识共享系统的一些问题。采用P2P模式来实现知识共享系统,真正的体现了共享的本质,人们能够直接的交流知识,随时将知识存储到网络中,而不用关心知识具体存放到哪里,在任何时候都能够将知识取回来,而且知识的继承性也能被很好的维护,用户的私密性也得以保证,系统的可用性很好。

二.本课题国内外研究现状及发展趋势

现有的知识共享模式主要有三种:

基于C/S模式:如图书馆,图书馆是一个服务器,用户是客户机,读者从图书馆取得资料,相当于从客户端从服务器获取数据。这种模式在现实社会中的例子如老师授课等。

基于C->C/S模式:如搜索引擎,搜索引擎从各处检索资料,客户端通过搜索引擎获取资料。这种模式在现实生活中的例子如购书者、图书发行商和作者形成的关系等。

基于P2P模式:所有的用户共享知识和资料,用户根据需要从P2P网络获取所需的内容。这种模式在现实生活中的例子如人们相互的探讨,交流等。

我们将前两种作为传统的知识共享模式来对待。人类社会知识共享的模式更倾向于第三种,所有需要知识的人之间相互交流。但是现有的技术手段限制了人们交流的方式。

目前传统的知识共享模式已经非常成熟,但是国内外还没有产品化的P2P知识共享网络,研究也处于初步的阶段。因此我就两个方面分析国内外现状,一部分是传统知识共享系统的国内外现状;一部分是P2P知识共享网络的国内外现状。

1. 传统知识共享系统

Internet诞生本身即是为了共享,从20世纪70年代末的BBS [6]到目前的博客(Blog)[7]、维基(Wiki)[8]、威客(Witkey)[9]、百度知道[10]、新浪爱问[11]和Yahoo知识堂[12]等等,出现了很多知识共享系统。

BBS:BBS全称Bulletin Board System(电子公告板),BBS能够发布内容,用户交流,是最初信息共享交流的雏形,我们认为BBS可以算作是最早的知识共享系统的雏形。目前已经有了基于P2P的BBS(Saku)[13],不需要类似于当前论坛的中心服务器,所有的数据分布存储于用户节点上。

Blog:中文名博客,是当前网络上流行一种信息表达形式。它顺序地记载一些想法、评论等,并且通过超级链接把相关的资源组织起来,从而形成一种对某一信息资源的小型信息库,使得信息以此为扩散地或集中点。博客通过Trackback的方式互相链接起来,组成一个类似于社会网络的知识网络。但是博客内容主要是个人思考之类,自有知识储存体现不多,可谓有思想而无知识;基于Web发布,不便于共享和交流。因而就其本质来说主要是一种基于Web的个人表达工具,而不是完善的知识共享机制。

Wiki:中文名维基,Wiki是一种多人协作的写作工具。Wiki站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展或者探讨。与大多数网络亚文化一样,Wiki也同样是体现开放、合作、平等、共享的网络文化。目前的Wiki多是基于中心服务器的。Wiki使用版本控制系统来维护数据的一致性。Wiki的版本控制系统能够保证内容被篡改之后回滚至以前正确的版本。Wiki更类似于创作共享模式,在共同创作一个文档的过程中,作者更多的在付出而非收获,无法实现真正意义上的知识共享。同BBS类似,目前已经有了基于P2P的Wiki系统[14],将写作过程中产生的内容分布存储于所有作者节点上,不需要中心化的服务器。

Witkey(威客):通过互联网把自己的智慧、知识、能力、经验转换成实际收益的人,他们在互联网上通过解决科学,技术,工作,生活,学习中的问题从而让知识、智慧、经验、技能体现经济价值。威客模式也不是真正的知识共享的方式。

类似地,目前国内的百度知道、新浪爱问和Yahoo知识堂等都是以帮助解答问题的模式来共享

December 22nd, 2007
本WordPress博客由爱写字提供技术支持