Some statistics on partial downloads

I started wondering how common are partial downloads, ie. downloads which do not fetch a whole piece, but only some part of it. I kinda assumed most downloads would probably fetch a full piece, but when I compared the bandwidth usage to summing up downloads manually as they are logged, the discrepancy was quite big.

I’ve captured a few hours of traffic using tcpdump and wrote some very crude code to compare requested downloads to actual piece sizes. In this specific sample it turned out that…

  • only about 10% of download attempts fetch the whole piece,
  • strangely, about 20% of download attempts fetch the whole piece except for exactly 256 bytes,
  • the requested amounts over the whole sample were only about 40% of the total size of requested pieces.

Remember that the requested sizes from a node’s point of view are after Reed-Solomon, so 256 bytes is probably equal to skipping around 7424 bytes of the original file.

The statistics above make me a bit suspicious about the results of my past experiments. I’d probably need to instrument a fresh node with some additional code to accurately measure the effect of this discovery on my measurements, so not going to redo them any soon.


Please take in account, that audit requests (unlike repair requests) took only small part of the piece.

Audits were below one percent of the sample, they wouldn’t really affect these numbers much.