- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GnutellaSim入手指南
建立网络模拟器
要运行GnutellaSim包,你首先需要建立网络模拟器。这包括建立网络拓扑结构,例如,使用的GT - ITM。请注意,得到了Gnutella的系统最逼真的画面,您可能需要一些变化的GT - ITM,这是不包括家庭接入网络链接。用户接入带宽的分配上的统计,可以发现在最近的一些同行对同行的测量研究(例如,[1])。一种方法是重视叶的GT - ITM生成存根路由器节点的物理节点,只有那些叶子节点上运行Gnutella的同行。存根路由器和叶节点之间的链路带宽,按照一定的接入带宽statitics。可以在这里找到了一个示例的拓扑结构设置。
初始化Gnutella系统参数
创建一个PeerSys并初始化文件和peer的类的参数
命令a:set sys [new PeerSys nFlles nClasses alpha]
#nFiles是Gnutella系统中建模的文件总个数
#nClasses是peers的类的总数
#alpha是Pareto分布的通用性的参数
命令b:$sys init-class file
#sys是PeerSys目标哪个peer classes将被定义
#Filename 是用来描述peer classes的文件
例如:
Set sys [new PeerSys 100 2 2.5]
$sys init-class “classinfo.txt” #两个peers的类的描述在classinfo.txt中。
Classinfo.txt:
4320 300 0.2 0 #class0:avg offline(sec),avg idle(sec),prob. Going online after a successful query, is NOT a freeloader)
4320 30 0.1 1 #class1:前3个参数的意义同上,is a freeloader
3建立一个引导服务器
目前在模拟时有两个引导方案供选择:
Option(1)使用简单的模拟的引导过程的效果,而不是一个引导协议:
set srvname [new SocketApp/SmpBootServer] #srvname 是引导服务器的对象名称
例如:set bootserver [new SocketApp/SmpBootServer ]
option(2)使用一个简化的GWebCache引导协议,每个GWebCache服务器如下创建:
set srvname [new PeerApp/GnutellaApp address isBootserver] #option1存储了引导过程的模拟时间,但是option2更加接近真实行为
例如:set bsrv_($i) [new PeerApp/GnutellaApp $srvid_($i) 1 ]
4创建和启动peers
(a) 创建一个peer
set peername [new PeerApp/GnutellaApp address] #peername 是ns中即将被创建的peer的对象名称;address是peer绑定的物理节点地址
(b) 为peer设定引导
Option1:当SmpBootServer用来引导,Gnutella peers初始化引导服务器的设置如下所示:
$peername use-smpbootserver $bsrvname #bsrvname是作为一个引导服务器的SmpBootServer对象名称
Option2:当简化的GWebCache引导协议被使用。每个peer会配上用一系列的(相关)引导服务器;地址用 use-bootserver命令
$peername use-bootserver filename
#filename是简单的GWebCache引导服务器的物理节点地址的列表文件的名称
(c)绑定peers
像peers里确定的那些类一样把peers捆绑到PeerSys上(若干的类确定某个peer,某个peer确定到PeerSys上)
$peername attach-sys $sysname class
#sysname是ns中PeerSys被捆绑到的对象的名称;
#class是class的ID(就像在class的初始化文件里的一样)
(d)启动peer
$ns at stime $peername start
# ns是模拟器事例(事件)
#stime是启动时间
例:
set peer(1) [new PeerApp/GnutellaApp $nodeid1] # legacy_peer attached to physical node $nodeid1set peer(2) [new PeerApp/Gnutell
文档评论(0)