Why Torrents Download Parts of Other Files
When you select a single file to download from a multi-file torrent, your client may still download small portions of the files immediately preceding or following it. This occurs because the BitTorrent protocol processes data in fixed-size blocks called “pieces” rather than on a file-by-file basis. Because file boundaries rarely align perfectly with piece boundaries, a single piece often contains the end of one file and the beginning of another, requiring the client to download the entire piece to verify its integrity.
The Contiguous Data Stream
When a torrent is created, the software treats all the files in the batch as one continuous stream of data. This stream is sliced into uniform pieces—typically ranging from 512 KB to 16 MB depending on the total torrent size.
The protocol does not adjust piece sizes to match individual file sizes. Instead, it places the data back-to-back:
- File A ends in the middle of a piece.
- File B begins immediately within that same piece.
Cryptographic Hash Verification
Every piece in a torrent has a corresponding cryptographic hash
(usually SHA-1 in traditional torrents) listed in the
.torrent metadata file. When your torrent client downloads
a piece, it must download all the bytes within that piece to calculate
the hash and verify that the data is not corrupted.
Because verification happens at the piece level—not the file level—a torrent client cannot download only the half of the piece that belongs to your chosen file. It must retrieve the entire piece, which includes the overlapping bytes from the adjacent, unselected file.
How Torrent Clients Handle Boundary Data
To store these boundary pieces, torrent clients handle the extra data in a few common ways:
- Placeholder Files: The client may create the adjacent file on your storage drive, writing only the few kilobytes or megabytes necessary to complete the shared piece.
- Part Files: Some clients (like qBittorrent or
uTorrent) store boundary data in a hidden
.partsfile to avoid cluttering your folders with unwanted, incomplete files.
In newer protocol versions, such as BitTorrent v2, file trees use per-file hashing structures (Merkle trees) that align piece boundaries to individual files, resolving this issue. However, most torrents still utilize the original BitTorrent v1 specification, making shared boundary pieces a standard technical necessity.