全部博文(436)
分类:
2010-10-28 23:26:24
网络工程Project 进度报告4
一、工作进展
1、
本周已经进入到项目的最后几周中,小组在进行分组后,每个人都有了更加明确的任务。但是分配下去的工作,进展的并不是很顺利。首先对于阅读代码的同学来说,首次接触P2P肯定有难点,这一点对于任何一个分析代码的小组而言都是存在的,如何攻破难点是一个很大的问题。其次对于P2P核心技术学习的同学而言,怎样找、找什么样的才算是P2P文件传输的“核心”又成了一个问题。所以本周的工作进度仍然比较慢。对于这些问题的处理,找到一个合适的解决办法对于加快进度是万分重要的。
2、工作进度-摘要
核心技术组:
P2P算法研究
由于采用分布式非结构化模式,Gnutella协议采用传统的查询机制广播加TTL控制的方式进行资源定位。采用这种查询方式会随着网络规模扩大,流量急剧增加,从而导致网络拥塞,节点负载加重的缺点,进而引起网络分片,使查询访问只能在网络很小一部分进行,使网络的可扩展性受到限制。最近,对提高查询效率,减小资源占用,提高可扩展性等方面的研究取得了一定的进步。主要有
①改进的广度优先搜索(Modified BFS);
②随机漫步(Random walkers);
③迭代深入(Iterative Deeping);
④定向广度优先搜索(Directed SrS);
⑤自适应概率搜索(Adaptive Probabilistic Search,APS);
⑥路由索引(Routing Indices);
⑦本地索引(Local Indices);
⑧内容缓存(Content Caching)等。
这些改进算法主要从以下几点进行改进:一是从转发机制进行改进;二是从路由信息的改进;三是基于缓存的改进,在本地或某些特殊节点建立路由信息表或直接复制要查询的内容到每个节点上来指导以后类似的查找。
存在的问题
随着缓存命中率提高,就意味着已经被查找到的节点再次被查找到的机率越大,经过一段时间以后,这些对等点的负载将达到饱和。而P2P网络中拥有资源的节点未必是服务能力强的节点。在这种情况下,这些对等点就会拒绝请求而导致连接的失败。
基于资源路由表算法思想及实现
在多个节点选择时,可以优先考虑TTL值小的对等点,这样可以以最少的跳数建立网络连接,以减少网络开销,最大程度的提高网络利用率,而当该对等点饱和时,再依次考虑r
二、成员分工
王曼丽、张晓雪、张子童、张婉娇:对代码进行分析
尹婷、杨庭红:P2P核心技术深入
宋伟、唐梦楠:整合前期P2P原理方面资料
三、成员个人总结(包括遇到问题以及初步解决方案)
宋伟:
本周的任务主要是总结前期的资料文档。为了更好的完成后期小组的报告,这次主要是将P2P技术中的一些具有代表性的资料进行整合。对于前期的文档,主要进行以下几种分类:1、系统阐释何谓P2P(即什么是P2P) 2、P2P在各种领域的应用 3、针对P2P核心技术的讲解内容 4、P2P源码部分。针对前两项,前期工作已经搜集了较多的资料,现在需要的是去粗取精,截取重要的部分并形成自己的语言予以表述。而对于后面的两项仍然需要大家的努力了。
王曼丽:
这星期我大致明白了client类流程,首先在调用Client类的构造方法中列出在线的用户,如果打开的是OPEN按钮,以表格显示在线的用户,设置表格监听,得到客户端选中的电脑的IP地址,创建XmlWriter来写xml报头,然后通过输出流传递出去。再在本地建立response.xml,通过提取输入流将数据写入到本地response.xml文件中。通过apporpriatelength方法控制每次传送的大小。通过Sparser类返回给客户端所需要的文件的目录、目标文件的大小,再调用field_gui类来显示界面和相连电脑进行浏览、下载、传输、查找文件。
虽然大致的功能清楚,但细节仍有不明白,xml怎么起的作用仍旧不明白,所以下一步查找xml的资料了解。
张晓雪:
本周对代码的阅读更深一步,但未解决代码的运行问题,也是目前面临的最大问题。读外国人写的代码很困难,当然也与我们的知识薄弱有关。所以,下周我决定听组织安排。
杨庭红:
• 文件共享有Napster、Gnutella、Freenet、Publius、Free Haven,需要了解它们的主要核心技术;本周我们确定了对于p2p的研究点;同时共享包括多种,类似信息共享、处理器共享和带宽共享,文件共享的系统结构:混合式p2p和纯p2p。下周自己将对如何用socket实现文件传输作一步研究。
尹婷:
这周我的主要工作是查找P2P文件搜索和文件共享的工作原理、核心技术,从我们现在所掌握和找到的资料中,都只是对P2P技术做了简要的功能说明,而具体的技术支持不太了解。我通过校园图书馆资源,查找到了一些关于P2P技术应用的研究论文,但是其中没有介绍P2P文件共享的应用原理,但是其中提到了第1代的P2P网络Gnutella,所以我对Gnutella进行了资料查找,了解其运作原理。
Gnutella网络中的对等机是先通过资源搜索建立于另一台对等机的连接,而接入网络的,它发送广播,通过Gnutella协议来实现文件共享。对于其协议的传输、连接机制我还有部分不是很清楚,还需要进一步学习。Gnutella与我们所查找到的BT 软件机制还不太一样,对等主机把资源放在缓存中,并有路由表来进行网络分配,资料的下载是从最终建立连接的一台对等机上下载的,而不是分段从多个对等机上下载。
张子童:
本周主要继续研读代码和对P2P技术的理解,在我们所找的BT代码中也还是存在不少问题 所以还是要继续找寻解决办法。也在另一方面,又了解了其他一些P2P技术的应用。
下周希望能够解决BT下载器的代码运行问题。
张婉娇:
这周我们主要还是停在读懂代码的阶段,由于注释是英文,读起来还是有一定困难的,所以要想进行下一步的学习与研究,必须先把这个软件运行出来,这就是我们这周主要干的事情,虽然代码中分的类不是很多,但由于涉及到很多没学过的类,所以又为读代码增加了难度!在下一个阶段,我们争取尽快搞定代码,再在此基础上进行完善和加工。
唐梦楠:
我在这一周中主要负责的是文档的整理。通过这次对于之前文档的整理,我发现很多东西都是我们在这一次的研究中不太需要的。本次重点是P2P文件共享,所以资料中的有关P2P流媒体等大篇幅的内容则可以不用,只要在文档-技术应用部分有一个概念性的叙述即可。所以,在这次的工作中,自己相当于又将P2P文件共享方面的原理部分学习了一遍。同时,下一阶段我觉得可以在整理文档之外和代码组的同学一起,分析代码,让这一部分尽快地赶上进度。
四、前期总结及后期展望
对于前期的工作,完成的其实并不理想,由于从代码上面一直没有什么太大的进展,导致现在的研究更多的是一种新的学习。现在已经到了项目的最后几周,如果就现在的研究进度而言,那么可能对于最初的分析代码之后进行完善的任务就将会无法实现,所以下一阶段的任务可能会有一定的变化,对于现有分组进行再分组:
代码组:王曼丽、张晓雪、张子童、张婉娇、唐梦楠、宋伟
核心技术研究组:尹婷、杨庭红
对于代码组,分配每个人仔细阅读其中一个类,进行仔细的分析,而不是进行大波的整体阅读,而如果涉及到调用问题,则仅阅读所调用的类的注释部分,了解该类的作用即可。但这里需要每个人对自己阅读的类十分熟悉,如此代码组才能进行组内讨论,将所有代码串联,而最终则是通过这样一种出现问题、讨论问题从而解决问题的过程中将技术理解的。最后几周了,大家要加油~