Even if the dropped message scenario occurs rarely, over time it will cause the indices in the system to fill up with files that aren't really being shared. Obviously, some sort of fault-tolerant message propagation scheme is needed. B repeats this process until it receives an Ack from some server before that server fails, or until it runs out of unmarked servers. This scheme tolerates one simultaneous fault during a message propagation. By simultaneous, we mean in the same leg of the message propagation process.
C then fails.
However, our architecture is open and supports the easy addition of other fault-tolerant protocols in the future as necessary. If the client has an open connection slot, the download connection is accepted, or else it is rejected. In the case of a resumed download, the client sends a starting file position to the hosting client, and the host jumps to this position in the file before sending it. Baring malicious and deceptive renaming of files, this is a rare case.