I've been asked this a few times, and someone just came looking for an article about it, so I'll write one up quickly.

This torrent shows 10,000 peers, why am I only connecting to 100 of them?

TCP/IP connections between peers take up a surprising amount of overhead, both in memory and bandwidth. BitTorrent also has some protocol overhead. Having too many connections means you're burning memory and using up bandwidth which you could otherwise use downloading and uploading. Assuming you have an open server port and aren't firewalled, and aren't flooding your upstream, it shouldn't even take 100 peer connections to max out your download bandwidth.

Just a little history: Back when Nullsoft's Gnutella opened up the possibilities of P2P networks with their small-world network implementation, many (including me) were amazed at how well it worked; opening SEVEN SEPARATE CONNECTIONS for network links was unprecedented. Only public servers were so prolific, and it was thought that the overhead involved would make the software useless. Turns out Windows 95 was much more capable than we'd thought and a new era was opened.

Pre-BitTorrent, other attempts had been made at swarming file transfer, but most focused on proportional data transfer and as a result bogged down in overhead, splitting the software's focus until it became useless for the task. One of Bram Cohen's several strokes of genius was to limit the number of connections the client would upload on, concentrating the data transfer and improving clients' ability to obtain, verify and retransmit information.

I can't resist the opportunity to dis BitComet again, so I'll mention that client's propensity to upload at low rates to everyone, reducing the effectiveness of the entire P2P net.