I was looking through MLDonkey wiki when I ran into this technical yet compact explanation of how BitTorrent protocol works. I already know how BT works but I thought my fellow geeks might find this useful since the diagrams at the official BT site aren't that useful:
It [BitTorrent] divides shared data (a single file or a directory) into pieces, typically of 256 KiB. A SHA-1 checksum is computed for each piece, and used to check the piece has been correctly downloaded. The checksums are stored in a .torrent file, along with filenames. The .torrent file also nominates a tracker, a Web resource that introduces peers to each other. Peers contact each other, learn what pieces they have available, request the rarest (least commonly seen) pieces first, and send requested pieces.
Just in case you are wondering, MLDonkey is a universal client of sort for many P2P networks including FastTrack, eDonkey2000, Gnutella, and Direct Connect. It supports BitTorrent too but then BitTorrent is not really a network. While MLDonkey is open source, it's written in Ocaml which is powerful but non-mainstream.