Archive for the "Algorithm" Category

简单的字符串子串查找函数(C实现)

今天看了会书,看到一段还不错的代码,贴一下。

#include<stdio.h>
#include<assert.h>

const char *findSubStr(const char* src,const char* sub)
{
    const char* bp;
    const char* sp;

    if(NULL == src || NULL == sub)
        return src;

    while(*src)//遍历src字符串
    {
        bp=src;//用于src的遍历
        sp=sub;//用于sub的遍历
        do
        {//遍历sub字符串
            if(!*sp)//如果找到了,返回sub字符串的位置
                return src;//返回字符串的位置
        }while(*bp++ == *sp++);
        src+=1;
    }
    return NULL;

}

int main()
{
    char p[]=”1234567890″;
    char q[]=”456″;

    char* r=findSubStr(p,q);
    printf(“子串位置:%s\n”,r);
    return 0;
}

March 10th, 2009

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

作 者: 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

在一个平面上画1999条直线,最多能将这一平面划分成多少个部分?

看到这个题目,转载一下:

 

平面上只要多出现一条直线,就能至少多把平面分出一部分,而若此直线与其他直线有n个交点,就再能把平面多分出n个部分,因此若想把平面划分的部分最多,新添入的直线必须与前k条直线交k个点,即第二条直线要与第一条直线交1个点,第三条要与前两条交2个点,……,第1999条与前1998条交1998个点,这样,第二条直线多划分出1+1=2个部分,第三条直线多划分出1+2=3个部分,……,第1999条直线多划分出1+1998=1999个部分。而第一条直线把平面划分出2个部分,因此1999条直线能划分平面的块数为:
2+2+3+4+5+…+1998+1999
=1+(1+2+3+4+5+…+1998+1999)
=1+(1+1999)*1999/2
=1999001

May 21st, 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

基于博弈论的P2P服务质量差异激励模型的研究——读书笔记

广西大学
硕士学位论文
基于博弈论的P2P服务质量差异激励模型的研究
姓名:
陈志琦
申请学位级别:
硕士
专业:
计算机应用技术
指导教师:
苏德富

        P2P网络是一种自组织、没有中央职权和基础设施的分布式系统,因为其参与的自发性和自治性,使P2P网络中资源的可用性有着极高的变数和不可预知性。且实际应用中,由于大多数自主的参与者因缺乏激励而不共享资源,传统的P2P系统(比如Napster, Gnutella等)广泛地出现Free-Riding问题,严重阻碍了P2P技术和应用的发展。由此引发了许多关于P2P激励机制方面的理论研究课题和商业计划。本文在对近年来使用经济学模型分配分布式系统资源的相关研究进行分析比较的基础上,借用经济学中的博弈均衡理论,提出一种基于服务质量差异的激励模型来提高P2P系统性能和效率。
本课题研究的主要内容包括以下几个方面:
一、 研究P2P网络底层架构,以Gnutella为原型,引入对等网专用
设备(Peer Server),为激励模型提供良好的底层网络平台。
二、 构建对等网文件共享系统的激励机制。这一部分首先分析了P2P网络中参与者之间对网络资源的竞争关系,并在非合作博弈Nash均衡理论框架下构造一个基于服务质量(QoS)差异的P2P激励模型。然后在改进后对等网络底层模型上,通过仿真实验分析激励机制下不同性质的用户采取不同策略时的均衡状态。
三、 借用分布式微观经济理论,将网络资源系统看成是一个价格随供求关系浮动的竞争市场,网络用户需要购买网络资源以满足个人的服务质量(QoS)。利用Flow Control技术模拟网络资源的分配优化过程,给出其仿真试验的测试结果及评价。
关键词:对等网 描述符 博弈论 纳什均衡 服务质量
  P2P网络资源的特性:
l  异构性
l  动态性
l  自治性
Free-Riding问题
指用户只下载而不愿意上传文件的问题。Free-Riding定义为一个自私的个体有意识地拒绝为某个群体的共同利益自愿地贡献。
  由此引 发 了许多关于P2P激励机制方面的理论研究课题和商业计划,提出P2P激励模型,向系统贡献资源的用户能从网络中得到相应的回报,激励用户共享资源以消除Free-Riding现象。目前比较普遍应用的两种激励模式是支付虚拟/真实的货币(Micro Currency)和提供差异服务质量(QoS)。
而在服务质量模式下运用经济学中的市场经济理论来解决P2P的分配问题己成为众多研究者所探讨的一个重要方向。在经济学模型中,资源代理被分为生产者和消费者两类。生产者的目标是获取最大的利益,而消费者的目标则是在自己的一些约束条件下(例如完成时间、预算等)获取尽可能多且好的资源来满足自己的需求。这两者之间的动态关系就可以使用己经充分研究、具有高度可扩展性的经济学模型来进行描述。对于将一些基本的经济学理论引入到分布式系统的资源管理中主要着重于将具体的资源管理场景抽象成数学模型,然后依据基本的经济学理论,例如一般均衡理论、Nash均衡、边际效用、用户偏好等,进行分析和模拟。
网络服务质量(Quality Of Service,简称QoS)定义为网络于用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定。即指能够提供持续的、可预测的数据递交服务,满足用户需求。QOS要求应用、主机、网关等互相协调,网络各层自上而下以及从发送方到接收方沿途每个网络要素都有质量保证机制。
P2P网络对服务质量的要求
     带宽
    延时
     延时抖动
     包丢失率
n  访问和下载优先级
在P2P网络中提高QoS需要考虑以下方面:
     QoS的分类和定义
     准入控制和协商
    资源预约
     资源调度与管理
  使用博弈论优化资源分配的策略
引入经济学:市场机制非常适合解决分布式资源配置问题。
引入博弈论:博弈是对战略相互作用的描述,它包括对参与人所能采取的行动的约束和参与人的兴趣,但不强调参与人实际采取的行动。解是对结果的系统描述,这种结果可能产生于一组博弈。博弈论给出各种博弈的合理解释并且考察他们的性质。
博弈论中一个代理被视为一个单体的、稳定的或者比较复杂的组织。博弈的重点在于参与者的竞价策略。参与者可以自行制定竞价策略,也可以参照其他参与者的价格来制定灵活多变的策略。换言之,博弈就是为了分析什么才是参与者的最佳选择。
博弈论的元素有参与者(players)、行动(action)、信,LA(information),策略(strategies),支付(payofs)、结果(outcome)和平衡(equilibria)。在给定参与者、行动和结果的前提下,各参与者根据可用信息选择自己的策略,该策略产生一个支付。
在博弈中,一个对策有以下几种基本要素:
(1 ) 参与者(players):参与者是博弈的决策主体行为。
(2) 策略(strategies):指每个参与者在对策中可以选择采用的行动方案,这个方案必须是一个完整的行动,而不是行动的某一步。每个参与者均有可供选择的多种策略。
(3) 支付或收益(payoffs):指一局博弈的得失。或者说是局中人从各种策略组合
中获得的效用,它是策略组合的函数。如果局中人得失的总和为零,则称这种对策为零和对策;否则,称为非零和博弈。
博弈和竞争均衡的区别在于:博弈论主要考虑决策主体在做出决策前企图获得其他参与人的行为信息,而竞争均衡假定每个参与任职对某些环境参数感兴趣(例如价格),即使这些参数是被全体参与人的行为所决定的。
  纳什均衡是指博弈中的博弈方在策略选取时达到的这么一种状态:假设每一个博弈方都是理性人,已经选取了某策略的任一博弈方都不愿单独改变其策略,否则都只能是使得他的当前得益减少。
定义 1 :给定其它参与者的策略S,参与者i的最优反应记为,是指能给他带
来最大收益的策略,即(,)>=(,), != ;当每个参与者都选择了自己的最优反应策略,并且这些最优反应形成一个策略组合,便形成了纳什均衡。
定义 2 :一个策略组合=(,,?,)被称为纳什均衡是指:对于所有的i,有(,)>=(,), != 。
纳什均衡的思想就是,博弈的理性结局是这样一种策略组合,其中每个参与者选择的策略都已是对其它参与者所选策略的最优反应,所以,谁也没有积极性去选择其它策略。因为每一个参与者均不能因为单方面改变自己的策略而获利,于是谁也没有兴趣主动打破这种均衡。
P2P网络中的博弈论: 每个参与者都希望最大限度地从系统中获益,博弈双方对系统资源的竞争结果是稳定的,即Nash均衡。
Nash贡献:定义每个用户贡献的资源量。
价值矩阵:表示节点i的贡献对于节点j的价值。
差异服务概率函数:每个节点都根据其
他节点贡献了多少来回报它们。因此有一个服务概率函数。
效用函数:刻画用户对所得的服务质量的满意程度。

November 30th, 2007

分布式实时协同文本编辑系统的研究与实现——读书笔记

摘要
    近几年来 ,计算机支持的协同工作作为一个重要的研究领域越来越受到人们的重视,目前正处于蓬勃发展之中。本文研究cscw的一个分支一一实时协同文本编辑系统。实时协同文本编辑系统允许多人协作实时地完成对同一个文档的编辑。协同编辑系统要解决许多技术问题,特别是在出现并发操作的情况下维护文档的一致性的问题。本文在研究了现有的并发控制算法的基础上,提出了一种新的一致性维护算法一一折叠式操作变换(FOPT)算法,并在该算法的基础上构建了一个基于Eclipse的实时协同编辑件,该插件可以对分布式虚拟结对编程提供支持。
    FOP T算法包含三个部分,因果关系维护、操作变换和垃圾操作回收。因果关系维护使用熟知的基于状态向量的技术,通过使用状态向量来捕获操作之间的因果关系,并保证只有满足因果顺序的操作才能调度去变换和执行。操作变换是我们的主要关注和贡献,其主要思想是通过合理地组织操作历史缓冲记录使之与文档本身形成一种映射关系,并在操作变换的过程中采用隐藏/恢复并发操作的机制来解决并发冲突。垃圾操作回收将对操作变换来说无用的操作从历史缓冲区中去除,从而减少内存的消耗。文中我们对算法进行了详细描述并给出了具体的例子加以说明。
    Eclipse实时协同编辑插件的设计与实现是我们关注的另外一个重点。我们分别从通信层、会话管理、协同感知、一致性维护及与Eclipse集成这几个方面对系统的设计与实现问题进行了考察。在通信层,我们采用了Jabber作为通信平台,并在此基础上设计了一个可进行消息恢复的可靠传输机制。会话管理机制对于组织一群用户参与的协作来说是非常重要的,我们设计了一个基于发起人模式的会话管理协议,该会话管理协议能够支持一种特定的协作编程模式,并且允许站点中途加入会话。在协同感知方面,我们利用了Jabber作为即时通信平台所拥有的一些固有特性,简化了系统的开发。在设计插件的过程中,我们也对Eclips。技术进行了研究,开源的、高度可扩展的Eclipse平台大大方便了我们的开发。

关键字:计算机支持的协同工作,协同编辑,并发控制,一致性维护,FOP
第一章 绪论
    自从20世纪80年代计算机支持的协同工作(CSCW:Computer SupportedCooperative Work)这一概念正式提出以来,CSCW受到了来自各个领域的研究人员广泛的关注,发展到今天已经具有相当的规模和影响力,大量的研究成果开始运用到实际应用中。可以说现在CSCW这一理念己经是无处不在,它的研究、发展和应用正在影响和改变人们的工作和生活方式。
    新技术的出现加速了CSCW发展,互联网社会化也成为一种新的趋势。近年来,随着大量新兴技术(如网格技术,Web服务技术,P2P技术,语义与知识处理技术、)(XML等)的出现,CSCW的研究领域得到进一步的扩展和充实。Internet在最近的十多年中得到了长足的发展,已经深入到我们的日常生活中, 目前正呈现出一种社会化的趋势,许多研究者认为人类社会正在互联网络空间中形成一种新的心理空间或社会性与认知过程的空间。社会科学的一些理论开始运用于软件设计中,出现了所谓的“社会软件”的概念,该术语通常用来描述允许群体进行通讯、交互和合作的软件,广义上讲,包括了在线共同体、计算机协同工作平台以及新出现的群体类软件,如网络游戏,博客(Blog),维基(Wiki).即时通信(工M)和其他多对多社群系统等,可以算作是CSCW的自然的扩展。有人认为社会化是一场正在到来的互联网革命,社会软件的崛起是一个明显的技术标志,互联网应用模式开始从传统的“人机对话”逐渐转变为“人与人对话”。从即时通信和文件共享等协同软件的流行上我们可以发现,人们对于能够促进人与人之间信息共享和交互的程序具有非常浓厚的兴趣,毕竟人是社会的人,交流和协作可以促进人际关系的发展,同时也能促进工作效率的提高。
     计算机支持的协同工作的定义为:地域分散的一个群体借助计算机及其网络技术,共同协调与协作来完成一项任务。其本质是通过计算机技术使处于不同地理位置的人们能够互相协作,并且感觉不到地理位置上的差异。
     CSCW可以分成几种不同的模式。按照人们合作的方式的不同和协作者的地域分布从时间和空间将CSCW分四种不同的模式:同步模式、分布式同步模式、异步模式和分布式异步模式。
     协同编辑系统,又称计算机支持的协同编著(CSCA:C omputerS upportedCooperative Authoring)系统是CSCW中的一种非常有用的工具仁3],它允许不同时间不同地点的用户协作完成文档的编辑,从而大大提高群体工作的效率。协同编辑可以应用于计算机会议系统,远程协作学习,协同办公,协作编程等领域并与之集成。
     协同编辑按编辑的内容可分为:协同文本编辑、协同图形编辑和协同图像编辑等,按时间特性可分为实时(同步)的和非实时(异步)的。
     并发控制算法是协同编辑的核心,主要解决多人同时编辑同一文档时保证文档的一致性。一般区分为悲观的和乐观的并发控制两种,其中基于操作转换的乐观并发控制算法被认为是最有希望实现自由流畅交互的并发控制算法,研究者在这方面发表了大量的论文, 目前提出的大部分算法基于全复制结构和线性的文档模型,当前的并发控制机制在效率,控制的粒度以及应用于更复杂的文档模型等许多方面仍然需要改进。
第二章 协同编辑技术综述
     协同编辑(又称协同编著、协同写作)指的是由多人参与产生一个文档的过程。协同编辑器,又称为组编辑器(group editor)指的是支持协同编辑的应用程序,它允许一组地理位置分散的用户通过网络连接同步或者异步地对文档进行查看和编辑。
     按照协作模式的不同,可以将协同编辑系统划分为三种不同的类型:
     同步协同编辑器:典型代表如Grove,DistEdit,Reduce等。
     异步协同编辑器:典型例子包括通过E-mail进行协作(如LotusN otes)、文档批注系统(如Microsoft Word)和版本控制系统(如CVS, ClearCase)等。
    同时支持两种方式的编辑器:如 SE PI A超文本编著系统、RECIPE协作编程原型系统等。
       协同编辑系统的体系结构
    集中式体系结构:集中式体系结构将文档数据存放在一个中央服务器。
    全复制体系结构:P2P网络中采用的方式。全复制体系结构与集中式结构不同,每个参与站点分别保存共享文档的一个副本。
    混合式体系结构
    实时协同编辑系统的特性
    协作感知
    容错和快速响应
    并发控 制
    多用户Undo
    可以作为单用户编辑器使用
&#16
0;   丰富的文档结构
    一致性维护算法
    存在两种类型的并发控制算法,悲观的(pessimistic)和乐观的(op timistic)。悲观的算法要求任何更新操作都必须事先获取合适的互斥锁,从而阻止冲突的出现,保证拷贝之间不会出现不一致。乐观的并发控制不阻止不一致性的发生,但是通过使用某种机制来检测和纠正出现的不一致。
    定义 1: 一致性模型定义:如果一个协同编辑系统总是能维护下面的条件的话就说它是一致的:
    操作结果收敛(Convergence):当同样的一系列操作在所有的站点都执行后 ,共享文档的各个拷贝保持一致;
    因果关系一致(Casualityp reservation):对任何一对操作Op1,和Op2,如果Op2在因果关系上依赖于Op1,那么在任何站点Op1都先于Op2执行 ;
    操作意愿一致(Intentionp reservation):对任意操作Op,在任何站点执行的效果都与Op的操作意愿(即Op在生成它的站点的执行效果)相同,并且Op的执行不影响其他并发操作的操作效果。
    本质上,操作结果收敛条件保证了在协作编辑会话结束时最终结果的一致性;因果关系一致性条件保证了在协同编辑会话中存在因果关系的操作执行顺序的一致性;操作意愿一致条件保证了操作在远程站点执行的效果与在本地站点执行的效果一致,并且并发操作之间互不影响。
    传统的并发控制算法
    加锁方法:加锁方法是一种悲观的并发控制策略
    时间戳串行化方法:时间戳串行化方法为每个操作赋予一个时间戳,这个时间戳定义了该进程在实际操作中的次序,来自不同用户的操作请求可以根据它们的时间戳进行全排序,然后执行。
    发言顺序协议(foor based turn-taking):每次只允许一个用户编辑共享文档.
    Undo/Redo方法:Undo/Redo。方法是一种乐观的并发控制算法,当接收到操作后立即执行,并将操作记录到历史,如果收到乱序的操作,则要将全局序在它之后的已执行操作Undo,然后执行这个操作,再将Undo了的操作Redo。
    基于操作转换的并发控制算法
    文档标注算法
    多版本算法
    协作感知技术
    协同感知的目的是模拟现实世界的协作过程,让参与协作的人员在计算机环境下了解其他人的活动,从而为自己的活动提供一个上下文(context)环境,消除由于空间上的分布而带来的割裂感,更好的发挥个体的主动性和积极性。要求根据应用的需求,提供多层次的感知信息,使得协作过程更自然。
    会话管理
    会话(Session)指的是开始、结束、加入、退出以及浏览一个协作场景的过程。会话管理也可以称之为群组管理。在会话管理中要确定会话的过程并设计相应的协议来处理。会话管理的两种通用做法分别是基于发起人的(initiator-based)和基于参与者的(joiner-based),它们的区别在于用户结合的方式:前者由初始用户邀请其他人员加入到协作会话中,而后者由初始用户创建会话,其他人主动加入。
第三章 Eclipse技术
第四章 一致性维护算法研究
    本章介绍FOPT(Folding OperationT ransform)算法.综合文档标注算法和操作转换算法两者的优点,采用线性文档模型,只对操作本身进行变换。对操作位置进行变换时,不是采用转换函数对操作进行两两转换,而是通过维护一个特殊的操作历史记录,使用文档标注算法中的隐藏/恢复机制来计算并发操作在本地文档上执行的正确位置,从而维护用户的操作意愿。因为状态消隐时的隐藏/恢复操作类似于折扇的折叠和展开操作,我们形象地称之为折叠式操作变换,即Folding OperationTransformation(简称FOPT)。
    一致性维护算法
    实时文本编辑系统的形式化定义如下:实时协同编辑系统G用一个二元组<D,M >表示,其中D表示此系统所处理的文档,D=<Cl,C2,……,Cn>, Ci,i belongs to {1,……,n}为字符,D由一系列基本操作的集合M={OP1,OP2,……,OPn}操纵。基本操作op, i belongs to { 1,……,n} 可以是插入和删除一个字符的操作,插入用ins(p ,c) 表示,删除用del(p ,c) 表示,p为文档中的位置,c为字符。
    站点集合 S=(S1,S2,……,Si,……,Sn},n是G中结点的个数,每一站点用它的下标i惟一的标识,每一个结点Si相应有一个Di,它是D在Si上的实例。为了维护各个拷贝的一致性,每个操作OPi,都需要在所有的参与站点的文档对象Dj上执行,任一站点的动态行为可以抽象为下面四个方面:
    操作生成:将用户界面的操作转化为针对D,的操作。
    操作传播:将操作op传送到G中的其他站点。
    操作接收:接收来自其他站点的操作。
    操作执行:在本地文档Di上执行接收到的操作op(可以是变换后的)。
    本地操作生成后直接执行,然后再传播到其他站点,远程操作接收下来后,要先保证其符合因果关系,然后经过一致性维护算法的处理后再执行。
    每个站点Si,维护一个本地状态向量LSVi和一个操作历史记录表HBi =(EO1,EO2,……,EOn}, EO是执行了的操作记录。EO可以由三元组<op,S op,Vop>来表示,其中op为基本操作,Sop为生成该操作的站点号,Vop为生成该操作的站点的当前的状态向量。Vop 包含n个分量,表示为<V1,V2,……,Vn >, 每个分量Vi, i belongs to { 1,……,n} 表示的是本地站点已执行的来自第i个站点的操作的个数。
    一致性模型
    采用上面定义一中定义的一致性模型。FOPT算法分成两部分,一个是因果关系维护,另外一个是维护用户意愿,在维护用户意愿的过程中, 同时也保证了内容的收敛。
    因果关系的维护
    操作变化与集成
    垃圾回收机制
    本章在研究文档标注算法和操作算法的基础上,提出了一种新的FOPT一致性维护算法。首先介绍了协同编辑系统的形式化描述及一致性模型,然后分别对因果关系维护和用户意愿维护做了描述。着重介绍了FOPT维护用户意愿的方法,从文档初始状态为空的情况入手,再到文档初始状态不为空的情况,逐渐深入,对算法的细节做了详细的描述,并给出了具体的例子加以说明。
第五章 基于Eclipse的协同编辑插件的设计与实现
第六章 结论与进一步工作

November 30th, 2007

Fissione: A Scalable Constant Degree and Low Congestion DHT Scheme Based on Kautz Graphs阅读笔记

Fissione: A Scalable Constant Degree and Low Congestion DHT Scheme Based on Kautz Graphs

摘要:

分布式哈希表(DHT)已经成为许多大规模P2P网络的核心组件。度、直径和拥塞是DHT中很重要的评估标准。现有的DHT机制多基于传统的互相联络技术,其中具有代表性的是Kautz图;Kautz图具有最理想的直径,最佳的容错性和低拥塞。

在这片论文中,我们提出了FISSIONE——第一个基于Kautz图的有效的DHT机制。FISSIONE是常量度的,直径是O(logN),拥塞不会超过(1+O(1))。FISSIONE说明了一个常量度和常量拥塞的DHT机制仍然能够保持O(logN)的直径,这个直径比以前的直径下界要低。FISSIONE的平均度是4,直径小于2logN,维护消息的开销少于3logN。平均路由长度约为logN,在同样度情况下,FISSIONE的路由长度比CAN或者Koorde都要小。同时,FISSIONE还拥有较好的负载均衡、高性能、低拥塞;FISSIONE的这些特性将通过论文后续部分的理论证明和仿真来实现。

关键词:

对等网,分布式哈希表,DHT,Kautz graph,congestion-free。

第一部 Introduction and Related Work

DHT有两个重要的评估标准:度和直径。前者是指每一个节点维护的路由表的大小;后者是指查询过程在最坏情况下的路由跳数。

使用静态的Kautz图构建动态的P2P网络有以下三个问题:

1. 节点的ID应该是Kautz字符串,但是目前还没有能够在Kautz名字空间中生成独一无二的Kautz的算法,因此我们提出了一个Kautz_hash算法来实现Kautz字符串的生成。

2. 修改路由最短路径算法以适应于动态P2P网络。

3. FISSIONE提出了一个拓扑规则 neighborhood invariant 来均衡负载以及获得更小的直径。

第二部分 Kautz Graph and Low Congestion

A. 静态Katuz图

定义1:长度为k基为d的Kautz String ks 定义为一个string ,其中是集合{0,1,2,……,d}中的一个元素,并且(1<= i <= k-1)。

定义2:Kautz名字空间KautzSpace(d,k)定义为包含所有长度为k基为d的Kautz string的集合。KautzSpace(d,k)={is a Kautz string}。在KautzSpace(d,k)中共有N=个字符串。

定义3:Kautz图K(d,k)是指一个所有节点的ID都是由KautzSpace(d,k)中的Kautz String给定的有向图。显然,K(d,k)中的每个节点的出度和入度都是d,K(d,k)中共有N=个节点。节点U和节点V之间有一条边(U->V)当且仅当V能够通过U左移一位得到,例如,节点U=有一条边指向V=(对U是出度,对V是入度),当且仅当x!=并且x{0,1,2, ……,d}。

Kautz图和de Bruijn图的唯一区别是:de Bruijn图的节点ID是普通的字符串,而Kautz图的节点ID是Kautz串。

证明Kautz图有最短直径。

给定度d和直径k,图中节点数目的上限N由Moore定理给出:N=1+d+。Kautz图中的节点数目K(d,k)=,非常接近Moore定理的上界。考虑k=2,那么一个图中节点的最大数量是d+d*d,此时Kautz图是完备的(K(d,2),N=d+d*d)。根据Moore定理,容易计算出一个有N个节点的图的直径的下界是,此时直径为k的Kautz图K(d,k)达到了这个下界。(因为 = k+1-1=k,即二者相等)。

B. 低拥塞路由

Kautz图选择长路径路由算法(Long Path Routing algorithm)。

定义4:长路径路由算法:Kautz图K(d,k)中节点U=到节点V=的路由路径是一个如下所示的长度为k的路径:

U==V (

U==V()(此时长度为k-1)

这样可以计算出Long path routing algorithm的平均路径长度h=(d/(d+1))*k+(1/(d+1))*(k-1)=k-(1/(d+1))。这个长度比shortest path routing算法要长一些,但是long path routing algorithm算法负载均衡性更好。

定义5:P2P网络中的c-congestion-free(c是常数且c>=1)是指:在all-to-all通信的情况下,此P2P网络既是c-node-congestion-free,也是c-edge-congestion-free的。c-congestion-free指网络中只有c个拥塞或者常数个拥塞。c-node-congestion-free是指每个节点处理的平均通信数量不会超过c个,c-edge-congestion-free是指每条边处理的平均通信数量不会超过c个。

uniform all-to-all communication(完全all-to-all通信)是指:对于每一对节点U,V(U!=V),在U和V之间有且只有一个单元的通信量。静态P2P网络是指,假定名字空间中所有节点都存在且在线。

在uniform all-to-all 情况下,网络中共有N*(N-1)个路由消息,假设路由路径平均长度是h,那么每个节点将处理(N-1)*h个路由消息,而每条边将处理N*(N-1)*h/|E| (E是指网络中边的条数)条消息。

定理1:采用long path routing算法,Kautz图K(d,k)是(1+O(1))-congestion-free的。

通过5个定义和1个定理,我们从理论上分析了FISSIONE的特性,FISSIONE具有常量度,最优直径,最好的容错特性。在网络足够大的时候,FISSIONE是congestion-free的。

Fissione Design

A. Overview

Fissone使用度为2的Kautz图K(2,k)作为其静态拓扑。Fissione中多有节点共同组成二维笛卡尔坐标空间,每个节点拥有一个区域。初始时,所有节点的ID长度相同,且共同组成Katuz空间。当有新节点加入或离开时,Kautz空间会被划分(分割大区域原则,合并小区域原则),节点ID的长度有可能改变。出于维护性能的需要

November 28th, 2007

T-DHT: Topology Based Distributed Hash-Tables

这篇文章主要提出了一种适用于传感器网络和ad-hoc网络中的结合网络底层拓扑结的DHT:T-DHT。采用T-DHT作为基础来实现以数据为核心的存储、信息处理以及ad-hoc和传感器网络中路由。T-DHT不依赖于位置信息,并且即使在规模非常小的网络也能很好的工作。根据底层网络的拓扑结构构件了一个分布式的DHT。T-DHT中邻近的两个节点在物理网络中通常会有一个直接的链接。相比较于最短路径路由,T-DHT在路由时发送的路由消息更少。
第一部分 介绍
文章主要讲述了如何基于底层网络物理拓扑构建DHT,以达到:哈希表中邻近的两个节点,在实际的物理网络中,通常有一个直接链接。
构建T-DHT包含两个步骤:(1)建立一个代表无力网络的虚拟坐标空间;(2)以虚拟坐标空间为基础,构建一个二维的哈希表,其中每个节点维护和其虚拟位置邻近的节点信息。
第二部分 轻量级的虚拟坐标空间
首先随机选择3个参照节点,其他的每个节点根据这3个参照节点计算出其自身的坐标位置。然后参照节点以两个节点之间的跳数为距离,洪泛整个网络,这样每个节点就能得到节点到参照节点的距离。根据节点自身到参照节点的距离,每个节点都能计算出其在虚拟坐标空间中的位置。
第三部分 面向拓扑的哈希表
坐标空间被所有参与节点分开,每个节点负责其邻近的一部分区域。同时每个节点维护一个路由表,该路由表包含其在虚拟坐标空间中的邻居节点信息,和每个邻居节点维护的区域信息。在二维哈希空间中的路由是很直观的,节点使用贪心算法向其路由表中的节点发送消息,直到返回结果。
加入T-DHT包含3个步骤:(1)想加入T-DHT的节点,首先必须找到一个已经存在于T-DHT中的节点。(2)通过T-DHT路由来找到当前正在维护它的位置区域的节点。然后将这个区域等分成两份。(3)新加入的节点通知邻居节点自身的存在。
为了自举,在最初的时候第一个参照节点维护整个哈希表。当有新的节点加入时,第一个参照节点通知新节点:“我是T-DHT的成员。”然后邻居节点之间相互通知成员关系和邻居关系的存在。
第4部分 评估
达到了设计目标,即:哈希表中邻近的两个节点在底层网络中也邻近。

 

下载:

November 27th, 2007

File Consistency Maintenance Through Virtual Servers in P2P Systems 翻译稿

这两天在阅读这篇文章File Consistency Maintenance Through Virtual Servers in P2P Systems(提供下载),因此简单的翻译了一下,将翻译稿贴出来,希望能被需要的人看到,呵呵,不过话说回来,水平有限,翻译的文章难免有点问题,希望能够多多谅解,同时也希望能多提建议:dolf.cao@gmail.com http://www.dolf.cn

下面是翻译的摘要部分:

摘要——随着P2P应用的巨大增长,与之相关的文件一致性问题也成为一个亟待解决的问题。在这篇论文里,提出了一个应用于无结构化、分布式P2P系统中的文件一致性维护算法(CMV),此算法基于虚拟服务器。在CMV中,通过虚拟服务器来维护动态文件的一致性。文件的更新必须通过VS才能进行,从而确保一个备份的串行性(即不会被随意修改)。

一个文件的VS是指:一个由所有拥有这个文件的复制节点(RPs)组成的逻辑网络。我们使用数学分析来确定最优的参数,从而使得维护文件一致性所花费的控制消息最少。

结果表明CMV能够有效的维护P2P系统中文件的一致性。

下载地址:doc:

pdf:

November 26th, 2007
本WordPress博客由爱写字提供技术支持