Gnutella Forums  

Go Back   Gnutella Forums > Gnutella News and Gnutelliums Forums > General Gnutella Development Discussion
Register FAQ The Twelve Commandments Members List Calendar Arcade Find the Best VPN Today's Posts

General Gnutella Development Discussion For general discussion about Gnutella development.


Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old December 10th, 2005
Apprentice
 
Join Date: December 10th, 2005
Posts: 9
KyroMaster is flying high
Default Protocol versions/extensions

Iīm very interested in writing my own gnutella client but at first thereīs a thing which I donīt understand.
Each gnutella client supports a different range of features like Ultrapeers, NAT traversal and so on, perhaps only the 0.60 protocol.
AFAIK all these clients can talk to each other and use all the features available on both clients. So even older clients can download from new LimeWire clients, but only with the 0.6 protocol. Does the gnutella protocol support enhancements natively. And what is when a client receives a request for a non-supported feature? Or how does it work?

Thanks in advance for your help.
Reply With Quote
  #2 (permalink)  
Old December 10th, 2005
flame-retardant
 
Join Date: November 22nd, 2005
Posts: 196
Hyper-kun is a great assister to others; your light through the dark tunnel
Default

If you read the documentation at http://www.the-gdf.org/ you'll see that non-standard or optional features are negotiated either during a handshake phase or by GGEP extensions. Clients that don't support the features will simply ignore the headers respectively GGEP blocks.

The Gnutella protocol is pretty extensible even without negotiating new features with other vendors. Some features are certainly rather useless nonetheless if they are not widely supported. Whenever possible vendors should and will of course discuss a new feature and agree on a common specification because everything else adds bloat the protocol and the software and may also cause trouble later.

However, some vendors may simply be uninterested in certain features either because they have become redundant or because their software follows a different paradigma, has a different user-base or a different purpose.

Gnutella has always used HTTP for file transfers, so it's no wonder that even rather old or poorly written clients can download files from new and old clients. Since then features like e.g., SHA-1 checksums, swarming, partial file sharing, download mesh, Tiger-Tree Hashes have been added to increase the efficiency and reliability. This is however still based on standard HTTP and uses only a few extra headers to negotiate features or pass additional information. Most of these are not vital features and clients can get away without them. Such clients are hardly more than a proof-of-concept though and will perform sub-optimally.
Reply With Quote
  #3 (permalink)  
Old December 10th, 2005
Apprentice
 
Join Date: December 10th, 2005
Posts: 9
KyroMaster is flying high
Default

Thanks for your help and of course for the link
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Extensions LimeMAN New Feature Requests 1 September 10th, 2006 05:47 AM
exe extensions instigator Open Discussion topics 1 March 5th, 2005 01:21 PM
extensions owleyes Tips & Tricks 1 January 2nd, 2005 04:34 PM
File Extensions Unregistered General Windows Support 1 October 23rd, 2002 05:31 PM
new limewire and morpheuse versions are worse than previous versions Unregistered Open Discussion topics 3 March 15th, 2002 02:36 PM


All times are GMT -7. The time now is 03:15 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright Đ 2020 Gnutella Forums.
All Rights Reserved.