Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2173750
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类:

2010-10-07 21:27:29

网络工程Project 进度报告1

一、小组介绍

组长:宋伟

组员:王曼丽、唐梦楠、尹婷、杨庭红、张晓雪、张子童、张婉娇

选题:即时通信,P2P原理及深入(主要研究应用于文件共享方面)

二、工作进展

   1.9月25日至10月6日工作内容及进度

  在这两周中,小组主要是根据选题进行相关资料的查找及整理,对每个人进行子任务的划分。根据后期的需要,这两周的子任务主要分为对P2P原理、技术应用(主要是文件传输方面的应用)、文件传输应用源码这三方面的资料搜集。其中:

唐梦楠:P2P原理资料搜集

王曼丽、尹婷:P2P技术应用资料搜集整理(以BitTorrent为例)

杨庭红、宋伟:查找源码

   2. 搜集资料-摘要

   ◇ 关于P2P原理

  P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点”。“对等”技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P还是英文Point to Point (点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快但缺点是对硬盘损伤比较大(在写的同时还要读),还有对内存占用较多,影响整机速度。

   ◇ 关于BitTorrent1

Q:为何下载人数越多,速度越快?

   ABitTorrent简称为比特洪流,它的特殊之处在与:在传统下载方式中,一般是把文件由服务器端传送到客户端,例如FTP,HTTP,PUB等等。由于是从一台服务器下载,服务器所提供的带宽是一定的,因而下载人越多速度越慢。但是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多的不便。BT下载中,不同于一般的下载服务器为每一个发出下载请求的用户提供下载服务,而是一个文件的多个下载者之间相互上传自己拥有的文件片段,直到所有用户的下载全部完成。所以,下载的人越多,提供文件的源越多,相应每个客户的下载速度也就越快。

BitTorrent技术特点

●  集中式目录的概念:

-BitTorrent是集中目录式的典型应用。集中目录式P2P采用中央目录服务器管理P2P网络各节点,仍然具有中心化的特点,因而是非纯粹的P2P结构

-在集中目录式P2P结构中,中央目录服务器只保留索引信息,由对等节点负责保存各自提供服务的全部资料,此外,服务器与对等节点以及对等节点之间都有交互能力。

-集中式目录P2P采用星形结构,群组中的对等节点都与中心目录服务器相连,并向其发布共享的文件列表。查询节点可向中心目标服务器发起文件检索请求,得到回复后,查询节点则根据网络流量和延迟等信息选择合适的节点建立连接,而不必从中央服务器相连,此时交换文件即可直接在两个对等节点之间进行。该过程中,中央目录服务器负责记录群组所有参加者的信息,以进行适当的管理。

●  名词解释及工作模式:

-对Tracker种子.torrent文件的解释

-工作模式介绍

普通的HTTP/FTP下载使用TCP/IP,BitTorrent是架构于TCP/IP之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。BitTorrent协议本身也包含了很多具体内容协议和扩展协议,并在不断扩充中。

文件发布者会根据要发布的文件生成一个.torrent文件,及种子文件 >

BitTorrent完成一次下载过程,至少需要一个Tracker服务器和一个“种子”(指拥有完整被下载文件的节点)>

下载中,下载者需要周期性地向Tracker登记,使得Tracker能了解它们的进度

-DHT技术

 DHT,称为分布式哈希表,是一种分布式存储方法。在不需要任何服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储

DHT的主要功能包括三个内容:标识符的生成和管理、提供重叠网络中的查询定位的路由服务、对提供的服务或文件的信息进行管理。

(后期将对DHT算法进行研究,深入了解其原理以及实现过程)

   

 源码(应用于文件传输)

已找到一款P2P文件传输软件(开源代码),该软件可以在局域网和互连上使用,具有文件传输,断点续传,多线程连接等功能。

主要类功能介绍:

MainFrame

MainFrame类是软件的主界面类,负责与用户进行交互

TransFileManager

TransFileManager类是文件传输的控制类,负责管理文件的传输,它维护一个传输线程(SocketThread)的列表,每个线程都表示一个正在传输的任务。TransFileManager类定    时的扫描各个线程的状态,根据不同状态做出不同处理,如计算传输速度,显示传输进度等。

SocketThread

SocketThread类是文件传输线程类,它负责底层的具体传输工作,包括打包与解包,并且转换自己的状态,完成文件的传输。

Server

Server类是为TransFileManager类使用的,它负责本地端口的监听,一旦有用户连接,TransFileManager就创建一个传输线程,放入线程列表。而它继续监听端口。

TransFilePanel

TransFilePanel是一个面板,它用有按钮、进度条,标签等用来显示文件的传输状态。

(后期将对此代码进行分析并进行完善)

3. 存在问题

   1)通过查找资料,对于P2P的原理仍然存在盲点,感到不知从哪里入手。

2)对于DHT算法的分析?是否有必要进行深入分析?

   3)对于代码的完善。是要做成仅在局域网内的还是连接网络的?

   

三、前期总结及后期展望

通过这两周资料的查找,小组对于P2P技术的原理首先有了一个大致的概念,但就“理论联系实际”方面似乎还是有些不太明白的地方,基于此技术的开发应用也比较多。首先,在进行技术应用的资料查找时,基于P2P的应用就很多,例如应用于即时通信、文件传输、流媒体等等方面,但最终敲定是做文件传输方面的研究,所以在技术应用的资料中就用到了BT这个较为经典的应用P2P技术的实例。其次,在搜索源代码的时候也有很多疑问。基于P2P的应用有很多,其实现方法也有多样:有用C++实现的、有用JAVA实现的,同时用ASP或JSP的也不少,其中一些代码也看的不是很明白。所以对于后期的工作,小组是这样初定的:

首先,对P2P技术进行真正的理解,成员对于P2P技术应该有一个清晰的认识和理解,而不是仅仅停留在表面上。真正理解是后面工作的关键。所以每个人都应该能用自己的话来对这个技术进行一定的解释(有自己对于技术理解的文字部分)。只有自己明白了,才能给别人讲明白,要不什么都说不出来。

其次,在接下来的一周中,对于已找到的开源代码部分肯定是要看明白的,搞懂最基本的思想,才是后面进行完善的基础。因此,需要有代码理解这一任务,对代码进行分析,重点的编程思想或技术进行注释。

再次,针对P2P技术的特点进行代码深入分析,即进行代码的完善。可从性能和功能上进行初步完善。在这之中肯定会有编程上的困难,但通过查阅文献和相关资料,我想这些困难会在后期一一克服。

四、参考文献:

【1】张春红,裘晓峰,弭伟,纪阳,等.P2P技术全面解析 北京人民邮电出版社,2010.

【2】高岭,刘红,周兆确. Java P2P技术内幕人民邮电出版社2003

阅读(990) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~