+ = GtllGnutella What is Gnutella?
• Invented March 2000 – byypp Justin Frankel and Tom Pepper • Peer-to-peer system • Became the first large-scale, fully decentralized system on the Internet • A message-based protocol • UTCPUses TCP Key ideas
• Every node should interpret and respond to qqyueries as they wish • Allows more than one intelligence to be applied on the query Communication system
• Message-based • Uses TCP broadcast • Time-to-live (TTL) = 7 (~10 000 nodes) • Decrements for each host the message passes • Excess traffic is simply forgotten How does it work? (1)
• Ad hoc backbone – make nodes with fast network connections wander toward the centre of the network to handle the traffic • Create cells connected by high-speed backbone •Not gggpeographicall y How does it work? (2)
• Response from green follows the same path back to blue • A direct HTTP connection is established between green and blue • Pseudo anonymity Traffic problems
• Reflector – maintains an index of files stored on nodes to which it is connected (breaches key idea) • Host lists resulted in sparseness and small clusters • Host caches as startinggp point for Gnutella user – hand off a list of hosts you should connect to – tell new hosts about hosts theyyy saw recently – overcrowding Network problems (1)
• Firewalls of NAT-devices • Solution: – PUSH REQUEST Network problems (2)
• “Double firewall” – “arch enemyyp of productivit y” • No solution
• PING packets with payload Windup
• The first real P2P system • Message broadcasting • Lacking service discovery mechanism • Disastrous host caching programs • Pseudo anonymity and misuse • Problems related to firewalls, NAT-devices