![]() |
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. |
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. |
Thanks for your help and of course for the link :) |
All times are GMT -7. The time now is 03:37 PM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.
Copyright © 2020 Gnutella Forums.
All Rights Reserved.