The information needed to route packets in large networks, and in networks in which nodes join and leave the network frequently or move in and out of wireless range of each other, can change more frequently than the rate at which the rout-ing information can be practically updated throughout the network. In such systems it becomes necessary to allow in-dividual nodes to pro actively discover the presence of other nodes, links and paths, as needed and on demand, leading to the design of networks which we call self-aware. This sur-vey paper focuses on experimental and theoretical research concerning the technical steps that can lead to self-aware networks. 1.