This document discusses peer-to-peer (P2P) file sharing. It describes three common P2P architectures: centralized directory, query flooding, and exploiting heterogeneity. The centralized directory model uses a central server to store peer information and facilitate file transfers. Query flooding passes search requests between connected peers until the requested file is located. Exploiting heterogeneity designates some peers as super nodes to improve search efficiency. Advantages of P2P networks over client-server models include scalability, redundancy, and lower costs. However, P2P networks can be less stable and secure as peer numbers increase.