BitTorrent protocol is designed in a distributed way to reuse also data blocks of incomplete files. Your computer advertises certain files and than your peers are requesting data blocks - initially your advertisement goes to your direct peers which is than further relayed by distributed database (hash table). Thus the number of peers which know your files usually grows over time.
Each peer's request generates some inbound traffic, therefore your inbound traffic may also grow over time.
Here is screenshot of my client with marked:
- protocol overhead
- number of connections
- distributed database nodes
In addition when you're seeding highly requested but rare file much more peers would like to download from your machine which obviously will generate a lot of inbound traffic.
To some extend you can reduce this impact by fiddling with Torrent client parameters such as number of concurrent downloads, open and half-open connections and so on.
I usually reduce the number of allowed connections as my home router has a tendency to hang with too many connections - that's a typical flaw of cheap SOHO routers as opposed to professional, dead expensive, ones.
Here is the screenshot of my client bandwidth-related options:
My router perfectly sustains 200 open connection, but when my kids start torrenting all of us need to reduce this option not exceed few hundreds connections in total, which in the same time reduces protocol traffic.
Unfortunately I was not able to find a good BitTorrent protocol spec. This one only partially answers the questions: