1. A method of transferring a file from a source node to a terminal node comprising: sending a request from the terminal node to each of a plurality of recipient nodes to request transfer of a respective portion of the file from the source node; each recipient node setting up a connection to the source node and receiving their respective portion of the file each recipient node forwarding the portion of the file received to the terminal node; and assembling the portions of the file received from the plurality of recipient nodes at the terminal node.