Gnutella and JXTA
|
|
|
Based on Ivkovic’s paper “Improving
Gnutella Protocol”. |
|
Also based on Docs and Tutorials at |
|
http://www.jxta.org/ |
Gnutella
|
|
|
Peer-to-peer indexing and searching
service. |
|
Peer-to-peer point-to-point file
downloading using HTTP. |
|
A gnutella node needs a server (or a
set of servers) to “start-up”… gnutellahosts.com provides a service with
reliable initial connection points |
The Gnutella protocol
(v0.4)
|
|
|
PING – Notify a peer of your existence |
|
PONG – Reply to a PING request |
|
QUERY – Find a file in the network |
|
RESPONSE – Give the location of a file |
|
PUSHREQUEST – Request a server behind a
firewall to push a file out to a client. |
Gnutella Decentralized
Model
Gnutella Descriptor
Header
|
|
|
Descriptor ID uniquely identifies
descriptor on the network |
|
Payload Descriptor is 0x00 = Ping, 0x01
= Pong, 0x40 = Push, 0x80 = Query, 0x81 = Response |
|
TTL(0) = TTL(i)+Hops(i) |
Gnutella Ping
|
|
|
No payload (i.e., payload length = 0) |
|
Used for probing the network and
establishing connections after reception of “Pong”. |
Gnutella Pong Descriptor
Payload
|
|
|
Responding to “Ping” descriptors. |
|
Enough information to establish
connection. |
|
File sharing meta-data. |
Gnutella Query Descriptor
Payload
|
|
|
For querying the network for a
particular file or files (usually
substring of file name). |
|
Quality of Service parameter (minimum
speed). |
Gnutella Response
Descriptor Payload
|
|
|
For positive “File Found” replies to a
query. |
Gnutella Push Descriptor
Payload
|
|
|
For getting files from
firewall-protected servents. |
|
Request pushing a file from an internal
node to an outside servent. |
Gnutella Research
Directions
|
|
|
Download failures |
|
Scalability |
|
Fragmented development |
|
Encouragement of content sharing |
|
Reducing browsing downtime |
|
Reducing unnecessary network traffic |
|
Creating and maintaining a healthy
network structure –rebalancing, different TTL strategies, priorities |
|
Addressing security concerns. |
JXTA
|
|
|
For “juxtapose”, from Bill Joy at Sun. |
|
|
|
Connecting devices and applications by
providing common P2P services to heterogeneous devices, operating systems,
programming languages, and applications. |
JXTA Overview
|
|
|
|
Material from “Web Services Edge” XML
Conference, San Jose, CA, October 2002, by Juan Carlos Soto, Sun
Microsystems: |
|
|