When we started talking to people about the project, we’d often find that some didn’t get how p2p works. Not that you have to understand it to use it, but if you do want to, we produced a couple of simple animations that explain how p2p works. (First, we mean p2p as in peer-to-peer software and not p2p as a philosophy, though there are obvious parallels!.)
What is p2p? It’s a method of distributing data. Where it works well is when you need to distribute large amounts of data, for example a film. To fully understand p2p you need to first understand the way distribution works for non-p2p online. Currently for streaming content like, YouTube, this is how it works:
In the video you can see that the users (on the right) request the data from the host (on the left) – as each user requests, the host sends each the data, broken up into smaller chunks for ease of transmission. Notice what happens with the last user, at the bottom-right; as the host’s capacity fills up with the requests from the other users, the final user has to wait. This is what is happening when a video you are watching pauses mid-way; the host is too busy and all of it’s capacity is temporarily taken.
By contrast, here is the same distribution requests, but done using p2p:
In the video, again, the users (on the right) request the data from the host (on the left) – however as the host sends out the data, it sends a different bit to each user. This means that each user (aka peer) can share this bit of data they have with the other users (… to peer). Thus the request from the 4th user does not go unanswered as the distribution capacity grows, rather than falls, as users join in.
p2p as a concept…
The above were developed to illustrate how p2p works as software, but you can also see how it might work for non-software related applications. What we would see, rather then a file being share, the workload being shared; imagine each part of the whole image as small task or contribution. Together, the power of the contributions can create a whole shared by the group.
(Based on a post at the CatBot Blog.)