Client/Server vs. P2P
With traditional downloads, the server is a bottleneck. With P2P (ala Bittorrent), downloads get better for most as more peers join. (Clarification: better than without P2P for the same number of downloaders.)
3 Comments
RSS feed for comments on this post.
Leave a comment
Sorry, the comment form is closed at this time.

I note that your diagram shows the average download performance getting
monotonically worse the more peers join in, despite your statement
to the contrary.
In your diagram, when only one person is downloading that person is
receiving 1 unit of download. (Let’s assume it’s effective bps received
or something.)
When three people are downloading, the average download has dropped to
(1 + 0.5) / 2 or .75. When four people are downloading, the average
download is (.25 + .25 + .75 + 1) / 4 or 0.6875. It looks like the
average download is inversely related to the number of people.
Now, you could say that this is still better because the total being
downloaded is growing, and because the inverse relationship is gentler
than the one with a single server, but it’s hard to see how the situation
is actually getting better for most. Your numbers suggest the opposite.
Comment by James Wetterau — 2/4/2005 @ 11:51 am
There are maybe two things that are unclear here.
1) My main point was that performance is getting better for most with respect to how it would be with the same number of users without the P2P interaction. There’s an interesting case here that I’ve simplified away to make a point. If your total possible download speed is greater than the upload speed of the server, you could potentially do download speeds faster with P2P than you could possibly get from one server.
2) As the numbers grow beyond the simplified example here, it’s likely that there will be a number of uploaders-only (people who have finished downloading the file and have left their client open to continue to serve it). These people will contribute to the download speeds of others.
Comment by adam — 2/4/2005 @ 12:44 pm
I thought there was something like that to the kind of P2P network you’re talking about. Interesting.
There’s probably also another interesting point to be made about bandwidth costs. The total bandwidth being consumed by:
1) the server
2) each individual downloader either:
a) as a pure downloader (sometimes uncharitably called a “leech")
b) as a normal user
c) as a generous peer that uploads more than downloads
… I bet would have interesting statistical profiles. It’s not obvious to me how it would work out, except that the server owner almost certainly wins by harnessing the P2P network for distribution.
I think this is a really interesting case for illustration because I can think of three separate things that you could illustrate:
1) the simple network streams
2) numerical plots of the average and distribution of values for various quantifiables: download times, costs, total throughput of the system, simultaneous users supported, max/mins for all of the above, performance under exceptions (e.g. a peer drops off the net), and differentials between different kinds of networks for all of the above.
3) algorithmic analysis (e.g. flow charts, computations of the performance of the algorithm) There’s another heavily numerical aspect to the algorithm, which would be to find optimal values for different parameters, (e.g. how many peers should each peer try to support at max, retry times, etc.), which might take you into some pretty difficult math.
This is a good example of a problem that has several different components that could benefit from graphical analysis, as well as algorithms and numerical analysis. It’s a messy real-world problem that can benefit from being looked at several different ways using all kinds of tools.
Comment by James Wetterau — 2/4/2005 @ 1:29 pm