Patent ID: 7349983

Claim:
A device for generating or maintaining a data network, said device at a first node in the network and comprising: a data processing unit; at least one data connection to said data network, and software having: a receiving routine for receiving data packages from at least one transmitting device at a second node in said data network; a request routine for sending a first request for one or more data packages to said second node in the network; a request handling routine for handling a second request for one or more data packages from at least one receiving device at a third node in the network, wherein the first node takes no action to receive from another node the one or more data packages that are the subject of the second request if the one or more data packages that are the subject of the second request were not previously requested by the first node when the second request is received by the first node; a transmission routine for transmitting at least one of said one or more requested data packages subject of the first request, received from sad at least one transmitting device at said second node in said data network, to said at least one receiving device at said third node in response to said second request; a search routine for searching new potential transmitting devices in said network, wherein said software, when running on said device at said first node, allows said device at said first node to receive and transmit data comprising data packages and: use the search routine and receive from another device running said software at another node in the network, at east address data identifying a location of the second node; use at least some of said address data identifying a location of the second node to transmit at least said first request for said one or more data packages to at least one other device at the second node; receive at least one of said one or more data packages transmitted by said at least one other device at said second node in reply to said first request, said other device thus becoming a transmitting device at the second node; after transmitting said first request, receive at least said second request from at least one further device at said third node for at least a portion of said one or more data packages; in reply to said second request, transmit at least one data package of said one or more data packages previously received from said second node to said at least one further device at said third node, while at least one of said one or more data packages is being transmitted from the second node to the first node, said further device thus becoming a receiving device at said third node, and wherein the first, second and third nodes are part of said data network.