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网络借贷平台风险及监管问题思考.pdf
详细描述p2p技术的技术背景、主要特征、关键技术和主要应用,还对p2p的前景做了一个期望
星火P2P网贷评级体系建设发展方向思考系列二——P2P动态评级体系建设思路定义.pdf
星火P2P网贷评级体系建设发展方向思考系列二——P2P动态评级体系建设思路借鉴.pdf
互联网金融浪潮下P2P网贷信用风险管理思考.pdf
互联网金融与中小企业融资基于P2P网络借贷的思考.zip
P2P(点对点)的流行产生了大批网络传输软件,这里我们要介绍的就是自己写一个简单的P2P文件传输,一方发送文件,一方接受,直到传输完整个文件。利用TCP协议连接双方,服务器端建立文件流读入待发送文件进入监听状态...
这个概念出现在我的脑海中,思考如何保护隐私(但不要过度)。 该应用程序使用“ @公司”设计的@protocol在服务器级别提供隐私。 而且,它还通过将文本转换为Morse code在应用程序级别(前端)中提供,只需单击按钮...
java版p2p网贷系统源码 8.0 麦壳的简历 一 基本信息 姓名:曹海龙 性别:男 工作年限:7.5年 出生年月:88.12 电话:15628998226 邮箱: 户籍:济南 二 社交主页 三 代码观 代码洁癖,良好设计,优先考虑设计模式 谋...
基本概念、资金操作相关、融资端风控、信息安全、债权转让、我对互金产品设计的一点思考
内容 1 2 CACHE\CDN\IDC技术 互联网问题及思考一、IDC已引入的内容源存在的问题 二、CACHE、IDC建设统未统筹考虑 -1- 什么是CACHE? 什么是CACHE? Internet 解决HTTP流量问题 WebCache 流量拥塞点: 省网出口 互联...
分析现有分布式能源交易的方式及其弊端,研究区块链技术对于分布式能源P2P交易的适用性,在连续双边拍卖(continuousdoubleauction,CDA)、竞争均衡价格(competitive equilibrium price,CEP)、节点信誉值等基础上确立...
关于区块链产业化落地路径的思考; 夯实信任“基建”——区块链赋能数字社会治理创新; 基于区块链的可信取证与存证; 基于区块链的新基建信任生态构建; 基于图神经网络的智能合约安全漏洞检测; 基于隐私保护的...
OnerNIX 是一种用来各位网友们进行自由交流任意文件类型的工具, 就是Peer-To-Peer工具软件,采用公开的插件技术,完成对下载的文档察看功能, 采用插件来达到听音乐,看笑话,看图片等功能,用户根据喜好可以定制自己的...
根据《最高人民法院关于审理非法集资刑事案件具体应用法律若干问题的解释》(2010年),非法集资有 、 、 、 四个基本特征。 (非法性、公开性、利诱性、社会性) 2.单项选择题(每题2分,共10分) 1."二次脱媒...
数据分析师行业峰会嘉宾PPT分享(21个70M): 数据营销洞察数据价值 数据可视化无所不在 ...大数据领域的创业思考 量化投资大数据处理 P2P金融评分卡模型 医疗数据统计分析 医学数据挖掘的成果与实践
本文就此问题做一些思考性探讨,以期引起传统金融业对该问题的重视并 完善我国对互联网金融监管的体系。 关键词:互联网金融;金融监管;法律制约 一、当前中国互联网金融的主要模式及特点 (一当前中国互联网金融的主要...
数据分析应该以业务场景为起始思考点,以业务决策作为终点。基本思路为5步,首先要挖掘业务含义、制定分析计划、从分析计划中拆分出需要的数据、再根据数据分析的手段提炼业务洞察,最终产出商业决策。接下来我们用...