1. A method for rate allocation in a peer-to-peer (P2P) network, comprising: determining a first rate allocation that minimizes a load on a server in communication with the P2P network to generate a minimum server load; determining a second rate allocation that minimizes network traffic across Internet service provider (ISP) boundaries; constructing a utility function using the first rate allocation and the second rate allocation; and optimizing the utility function to obtain an optimal rate allocation that minimizes network traffic across ISP boundaries while keeping the minimum server load unchanged.