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面板的网络优化建议参照的是雅虎前端 ...
一周排行
  • 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,             ...
  • 开发Android必须得清楚Android生命周期才能很好的掌控程序的框架,让整个项目思路更加清晰流畅,因此IOS也是必须要了解IOS的生命周期 先从一个简单的实例来看看 AppDelegate.m文件里面的内容如下 ...
  • 在编程的过程中,文件的操作是一个经常用到的问题,而关于EOF的理解大多人存在一个误区:“EOF--〉文件的结束符”!EOF是End Of File的缩写:在C语言中它是标准库stdio.h中定义的一个宏,而不是文件的 ...
  • 随着互联网的飞速发展,前端开发越来越复杂.本文将从实际项目中遇到的问题出发,讲述模块化能解决哪些问题,以及如何使用 Sea.js 进行前端的模块化开发. 恼人的命名冲突 我们从一个简单的习惯出发.我做项目时,常常会将 ...
  • 一封由联想集团董事局主席杨元庆署名的内部邮件,为这家中国最大的PC巨头吹响了新一轮重组的冲锋号."在新的市场竞争中,面对机遇,我们要先行一步,掌握主动:面对挑战,我们要未雨绸缪,有备而动."201 ...
  • "鼠标+车轮",在今年即将组合上演一场具有戏剧性的市场"大片".近日,申通.圆通.中通.韵达等民营快递老总集齐亮相媒体,其中顺丰老总在接受媒体采访时对外透露了一个共同的信息:自 ...
  • 这是Qt Quick子部分的QML元素的功能分组列表. These are the functionally grouped lists of QML elements as part of Qt Quick. 声明 ...
  • solaris操作系统配置联网   solaris操作系统联网 1. 设置主机名: etc/hostname.vmxnet0 hannick   2.设置主机名和ip地址的映射: etc/hosts 127.0.0. ...
  • 人民网北京11月19日电 据外交部网站消息,11月19日,外交部发言人洪磊主持例行记者会,并回答记者提问. 有记者问,据报道,18日起,伊朗与伊核六国在维也纳举行新一轮谈判.请介绍中方谈判主张.中方如何看待谈判前景? ...
  • 中缀表达式的计算主要要转换为后缀表达式. 例如       中缀表达式->(1+2)*         转换为后缀表达式   12+3*4- 至于后缀表达式的计算就很容易了     设定一个栈,然后后缀表 ...