BitTorrent is a peer-to-peer communication protocol. It is generally used to send and receive huge files. In the regular world of client-server architecture, the client requests the server for resources. This inherently puts a lot of load on the server. Even if other people are having the file, they cannot contribute in sharing the resource.
BitTorrent protocol takes another approach. Each entity in the network is capable of sharing the file. Let's say that 10 people have a file. A new client can request all of these 10 people for different parts of the file. This distributes the load across the whole network. Using this approach, we would not require huge servers.
In this series, we'll create our BitTorrent client from scratch in Python.