Abstract-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.