Content distribution involves three parties; the owner of the server architecture, the user receiving the content, and the owners of the networks in between. A content distribution system could be said to involve all three parties, who can influence the process in order to improve its efficiency. The WWW is a good example of this. Content (like the file you are reading now) is stored on a server, optionally cached in web-caches at ISPs or large sites, and finally cached in the client browser cache.
The SPP architecture, which p2pd implements, has these same elements, in addition to a P2P-like component which allows the server or caches to reduce their load by including the clients in the task of serving content. The p2pd server can distribute files using both HTTP and SPP, but there is greater room for efficient streaming with the latter.
The servers are used in the SPP architecture in the same way as they are on the WWW. Content providers places movie files on their servers, and files are identified by URLs such as spp://spp.example.org/movie.mpg. Having an easily identifiable server improves trustability by making it easy for users to identify the content distributor. The URL is the only information needed to start a transfer. Servers also keep track of clients that download files.
Dedicated caches perform two tasks: caching of data requested by clients from servers, and clustering of clients. A cache reduces SPP related data traffic for the network it is installed on and increases the overall stability and scalability of the system.
SPP clients retrieve movie files requested by users. The retrieved data is stored to disk and can be served to other users that request it. SPP clients have network awareness and try to download files from the machine(s) that they estimate will provide the fastest download.