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.

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 upsup_s where upsup_s is the upload speed in bits/second.
  • There are NN clients all wanting to download the same file from the server. Client ii can upload at a rate of upiup_i bits/second and download at a rate of dwnidwn_i bits/second.
  • The size of the file that all the peers want is SS.

Client-Server

Let’s start with the client-server architecture. The following can be observed.

  • Since NN clients each want a file of size SS, the server will have to upload NSNS bits. The upload rate of the server is upsup_s so the server will take at least NSups\frac{NS}{up_s} time to transmit the file to all NN clients.
  • The client with the lowest download rate (dwnmin=min(dwni)dwn_{min} = min(dwn_i)) will take at least Sdwnmin\frac{S}{dwn_{min}} 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.:

max{NSups,Sdwnmin}\max{\{\frac{NS}{up_s},\frac{S}{dwn_{min}} \}}

Get hands-on with 1400+ tech skills courses.