Manual Page: P2PD(8)
p2pd - scalable Video-on-Demand content distribution
p2pd [-dDiTZ] [-A hostname] [-b blocksize] [-C diskcache-
size] [-c cachedirectory] [-l mirroraddress:port] [-M mem-
orycachesize] [-m digestname] [-N subnet] [-n subnet] [-P
portnumber] [-p publiccontentdirectory] [-S proxyad-
The p2pd server implements a protocol for scalable content
distribution, based on a combination of CDN-like caching
and client contributed resources. The system is designed
to be usable for interactive Video-on-Demand streaming.
The p2pd process can run in one of three modes; as a
server (similar to a web server), a cache (SCC mode), and
a cache/proxy running on client machines (LHC mode). In
LHC mode, p2pd accepts http requests, allowing it to be
easily used from media players and web browsers that can
use an http proxy.
The server hosts the media data and maintains a list of
clients that have downloaded the content. Files are
divided into blocks with message digests used to verify
that content is correctly downloaded.
LHC and SCC nodes accept requests for downloaded blocks
from other machines, as long as they are still cached.
They can also perform recursive requests, where content
that is not cached is retrieved in order to satisfy the
request. For an LHC, recursive requests are only accepted
SCC node, which might be deployed at a site or ISP,
requests are only accepted from clients that are explic-
itly given access. See the -n option, below, for more
The options are as follows:
Enable request filtering and allow access to files
located on given host. By default, no filtering is
done. The option can be given multiple times. With
request filtering, access is only granted to hosts
to which access have been explicitly granted.
Specifies the block size to be used for distributed
Jul 20 2010 1
This option allows the size of the disk cache (used
in SCC and LHC modes) to be specified. The unit is
hundreds of megabytes (i.e., a value of 2 corre-
sponds to 200 MB).
Specifies the path to the cache directory. Enables
LHC mode, unless -n is also specified, in which
case SCC mode is enabled.
-D The p2pd process will detach from the controlling
terminal and run in the background as a system dae-
-d Debugging output will be enabled, providing more
verbose information about the actions of the p2pd
-i Enable client sharing mode. Clients will not be
added to the list of possible download locations if
this option is not used.
Include the specified address and port as a mirror
which should be treated as having all files found
on the server itself. The option can be specified
For specifying the memory cache size for recently
used file data, in megabytes.
This option can be used on a server to specify the
default message digest to be used. Currently, md5
and rmd160 is supported.
Grants HTTP access to the an SCC node from machines
in the specified subnet. CIDR notation is used,
e.g., 10.0.0.0/8 will allow any client connecting
from the 10 network to make a HTTP request from the
cache. Requested files are downloaded normally.
Grants access to the an SCC node from machines in
the specified subnet. CIDR notation is used, e.g.,
10.0.0.0/8 will allow any client connecting from
the 10 network to make a request via the cache.
Other clients will only be able to requests data
that is already cached. The option also enables SCC
Jul 20 2010 2
Specifies the port number to be used by p2pd to
Gives the path to the directory containing media
files to be distributed. Enables server mode.
Causes an LHC to request files from the SCC proxy
running at the specified address, e.g.,
-T Enables http compatibility mode, in which http
requests to the server returns a playlist with the
same uri but the mime type application/x-spp-
playlist set. Simplifies integration with existing
-Z With this option the contents of the cache direc-
tory specified with -c will be deleted when p2pd
The p2pd process can run in one of three modes. The server
mode is enabled with the -p option, which is used to spec-
ify the directory where the files to be distributed are
located. The LHC mode is used on client machines and is
enabled with the -c option, which gives the path to where
downloaded files should be stored. One server and one LHC
node is the minimum needed for a running system. A media
player would connect to the LHC (running on the same
machine as the media player), which requests data from the
The third mode is the SCC mode, to be used by larger sites
or ISPs to cache content requests by local users. This
mode is enabled by using the -c and -n options. To make
requests via an SCC node, an LHC node uses the -S option.
In the SCC and server modes, use of client resources can
be enabled with the -i option. This will cause clients
that download parts of files to become potential sources
for downloads by subsequent clients.
MEDIA PLAYER INTERACTION
The LHC is able to accept requests from a media player via
HTTP. By setting the http_proxy environment variable to
point to the LHC, the LHC will retrieve the file data and
return it as a continuous data stream. For example, if the
LHC is running at port 1234 the http_proxy variable should
Jul 20 2010 3
then the following command should be sufficient at the
client to receive the media data:
If the server has been started with the -T option, it will
return a playlist with the application/x-spp-playlist mime
type. Adding a handler for this mime type will simplify
integration with existing browsers.
This variable is supported by several http
clients/media players to cause http requests to be
made through the proxy running at the given
Design and implementation by Karl-Andre' Skevik.
Information about new releases and other related issues
can be found on the Shepherd WWW home page:
See the accompanying BUGS file. New ones should be
reported to firstname.lastname@example.org.
Jul 20 2010 4