a method , apparatus , and computer program product for distributing data includes transmitting a request for a data file from a first client electronic device . at least a first portion of the data file is transmitted from a second client electronic device to the first client electronic device . at least a second portion of the data file is transmitted from a third client electronic device to the first client electronic device .