A method for aggregating, sharing and dynamically routing and allocating bandwidth from a plurality of wired and wireless networks that are geographically disbursed over a wide area, and providing some or all of the aggregated bandwidth to any user on an on-demand basis, the method comprising the steps of:
- developing and updating a network table that comprises a list of nearby RCGs, their bandwidth capabilities over local, remote and wireless connections, and their location with respect to a requesting RCG;
- determining an optimum amount of bandwidth needed for an immediate data transfer needs of the requesting RCG;
- determining which of the nearby RCGs should be contacted for access to unused bandwidth to support a transfer of the requesting RCG, based upon their unused local bandwidth capacity, and a distance and a number of hops between the RCGs and the requesting RCG;
- sending a request to the supporting RCGs asking for use of a portion of the unused bandwidth;
- receiving responses from the supporting RCGs with information about how much bandwidth each selected RCG can share;
- selecting which of the supporting RCGs to use for optimal use of needed bandwidth;
- contacting the selected RCGs with control information for sending data to the requesting RCG;
- sending packets of the data from the selected RCGs to the requesting RCG;
- reassembling the packets of the data at the requesting RCG;
- and
- relinquishing the bandwidth of each of the selected RCGs.