-
Kad
网络节点资源探测分析
?
刘祥涛
1, 2
,龚才春
3
,刘悦
1<
/p>
,白
硕
1
1
(中国科学院计算技术研究所
北京
100190
)
2
(中国科学院研究生院
北京
100190
)
3
(北京市计算中心
北京
100005
)
摘
要
p>
Kad
网络中存在数以亿计的共享资源,而其中有相当一部分可被评
定为敏感资源。首先用我们的
Kad
网络采集器:
Rainbow
对节点拥有的文件资源进行探测;然后对节点资源和敏感资源
进行相关统计分
析。我们发现:
1)
文
件流行度和文件所对应的文件名数量都近似符合
Zipf
分布;
2)
利用同一个“文件内容
哈希”
p>
(
即
file-content-hash
)
的多个文件名的共现词可以更准确地进行敏感判别;
3)
p>
敏感资源占随机样本的
6.34%
,且敏感
资源中
74.8%
为
video
文件。
关键词
对等
网络;
Kad
网络;探测分析;敏感资源
Peer Resource Measurement and
Analysis in Kad
Network
LiuXiang-Tao
1,2
,
Gong Cai-Chun
3
,Liu Yue
1
,BaiShuo
1
1(Institute of Computing Technology,
Chinese Academy of Sciences,Beijing 100190)
2(GraduateUniversity, Chinese Academy
of Sciences,Beijing 100190)
3(Beijing
Computing Center,Beijing 100005)
Abstract
In Kad network,
there are hundreds of millions of shared
resources, among which a considerable part can
be rated as sensitive resources.
Firstly, the file resources of peers are measured
using our Kad-network crawler:
Rainbow,
then,
those
resources
and
sensitive
resources
are
statistically
analyzed.
We
find
that:
1)both
the
popularity of files and the number of
filenames corresponding to a file approximately
fit Zipf distribution
。
2)
the
sensitivity of files can be judged
more accurately using co-occurrence-words in
multiple filenames corresponding
to
the
same
file-
content-hash
。
3)
sensitive
resources
only
occupy6.34%
of
random
sample,
and
74.8%
of
sensitive resources are video files.
Keywords
Peer-to-peer
network
。
Kad
network
。
measurement and
analysis
。
sensitive resource
1
引言
eMule
网络
[1]
是一种混合类型的文件共享对等网络,它由两部分:集中式网络和纯分布
式网络
组成。其中纯分布式网络采用了
Kademlia
协议
[2]
,是
eMule
网络的主要组成部分。
一般来说,采用
Kademlia
协议的
eMule
网络称为
< br>Kad
网络。
Ipoque
2
008~2009
年度的因特
网流量报告表明:依地理位置的不
同,
eMule
占
P2P
流量的
2%~47%
,占因特网流量
?
基金工程:
本课题得到国家自然科学
基金(
No.60803085, No. 60873245
);国家高技术研究发展计
划
(863
计划
)
(
2006AA01Z452<
/p>
)的资助。
作者简介:
刘祥涛,男,
1977
年生,博士研究生,研究方向:
P2P
网络安全,数据挖掘等,
Ema
il
:
liuxiangtao@
.
龚才春
,男,
1978
年生,博士,研究方向:信息检索,数据挖掘等
.
刘悦,女,
1971
年生,副研究员,研究方向:信息检索,社区挖掘与分析,分布式计算等
.
白硕,
男,
1956
< br>年生,博士,研究员,博士生导师,研究方向:自然语言处理,网络安全等
.
p>
1%~26%
[3]
,且呈上涨趋势
[4][5]
。
Kad
网络为不健康内容的传播提供了方便,在
Kad
网络中存在数百万的共享资源,其
中有相当一部
分不合适让特定人群观看,我们称这些资源为敏感资源。所以对
Kad
< br>网络中
的共享资源进行探测分析是相当必要的,这样不仅可以了解敏感资源的扩散
程度,也可以
为不健康内容的过滤做好铺垫工作。从而减少特定人群受不健康内容侵蚀的
影响,有助于
社会精神文明建设。
Kad
网络的探测分析存在如下挑战:
?
虽然对等网络爬虫研究已经取得了
较大进展
[6][9][10][11]
,但直到现在,也不存
在一
个可以探测“节点”即被指定了一定标识的物理机器的
共享
资源
的爬虫;
?
节点资源名是多语言的,比如英语
、中文、日语、韩语、法语、西班牙语等,给
资源的敏感判别增加了难度;
?
节点资源名通常都较
短,从而其特征往往不足以判定其是否为敏感资源。
针对上述挑战:
?
在已有对等网络爬虫的工作基础上
,设计和实现可以采集节点资源的爬虫;
?
本文只对中文、英语和其他易判资
源进行敏感判别和统计分析,但是分析方法也
适用于其他语言;
?
采用两种增加文件名特征的方法。
a)file-
content-hash
是通过哈希文件内容获得的
128<
/p>
位标识符。一个
file-content-hash
可能对应多个文件名,本文称为“
FCH1N
现<
/p>
象”。我们将对应同一个
file-content-hash<
/p>
的多个文件名集中起来加强文件名特
征。
b)
通过在流行搜索引擎上输入文件名中包含的关键词,获得更多信息以加强
文件名特征。
本文后续章节安排如下,第二节介
绍研究背景,第三节介绍相关工作,第四节对节点
资源进行探测和统计分析。最后,我们
在第五节对全文进行总结。
2
背景
节点资源名是多语言的且长度较
短,导致对其进行敏感判别的难度,见表
1
。为提高
敏感判别的准确性,本文适当简化问题和进行特征扩展(详见
4.4.1<
/p>
节)。
表
1
文件名的复杂性
Tab.1 the
complexity of filename
无意义名
中文简体
中文繁体
日文
英文
西班牙语
其他
?????.bmp
驱动之家
--
驱动分类查询
.url
張惠妹
A-mei -
妹力最精選
-24-
灰姑娘
.mp3
(av)<
/p>
浜崎りお
(
森下えりか、篠原絵梨香
p>
)
青木玲
峰なゆか
.avi
(Reggaeton)Tito Y Hector - Gata 3
……
无法区分名
为降低问题的复杂性,本文只对英文或中文简体可识别文件名进行敏感判别。同时将
文
件分为
3
个类别:敏感文件、正常文件、忽略文件,分别简称<
/p>
C
1
、
C
2
和
C
3
类文件。
定义
1.
p>
敏感文件
(
C
1<
/p>
类文件
)
:其内容不合适让特定人群浏览
的文件。
比如:文件名为“风骚的女子
_
俄罗斯
.rar
”的文件是敏感文
件。又比如:“
Water
Melons cd1 .
”单从文件名看不出是否敏感,但通过搜索引擎查找相关信
息可以获知
是一个色情敏感电影。
定
义
2.
正常文件
(
C
p>
2
类文件
)
:其内
容合适让特定人群浏览的文件。
比如:“汉初军事史研究
p>
.pdf
”是一个正常的电子书文件;“
T
he
Pointer
Sisters
-
3
”是一个正常的音乐文件。
定义
3.
忽
略文件
(
C
3
类文件
)
:因为文件名及其相关信息不足或因为语言差异以至不
能正确区分某文件是否敏感或正常的文件。
< br>比如:“
?????.bmp
”、“
”和“
(Reggaeton)Tito Y
Hector
- Gata
3
”
都是忽略文件。
3
相关工作
对等网络爬虫探测工作开展
较早,
2002
年,
Saroiu
p>
等人率先使用主动测量方法对当时
最为流行的
Gnutella
和
Napster
进行了拓扑测量
[6]
。
2005
p>
年,
Stutzbach
等人在前人的工作
基
础上改进了主动测量方法并开发出了快速分布式
Gnutel
la
拓扑采集器:
Cruiser
,证
明了因
为节点震荡
(churn)
和采
集器采集速度太慢可能导致错误的实验结论
[7]
。因此,使得
提高
Crawler
的采集速度成为提高拓扑测量准确性的关键
问题。
2008
年,王勇等人针对
Gn
utella
网络设计了基于正反馈的分布式
Gnutella
拓扑采集器:
D-Crawler
,提
出了度量采集器准确
性、完整性的衡量指标,分析了
Gnute
lla
网络拓扑图的度等级分布特征、度频率分布特征
以及小世
界特性
[10]
。
< br>Kademlia
协议的实现有
Kad
< br>网络和
Bittorrent
的
DHT
网络等。
2006
年
Stutzbach
等人
针对
Kad
网络提出了计算查询性能的分析框架,并开发出了两个软件:
kFetch
和
kLookup
用于采集和计算
Kad
网络的查询性能
[8]
。
2006
年
Stutzbach
等人对三个
P2P
网络:
Gnutella
、
Kad
网络和
Bittorrent
进
行了测量分析,针对
Kad
网络,他们用
Cruiser
采集了两
天的拓扑数据,然后对节点可用性进
行了分析
[9]
。
2007
年
Steiner
等人设计了
Kad
网络采集
器:
Blizza
rd
并进行了为期
179
天的
Kad
网络采集,获得了节点的地理分布、会话时间、
< br>节点可用性和生命周期等测度的测量结果
[11][12][13]
。
2007
年
Falkne
r
等人在
PlanetLab
实验条<
/p>
件下,对
Bittorrent
的一个客
户端
Azureus
的
DHT
网络进行了测量
[14]
。
与节点资源分析相关的工作有对等网络垃圾过滤
(P2P
Spam
Filtering)
等,
2005
年,
等提出了一种垃圾过滤方法:首先下载共享音乐文件,若该文件是不可解码或者长
度超出
官方公布的文件长度
?
10%
范围,则
认为是垃圾文件
[15]
。
等将
P2P
垃圾文件分
为
四类,然后对垃圾文件的特征进行分析,最后提出确定每类垃圾文件的方法。他们的方
法
特点在于:不需要下载整个文件,只需要文件的相关信息
(
比如
:文件大小
)
即可判断文
件是否为垃圾
文件
[16]
。
2003
年,
D.
Dutta
等<
/p>
通过建立信誉系统,使节点可以评价彼此从而建
立信誉系统以进一
步检测垃圾文件,他们的方法也不需要下载整个文件,但是存在的信誉
欺诈行为可能使这
类方法失效
[17]
。
总之,之前针对实际存在的
P2P
网络的测量工作主
要是对
Gnutella
和
Kadem
lia
协议网
络展开的。针对
Kad<
/p>
网络的测量也只是局限于节点可用性测量
[9][11]
,获取的节点信息相当
有限。而我们设计的
Ka
d
网络爬虫
Rainbow
可对节点进
行
TCP
协议层次的探测,能获得节
点
更丰富的共享资源信息,本文在这基础上,首度对
Kad
网络的
节点资源进行了相关统计
分析。
4
Kad
网络节点资源探测分析
4.1
节点资源探测分析框架
如图
1
所示,
Kad
网络节
点资源统计分析框架由两个模块:数据采集模块、统计分析
模块组成。
< br>
图
1
Kad
网络节点资源探测分析框架
Fig.1Peer resource measurement and
analysisframeworkin Kad network
1)
数据采集模块采用我们设计实现
的
Kad
网络节点信息爬虫
Rainb
ow
进行数据采
集,数据库使用
SQL
Server 2005
;
2)
统计分析模块对数据库从两方面
进行分析:
a)
资源总体统计分析:对采集数据的
总体就资源的节点共享情况、文件长度和文件流行度等进行统计分析;
b)<
/p>
资源抽
样统计分析:抽样方式比较以确定最有代表性的抽样方式,
特征扩展以更准确地
进行人工标注,并从文件长度、共享用户数量、文件类型等方面对敏
感文件和正
常文件进行比较分析。
4.2
实验环境
本文设计并实现随机采集方
式的
Rainbow
采集器,通过改造
eMule
客户端,模拟一个
Kad
网
络正常节点,加入
Kad
网络,开始随机采集。进行如下三个阶
段的操作:
UDP
节点
采集阶段、
p>
TCP
节点信息收集阶段和写数据库阶段。本文对
< br>Kad
网络进行随机采集,即不
固定
k
位前缀,只采集部分节点信息。其优点为:
?
采集的节点规模可调,典型值为<
/p>
4,000~100,000
;
?
进行一次采集的时空复杂度较低,
例如,对
20,000
节点进行一次资源探测耗时约
45
分钟
(
其中的
TCP
节点信息收集阶段因试图与
20,00
0
个节点建立
TCP
连接,为
主要的耗时瓶颈,其耗时量约为
40
分钟
)
;
?
采集随机目标节点,可知单次采集
的节点比区域采集获得的样本节点更具有随机
性
,
而且进行多次随机采集会比区域采集获得更多的记录条数。
应用
Rainbow
在如下配置的机器上进行了数据采
集。硬件环境:
Intel
双核
2.8
GHZ/
内
存
2G/
< br>带宽
2Mb/s ADSL
PC
一台;软件环境:
Windows Server
2003 SP2
,
SQL Server 2005
Developer
Edition
。我们让
Rainbow
在
2009<
/p>
年
5
月
29
p>
日到
2009
年
6
月
9
日期间持续运
行,共进行
443
次随机采集,为尽快获得节点资源信息,
每次采集的节点数量阈值设为
4,000
,文件信息表共获得<
/p>
7,172,189
条去重文件记录,后文简称这些文件为“总体
”,且
后文的分析主要对这个总体或者从中抽取样本进行统计分析。
4.3
资源总体统计分析
4.3.1
节点共享情况统计
表
2
对数据集的节点
/
文件数目进行了统计。由表
2
可见,
UDP
节点采集阶段采集的节
点集合
S
UDP
中只有
65.09%
的节点可以建立
TCP
连接,称这部分节点为
S
online
。剩下的
34.91%
的节点可能位于防火墙或
NAT
(network
address
translation)
< br>后,或者在试图与其建立
TCP
连接时已经离开
Kad
网络。
在和<
/p>
S
online
中的节点建立
TCP
连接后,向它们发送
view_share
d_files
消息并等待
TCP
响应
消息:
view_shared_files_answer
。
由表
2
可见,
S
online
中只有
3.09%
的节
点会发回
view_shared_files_answer
消息且该消息中的“
result
count
”字段大于
0
,在此,“
re
sult
count
”字段表示响应节点拥有的总文件数量;
S
online
中其它节点会发回
p>
view
shared
files
answer
消息且其“
result
count
”字段为
0
,或者发回
view
sharedfiles
p>
denied
消息
(
表示不愿
意告诉询问节点其共享文件情形
)
< br>,或者无任何响应消息。
Rainbow
采集器共收集了
7,172,189
条文件信息,包括文件的元信息,即文件名
,文件内容哈希
(file-content-
hash)
,
文件大小,文件类型。
表
2
采集节点与文件统计
Tab.2 Statistics of crawled peers
and files
UDP
节点采集阶段探测到总节点(
S
UDP
)
能建立
TCP<
/p>
连接的节点
有至少一个共享文件的节点
没有共享文件的节点
发回
View shared folder or
content denied
消息的节点
< br>不发回任何
TCP
消息的节点
去重后节点共享文件
数量
1,786,312
55,238
892,030
25,799
189,704
7,172,189
比率
100%
3.09%
49.94%
1.44%
10.62%
-
1,162,771
65.09%
4.3.2
文件长度统计
对总体的文件长度进行
了统计。文件长度的中位数为
4,597,982B(B
为字节
)
,即
4.38MB
< br>,这正是流行音乐的文件尺寸,表示
Kad
网络中流行音
乐占据了较大比例。最大文