P2P服务及Guntella协议

我们前面已经了解了两种获取文件的方式:FTP 和 SMB,下面我们将学习第三种应用软件协议。现在,通过 Internet 共享文件已经很流行。通过基于 Gnutella 协议的 P2P 应用程序,人们可以将自己硬盘中的文件共享给其他人下载。通过与 Gnutella 协议兼容的客户端软件,用户可以在 Internet 上连接 Gnutella 服务,然后定位并访问由其它 Gnutella 对等设备共享的资源。

很多 P2P 应用程序并不使用中央数据库记录各个对等设备上的所有可用文件,而是让网络内的各个设备相互查询可用文件,并通过 Gnutella 协议和服务定位资源。请参阅图示。




    		    P2P服务及Guntella协议

当用户连接了 Gnutella 服务时,客户端应用程序将检索可连接的其它 Gnutella 节点。这些节点将查询资源位置并回复请求。此外,它们还管理控制信息,以便服务查找其它节点。实际的文件传输过程往往基于 HTTP 服务。
Gnutella 协议中定义了五种不同类型的数据包:
  • ping — 用于查找设备
  • pong — 用于回复 ping
  • query — 用于定位文件
  • query hit — 用于回复 query
  • push — 用作请求下载

本文出自 “07net01” 博客,请务必保留此出处http://07net01.blog.51cto.com/1192774/566801

更多相关文章
  • Android 平台提供了两类动画. 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). 第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似. 实现动画有两种方式:一种使用XML文件(文件放在res/anim),一种直接代码 ...
  • paip.软件版本完善计划VC423   1.speed 2.ini tray  tray trc4 = new tray(this, floatForm1);   ver kunlun   3.per thread try catch   verkunlun   4.program try cat ...
  • 为支持MVC的验证,无刷新查询,EF,以及让代码可读性更强一点,所以就重构了下原来的解决方案. 这里就简单讲下使用方法吧: Model: 继承PagerBase: 1 public class SearchModel : PagerBase 2 { 3 public SearchModel() 4 ...
  • 这是一篇极度体现老板人品的文章,短小,但是句句戳人心,它毫不吝啬地赞美出手阔绰的“创业英雄”Nevzat Aydin.他在卖掉自己公司之后,拿出了 2700 万美元作为奖金分给了 114 名员工,相当于一个普通员工 150 个月的工资.他说:“要是没有这么多员工帮衬我,我不可能把公司做到这样的程度. ...
  •   本人最近在分析天天团购源码,但是里面各种的require_once让我有些崩溃,于是在网上找了一些   源程序分析的方法.见下   一.先把源代码安装起来,结合它的文档和手册,熟悉其功能和它的应用方式. 二.浏览源代码的目录结构,了解各个目录的功能. 三.经过以上两步后相信你对这个开源的产品有了 ...
  • 前面介绍了Chrome开发者工具的大部分内容工具,现在介绍最后两块功能Audits和Console面板.一.Audits Audits面板会针对目前网页提出若干条优化的建议,这些建议分为两大类,一类是网络加载性能,另一类是界面性能.首先开下它的主界面. Audits面板的网络优化建议参照的是雅虎前端 ...
一周排行
  • 根据一个1024的icon,生成所有规格的icon,同时创建好Contents.json文件,支持命令行. 主要原因是因为我每次用Phtosohop做完icon都要保存N种规格,烦死了,网上没有发现合适的工具,所以自 ...
  • 易网科技讯 6月27日消息,据深圳新闻网报道,万兴软件日前宣布,该公司已于近日完成了IDG主投.浙江华睿跟投的逾千万美金融资.万兴软件总部位于深圳,公司成立于2003年,从事消费软件出口,拥有百万级付费用户.并于20 ...
  • Road Construction Time Limit: 2MS   Memory Limit: 65536K Total Submissions: 8647   Accepted: 4318 Descriptio ...
  • 先上图: 贴代码: ul2tree.html [html] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  & ...
  • 题意:在一个n*n的网格中填了一些大写字母,你的任务是把剩下的各自中也填满大写字母,使得任意两个相邻的格子(有公共边)中的字母不同.如果有多种解法,则要求按照从上到下.从左到右的顺序把所有格子连接起来得到的字符串的字 ...
  • 上篇说明了原理,这篇就直接上核心代码了~ 代码比较长,所以理解可能有点麻烦,核心思路就是计算选择的维度后遍历数据,逐步进行循环计算置信度,并淘汰每次循环后的最低值. 这里有一点要注意的,我一开始想用arraylist ...
  • 'localStorage' : localData = { hname : location.hostname ? location.hostname+'/marchsoft/index.php/OA/' : 'l ...
  • 今天,在温哥华一年一度的CanSecWest安全会议的Pwn2Own竞赛上,MWR Labs研究人员Nils和Jon展示了一个完整的绕过最新版本google chrome浏览器沙盒模式的方法. MWR Labs表示展 ...
  •  一个基于RBAC的通用权限设计清单   注:主要是功能权限的设计,关于数据权限的设计,敬请关注作者CSDN后续博客. RBAC即角色访问控制(Role Based Access Control) RBAC认为权限授 ...
  • MTK6577+Android之Camera驱动 <MTK安卓平台的Camera效果在线调试> 点击打开链接   图1   1.     Camera拍照相关概念   1.1  ISP   isp--(I ...