1、使用多路复用或者异步I/O模型,这本是服务器段常用的技术,但在P2P应用,每台机器既是服务器,又是客户端,共享了一个十分受欢迎的文件,可能会有很多希望连接者,或者你下载一个受欢迎文件时,可能搜索到数百上千的Peer,此时就很有必要采用多路复用或者异步I/O技术,降低应用程序所占用的资源。
2、支持传统的协议,包括HTTP和FTP,其实这两种技术能够和P2P网络集成,其中一种办法就是,在提供下载地址的同时提供一个种子文件下载,例如服务器中提供了ABC.rar文件,同时提供一个ABC.rar.md5文件允许下载,这样P2P下载工具下载时,通过md5在P2P网络中搜索更多的资源,这样客户能够获得更好的速度,服务器端也可能降低下载的网络流量。
3、流行的P2P网络协议支持,包括BT和emule,这两种都是公开协议了,都有开源的实现,可以参考并重写,要支持并不困难。
4、健壮性。如同emule一样,将文件分块(piece)的同时,把每一块摘要一个piece_ID,将所有的piece_ID再摘要成一个总的ID,成为AICH。其实这也是一种很简单的技术,实现起来并不困难,做法可以多种多样。
5、对大型局域网有特别支持。现实中,存在很多大型的局域网,局域网之间的拥有高速的带宽。对局域网的特别支持办法也有很多的,例如,类似BT那样,在局域网里建立一个Tracker Server。若是基于JXTA,可以在局域网里部署聚合点(Rendezvous)
6、支持P2P目录共享,现在流行的P2P下载工具,都不支持以目录为单位实现P2P共享和下载。其实支持P2P目录共享也不困难,在提供共享时,提供一个目录结构信息就可以了。目录结构信息dir_info可以这样记录:子文件或子目录路径 偏移量 长度。当然把目录压缩然后提供下载也是可以的,不过这样会浪费共享者的磁盘空间。目录共享,要考虑共享之后文件进行修改,添加新文件等事情,使用dir_info能够更好解决这种问题。
7、关于通告。一个P2P共享资源(包括文件和目录),应该包括三个ID:content_id、aich_id、dir_info_id。其中content_id是整个资源的摘要,aich_id是每块id进行摘要产生的id,dir_info_id是dir_info的摘要id。
content_id可用资源搜索,建议采用MD5摘要产生,因为现在很多网上提供下载的文件,都提供一个.md5后缀的校验文件。
aich_id用于校验和智能恢复
dir_info_id。如果计算content_id时,dir_info独立计算,则需要提供dir_info_id,用于校验dir_info。理论上dir_info可以作为content的一部分,但是我觉得dir_info独立计算会带来很多好处。
8、关于传输。资源的传输,应该包括三部分,hashset的传输、dir_info的传输、内容数据的传输。内容传输是分块传输的,我觉得采用BT的默认值256K一块挺好的。每一块(piece)摘要计算一个piece_id,所有的piece_id放在一起,就是一个hashset,hashset这个名字不大好,不直观,但既然emule协议是这样会说,我也这样说好了。dir_info是可选的,文件共享不带dir_info。
9、P2P下载技术的应用范围应该扩展,程序的安装更新都应该加入P2P的支持,将会大大提高程序的用户体验。
10、P2P的平台应该具备良好的扩展性。当我们构建起一个庞大的P2P平台时,不单单只是在其上共享文件,有很多应用可以部署在其上,包括现在很流行的P2P视频,分布式计算等等。即时通讯也是可以构建在P2P网络上的。面对众多的应用需求,我们需要一个具备良好扩展性的协议,不应该像BT和emule那样,除了下载,别无它用。可能基于JXTA是一种较好的选择。
11、安全。P2P网络应该支持安全特性,一些团体,一些企业,需要限定范围内共享资源。例如NASA的卫星数据共享项目SAXTA,采用JXTA,就是因为JXTA支持安全特性。我想很多的P2P应用场景,都需要安全,例如,企业只希望内部员工之间实现P2P资源共享等等。
分享到:
相关推荐
标题中的“P2P网络借贷平台风险及监管问题思考”主要关注的是互联网金融领域中P2P(peer-to-peer)借贷平台所面临的风险及其在监管层面的挑战。P2P网络借贷是一种直接连接借款人和贷款人的在线平台,它绕过了传统...
### P2P技术的应用与思考 #### 技术背景与演变 P2P技术,即对等网络技术,是在互联网发展历史中逐渐兴起的一种新型网络交互模式。20世纪80年代以前,由于计算机性能、资源限制以及网络带宽等因素的影响,互联网上...
标题中的“互联网金融与中小企业融资基于P2P网络借贷的思考”揭示了本文将探讨的主题,即如何利用互联网金融,特别是P2P(Person-to-Person)网络借贷平台,来解决中小企业的融资难题。在现代经济中,中小企业是经济...
星火P2P网贷评级体系建设发展方向的思考主要集中在动态评级体系的构建上,以适应行业快速变化的特点。 【动态评级体系的核心要素】 1. **全面涵盖风险源**:动态评级体系应关注所有参与主体,包括平台、投资者、...
方维P2P借贷系统源码学习是一门深入理解P2P借贷平台核心运作机制的重要课程,对于希望在金融科技领域...在研究过程中,不断探索、思考并动手实践,你将能够更好地掌握这些关键知识点,并可能发现更多优化和改进的空间。
在BYRBT(北京邮电大学BT下载平台)的IPv6环境下,使用Wireshark软件进行抓包操作,能够帮助我们深入了解P2P软件的工作机制。Wireshark是一款开源的网络数据包捕获工具,可用于网络故障排查、安全分析及教育等领域。...
互联网金融浪潮下P2P网贷信用风险管理是当前金融科技领域中的一个重要议题。P2P网贷(Peer-to-Peer Lending)是指通过互联网平台连接借款人与出借人,实现点对点的借贷交易,这是一种去中介化的金融服务模式。然而,...
投资者应培养独立思考的能力,理性分析市场动态,而非盲目跟随大众。 3. **学会“求取真经”**: - 在选择投资产品时,要深入研究和了解,如同中融首信这样的P2P平台,投资者在投资前进行了谨慎的调查和试水。在...
标题"下载技术试验及其方法ppt新思考中国教育资源服务平台W.zip"表明这是一个关于下载技术试验和方法的PPT演示文稿,来源于中国的教育资源服务平台。"W.zip"表明该资源是压缩格式,使用了ZIP算法进行打包,通常用于...
读者可以通过阅读这些论文,了解最新的研究进展,启发自己的思考,探索更多可能的优化策略,推动P2P技术的发展。 总的来说,P2P搜索算法的研究与改进是P2P网络领域的一个重要课题,它涉及到分布式系统设计、网络...
**Node.js技术基础** Node.js是一款基于Chrome V8引擎的JavaScript运行...学习和理解Hypergit不仅可以深化对Node.js、Git和P2P网络的理解,也能启发我们思考如何将这些技术应用于其他领域,构建更高效、安全的系统。
P2P(点对点)的流行产生了大批网络传输软件,这里我们要介绍的就是自己写一个简单的P2P文件传输,一方发送文件,一方接受,直到传输完整个文件。利用TCP协议连接双方,服务器端建立文件流读入待发送文件进入监听状态...
5. **优化与改进**:根据实际需求,思考如何优化代码性能,提高网络效率,增强用户体验。 通过以上步骤,我们可以逐步掌握P2P客户端的开发技术,为今后的P2P项目打下坚实的基础。同时,理解并分析开源的P2P客户端...
多项选择题、名词解释、简答题和思考题部分涉及了P2P平台的功能、已出现问题的平台、行业风险、平台评级指标、实地考察内容、行业重要事件、P2P理财与其他理财模式的对比以及未来发展趋势。 P2P理财的优势可能包括...
标题中的“基于P2P技术的信息获取方案研究”是指一种利用对等网络(P2P,Peer-to-Peer)架构来改进传统互联网信息检索的方法。...这一研究为未来智慧型应用如大数据分析和人工智能提供了新的思考方向。
总的来说,该论文深入研究了复杂网络理论如何应用于P2P覆盖网络的拓扑设计,旨在提升网络的稳定性和效率,为P2P网络的设计和优化提供了理论依据和新的思考方向。通过综合多种理论和模型,作者为改进P2P网络的性能和...
**思考题**: 1. P2P理财相对于银行理财、信托理财和私人借贷的优势在于:更高的收益、更低的投资门槛、更灵活的资金使用和更快速的交易效率。 2. P2P网贷未来可能会朝着更加规范、专业化的方向发展,建议加强风险...
【网络信息时代的BT下载】BT(BitTorrent)是一种流行的P2P(peer-to-peer)下载技术,它通过文件分段和多点传输的方式提高下载速度。用户在下载的同时也承担部分上传工作,这种同步进行的下载和上传模式使得每个...