P2P vs. Client-Server
Before we move on with the details of BitTorrent, it's useful to do a quantitative comparison of the P2P architecture with the client-server architecture.
We'll cover the following
Quantitative Comparison of P2P with Client-Server
Let’s calculate how long it will take to transmit a file from one server to a number of clients based on both the P2P and server-client architectures. The calculations will be performed based on the following givens.
- A server that can upload at a rate of where is the upload speed in bits/second.
- There are clients all wanting to download the same file from the server. Client can upload at a rate of bits/second and download at a rate of bits/second.
- The size of the file that all the peers want is .
Client-Server
Let’s start with the client-server architecture. The following can be observed.
- Since clients each want a file of size , the server will have to upload bits. The upload rate of the server is so the server will take at least time to transmit the file to all clients.
- The client with the lowest download rate () will take at least time to download the full file.
So, in total the time taken to transmit the file will be the maximum of both of the times above, i.e.:
P2P
We can make the following observations:
- Initially, only the server has the file. It has to throw the file out into the network and to do that, it will take at least time. While the file is being sent out into the network of peers, they start to distribute it amongst themselves.
- The peer with the lowest download rate () will take at least time to download the full file.
- The file cannot be transmitted faster than the total upload speed of the entire network: (). Since the file has to be distributed to all peers, bits have to be transmitted, that will take time.
Therefore, the time taken in total to distribute a file of size to peers is:
Note that as the number of clients/peers, , grows, the time taken by the client-server architecture also grows. Here is a graph of how the distribution time grows for each architecture as the number of clients/peers grow:
P2P networks are extremely mathematically scalable. The resources of a P2P system grows with the number of peers in the system. Thus, applications with P2P architecture are self-scaling.
Please attempt the question in the widget below. Our AI will evaluate your answer.
Quick Quiz! #
In a client-server model, the rate at which a client can download a file is limited by the ______.
server upload rate
client download rate
min( a , b )
Let’s now get into how processes communicate!
Get hands-on with 1400+ tech skills courses.