  Peer to peer (P2P) networks are an overlay on IP network of the internet and
they can shape the future of computing by their involvement in distributed
systems with the increased of use of low priced personal computers to form big
clusters of distributed systems. An important problem for P2P networks and
models is searching for data in the network which can be the basis of any
service that uses such a network. Here we explore the major types of P2P
networks and their solution to such a problem and we explore improvements that
happened to these networks to be more appealing for commercial usage by
offering features of load balancing, scalability, self organization and fault
tolerance.
