  In the context of networking, research has focused on non-cooperative games,
where the selfish agents cannot reach a binding agreement on the way they would
share the infrastructure. Many approaches have been proposed for mitigating the
typically inefficient operating points. However, in a growing number of
networking scenarios selfish agents are able to communicate and reach an
agreement. Hence, the degradation of performance should be considered at an
operating point of a cooperative game. Accordingly, our goal is to lay
foundations for the application of cooperative game theory to fundamental
problems in networking. We explain our choice of the Nash Bargaining Scheme
(NBS) as the solution concept, and introduce the Price of Selfishness (PoS),
which considers the degradation of performance at the worst NBS. We focus on
the fundamental load balancing game of routing over parallel links. First, we
consider agents with identical performance objectives. We show that, while the
PoA here can be large, through bargaining, all agents, and the system, strictly
improve their performance. Interestingly, in a two-agent system or when all
agents have identical demands, we establish that they reach social optimality.
We then consider agents with different performance objectives and demonstrate
that the PoS and PoA can be unbounded, yet we explain why both measures are
unsuitable. Accordingly, we introduce the Price of Heterogeneity (PoH), as an
extension of the PoA. We establish an upper-bound on the PoH and indicate its
further motivation for bargaining. Finally, we discuss network design
guidelines that follow from our findings
