There are a fair number of different opinions:
Pro: Network, storage, computational power of peers may be leveraged
Con: Routing, location, synchronizing may not scale; “fat” clients needed
Pro: Data and computation may be close to peers, high degree of distribution
Con: Replicated, distributed state and computation; complex architectures
Pro: No single point of failure/robustness; system may be self-configuring, replicated, autonomous
Con: Ensuring consistent availability; having knowledge of network state
Pro: Necessary in order to maintain the good performance of P2P
Con: Difficult to ensure
Pro: Replication, no Single Point of Failure
Con: Cryptographic security difficult to establish without central authority
Pro: Robustness against Denial of Service attacks; anonymity
Con: Complex, decentralized security architecture
Pro: Adds security, difficult to suppress information
Con: Not easy to ensure, what if running the system becomes a crime? Should all information be available?
http)
| Reachable Users | ||||||||
|---|---|---|---|---|---|---|---|---|
| T=1 | T=2 | T=3 | T=4 | T=5 | T=6 | T=7 | T=8 | |
| N=2 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 |
| N=3 | 3 | 9 | 21 | 45 | 93 | 189 | 381 | 765 |
| N=4 | 4 | 16 | 52 | 160 | 484 | 1,456 | 4,372 | 13,120 |
| N=5 | 5 | 25 | 105 | 425 | 1,705 | 6,825 | 27,305 | 109,225 |
| N=6 | 6 | 36 | 186 | 936 | 4,686 | 23,436 | 117,186 | 585,936 |
| N=7 | 7 | 49 | 301 | 1,813 | 10,885 | 65,317 | 391,909 | 2,351,461 |
| N=8 | 8 | 64 | 456 | 3,200 | 22,408 | 156,864 | 1,098,056 | 7,686,400 |
Raising N (number of connections open) and T (number of hops) extend the number of reachable users geometrically.
Assuming balanced & equally distributed network graph
From Ritter 2001
| Bandwidth Generated in Bytes (S=83) | ||||||||
|---|---|---|---|---|---|---|---|---|
| T=1 | T=2 | T=3 | T=4 | T=5 | T=6 | T=7 | T=8 | |
| N=2 | 166 | 332 | 498 | 664 | 830 | 996 | 1,162 | 1,328 |
| N=3 | 249 | 747 | 1,743 | 3,735 | 7,719 | 15,687 | 31,623 | 63,495 |
| N=4 | 332 | 1,328 | 4,316 | 13,280 | 40,172 | 120,848 | 362,876 | 1,088,960 |
| N=5 | 415 | 2,075 | 8,715 | 35,275 | 141,515 | 566,475 | 2,266,315 | 9,065,675 |
| N=6 | 498 | 2,988 | 15,438 | 77,688 | 388,938 | 1,945,188 | 9,726,438 | 48,632,688 |
| N=7 | 581 | 4,067 | 24,983 | 150,479 | 903,455 | 5,421,311 | 32,528,447 | 195,171,263 |
| N=8 | 664 | 5,312 | 37,848 | 265,600 | 1,859,864 | 13,019,712 | 91,138,648 | 637,971,200 |
Assuming balanced & equally distributed network graph
From Ritter 2001
| Bandwidth Incurred in Bytes (S=83) | ||||||||
|---|---|---|---|---|---|---|---|---|
| T=1 | T=2 | T=3 | T=4 | T=5 | T=6 | T=7 | T=8 | |
| N=2 | 332 | 664 | 996 | 1,328 | 1,660 | 1,992 | 2,324 | 2,656 |
| N=3 | 498 | 1,494 | 3,486 | 7,470 | 15,438 | 31,374 | 63,246 | 126,990 |
| N=4 | 664 | 2,656 | 8,632 | 26,560 | 80,344 | 241,696 | 725,752 | 2,177,920 |
| N=5 | 830 | 4,150 | 17,430 | 70,550 | 283,030 | 1,132,950 | 4,532,630 | 18,131,350 |
| N=6 | 996 | 5,976 | 30,876 | 155,376 | 777,876 | 3,890,376 | 19,452,876 | 97,265,376 |
| N=7 | 1,162 | 8,134 | 49,966 | 300,958 | 1,806,910 | 10,842,622 | 65,056,894 | 390,342,526 |
| N=8 | 1,328 | 10,624 | 75,696 | 531,200 | 3,719,728 | 26,039,424 | 182,277,296 | 1,275,942,400 |
Searching for 'grateful dead live' generates a lot of traffic, when N and T grows. These calculations only consider search – not the cost of actual file transfers.
Assuming balanced & equally distributed network graph
From Ritter 2001
Construct a peer, that can discover and list other peers. In essence, implement functionality similar to 'ping' and 'pong' from Gnutella. However, you are free/encouraged to create your own (extensible) protocol.
Each peer should publish a “quality value”, adjustable upon launch, signifying its strength.
The program must be interactive (though a GUI is certainly not necessary), and should run on Linux.
You are free to use any programming language available. However, your program must require no more setup than
“untar; make; make test” or similar.
Accompany the prototype with source and a short report (2-3 pages) detailing your assumptions (e.g. does your system work across subnets/firewall etc), protocol, design choices, and usage instructions.
Include information about all group members: Full name, user name, and student ID.
The exercise is mandatory and on a group basis.
Due 18:00 6/9/2006 by email to <n.o.bouvin@daimi.au.dk>