Peer-to-peer (P2P) networks are decentralized, distributed networks where the participating nodes self-organize and communicate with each other to support a distributed application. P2P networks have been used to support such diverse applications as file sharing, distributed storage and backup, and content distribution. Because P2P networks are decentralized, the manner in which the participating nodes make local decisions about the management of the P2P overlay has significant impact on the functionality and performance of the system as a whole. In this thesis, we explore the nature and design of unstructured P2P systems. We show that a well-connected overlay for unstructured P2P systems can be fault tolerant and support efficient searches. To achieve this goal, we construct an overlay that has high expansion, and thus good connectivity. Because analyzing the expansion of a graph is NP-hard, we describe the use of techniques from spectral graph theory such as Laplacian eigenvalue analysis to determine bounds on the expansion of a graph. We use these techniques to examine the overlays generated by various algorithms and compare their connectivity to that of a known good expander graph. We show that a realistic hybrid algorithm that considers both proximity and connectivity information generates overlays that have low communication costs as well as have the high expansion and connectivity required to support efficient search. The high expansion results in an overlay that can tolerate the instantaneous failure of up to 30% of most highly connected nodes while still resolving all search queries with few messages. We use this algorithm, which we call Makalu, to address the problem of searching efficiently in an unstructured P2P network. We analyze the range of replication ratios required for good search performance using Makalu. We observe that, on average, for very low replication ratios, the search in Makalu can generate many duplicate queries in order to locate the desired object. We show that high expansion forces duplicate messages beyond a threshold which we call the Convergence Boundary. For more realistic replication ratios of 0.5% or higher, we show that the overlay topology generated by Makalu can successfully resolve all queries within four hops and only 6% duplicate messages on a 10,000 node network. Additionally, we show that Makalu overlays can support an indexed identifier-based searches with the use of attenuated Bloom filters. The high expansion of the Makalu overlay greatly increases the accuracy of the attenuated Bloom filter and we show that Makalu can resolve all identifier-based queries using attenuated Bloom filters with less than ten messages.