The key advantage of BitTorrent exchange is that it doesn't have a central point. For example, if I download some file from a server, the success of this operation strongly depends on how well this server is functioning, its bandwidth, and overall quality of the Internet connection between me and this server. If the server is located in the other part of the world, and, as a result, the packets need to pass through multiple intermediate points and routers before they reach me, the download speed will be gravely affected. Similarly, if the server itself is unstable, or overloaded with requests, or has a low-quality Internet connection, this also will slow down our interaction. For example, if I try to download some massive file, like, weighing hundreds of Gb, (Which is not totally unusual situation nowadays), it will take me a long time to complete this operation. Also, if the server is suddenly shut down because of, say, copyright violations, or just because it's so decrepit, rusty, and falling apart, I (as well as many other users trying to download some content from it) am left without any other alternative than trying to find this content elsewhere.
So, BitTorrent protocol allows getting around this problem of the single-point failure. The main idea is that when I download something from the BitTorrent network, I download it from many computers simultaneously. This both significantly increases the speed of this process and makes the process more robust. If one or several computers I'm connected to suddenly go offline, it won't interrupt my operation. There will still be enough sources (peers) to keep the process going. What's also interesting, while I download something from the computers on the BitTorrent network, those computers might simultaneously download this same thing from mine. It goes like that: Every file, distributed through BitTorrent, is split into small chunks. I check what computers have what chunks, connect to those computers, and begin to download them. Even before I download the complete file, at some point I have some pieces of it. I can share those pieces with other members of the network. It might even turn out that I download some file from the computers, downloading the same file from mine. For example, I might have one set of fragments of this file, and they have a different set of this file's pieces. Thus, exchanging the information each of us possesses, in the end, we all have a complete file.
Ok, the important aspect of BitTorrent network functioning is how I find the computers, having the information I need. This is where the concept of DHT comes into play. DHT or Distributed Hash Table is a data structure, storing information about who on the network possesses what information. Each chunk of each file is identified by hash. Information about those file chunks and their owners is circulating throughout BitTorrent network. The DHT is structured in a way that allows finding the necessary information real quick. (like a binary tree or something)
So, breaking down the process of finding information on BitTorrent:
First, I get a BitTorrent file, containing an address of the node, storing a list of computers that have pieces of file I want to download. This node is called "Tracker." There can be lots of such tracking nodes on the BitTorrent network, so, for example, shutting down one Tracker node wouldn't prevent the network from functioning. (Speaking of technical possibility to shut down torrents)
So, after I receive from Tracker an address or addresses of computers that have the parts of the file I need, I connect to them directly and begin downloading.
Also, those computers supply me with information about other computers, having the pieces of the same file. I add them to my list of sources too, connect to them, and the process repeats. Eventually, I accumulate the information about most nodes, storing chunks of the file I download, and my downloading process speeds up enormously because now I download from a couple of dozen computers simultaneously.
At the same time, all those computers, I'm connected to, also add information about me on their lists. Naturally, at this point, I become an equal participant in the exchange. In other words, I can share information as well as receive it. The moment those file fragments begin accumulating on my computer, other BitTorrent clients can connect to me and start downloading missing parts.
In other words, it's hard to tell who in the BitTorrent swarm gives and who takes; everybody is somewhat doing both at the same time.