Freenet Simulation Results
For the first simulation, a network was created consisting of 2000 nodes, with 1000 documents and 3 documents on each node. Each node has links to 3 randomly chosen nodes and queries have a TTL of 7. Figure 1 shows how the number of messages generated between nodes decrease with respect to the number of queries performed. This demonstrates Freenet's adaptive nature. As more queries are performed, each node can more accurately route requests to nodes possessing documents. In addition, Freenet's caching scheme allows documents to be located with less messages between nodes. After 10,000 queries, the network has stabilized from approximately 1000 message transfers to an average of 6.5 per query.

Figure 1
Figure 2 shows the network coverage during each query over time. Again, the more queries that are performed, the more adept nodes are at routing messages within the network. Initially, an average of 300 nodes were reached to locate a document on the network. As more queries are performed, the average number of nodes reached converges on 6.

Figure 2
Figure 3 is a similar network as used above, except the TTL is initially set for 30. This was done simply to accentuate the change that occurs as more queries are performed. Initially, the average remaining TTL after a query is shown to be 5. As more searches are performed the remaining TTL approaches 25. This coincides nicely with the results shown in Figure 2. As the number of nodes reached approaches 6, the TTL is decremented only 5 times. This shows that from the path of the requestor to the node possessing the document, the query was only incorrectly routed to one node on average.

Figure 3
The successful simulation of Freenet has demonstrated the adaptive nature of Freenet. After 10,000 queries, it is possible to locate a document within the 2,000 node network in only 5 hops. The message transfers show how accurately queries are routed. In comparison to other P2P networks, such as Gnutella, which operates by broadcasting queries to all neighboring nodes, far less bandwidth is wasted performing such operations. This efficiency helps make Freenet robust and scalable.