Patent ID: 8661149

Claim:
A communication network comprising: a plurality of communication devices, at least some of which comprise both client and server functionalities, at least some of the client functionalities including a search function that ascertains network addresses of others of the communication devices that allow the server functionalities of the others to be used; and a retrieval mechanism in said at least some of the client functionalities that obtains information about the server functionalities of said other communication devices; wherein the server functionalities provide usable services in the communication network; wherein a server functionality is selected for use by a client functionality using a state information comprising a current utilization level of each of the server functionalities and the cost to use each of the server functionalities; wherein each of the communication devices searches for neighboring ones of the communication devices and creates a servant list of the neighboring communication devices; wherein each of the communication devices maintains the current utilization level of each server functionality of the neighboring communication devices in the servant list by performing a repeating search at timed intervals; wherein one of the communication devices performs a gateway search for a gateway among the neighboring communication devices in the servant list; wherein a first of the neighboring communication devices comprises a first gateway, and returns a first hit response to said one communication device; wherein a second of the neighboring communication devices does not comprise a gateway, and forwards the gateway search to additional neighboring communication devices of the second neighboring communication device; wherein one of the additional neighboring communication devices comprises a second gateway, and returns a second hit response to said one communication device; and wherein said one of the communication devices chooses one of the gateways for use based on a respective number of available channels on each gateway and a respective propagation time for the first and second hit responses.