Content, Topology and Cooperation in In-network Caching