p2pd - VoD streaming system

Manual Page: P2PD(8)

P2PD(8)							  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

P2PD(8)							  P2PD(8)

	      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
	      multiple times.

	      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., 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., 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

P2PD(8)							  P2PD(8)

	      Specifies the port number to be  used  by	 p2pd  to
	      accept connections.

	      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.

       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

P2PD(8)							  P2PD(8)

       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 shepherd-bugs@inet.no.

			   Jul 20 2010				4