Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Peer to Peer
Preface
Some context and a definition
How this book came into being
Contents of this book
Peer-to-peer web site
We’d like to hear from you
I. Context and Overview
1. A Network of Peers: Peer-to-Peer Models Through the History of the Internet
A revisionist history of peer-to-peer (1969-1995)
Usenet
DNS
The network model of the Internet explosion (1995-1999)
The switch to client/server
The breakdown of cooperation
Spam: Uncooperative people
The TCP rate equation: Cooperative protocols
Firewalls, dynamic IP, NAT: The end of the open network
Asymmetric bandwidth
Observations on the current crop of peer-to-peer applications (2000)
Authoring is not the same as publishing
Decentralization
Abusing port 80
Peer-to-peer prescriptions (2001-?)
Technical solutions: Return to the old Internet
Social solutions: Engineer polite behavior
Conclusions
2. Listening to Napster
Resource-centric addressing for unstable environments
Peer-to-peer is as peer-to-peer does
The veil is pierced
Real solutions to real problems
Who’s in and who’s out?
Peer-to-peer is a horseless carriage
Follow the users
Users reward simplicity
Listen to Napster
It’s the applications, stupid
Decentralization is a tool, not a goal
Where’s the content?
PCs are the dark matter of the Internet
Promiscuous computers
Nothing succeeds like address, or, DNS isn’t the only game in town
An explosion of protocols
An economic rather than legal challenge
All you can eat
Yesterday’s technology at tomorrow’s prices, two days late
30 million Britney fans does not a revolution make
Peer-to-peer architecture and second-class status
Users as consumers, users as providers
New winners and losers
3. Remaking the Peer-to-Peer Meme
From business models to meme maps
A success story: From free software to open source
The current peer-to-peer meme map
The new peer-to-peer meme map
File sharing: Napster and successors
Mixing centralization and decentralization: Usenet, email, and IP routing
Maximizing use of far-flung resources: Distributed computation
Immediate information sharing: The new instant messaging services
The writable Web
Web services and content syndication
Peer-to-peer and devices
Strategic positioning and core competencies
4. The Cornucopia of the Commons
Ways to fill shared databases
CDDB: A case study in how to get a manually created database
Napster: Harnessing the power of personal selfishness
The commons
II. Projects
5. SETI@home
Radio SETI
How SETI@home works
Trials and tribulations
Human factors
The world’s most powerful computer
The peer-to-peer paradigm
6. Jabber: Conversational Technologies
Conversations and peers
Evolving toward the ideal
Jabber is created
The centrality of XML
Pieces of the infrastructure
Identity
Presence
Roster
Architecture
Protocols
Browsing
Conversation management
Conclusion
7. Mixmaster Remailers
A simple example of remailers
Onion routing
How Type 2 remailers differ from Type 1 remailers
General discussion
8. Gnutella
Gnutella in a gnutshell
A brief history
Gnutella’s first breath
Open source to the rescue
What makes Gnutella different?
Gnutella works like the real world
A Gnutella cocktail party
A client/server cocktail party
Client/server means control, and control means responsibility
The client is the server is the network
Distributed intelligence
Different from Freenet
Gnutella’s communication system
Message-based, application-level routing
TCP broadcast
Message broadcasting
Dynamic routing
Lossy transmission over reliable TCP
Organizing Gnutella
Placing nodes on the network
Gnutella’s analogues
The Gnutella horizon
Cellular telephony and the Gnutella network
Ethernet
Cultivating the Gnutella network
Gnutella’s traffic problems
Host caches
Returning the network to its natural state
Private Gnutella networks
Reducing broadcasts makes a significant impact
The policy debates
Napster wars
Anonymity and peer-to-peer
Gnutella pseudoanonymity
Downloads, now in the privacy of your own direct connection
Anonymous Gnutella chat
Next-generation peer-to-peer file-sharing technologies
Gnutella’s effects
9. Freenet
Requests
Detail of requests
The data store
Keys
Key types
Content Hash Keys (CHKs)
Keyword Signed Keys (KSKs)
Signature Verification Keys (SVKs)
Keys and redirects
Conclusions
10. Red Rover
Architecture
The hub
The clients
The subscribers
Client life cycle
Putting low-tech “weaknesses” into perspective
Acknowledgments
11. Publius
Why censorship-resistant anonymous publishing?
Publius and other systems in this book
System architecture
Cryptography fundamentals
Encryption and decryption
Secret sharing
Hash functions
Publius operations
Publish operation
Retrieve operation
Update operation
Delete operation
Publius implementation
User interface
Server software
Client software
Publius MIME type
Publius in a nutshell
12. Free Haven
Privacy in data-sharing systems
Reliability with anonymity
Anonymity for anonymous storage
Partial anonymity
The design of Free Haven
Elements of the system
Storage
Publication
Retrieval
Share expiration
Document revocation
Trading
Receipts
Accountability and the buddy system
Communications channel
Reputation system
Introducers
Implementation status
Attacks on Free Haven
Attacks on documents or the servnet
Attacks on the reputation system
Attacks on anonymity
An analysis of anonymity
Future work
Conclusion
Acknowledgments
III. Technical Topics
13. Metadata
Data about data
Metadata lessons from the Web
Resource description
Searching
Resources and relationships: A historical overview
Foundations of resource description: Unique identifiers
A contrasting evolution: MP3 and the metadata marketplace
Conclusion
14. Performance
A note on terminology
Why performance matters
Bandwidth barriers
It’s a small, small world
An excursion into graph theory
The small-world model
Case study 1: Freenet
Initial experiments
Simulating growth
Simulating fault tolerance
Link distribution in Freenet
The impact of free riding
Scalability
Case study 2: Gnutella
Initial experiments
Fault tolerance and link distribution in Gnutella
The impact of free riding
Scalability
Conclusions
Acknowledgments
15. Trust
Trust in real life, and its lessons for computer networks
Trusting downloaded software
Message digest functions
Digital signatures
Digital certificates
Signature verification
Open source software
Sandboxing and wrappers
Trust in censorship-resistant publishing systems
Publius in a nutshell
Risks involved in web server logging
Anonymizing proxies
Censorship in Publius
Using the Update mechanism to censor
Publius proxy volunteers
Third-party trust issues in Publius
Other anonymity tools
SSL
Mix networks
Crowds
Denial of service attacks
Quota systems
CPU-based payment schemes
Anonymous e-cash payment schemes
Legal and physical attacks
Trust in other systems
Mojo Nation and Free Haven
The Eternity Service
Eternity Usenet
File-sharing systems
Napster
Gnutella
Freenet
Content certification
Trust and search engines
Distributed search engines
Deniability
Conclusions
16. Accountability
The difficulty of accountability
Special problems posed by peer-to-peer systems
Peer-to-peer models and their impacts on accountability
Purposes of micropayments and reputation systems
Junk mail as a resource allocation problem
Pseudonymity and its consequences
Problems with pseudospoofing and possible defenses
Reputation for sale—SOLD!
Common methods for dealing with flooding and DoS attacks
Caching and mirroring
Active caching and mirroring
Micropayment schemes
Varieties of micropayments or digital cash
Nonfungible micropayments
Extended types of nonfungible micropayments
Nonparallelizable work functions
Fungible micropayments
Freeloading
Fungible payments for accountability
Micropayment digital cash schemes
Making money off others’ work
Anonymous macropayment digital cash schemes
The use and effectiveness of micropayments in peer-to-peer systems
Identity-based payment policies
General considerations in an economic analysis of micropayment design
Moderating security levels: An accountability slider
Reputations
Early reputation systems online
Codifying reputation on a wide scale: The PGP web of trust
Who will moderate the moderators: Slashdot
Reputations worth real money: eBay
A reputation system that resists pseudospoofing: Advogato
System successes and failures
Scoring systems
Attacks and adversaries
Aspects of a scoring system
Collecting ratings
Bootstrapping
Personalizing reputation searches
Scoring algorithms
Privacy and information leaks
Decentralizing the scoring system
Multiple trusted parties
True decentralization
A case study: Accountability in Free Haven
Micropayments
The difficulty of distributed systems: How to exchange micropayments among peers
Micropayments in the Free Haven context
Reputation systems
Other considerations from the case study
Conclusion
Acknowledgments
17. Reputation
Examples of using the Reputation Server
Reputation domains, entities, and multidimensional reputations
Identity as an element of reputation
Interface to the marketplace
Scoring system
Reputation metrics
Credibility
Interdomain sharing
Bootstrapping
Long-term vision
Central Reputation Server versus distributed Reputation Servers
Summary
18. Security
Groove versus email
Why secure email is a failure
The solution: A Groove shared space
Security characteristics of a shared space
Mutually-trusting shared spaces
Anatomy of a mutually-trusting shared space
The key to mutual trust
Mutually-suspicious shared spaces
Message fanout
Fetching lost messages
Shared space formation and trusted authentication
Inviting people into shared spaces
The New-Member-Added delta message
Key versioning and key dependencies
Central control and local autonomy
Practical security for real-world collaboration
Taxonomy of Groove keys
19. Interoperability Through Gateways
Why unification?
Why not an ÜberNetwork?
Why not an ÜberClient?
Why not just use XML?
One network with a thousand faces
Well-known networks and their roles
Freenet
Gnutella
Mojo Nation
Free Haven and Publius
Problems creating gateways
Problems with inserts
Problems with requests
Freenet
Gnutella
Mojo Nation
Publius
Free Haven
Gateway implementation
Existing projects
Conclusion
Acknowledgments
20. Afterword
Precedents and parries
Who gets to innovate?
A clean sweep?
A. Directory of Peer-to-Peer Projects
B. Contributors
Index
Copyright
← Prev
Back
Next →
← Prev
Back
Next →