A game-theoretic approach for overcoming selfish routing in P 2 P networks