Less popular documents have a distribution which follows a Zipf-like distribution. Caching Gnutella query results, similar to caching web documents, to cope with Zipf-like distributions should significantly reduce the traffic on Gnutella, freeing up bandwidth to provide better content retrieval performance. In the following section, we analyze the benefits of caching query results. In this section, we outline a simple protocol to implement caching of queries and results. Gnutella nodes monitor and cache query strings and results that flow through it.
Cached results are valid only up to a timeout period, after which it is removed from cache.
If a query result has been cached, the node will answer the query and will not forward the query on. In the best case, this allows for a node to answer its own queries without needing to send any queries out on the network. If the cached result for a query is expired, the Gnutella node will not answer the query and will forward the query out to its neighbors. 5 Evaluation Caching query results helps to reduce the time it takes for queries to be answered and also reduces the amount of traffic on the network. In our simulations, query strings are directly associated with query results.