Patent ID: 7627644

Claim:
A method of caching data over a network, said method comprising the steps of: estimating capacities of each of a plurality of peers connected to said network, wherein for each said peer, multiple capacities are estimated at different points over time, and wherein each said estimate of capacity for each said peer is the product of the probability of the peer being on-line and the bandwidth available to said peer; estimating a demand curve for said data from said plurality of peers connected to said network based at least partly on a sum of demand curves of demand for each peer at different points over time, wherein for each peer at each point in time, the demand is a product of one of the estimates of capacity of the peer, a probability of the peer wanting to download said data, and a desirability rating of an author of said data; estimating a supply curve for the data from the plurality of peers connected to the network based at least partly on a sum of supply curves of supply for each peer at different points over time, wherein for each peer at each point in time, the supply is a product of one of the estimates of capacity of the peer, and a probability of the peer having said data; selecting one or more of the peers so as to balance load on the peers, wherein the estimated capacities of the selected one or more peers vary with time in a similar manner to the demand curve and are utilized to reduce differences between the estimated demand and supply curves at said different points over time; and proactively caching said data on the one or more selected peers.