Torrenting files is a peer 2 peer file transfer method. As opposed to a single server, where everyone has to queue one after each other to get the files (what you do in FTP), with Bittorrent everyone downloads the same file simultaneously.
You would think this is not different to what http does (bandwidth sharing), but wait, there is more…
Files are split in several small chunks, that way you don’t have to give the entire file to everyone at the same time. What happens is that you smartly try to give different chunks to different users, and then the users give each other the missing chunks themselves, while still getting more chunks from you.
So by the time you upload 100% of a file, you have given this file to a potentially unlimited number of users. With traditional methods, only a single user would have gotten the file (in the same amount of time), or two users if they both waited twice as long (what happens with http sharing bandwidth methods).
I hope this clarifies things a little. In general most p2p file transfer methods work this way, but bittorrent became one of the most used and efficient methods. Furthermore you don’t have to “seed” (share) the file all the time, as soon as 100% has been uploaded, if other people are nice, they themselves can serve this file to others, and you can take a break from time to time.
Also you don’t have to spend your entire bandwidth doing this, especially after 100% of the file is out there (even in separate chunks). Imagine there are 100 users downloading your file, and you give a different piece to everyone, then you disconnect and let themselves sort it out. It CAN work like that (when people behave nicely), I have done it in the past, and some clients offer a “super seeding” mode to enforce this. You can upload your chunks more slowly, so don’t worry if you need to limit your bandwidth. In fact you should, because torrenting can easily eat whatever upload bandwidth you have, and if your link is asymmetric you are going to slow down your download side.
As for trackers and .torrent files, they were originally needed, but no longer. There are fully decentralized methods (DHT) now, you can just share a “magnet” url and that’s it. But if you want you can still make a .torrent, share it using traditional methods (its a very small file) and then use a public tracker (hoping it doesn’t disappear tomorrow).
Which client is best is a personal choice, I’d recommend you stick to open source clients, like qbitorrent. You can also use cli only or web ui clients running in remote boxes, some people also rent those.
Opening ports is nice to speed up things to some, but not strictly needed.