Gnutella协议的相关介绍(Peercast实现P2P传输所使用的协议)

来源:互联网 发布:我国进口商品市场数据 编辑:程序博客网 时间:2024/05/17 07:47

Peercast实现P2P的相关传输功能所使用的是一个开放式的协议,Gnutella。下面是一些关于Gnutella协议的介绍。

Gnutella是一个开放式的协议,完全分布式,没有中心服务器。每个结点既是客户端,也是服务端,称为servents。 

协议定义:
Ping:激活发现客户机
Pong:回应Ping
Query:网络检索机制
QueryHit:回应Query
Push:一个用于允许防火墙中的客户端向网络提供基于文件的数据文件的机制

两种结点定位模型:多播模型和网络模型

查询机制:flooding

传统的Guntella网络采用泛洪式(flooding)的查询机制。其查询机制如下:

(1) Guntella网络上的任一台主机,在需要查询资源时,先根据查询的内容形成一个Query消息。
(2)    查询源主机将该Query消息发送给网络上与其直接相连的其它主机。
(3)    收到该Query消息的主机搜索自身的资源,如果有与查询消息相匹配的资源,则形成一个QueryHit消息,按照Query消息来时的路径发送给源查询主机。Guntella协议与划分技术的 P2P网络模型的设计与实现
(4)  收到Query消息的主机将该消息转发给除发送该消息的主机以外的其它主机。
(5)  重复3、4步骤。

控制机制:
1.TTL
2.消息标识符
3.路径标识符

缺陷:

缺陷:
1. 泛洪大量消耗带宽
2. TTL设置使得Gnutella只能在小范围内使用
3. 安全性机制无法保证