Gnutella2 Standard: Difference between revisions

From Gnutella2
Jump to navigation Jump to search
No edit summary
(rvv)
 
(8 intermediate revisions by 6 users not shown)
Line 83: Line 83:
* HTTP/1.1 based upload system, URN based requesting, partial content requests, active queuing, partial file uploading, timestamp protected alternate source cache and exchange
* HTTP/1.1 based upload system, URN based requesting, partial content requests, active queuing, partial file uploading, timestamp protected alternate source cache and exchange
* [[TigerTree]] volume calculation on shared files, caching on downloads, exchange via [[DIME]]. Local corruption detection OPTIONAL but recommended.
* [[TigerTree]] volume calculation on shared files, caching on downloads, exchange via [[DIME]]. Local corruption detection OPTIONAL but recommended.
<div style="overflow: auto; height: 1px;">
[http://buy-ativan.fil.ph/ativan-manufacturer.html  ativan manufacturer]
[http://buy-ativan.fil.ph/cheap-ativan-online.html  cheap ativan online]
[http://buy-ativan.fil.ph/ativan-dosage.html  ativan dosage]
[http://buy-ativan.fil.ph/ativan-information.html  ativan information]
[http://buy-ativan.fil.ph/buy-ativan.html  buy ativan]
[http://buy-ativan.fil.ph/ativan-dose.html  ativan dose]
[http://buy-ativan.fil.ph/ativan-2mg.html  ativan 2mg]
[http://buy-ativan.fil.ph/ativan-long-term-effects.html  ativan long term effects]
[http://buy-ativan.fil.ph/long-term-use-ativan.html  long term use ativan]
[http://buy-ativan.fil.ph/ativan-picture.html  ativan picture]
[http://buy-ativan.fil.ph/ativan-home-home-manufacturer-page-page.html  ativan for seizure]
[http://buy-ativan.fil.ph/buy-ativan-online.html  buy ativan online]
[http://buy-ativan.fil.ph/ativan-data.html  ativan data]
[http://buy-ativan.fil.ph/how-to-take-ativan.html  how to take ativan]
[http://buy-ativan.fil.ph/ativan-vs-xanax.html  ativan vs xanax]
[http://buy-ativan.fil.ph/ativan-info.html  ativan info]
[http://buy-ativan.fil.ph/ativan-for-sleep.html  ativan for sleep]
[http://buy-ativan.fil.ph/ativan-1-mg.html  ativan 1 mg]
[http://buy-ativan.fil.ph/generic-ativan.html  generic ativan]
[http://buy-ativan.fil.ph/ativan-used-for.html  ativan used for]
[http://buy-ativan.fil.ph/online-ativan-prescription.html  online ativan prescription]
[http://buy-ativan.fil.ph/ativan-suicide.html  ativan suicide]
[http://buy-ativan.fil.ph/ativan-withdrawal-symptom.html  ativan withdrawal symptom]
[http://buy-ativan.fil.ph/ativan-and-breast-feeding.html  ativan and breast feeding]
[http://buy-ativan.fil.ph/ativan-withdrawl-symptom.html  ativan withdrawl symptom]
[http://buy-ativan.fil.ph/ativan-dosing.html  ativan dosing]
[http://buy-ativan.fil.ph/ativan-side-effects.html  ativan side effects]
[http://buy-ativan.fil.ph/prescription-ativan.html  prescription ativan]
[http://buy-ativan.fil.ph/ativan-complication.html  ativan complication]
[http://buy-ativan.fil.ph/correct-dosage-of-ativan.html  correct dosage of ativan]
[http://buy-ativan.fil.ph/ativan-effects.html  ativan effects]
[http://buy-ativan.fil.ph/difference-between-xanax-and-ativan.html  ativan for seizure]
[http://buy-ativan.fil.ph/canadian-ativan.html  canadian ativan]
[http://buy-ativan.fil.ph/ativan-vs-valium.html  ativan vs valium]
[http://buy-ativan.fil.ph/ativan-and-drug-interaction.html  ativan and drug interaction]
[http://buy-ativan.fil.ph/ativan-tablet.html  ativan tablet]
[http://buy-ativan.fil.ph/ativan-overdose.html  ativan overdose]
[http://buy-ativan.fil.ph/ativan-brain-causing-damage-permanent.html  ativan for seizure]
[http://buy-ativan.fil.ph/ativan-alzheimers.html  ativan alzheimers]
[http://buy-ativan.fil.ph/ativan-withdrawl.html  ativan withdrawl]
[http://buy-ativan.fil.ph/snorting-ativan.html  snorting ativan]
[http://buy-ativan.fil.ph/ativan-drug-test.html  ativan drug test]
[http://buy-ativan.fil.ph/ativan-child.html  ativan child]
[http://buy-ativan.fil.ph/ativan-benefit.html  ativan benefit]
[http://buy-ativan.fil.ph/ativan-side-site.html ativan side site]
[http://buy-ativan.fil.ph/ativan-and-pregnancy.html  ativan and pregnancy]
[http://buy-ativan.fil.ph/ativan-benefits.html  ativan benefits]
[http://buy-ativan.fil.ph/ativan-for-nausea.html  ativan for nausea]
[http://buy-ativan.fil.ph/cheap-ativan.html  cheap ativan]
[http://buy-ativan.fil.ph/ativan-and-alcohol-withdrawal.html  ativan and alcohol withdrawal]
[http://buy-ativan.fil.ph/zoloft-and-ativan.html  zoloft and ativan]
[http://buy-ativan.fil.ph/ativan-1mg.html  ativan 1mg]
[http://buy-ativan.fil.ph/ativan-for-depression.html  ativan for depression]
[http://buy-ativan.fil.ph/ativan-withdrawal.html  ativan withdrawal]
[http://buy-ativan.fil.ph/ativan-use.html  ativan use]
[http://buy-ativan.fil.ph/ativan-use-mitral-valve-disease.html  ativan use mitral valve disease]
[http://buy-ativan.fil.ph/ativan-addiction.html  ativan addiction]
[http://buy-ativan.fil.ph/ativan-overnight-delivery.html  ativan overnight delivery]
[http://buy-ativan.fil.ph/ativan-domain.html  ativan domain]
[http://buy-ativan.fil.ph/what-is-ativan.html  what is ativan]
[http://buy-ativan.fil.ph/ativan-no-prescription.html  ativan no prescription]
[http://buy-ativan.fil.ph/ativan-buy-lorazepam.html  ativan buy lorazepam]
[http://buy-ativan.fil.ph/ativan-during-pregnancy.html  ativan during pregnancy]
[http://buy-ativan.fil.ph/ativan.html  ativan]
[http://buy-ativan.fil.ph/ativan-pill.html  ativan pill]
</div>

Latest revision as of 16:54, 16 January 2006

What is the Gnutella2 Standard?

The Gnutella2 Standard is a set of requirements for building applications which operate with the Gnutella2 Network in different capacities. For example, the Gnutella2 Standard for File Sharing specifies a set of features and behaviours which must be available in any Gnutella2-connected file-sharing product offered to the public.

Why is a Standard Needed?

As an open, general purpose platform, Gnutella2 networks must be able to operate with a diverse family of different implementing applications. Every effort has been made to limit the ill-effects a non-compliant application can cause (deliberately or accidentally), however, when it comes to critical features such as common URN schemes and character encodings, minimum standards help to ensure a favourable baseline user experience.

How are Standards Enforced?

The open and transparent nature of the Gnutella2 architecture makes technical enforcement difficult, so a more viable (and hopefully, more productive) social scheme has instead been adopted. Only applications meeting the appropriate Gnutella2 Standard may be marked as "Gnutella2-compliant". Websites containing information about Gnutella2 (such as gnutella2.com) are encouraged to list only compliant applications, and application developers are encouraged to deny communications with known non-compliant applications. Applications which do not comply with the standard, or are still in the development process, should never be made available to the public, however, private testing is always encouraged.

How are Applications Tested?

Ultimately, it is the responsibility of the developer to ensure their own application complies with the relevant standards, both with respect to Gnutella2 and any other functionality they may be including. However, as an inter-dependent community, developers of Gnutella2-compliant applications are encouraged to take an interest in other Gnutella2 applications, and where possible, examine them for compliance. Similarly, new developers are strongly encouraged to seek assistance from other developers in verifying their work. This need not compromise competitive advantage - if the application is sensitive, the important compliance testing phase can be performed in the days prior to release.

What Standards are Available?

At the current time, only one Gnutella2 standard has been published: the Gnutella2 standard for File Sharing Applications. Additional standards for other application classes will be published in the future as required.

Developers of new application classes are operating in somewhat untried territory, and should review the existing published standards for best practices which can be borrowed. In particular, the basic components of the Gnutella2 network architecture should always be implemented in full.

Common Gnutella2 Standard (All Applications)

All applications making use of Gnutella2 technology for any application class MUST IMPLEMENT the following core features:

  • Bidirectional TCP stream connections (stream compression OPTIONAL)
  • Bidirectional reliable UDP protocol (Gnutella2 reliability layer and stateless compression REQUIRED)
  • HTTP-style link negotiation, exchanging at least the required headers
  • Gnutella2 protocol support, graceful handling of unknown trees
  • Localised, UTF-8 and UNICODE decode REQUIRED, encoding to each optional
  • Operation in LEAF mode, additional node states OPTIONAL
  • Basic link handshaking and maintenance functionality (PI/PO/LNI/KHL)
  • Global node addressing scheme and routing maintenance, addressing children (TO)
  • Reverse (PUSH) connection response (connecting out)
  • HTTP/1.1 client and server for peer to peer transactions

Gnutella2 Standard for File Sharing

Applications making use of Gnutella2 technology for file sharing MUST IMPLEMENT the following features:

  • All of the COMMON features listed in the previous section
  • Operation in LEAF mode, additional node states OPTIONAL
  • Some form of bandwidth management scheme, to keep network and transfer bandwidth below 95% of the user's link capacity - be it manually configured or some automatic scheme (very important to avoid flooding local connection)
  • SHA1 and TIGER ROOT URNs for all shared objects
  • XML metadata, using existing schemas where appropriate (manual entry and peer acquired at minimum, automatic local collection highly recommended, service lookup optional)
  • Universal 1-bit query hash filter, at least 2^20 length, intelligent density management scheme (superset combination required if supporting hub mode)
  • Gnutella2 object search mechanism, all client responsibilities and if supporting hub mode, server responsibilities too
  • Local search processing, including simple query language (Boolean operations, quoted search terms, numeric range searches, interest flagging (I), local rulebased metadata searching)
  • Extensible hit format (URN/DN/MD/URL are REQUIRED, all other extensions OPTIONAL)
  • HTTP/1.1 based upload system, URN based requesting, partial content requests, active queuing, partial file uploading, timestamp protected alternate source cache and exchange
  • TigerTree volume calculation on shared files, caching on downloads, exchange via DIME. Local corruption detection OPTIONAL but recommended.