Abstract: A distributed file storage and communication system stores redundant copies of segments of a file on multiple remote storage units. The file to be stored is partitioned into multiple fragments, and each of the fragments is redundantly stored on multiple remote storage units. A file tracker is maintained that identifies where each fragment is stored. Providing the file tracker to another user allows the other user to access the file. To receive and/or retrieve the file, the system retrieves each fragment by attempting to download the fragment from one of the remote storage units identified in the file tracker for the fragment; if the selected remote storage unit is not available, another storage unit is selected for attempting the download. The selection of storage units to receive each fragment may be random or targeted, or a combination of both. Preferably, each fragment is encrypted, and the intended recipient is provided a key to decrypt the fragments.