Computer Networking Lecture Notes
18 April 2013 • Peer-to-Peer Networks
Outline
Systems and applications.
Peer-to-peer networking and architecture.
Peer-to-peer routing.
Data management.
Load balancing and replication.
Peer-to-Peer security.
Trust and reputation.
Peer-to-peer programming.
Systems and Applications
What do peer-to-peer networks do?
File sharing: Napster, Gnutella.
Backup services: pStore, Pastiche.
Data management: XML content routing.
Peer-to-peer-based caching: Squirrel.
Communication and collaboration: Jabber, Skype.
Mobile applications.
Peer-to-Peer Systems
What are peer-to-peer networks?
Networking and computing.
Why bother? Benefits and applications.
Challenges and design issues.
Peer-to-peer vs grid computing.
Peer-to-peer vs Grid
One point of view: there’s no difference.
Data management vs manipulation.
Data management: databases, indexing.
Data manipulation: calculation, visualization.
Peer-to-peer emphasizes data management.
Grid emphasizes data manipulation.
Both apply the same tools to different ends.
Peer-to-Peer Architecture
Taxonomy: where is control?
Also: how different are the parts?
Central architecture.
Control is here; distinguishable parts.
Decentralized architecture.
Control is everywhere, parts uniform.
Hybrid architecture.
Managed dynamics.
Peer-to-Peer Routing
Evaluation metrics: Efficiency, utility, coverage, scalability.
Unstructured peer-to-peer network routing.
Routing with minimal knowledge.
Structured peer-to-peer network routing.
Imposing structure to gain knowledge.
Hybrid peer-to-peer network routing.
Structured systems in uncertain environments.
Data Management
What peer-to-peer can do for data management.
What data management can do for peer-to-peer.
Improved navigation and query techniques.
Data sharing: syntax vs semantics.
Indexing.
Information retrieval.
Structured data management (databases).
Load Balancing and Replication
Load balancing — uniform system use.
The system has no hot (over-used) or cold (under-used) spots.
A complex economic model.
Replication — copying data.
A load balancing technique.
The central technique in reliability.
Load Balancing
A resource management (allocation) problem.
Space, time, bandwidth, …
Static or dynamic load balancing.
Usually not a choice, but a mixture.
The three steps are measure, allocate, evaluation.
A cyclic sequence: evaluation → measurements.
Replication
Copying resources for various objectives.
Full or partial resource replication.
Replication distribution based on measurements or pre-emptively.
And don’t forget undoing replication; caching.
Changing replicas bring up consistency problems.
Immutable resources is a good dodge here.
Peer-to-Peer Security
Directly attack peer-to-peer mechanics.
Stop or significantly impair network operation.
Indirectly subvert peer-to-peer properties.
Attack content or indexing (rick-rolling).
Violate confidentiality or anonymity guarantees.
Shades over into legal and political areas.
Peer-to-Peer Attacks
Stop or significantly impair network operation.
Attacks to disable or hijack routing.
Storage and retrieval attacks.
Denial of service attacks.
Recognizing and defending against attacks.
Peer-to-Peer Properties
Indirectly subvert peer-to-peer properties.
Data integrity and verification.
Computational integrity: SETI@home.
Free riding and fairness: bittorent.
Privacy and anonymity: Freenet.
Overt and covert attacks.
Trust and Reputation
Concepts.
Trust models.
Credential-based trust.
Individual reputation and trust.
Social relationships and trust.
Trust management.
What is Trust?
Trust defined psychologically, sociologically, statistically, …
Trust in actions and recommendations.
Measures of trust on various scales.
Trust properties to work around or maintain.
Autonomy (context dependence).
Asymmetry
Quasi-transitivity
Multivalent
Trust Models
A trust model realizes a particular trust strategy.
A trust model can be based on reputation or credentials.
Trust reputation is based on direct experience.
A
trusts (doesn’t trust)
B
.
Trust credentials is based on indirect reputation.
Vera “trusts”
B
;
A
“trusts” Vera.
Peer-to-Peer Programming
How do you make a peer-to-peer network?
Low-level peer-to-peer programming.
Assemble a network from first principles.
High-level peer-to-peer programming.
Assemble a network from libraries or systems.
Testing and deployment environments.
A tendency to combine testing and deployment.
Summary
Peer-to-peer networks are distributed decentralized data managers.
Distribution should bring advantages to reliability and performance.
Usual networking issues and problems are amplified in peer-to-peer networks.
As well as other peer-to-peer specific issues and problems.
Peer-to-peer networks are a protocol stack on top of the application layer.
References
Introduction (Chapter 1) in
Peer-to-Peer Computing
by Quang Hieu Vu, Mihai Lupu, Beng Chin Ooi from Springer, 2010.
Systems and Applications (Chapter 9),
Ibid
.
This page last modified on 2012 December 4.