Peer-to-Peer (P2P) systems are emerging Internet applications that exploit the resources distributed in the network edges. The resources are aggregated through ad hoc communication among the participating peers, instead of being provided from the centralized servers. The distributed nature of P2P systems avoids performance bottleneck, single points of failure, and censorship of centralized servers. P2P systems also accommodate dynamics in the network and exploit unused resources. P2P systems can generally be classified into unstructured and structured systems. In this paper, we focus on structured P2P systems and review some well-known systems. Their essential features are abstracted, which leads to a tree model to characterize a major family of structured P2P systems.