In this paper we seek to improve our understanding of human mobility in terms of social structures, and to use these structures in the design of forwarding algorithms for Pocket Switched Networks (PSNs). Taking human mobility traces from the real world, we discover that human interaction is heterogeneous both in terms of hubs (popular individuals) and groups or communities. We propose a social based forwarding algorithm, BUBBLE, which is shown empirically to improve the forwarding efficiency significantly compared to oblivious forwarding schemes and to PROPHET algorithm. We also show how this algorithm can be implemented in a distributed way, which demonstrates that it is applicable in the decentralised environment of PSNs. Categories and Subject Descriptors C.2.4 [Computer Systems Organization]: Computer Communication Networks--Distributed Systems; I.6 [Computing Methodologies]: Simulation and Modeling General Terms Measurement, Experimentation, Algorithms Keywords Social Network, Fo...