<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>P2P Research Institute Blog &#187; BitTorrent Protocol</title>
	<atom:link href="http://blog.p2presearch.com/category/bittorrent-protocol/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.p2presearch.com</link>
	<description>whats happening in the peersphere</description>
	<lastBuildDate>Wed, 06 May 2009 01:30:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Secure, fast, P2P filesystem: An interview with DustFS author Michael Stapelberg</title>
		<link>http://blog.p2presearch.com/2008/10/05/secure-fast-p2p-filesystem-an-interview-with-dustfs-author-michael-stapelberg/</link>
		<comments>http://blog.p2presearch.com/2008/10/05/secure-fast-p2p-filesystem-an-interview-with-dustfs-author-michael-stapelberg/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 06:25:42 +0000</pubDate>
		<dc:creator>Harry Tormey</dc:creator>
				<category><![CDATA[BitTorrent Protocol]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[P2P Software]]></category>
		<category><![CDATA[Piracy Research]]></category>
		<category><![CDATA[BiTorrent Protocol]]></category>
		<category><![CDATA[crawling]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Harry Tormey]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenBSD]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[piracy]]></category>
		<category><![CDATA[potential]]></category>
		<category><![CDATA[protocol]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[unworkable]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.p2presearch.com/?p=145</guid>
		<description><![CDATA[Download MP3 audio of interview here.
A couple of weeks ago I interviewed Michael Stapelberg, head developer of the DustFS project. You can listen to a recording of this interview here. DustFS is an encrypted, distributed file system based on the BitTorrent protocol. DustFS&#8217;s major features are full encryption, authentication using certificates and usage of BitTorrent [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://p2presearch.com/Audio/2008/October/5/michael0945am12sept2008.mp3">Download MP3 audio of interview here</a>.</p>
<p>A couple of weeks ago I interviewed <a href="http://michael.stapelberg.de">Michael Stapelberg</a>, head developer of the <a href="http://dustfs.zekjur.net">DustFS</a> project. You can listen to a recording of this interview <a href="http://p2presearch.com/Audio/2008/October/5/michael0945am12sept2008.mp3">here</a>. DustFS is an <a href="http://en.wikipedia.org/wiki/Encryption">encrypted</a>, <a href="http://en.wikipedia.org/wiki/Distributed_file_system">distributed file system</a> based on the<a href="http://en.wikipedia.org/wiki/BitTorrent"> BitTorrent</a> protocol. DustFS&#8217;s major features are full encryption, authentication using certificates and usage of BitTorrent for fast distribution of files (accelerated by using so-called <a href="http://en.wikipedia.org/wiki/Cache">cache</a> servers).</p>
<p>Michael is quite active in the <a href="http://en.wikipedia.org/wiki/Open_source">Open Source</a> community having contributed to a number of projects such as <a href="http://en.wikipedia.org/wiki/Enlightenment_(window_manager)">Enlightenment</a> (e17), <a href="http://collectd.org/">collectd </a>and <a href="http://www.bacula.org/">Bacula</a>. Apart from the above Michael is also the author of <a href="http://michael.stapelberg.de/mxallowd.en">mxallowd</a> an anti-spam daemon for Linux/*BSD and is about to enter a Computer Science program at the <a href="http://www.uni-heidelberg.de/index_e.html">University of Heidelberg</a> in southern Germany.</p>
<p>According to Michael, the idea for DustFS came from a local <a href="http://www.ccc.de/?language=en">Chaos Computer Club (CCC)</a> meeting. In Germany, most of the <a href="http://en.wikipedia.org/wiki/DSL">DSL</a> providers offer high downstream but low upstream bandwidth Internet connections. If you are a DSL customer in Germany and you want to be able to conveniently share large files with your friends, your options are essentially limited to the existing, well-known protocols such as <a href="http://en.wikipedia.org/wiki/File_Transfer_Protocol">FTP</a>, <a href="http://en.wikipedia.org/wiki/Network_File_System">NFS</a>, <a href="http://en.wikipedia.org/wiki/Samba_(software)">Samba</a> and <a href="http://en.wikipedia.org/wiki/Andrew_File_System">AFS</a>. The problem however is that all of these protocols require a central server &#8211; this factor combined with the limited upstream bandwidth in Germany conspire to make this sub-optimal for distributing large files amongst a group of friends.  A distributed, P2P protocol has the advantage that one can download simultaneously from multiple peers, therefore effectively combining their upstream bandwidth, rather than being limited by the pipe of the central server &#8211; resulting in greatly improved download speed. Another issue to note is that most DSL connections in Germany do not have a static IPv4 address, therefore one must additionally deal with the problem of co-ordinating server addresses with your friends.  P2P networks, on the other hand, are inherently distributed and self-configuring.</p>
<p>One solution to the above problem would be to build a torrent file for the data you want to share, set up a BitTorrent tracker and attempt to keep it private &#8211; however this is a lot of manual set up overhead and would be quite annoying to do every time you wanted to share a single file. The main aim of DustFS is to make sharing a file among a small group of friends in a secure and trustworthy fashion easy and painless.</p>
<p>As I mentioned already, DustFS is an encrypted FUSE file system built on top of the <a href="http://www.p2presearch.com/">P2P Research Institute&#8217;s</a> BitTorrent implementation <a href="http://p2presearch.com/unworkable/">Unworkable</a>. Originally DustFS used <a href="http://en.wikipedia.org/wiki/Transmission_(BitTorrent_client)">Libtransmission</a> as its BiTorrent implementation. However despite it&#8217;s name, Libtransmission is not in fact just a library.  Libtransmission provides a number of features not required by DustFS and at 17,000 lines of source code is quite large.  Unworkable, on the other hand, is closer to 4,000 lines of code. To illustrate the difference this makes, the DustFS binary built with Libtransmission is 1.7 megabytes in size, as opposed to 700 kilobytes when built with Unworkable.</p>
<p>In Germany it is also quite cheap to rent servers which have reasonable upstream bandwidth allowances, a fact that DustFS plans to leverage to accelerate transfers. These rented servers could be used as intermediate cache servers for the DustFS network.  The idea is that when you transfer a file over DustFS, a cache server kicks in and mirrors this file. If yet another user requests the same file, they download using the copy stored on the cache server &#8211; at a vastly greater rate then from a DSL peer. A cache server is stripped down DustFS node.  A DustFS cache node doesn&#8217;t need FUSE, and generally has a lower set of dependencies than a normal node.</p>
<p>While DustFS is still in early stages of development, it looks extremely promising.  We think that Michael has struck on a very good idea.  If his project can gain enough momentum to solve the non-trivial engineering problems, DustFS could revolutionise file-sharing among groups of friends.  Imagine a world where everyone has an embedded, DustFS-capable device in their homes.  Family videos, photos and so on would be easily shareable between trusted parties in a secure manner.  Musicians could collaborate on tracks effortlessly without worry of their intellectual property being stolen.  The potential is huge.  We wish Michael and DustFS the best of luck and look forward to collaborating with him in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.p2presearch.com/2008/10/05/secure-fast-p2p-filesystem-an-interview-with-dustfs-author-michael-stapelberg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://p2presearch.com/Audio/2008/October/5/michael0945am12sept2008.mp3" length="14724485" type="audio/mpeg" />
		</item>
		<item>
		<title>Unworkable 0.51 Released &#8211; Major bugfixes</title>
		<link>http://blog.p2presearch.com/2008/10/01/unworkable-051-released-major-bugfixes/</link>
		<comments>http://blog.p2presearch.com/2008/10/01/unworkable-051-released-major-bugfixes/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 03:51:17 +0000</pubDate>
		<dc:creator>Niall O'Higgins</dc:creator>
				<category><![CDATA[BitTorrent Protocol]]></category>
		<category><![CDATA[P2P Software]]></category>
		<category><![CDATA[BitTorrent]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[unworkable]]></category>

		<guid isPermaLink="false">http://blog.p2presearch.com/?p=140</guid>
		<description><![CDATA[I just released version 0.51 of our high-performance, BSD-licensed C implementation of BitTorrent, Unworkable.  This release contains very minor code changes which fix some important bugs in the mapping of torrent pieces to on-disk mmap()&#8217;d regions.  In particular, this can fix some edge-cases in the downloading of large, multi-file torrents.

Direct download link to [...]]]></description>
			<content:encoded><![CDATA[<p>I just released <a href="http://p2presearch.com/unworkable/dist/unworkable-0.51.tar.gz">version 0.51</a> of our <a href="http://p2presearch.com/unworkable/">high-performance, BSD-licensed C implementation of BitTorrent, Unworkable</a>.  This release contains very minor code changes which fix some important bugs in the mapping of torrent pieces to on-disk mmap()&#8217;d regions.  In particular, this can fix some edge-cases in the downloading of large, multi-file torrents.</p>
<p><a href="http://p2presearch.com/unworkable/dist/unworkable-0.51.tar.gz"><br />
Direct download link to the tarball</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.p2presearch.com/2008/10/01/unworkable-051-released-major-bugfixes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Battling Climate Change with BitTorrent &#8211; An Interview with Jeremy Blackburn of the University of South Florida</title>
		<link>http://blog.p2presearch.com/2008/09/22/battling-climate-change-with-bittorrent-an-interview-with-jeremy-blackburn-of-the-university-of-south-florida/</link>
		<comments>http://blog.p2presearch.com/2008/09/22/battling-climate-change-with-bittorrent-an-interview-with-jeremy-blackburn-of-the-university-of-south-florida/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 05:22:35 +0000</pubDate>
		<dc:creator>Harry Tormey</dc:creator>
				<category><![CDATA[BitTorrent Protocol]]></category>
		<category><![CDATA[P2P Software]]></category>
		<category><![CDATA[BitTorrent]]></category>
		<category><![CDATA[climate change]]></category>
		<category><![CDATA[global warming]]></category>
		<category><![CDATA[p2p]]></category>

		<guid isPermaLink="false">http://blog.p2presearch.com/?p=67</guid>
		<description><![CDATA[

Download MP3 audio of interview, part one.
Download MP3 audio of interview, part two.

Last week I had the chance to interview Jeremy Blackburn, a graduate student at the University of South Florida. Jeremy’s research interests are in the energy efficiency of computer networks. I spoke to Jeremy concerning his work to improve the power management of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.p2presearch.com/wp-content/uploads/2008/09/pic.png"><img class="size-full wp-image-119" title="btproto" src="http://blog.p2presearch.com/wp-content/uploads/2008/09/pic.png" alt="BitTorrent Protocol" width="708" height="328" /></a></p>
<p>
<a href="http://p2presearch.com/Audio/2008/September/15/09-08-2008-01-36-p1.mp3">Download MP3 audio of interview, part one</a>.<br/><br />
<a href="http://p2presearch.com/Audio/2008/September/15/09-08-2008-01-36-p2.mp3">Download MP3 audio of interview, part two</a>.<br/>
</p>
<p class="MsoNormal">Last week I had the chance to interview <a href="http://www.csee.usf.edu/~jhblackb/">Jeremy Blackburn</a>, a graduate student at the <a href="http://www.usf.edu/index.asp">University of South Florida</a>. Jeremy’s research interests are in the energy efficiency of computer networks. I spoke to Jeremy concerning his work to improve the power management of the <a href="http://en.wikipedia.org/wiki/BitTorrent_(protocol)">BitTorrent P2P protocol</a>. The  interview is available in two parts (<a href="http://p2presearch.com/Audio/2008/September/15/09-08-2008-01-36-p1.mp3">part one</a> and <a href="http://p2presearch.com/Audio/2008/September/15/09-08-2008-01-36-p2.mp3">part two</a>).</p>
<p>Jeremy&#8217;s main argument is that data centers are very expensive.  In the US alone, they consume about 1.2% of all electricity, costing approximately $3bn a year.  Worldwide, data centers consume roughly $7bn worth of electricity. Jeremy argues that this high cost is a strong incentive to offload some of the hosting traditionally done in the data center, onto the consumer, through P2P technologies.  In other words, the person downloading a file from you can contribute some of their own computing and bandwidth resources to the hosting of that file. Thus reducing data center expenditure.  However, he goes on to say that while this does reduce the energy cost for the content providers, it will probably increase overall energy consumption &#8211; through losses in efficiency &#8211; and will certainly increase the energy consumption for the users themselves.</p>
<p>A problem with the above premise is that it assumes that the world’s data centers are mainly used for file sharing or other services which are easily distributed across a P2P network. This is clearly not the case. I would argue that most of the computing resources in data centers are dedicated to database-related work, as opposed to activities easily distributed through P2P technologies.  One is unlikely to see <a href="http://en.wikipedia.org/wiki/Ecommerce">eCommerce</a> transaction processing being carried out by consumer computers participating in a P2P network any time soon.  Surely this kind of activity makes up a large chunk of that 1.2% figure.  Furthermore, when I asked Jeremy for evidence of this being a major industry trend, the only research study he could cite was about a P2P set-top box released by <a href="http://www.telefonica.com/home_eng.shtml">Telefonica</a>, a Spanish <a href="http://en.wikipedia.org/wiki/Internet_service_provider">ISP</a>.</p>
<p>Having said all this, no one questions the fact that BitTorrent comprises an estimated 18-35% of traffic on the Internet (according to CacheLabs and CacheLogic) or the fact that large businesses such as <a href="http://www.blizzard.com">Blizzard Entertainment</a> are using it to reduce their software distribution costs.  Also consider that the <a href="http://en.wikipedia.org/wiki/Kyoto_Protocol">Kyoto protocol</a> only requires that on average countries reduce their emissions 5.2% below their 1990 baseline by 2010 &#8211; even a reduction of a fraction of a percent in data center energy consumption would be significant toward this goal. Indeed, how many people leave their computers on all day to download files? With all of this in mind surely a more energy efficient BitTorrent protocol is absolutely worth pursuing.</p>
<p>The main focus of Jeremy’s investigation is to see what can be done to the BitTorrent protocol to reduce energy consumption. Jeremy has been studying the protocol by running simulations using an implementation of a BitTorrent client within an open source network simulator called <a href="http://nsnam.isi.edu/nsnam/index.php/Main_Page">NS-2</a>. These simulations consist of a 51 peer swarm with varying arrival times and one seed awake at all times for file availability. The files used in these simulations are between 10 to 100 mb (Jeremy intends to use files larger than a gigabyte in later simulations).</p>
<p>Jeremy introduces the concept of putting a node to &#8220;sleep&#8221;.  This would involve having the computer enter a low-power mode, akin to putting one&#8217;s laptop to sleep.  According to Jeremy&#8217;s simulations, theoretically by putting &#8220;seeds&#8221; (seeds are peers with all data in the torrent) to sleep 50% of the time you can halve the energy cost but only increase download times by about 10%. This saving comes from the fact that every peer in a swarm keeps a list of all other peers it is connected to in a peer table. Normally what would happen is that if a peer went to sleep then the TCP connection between it and all of the other peers it was connected to would be dropped and those connected peers would forget that the sleeping peer ever existed. The only way this peer&#8217;s resources could be made available again is if it decided to reconnect to the swarm. In the modified BitTorrrent client used within Jeremy&#8217;s simulation, when a seed is not uploading, it goes to sleep and all of the peers it is connected to do not forget about it. When those peers need that seeds resources again they can wake it up.</p>
<p style="text-align: center;"><a href="http://blog.p2presearch.com/wp-content/uploads/2008/09/pic2.png"><img class="size-full wp-image-131 aligncenter" title="sleep" src="http://blog.p2presearch.com/wp-content/uploads/2008/09/pic2.png" alt="" width="500" height="307" /></a></p>
<p>However, the idea of putting one&#8217;s personal computer to sleep based on network activity is not likely to be practical nor of interest to typical computer users.  Although wake-on-LAN technology exists and indeed is bundled with most modern computers, a more likely application of this sleeping technique would be in set-top boxes.  A set-top box is not a general-purpose computer.  It is inherently a single-purpose device, dedicated to an individual task such as downloading video.  Such set-top boxes generally consume a lot less power than general purpose computers, and furthermore the user is less concerned should the device suspend itself.</p>
<p>At some point in the near future Jeremy intends to apply his research to a real-world BitTorrent client. At the <a href="http://p2presearch.com">P2P Research Institute</a> we have developed our own <a href="http://p2presearch.com/unworkable/">highly optimized BitTorrent client, Unworkable</a>. Jeremy mentioned our client as a prime candidate for testing out these changes. Unworkable is written in C and uses a high-performance, single-threaded, asynchronous networking communication model. Unworkable has been measured downloading torrents on a ten-year-old 270mhz UltraSparc II machine, using less CPU time than the top(1) process used to monitor it.</p>
<p>All of the above of course begs the question, what other protocols could be modified for greater energy efficiency?  We look forward to seeing what Jeremy comes up with next in his quest to reduce the energy consumption of computer networks.  To read more about Jeremy&#8217;s research in this area, download his poster <a href="http://blog.p2presearch.com/wp-content/uploads/2008/09/jeremy.pdf">[Adobe PDF]</a> <a href="http://blog.p2presearch.com/wp-content/uploads/2008/09/jeremy.ppt">[Microsoft Power Point]</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.p2presearch.com/2008/09/22/battling-climate-change-with-bittorrent-an-interview-with-jeremy-blackburn-of-the-university-of-south-florida/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://p2presearch.com/Audio/2008/September/15/09-08-2008-01-36-p2.mp3" length="7606853" type="audio/mpeg" />
<enclosure url="http://p2presearch.com/Audio/2008/September/15/09-08-2008-01-36-p1.mp3" length="4502213" type="audio/mpeg" />
		</item>
		<item>
		<title>Unworkable 0.5 Released &#8211; Fast Extension, Fast Resume and many bugfixes</title>
		<link>http://blog.p2presearch.com/2008/09/22/unworkable-05-released-fast-extension-fast-resume-and-many-bugfixes/</link>
		<comments>http://blog.p2presearch.com/2008/09/22/unworkable-05-released-fast-extension-fast-resume-and-many-bugfixes/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 03:44:25 +0000</pubDate>
		<dc:creator>Niall O'Higgins</dc:creator>
				<category><![CDATA[BitTorrent Protocol]]></category>
		<category><![CDATA[P2P Software]]></category>
		<category><![CDATA[BitTorrent]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[unworkable]]></category>

		<guid isPermaLink="false">http://blog.p2presearch.com/?p=91</guid>
		<description><![CDATA[Better late than never
After more than six months of working on our data-mining and statistical analysis software, I&#8217;ve finally had some free time to work on our high-performance cross-platform BitTorrent implementation, Unworkable.  My interest in Unworkable was greatly renewed by the fact that Michael Stapelberg is using it as a basis for his distributed [...]]]></description>
			<content:encoded><![CDATA[<p><b>Better late than never</b></p>
<p>After more than six months of working on our data-mining and statistical analysis software, I&#8217;ve finally had some free time to work on our <a href="http://p2presearch.com/unworkable">high-performance cross-platform BitTorrent implementation, Unworkable</a>.  My interest in Unworkable was greatly renewed by the fact that Michael Stapelberg is using it as a basis for his distributed user-land file system (via <a href="http://fuse.sourceforge.net/">FUSE</a>) called <a href="https://dustfs.zekjur.net/">DustFS</a>.  Michael sent me a bunch of useful patches and fixes for this release.  Watch this space for an article and interview with Michael from us, hopefully in a week or two.</p>
<p><b>Whats new</b></p>
<p>In any case, Unworkable 0.5 is a great improvement.  There were a number of critical bug fixes, eliminating potential crashes and properly handling certain bitwise operations.  When taken together, these fixes make Unworkable a much more effective participant in BitTorrent swarms.  While the main focus of this release was to improve stability and effectiveness, I also added two nice new features.  Firstly, I implemented initial support for the <a href="http://bittorrent.org/beps/bep_0006.html">BitTorrent Fast Extension, a.k.a. BEP 6</a>.  This extension eliminates some potential race conditions inherent in the choking algorithm, and also has some bandwidth saving messages &#8211; for example the peer can easily just say &#8220;I have all the data&#8221; and &#8220;I have none of the data&#8221; in a single short message, instead of sending its entire bitfield representation of which pieces it does and does not have.  For large torrents, this bitfield can get quite long. There is some quite <a href="http://forum.bittorrent.org/viewtopic.php?id=13">in-depth discussion about the Fast Extension / BEP 6 from BitTorrent, Inc developers David Harrison and Bram Cohen</a> on the BitTorrent.org forum if you would like more info.</p>
<p>I also implemented &#8211; at long last &#8211; a fast resume mechanism.  For large torrents, and especially on slower computers, the initial hash check for a torrent can take a long time.  With the fast resume support in Unworkable 0.5, how much data you have is recorded in a small on-disk file.  If this file is present, the hash check can be skipped.  In practice, this means you can quit torrents and resume them almost instantaneously.</p>
<p>As usual for this release, I have made some portability improvements.  Somehow I neglected in the past to build Unworkable with 64-bit file offsets under Linux, which was a major oversight on my part. Also as usual, I have been developing Unworkable on both fast (2Ghz amd64) and slow (270Mhz UltraSparc II) machines.  My 270 Mhz Sun Microsystems Ultra 5 with 192M ram can happily download large Linux distro DVD images at speeds saturating my DSL connection!</p>
<p><b>Whats next</b></p>
<p>Now that Unworkable is pretty stable, I would like to work more on adding features such as native rate-limiting, multi-torrent support, and improvements to the control protocol.  Once these features are complete, work on the GUI can be resumed and we should have quite a compelling BitTorrent client!</p>
<p><b>Download</b></p>
<p>Download the sources for <a href="http://p2presearch.com/unworkable/dist/unworkable-0.5.tar.gz">Unworkable 0.5</a>.  Builds and runs on OpenBSD, FreeBSD 6.2, Ubuntu Linux 8.04, Centos 5, Fedora 7 (on EC 2), Gentoo Linux, Arch Linux, Mac OS X, Solaris 10 and Windows XP (cygwin).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.p2presearch.com/2008/09/22/unworkable-05-released-fast-extension-fast-resume-and-many-bugfixes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three reasons why video is the Holy Grail of P2P</title>
		<link>http://blog.p2presearch.com/2008/07/21/three-reasons-why-video-is-the-holy-grail-of-p2p/</link>
		<comments>http://blog.p2presearch.com/2008/07/21/three-reasons-why-video-is-the-holy-grail-of-p2p/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 22:55:58 +0000</pubDate>
		<dc:creator>Niall O'Higgins</dc:creator>
				<category><![CDATA[BitTorrent Protocol]]></category>
		<category><![CDATA[P2P Software]]></category>
		<category><![CDATA[BitTorrent]]></category>
		<category><![CDATA[p2p streaming]]></category>
		<category><![CDATA[p2p video]]></category>

		<guid isPermaLink="false">http://blog.p2presearch.com/?p=49</guid>
		<description><![CDATA[Peer-to-peer technology has many extremely useful applications.  Fundamentally P2P is about increasing network resilience and decreasing bandwidth costs.  Privacy, anonymity and security are  all secondary to these essential principles.  While BitTorrent has been an extremely successful P2P protocol for certain types of P2P applications, such as patch distribution for Blizzard&#8217;s World [...]]]></description>
			<content:encoded><![CDATA[<p>Peer-to-peer technology has many extremely useful applications.  Fundamentally P2P is about increasing network resilience and decreasing bandwidth costs.  Privacy, anonymity and security are  all secondary to these essential principles.  While BitTorrent has been an extremely successful P2P protocol for certain types of P2P applications, such as patch distribution for Blizzard&#8217;s World of Warcraft, it has also been a failure in other areas.</p>
<p><strong>The Holy Grail</strong></p>
<p>Streaming video is one of the largest consumers of bandwidth today.  Many estimates put it ahead of P2P in terms of gross bandwidth consumption.  Sites like <a href="http://youtube.com">YouTube</a> and <a href="http://video.google.com">Google Video</a> attract vast numbers of viewers.  Various online video streaming services are starting up, offered by companies like <a href="http://www.amazon.com">Amazon</a> and <a href="http://www.netflix.com">NetFlix</a>.  It seems that streaming video, and the sales and advertising opportunities which come along with it, represent an irresistible revenue source for large companies.</p>
<p>However, streaming video also has large bandwidth costs associated with it.  According to the <a href="http://en.wikipedia.org/wiki/Streaming_media">Wikipedia page on streaming video</a>, to stream a standard video to 1,000 viewers would require 300 Mbit/sec of bandwidth using a traditional unicast approach.  All this bandwidth is expensive.  How can streaming providers spread this cost out?  With P2P.  Make your consumers pitch in to host the video.  As the number of viewers increases, so should the amount of peers which can serve up the data, allowing you to scale up the number of participants without proportionate increases in your own bandwidth.</p>
<p><strong>Why not BitTorrent</strong></p>
<p>As we have written about before on this blog, <a href="http://blog.p2presearch.com/2008/04/10/bittorrent-download-strategy-in-the-beginning/">BitTorrent is not good for streaming video due to its rarest-first download ordering policy</a>.  In order to stream video, or music, or whatever &#8211; you want it to arrive in a predictable order.  Typically that order is linear, starting at the start.  This way data arrives in the order of consumption.  But BitTorrent does not provide this.  In fact, it almost explicitly guarantees that it will not order data in a linear fashion.  BitTorrent trades predictable ordering for replication increases.  Under BitTorrent, the rarest pieces of data will be replicated the most, and so become less rare.</p>
<p><strong>So what, then?</strong></p>
<p>Companies are instead developing their own protocols.  The <a href="http://www.p2p-next.org/">EU has given 19 million euro to one P2P group</a> which is modifying the BitTorrent protocol to support streaming &#8211; presumably by doing away with the rarest-first policy.</p>
<p>China has a number of well-funded start ups developing their own P2P video streaming technologies.  <a href="http://www.blin.cn/">Blin.cn</a> <a href="http://www.techcrunch.com/2007/10/16/50x-faster-than-bittorrent-i-want/">claims to be 50x faster than BitTorrent for video streaming</a>.  Google is <a href="http://gigaom.com/2007/01/05/google-confirms-xunlei/">an investor in Chinese streaming company Xunlei</a>.</p>
<p>And of course <a href="http://www.bittorrent.com">BitTorrent, Inc</a> have been <a href="http://blog.streamingmedia.com/the_business_of_online_vi/2007/05/bittorrent_laun.html">working to develop their own video streaming version of their protocol</a>.</p>
<p>Who will come out on top remains to be seen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.p2presearch.com/2008/07/21/three-reasons-why-video-is-the-holy-grail-of-p2p/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>P2P Research at Google wrap up and slides</title>
		<link>http://blog.p2presearch.com/2008/07/16/p2p-research-at-google-wrap-up-and-slides/</link>
		<comments>http://blog.p2presearch.com/2008/07/16/p2p-research-at-google-wrap-up-and-slides/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 03:50:07 +0000</pubDate>
		<dc:creator>Niall O'Higgins</dc:creator>
				<category><![CDATA[BitTorrent Protocol]]></category>
		<category><![CDATA[P2P Software]]></category>
		<category><![CDATA[Piracy Research]]></category>
		<category><![CDATA[baypiggies]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[presentation]]></category>

		<guid isPermaLink="false">http://blog.p2presearch.com/?p=19</guid>
		<description><![CDATA[I gave a talk at Google/bayPIGgies last week.  I was very pleasantly surprised by the turnout &#8211; and most of all by the excellent questions asked by the audience.  The interest from people at the talk crossed many domains &#8211; people were generally curious about many aspects, from security to technical scalability concerns [...]]]></description>
			<content:encoded><![CDATA[<p>I gave a talk at Google/bayPIGgies last week.  I was very pleasantly surprised by the turnout &#8211; and most of all by the excellent questions asked by the audience.  The interest from people at the talk crossed many domains &#8211; people were generally curious about many aspects, from security to technical scalability concerns to legal issues.</p>
<p>Four employees from <a href="http://www.bittorrent.com/">BitTorrent, Inc</a> were present.  It was wonderful to have the chance to talk to some of the pioneers in this technology.  They seemed very interested in the work we are doing and invited us to call in to their offices in downtown SF some time.</p>
<p>Overall, it was wonderful to have so much interest in our research and to be able to spread some information about BitTorrent and p2p to a wider audience.  I believe the talk was recorded on video and should be made available by Google on YouTube or Google Video, however I don&#8217;t have the URL just yet.  I did the slides in S5 though, and you can view <a href="http://p2presearch.com/baypiggies20080710/slides.html">the slides for the p2p research talk at Google here</a> in a regular web browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.p2presearch.com/2008/07/16/p2p-research-at-google-wrap-up-and-slides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BitTorrent download strategy: In the beginning</title>
		<link>http://blog.p2presearch.com/2008/04/10/bittorrent-download-strategy-in-the-beginning/</link>
		<comments>http://blog.p2presearch.com/2008/04/10/bittorrent-download-strategy-in-the-beginning/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 17:34:18 +0000</pubDate>
		<dc:creator>Niall O'Higgins</dc:creator>
				<category><![CDATA[BitTorrent Protocol]]></category>
		<category><![CDATA[BitTorrent]]></category>
		<category><![CDATA[protocol]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://blog.p2presearch.com/?p=5</guid>
		<description><![CDATA[I am talking here about the case where you start a download with no existing data, in other words, from scratch. Torrents are divided into units called pieces. The torrent meta data contains the SHA-1 checksums for each piece, so that we can hash each piece once we have downloaded it, for verification purposes. Pieces [...]]]></description>
			<content:encoded><![CDATA[<p>I am talking here about the case where you start a download with no existing data, in other words, from scratch. Torrents are divided into units called pieces. The torrent meta data contains the SHA-1 checksums for each piece, so that we can hash each piece once we have downloaded it, for verification purposes. Pieces are downloaded on a block-by-block basis &#8211; typically the block size is sixteen kilobytes (16KB).</p>
<p>Another important thing to understand is that BitTorrent peers use a “tit-for-tat” transfer scheduling algorithm. That is, peers will be rewarded by other peers for uploading data to them. It is therefore important that a bootstrapping peer have at least a small number of complete pieces as soon as possible, in order to share them, and hence be rewarded by the “tit-for-tat” algorithm. The bootstrapping peer wants to get at least a few pieces to share as soon as possible.</p>
<p>Additionally, pieces are usually downloaded in rarest-first order. This ensures that rare pieces are replicated sufficiently so that holes do not appear in the torrent as peers leave the swarm. One of the design considerations of BitTorrent &#8211; vs other distributed data mechanisms &#8211; is to have as reliable replication as possible. It is highly undesirable in bit torrent for even a single piece to disappear, as this could render the final file(s) completely unusable. This contrasts heavily with a file distribution system such as <a href="http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf">Amazon’s Dynamo</a>, where it may be quite acceptable for data to disappear &#8211; is it really a huge deal if a user loses the contents of their shopping cart in an outage?</p>
<p>In any case, the desire to ensure replication of the rarest pieces in a torrent is overridden by the need to get a small number of pieces as a peer is bootstrapping. To this end, the initial pieces are downloaded in random order as opposed to rarest-first order. In practice this means the bootstrapping peer should get its initial data quite a bit faster. The number of pieces to download before switching to rarest-first order is suggested to be four.</p>
<p>As a general point, the peer will aim to complete a piece fully before requesting blocks belonging to another piece. Alternately put, if the peer has a few blocks in one piece, it will concentrate on downloading the remaining blocks belonging to that piece before starting on another piece.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.p2presearch.com/2008/04/10/bittorrent-download-strategy-in-the-beginning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BitTorrent download strategy: The end game</title>
		<link>http://blog.p2presearch.com/2008/04/10/bittorrent-download-strategy-the-end-game/</link>
		<comments>http://blog.p2presearch.com/2008/04/10/bittorrent-download-strategy-the-end-game/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 17:33:52 +0000</pubDate>
		<dc:creator>Niall O'Higgins</dc:creator>
				<category><![CDATA[BitTorrent Protocol]]></category>
		<category><![CDATA[BitTorrent]]></category>
		<category><![CDATA[protocol]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://blog.p2presearch.com/?p=6</guid>
		<description><![CDATA[Downloads in BitTorrent take place according to a number of strategies, which map to stages. Initiating a torrent download has one strategy, normal operation has another strategy, and finally pulling down the last remaining pieces has yet another strategy.
The End Game is the name for the final download strategy &#8211; there is a tendency for [...]]]></description>
			<content:encoded><![CDATA[<p>Downloads in BitTorrent take place according to a number of strategies, which map to stages. Initiating a torrent download has one strategy, normal operation has another strategy, and finally pulling down the last remaining pieces has yet another strategy.</p>
<p>The End Game is the name for the final download strategy &#8211; there is a tendency for the last few pieces of a torrent to download quite slowly. To avoid this, many BitTorrent implementations issue requests for the same remaining blocks to all its peers. When a block comes in from one peer, you send CANCEL messages to all the other peers requested from, in order to save bandwidth. Its cheaper to send a CANCEL message than to receive the full block and just discard it.</p>
<p>However, there is no formal definition of when to enter End Game Mode.  I found two popular definitions:</p>
<p>1. All blocks have been requested<br />
2. Number of blocks in transit is greater than number of blocks left, and no more than 20</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.p2presearch.com/2008/04/10/bittorrent-download-strategy-the-end-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BitTorrent Distributed Hash Table (DHT) AKA Trackerless BitTorrent</title>
		<link>http://blog.p2presearch.com/2008/04/10/bittorrent-distributed-hash-table-dht-aka-trackerless-bittorrent/</link>
		<comments>http://blog.p2presearch.com/2008/04/10/bittorrent-distributed-hash-table-dht-aka-trackerless-bittorrent/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 17:33:41 +0000</pubDate>
		<dc:creator>Niall O'Higgins</dc:creator>
				<category><![CDATA[BitTorrent Protocol]]></category>
		<category><![CDATA[BitTorrent]]></category>
		<category><![CDATA[dht]]></category>
		<category><![CDATA[protocol]]></category>

		<guid isPermaLink="false">http://blog.p2presearch.com/?p=7</guid>
		<description><![CDATA[One of the more interesting extensions to the BitTorrent protocol has been the introduction of a distributed hash table implementation. As mentioned in my previous article on the basics of the BitTorrent protocol, traditionally BitTorrent relies upon a centralized “tracker” application &#8211; which runs over standard HTTP &#8211; in order to facilitate contacting peers and [...]]]></description>
			<content:encoded><![CDATA[<p>One of the more interesting extensions to the BitTorrent protocol has been the introduction of a distributed hash table implementation. As mentioned in my previous article on the basics of the BitTorrent protocol, traditionally BitTorrent relies upon a centralized “tracker” application &#8211; which runs over standard HTTP &#8211; in order to facilitate contacting peers and so on. The requirement for a centralised tracker is obviously a major barrier to fully decentralized operation, and a problem in terms of BitTorrent’s resistance to tracker outage (perhaps even caused by legal actions).</p>
<p>The official BitTorrent DHT specification states that the protocol is based on Kademilia. In BitTorrent, DHT is mostly separated from the original protocol. Peers listen on an additional port, using a UDP protocol, to issue network searches and so forth. The DHT protocol is known as KRPC and consists of three message types &#8211; query (”q”), response (”r”) and error (”e”). There are four queries:</p>
<ul>
<li>PING</li>
<li>FIND_NODE</li>
<li>GET_PEERS</li>
<li>ANNOUNCE_PEER</li>
</ul>
<p>Each KRPC message is formatted in B-Encode, with various key-value pairs encoded in a dictionary structure. Each node participating in the DHT has its own routing table containing contact information for nodes “near” to it (according to a mathematical ‘distance function’). This routing table is used to produce responses to queries. We will go more into details of how this works in the next article.</p>
<p>The TCP BitTorrent peer protocol itself has only been very slightly extended in order to take advantage of this new DHT functionality. During the handshake, peers may indicate that they support DHT. If the receiver also supports DHT, it should send a new message called PORT (id is 0×09) with the port number of its UDP DHT service, encoded as a 16-bit value. The receiver of this message will then try to send a PING message to the peer on this port, and if it gets a reply, routing table adjustments etc should take place.</p>
<p>Those are the very basics of BitTorrent DHT from a network perspective.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.p2presearch.com/2008/04/10/bittorrent-distributed-hash-table-dht-aka-trackerless-bittorrent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
