<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: BitTorrent For HTTP Failover</title>
	<atom:link href="http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/feed/" rel="self" type="application/rss+xml" />
	<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/</link>
	<description>Robert Accettura&#039;s Personal Blog on Web Development and Tech</description>
	<lastBuildDate>Fri, 10 Feb 2012 05:07:57 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Robert</title>
		<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/comment-page-1/#comment-727599</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Sat, 09 May 2009 04:51:14 +0000</pubDate>
		<guid isPermaLink="false">http://robert.accettura.com/?p=2391#comment-727599</guid>
		<description>@Zac: You&#039;ve got several things wrong:

1.  You would likely dedicate a subdomain.
2.  Pagination is irrelevant since this is DNS.
3.  DNS trashing is hardly a big deal considering how low resource they really are by todays standards.  Likely unnecessary for most anyway.
4.  Trackers could be done on any protocol in theory, HTTP is ubiquitous.
5.  That&#039;s really up to the browser.  There&#039;s no standard for BitTorrent clients either and they managed.  Could even have a separate process to mimic that of a typical BitTorrent client, though considering how long most people keep browsers open it&#039;s likely not needed.</description>
		<content:encoded><![CDATA[<p>@Zac: You&#8217;ve got several things wrong:</p>
<p>1.  You would likely dedicate a subdomain.<br />
2.  Pagination is irrelevant since this is DNS.<br />
3.  DNS trashing is hardly a big deal considering how low resource they really are by todays standards.  Likely unnecessary for most anyway.<br />
4.  Trackers could be done on any protocol in theory, HTTP is ubiquitous.<br />
5.  That&#8217;s really up to the browser.  There&#8217;s no standard for BitTorrent clients either and they managed.  Could even have a separate process to mimic that of a typical BitTorrent client, though considering how long most people keep browsers open it&#8217;s likely not needed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zac</title>
		<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/comment-page-1/#comment-727566</link>
		<dc:creator>Zac</dc:creator>
		<pubDate>Sat, 09 May 2009 02:47:17 +0000</pubDate>
		<guid isPermaLink="false">http://robert.accettura.com/?p=2391#comment-727566</guid>
		<description>I as well don&#039;t see this working out to well, but i do like the idea.  there is just to much crap to deal with that would make something like this worth it.

* you have to worry about things such as people going to site.com or www.site.com.  how do you handle things such as pagination and pages with ?page=2

* depending on the page this torrent is gonna be changing every 10 minutes, and isp dns caching isn&#039;t gonna help much at all, you will just be giving people old useless pages. you can keep the ttl low, but then your dns server is gonna get thrashed no matter what.

* i dont know the bittorrent protocol at all but last i checked, trackers run over http.  so your web server is getting hammered you have yet another server to worry about getting hammered after that.

* how long do you propose people&#039;s browsers maintain seeding a page? ratio of 1? 2? as long as im at that site? as long as my browser is open? as long as its in the cache? if you have peers connecting to a tracker and not being on any longer than 10 seconds thats gonna render attempting to get the page almost useless.</description>
		<content:encoded><![CDATA[<p>I as well don&#8217;t see this working out to well, but i do like the idea.  there is just to much <abbr title="crap">****</abbr> to deal with that would make something like this worth it.</p>
<p>* you have to worry about things such as people going to site.com or <a href="http://www.site.com" rel="nofollow">http://www.site.com</a>.  how do you handle things such as pagination and pages with ?page=2</p>
<p>* depending on the page this torrent is gonna be changing every 10 minutes, and isp dns caching isn&#8217;t gonna help much at all, you will just be giving people old useless pages. you can keep the ttl low, but then your dns server is gonna get thrashed no matter what.</p>
<p>* i dont know the bittorrent protocol at all but last i checked, trackers run over http.  so your web server is getting hammered you have yet another server to worry about getting hammered after that.</p>
<p>* how long do you propose people&#8217;s browsers maintain seeding a page? ratio of 1? 2? as long as im at that site? as long as my browser is open? as long as its in the cache? if you have peers connecting to a tracker and not being on any longer than 10 seconds thats gonna render attempting to get the page almost useless.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/comment-page-1/#comment-608980</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Mon, 19 Jan 2009 21:21:29 +0000</pubDate>
		<guid isPermaLink="false">http://robert.accettura.com/?p=2391#comment-608980</guid>
		<description>I added the following clarification via a comment to the &lt;a href=&quot;http://ajaxian.com/archives/bittorrent-in-the-browser&quot; rel=&quot;nofollow&quot;&gt;Ajaxian post&lt;/a&gt; about this:

&lt;blockquote&gt;
1.  Accept Encoding is correct since the server would serve a .torrent (over HTTP) as the response should it find the browser can accept it.  The DNS layer is a fallback &lt;strong&gt;initiated by the browser&lt;/strong&gt; should the HTTP download server fail.  This is by far the most common point of failure in a high traffic environment.  Accept Encoding doesn&#039;t switch protocols as you claim it merely tells the server if it can offer a .torrent or not.

2.  DNS would really hold only 1-2kb at most.  It would hold the .torrent which generally run 1kb for essential info only.   As I mentioned this is not really that different than storing SPF data in a TXT or SPF record. Downloading the actual file is up to the torrent network.  ISP&#039;s could cache the torrent itself if they wanted to keep it on their network and offer faster downloads to their customers.
&lt;/blockquote&gt;</description>
		<content:encoded><![CDATA[<p>I added the following clarification via a comment to the <a href="http://ajaxian.com/archives/bittorrent-in-the-browser" rel="nofollow">Ajaxian post</a> about this:</p>
<blockquote><p>
1.  Accept Encoding is correct since the server would serve a .torrent (over HTTP) as the response should it find the browser can accept it.  The DNS layer is a fallback <strong>initiated by the browser</strong> should the HTTP download server fail.  This is by far the most common point of failure in a high traffic environment.  Accept Encoding doesn&#8217;t switch protocols as you claim it merely tells the server if it can offer a .torrent or not.</p>
<p>2.  DNS would really hold only 1-2kb at most.  It would hold the .torrent which generally run 1kb for essential info only.   As I mentioned this is not really that different than storing SPF data in a TXT or SPF record. Downloading the actual file is up to the torrent network.  ISP&#8217;s could cache the torrent itself if they wanted to keep it on their network and offer faster downloads to their customers.
</p></blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ajaxian &#187; BitTorrent in the Browser</title>
		<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/comment-page-1/#comment-608718</link>
		<dc:creator>Ajaxian &#187; BitTorrent in the Browser</dc:creator>
		<pubDate>Mon, 19 Jan 2009 12:12:07 +0000</pubDate>
		<guid isPermaLink="false">http://robert.accettura.com/?p=2391#comment-608718</guid>
		<description>[...] Opera does it. Others talk about it. Robert Accettura posts about how he thinks we should implement BitTorrent in the browser. [...]</description>
		<content:encoded><![CDATA[<p>[...] Opera does it. Others talk about it. Robert Accettura posts about how he thinks we should implement BitTorrent in the browser. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/comment-page-1/#comment-608045</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Sun, 18 Jan 2009 18:03:28 +0000</pubDate>
		<guid isPermaLink="false">http://robert.accettura.com/?p=2391#comment-608045</guid>
		<description>@Mook: The advantage of DNS is that you avoid overloading yet another HTTP server and can take advantage of how well DNS scales thanks to UDP and being cached by ISP&#039;s.</description>
		<content:encoded><![CDATA[<p>@Mook: The advantage of DNS is that you avoid overloading yet another HTTP server and can take advantage of how well DNS scales thanks to UDP and being cached by ISP&#8217;s.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mook</title>
		<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/comment-page-1/#comment-607748</link>
		<dc:creator>Mook</dc:creator>
		<pubDate>Sun, 18 Jan 2009 08:06:45 +0000</pubDate>
		<guid isPermaLink="false">http://robert.accettura.com/?p=2391#comment-607748</guid>
		<description>@Dan (the first):
Umm, my Firefox right now sends &quot;Accept: text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8&quot; - i.e. there are preferences.  Of course adding anything to any header is costly (it gets sent with every request), and all that.

Robert:
For the fallback, just having a pointer to a magent: URI might be better?  Not so much data to cram onto your DNS servers, and all that.</description>
		<content:encoded><![CDATA[<p>@Dan (the first):<br />
Umm, my Firefox right now sends &#8220;Accept: text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8&#8243; &#8211; i.e. there are preferences.  Of course adding anything to any header is costly (it gets sent with every request), and all that.</p>
<p>Robert:<br />
For the fallback, just having a pointer to a magent: URI might be better?  Not so much data to cram onto your DNS servers, and all that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ant Bryan</title>
		<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/comment-page-1/#comment-607639</link>
		<dc:creator>Ant Bryan</dc:creator>
		<pubDate>Sun, 18 Jan 2009 07:07:35 +0000</pubDate>
		<guid isPermaLink="false">http://robert.accettura.com/?p=2391#comment-607639</guid>
		<description>@Robert: Is that reinvent w/ a bad connotation? :) 

We are trying to get torrents and advanced download features into a HTTP download interaction users are already familiar with...In the sense that they don&#039;t need to know it&#039;s being used, because it all happens automatically in the background. Yes, you can lists torrents and all mirrors for a file w/ a metalink (XML). This is what things like the openSUSE download redirector (&lt;a href=&quot;http://www.mirrorbrain.org/&quot; rel=&quot;nofollow&quot;&gt;MirrorBrain&lt;/a&gt;) and other Linux distributions are using metalink for. Some clients download from torrents mirrors at the same time, then share over BitTorrent when finished.

For metalink, we&#039;ve been using transparent content negotiation which is apparently not the correct thing to do in some people&#039;s opinion, but works. I&#039;ve been told the HTTP Link header is the correct thing for us, so I&#039;m hoping it&#039;d be good for torrents too.

If anyone is interested in this, feel free to help us improve what we&#039;re doing by dialoging and collaborating.</description>
		<content:encoded><![CDATA[<p>@Robert: Is that reinvent w/ a bad connotation? <img src='http://robert.accettura.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>We are trying to get torrents and advanced download features into a HTTP download interaction users are already familiar with&#8230;In the sense that they don&#8217;t need to know it&#8217;s being used, because it all happens automatically in the background. Yes, you can lists torrents and all mirrors for a file w/ a metalink (XML). This is what things like the openSUSE download redirector (<a href="http://www.mirrorbrain.org/" rel="nofollow">MirrorBrain</a>) and other Linux distributions are using metalink for. Some clients download from torrents mirrors at the same time, then share over BitTorrent when finished.</p>
<p>For metalink, we&#8217;ve been using transparent content negotiation which is apparently not the correct thing to do in some people&#8217;s opinion, but works. I&#8217;ve been told the HTTP Link header is the correct thing for us, so I&#8217;m hoping it&#8217;d be good for torrents too.</p>
<p>If anyone is interested in this, feel free to help us improve what we&#8217;re doing by dialoging and collaborating.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/comment-page-1/#comment-607545</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Sun, 18 Jan 2009 03:53:44 +0000</pubDate>
		<guid isPermaLink="false">http://robert.accettura.com/?p=2391#comment-607545</guid>
		<description>@Dan:
1.  DNS has been used for similar tasks for years.  SPF and DNSBL are great examples.  It wasn&#039;t designed for either.  This design is very similar to them.
2.  Most hosting providers I&#039;ve seen do.  I know mine does, I tweak it from time to time.  Not doing this because a few hosting providers still don&#039;t provide any DNS control is silly.  Besides, their customers aren&#039;t likely to need this functionality anyway.
3.  DNS is redundant since &lt;em&gt;you should have at least 2 DNS servers in separate facilities on different networks&lt;/em&gt; (see &lt;a href=&quot;http://www.isi.edu/in-notes/rfc2182.txt&quot; rel=&quot;nofollow&quot;&gt;RFC 2182&lt;/a&gt;).  This particular blog as 6 DNS servers behind it.  All sites have at least 2.  ISP&#039;s cache.  There&#039;s better protection on the DNS level than anywhere else if the site is hosted correctly.

DNS servers can also handle a ton of traffic without much effort.  They are often one of the older boxes a hosting provider has running.</description>
		<content:encoded><![CDATA[<p>@Dan:<br />
1.  DNS has been used for similar tasks for years.  SPF and DNSBL are great examples.  It wasn&#8217;t designed for either.  This design is very similar to them.<br />
2.  Most hosting providers I&#8217;ve seen do.  I know mine does, I tweak it from time to time.  Not doing this because a few hosting providers still don&#8217;t provide any DNS control is silly.  Besides, their customers aren&#8217;t likely to need this functionality anyway.<br />
3.  DNS is redundant since <em>you should have at least 2 DNS servers in separate facilities on different networks</em> (see <a href="http://www.isi.edu/in-notes/rfc2182.txt" rel="nofollow">RFC 2182</a>).  This particular blog as 6 DNS servers behind it.  All sites have at least 2.  ISP&#8217;s cache.  There&#8217;s better protection on the DNS level than anywhere else if the site is hosted correctly.</p>
<p>DNS servers can also handle a ton of traffic without much effort.  They are often one of the older boxes a hosting provider has running.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/comment-page-1/#comment-607536</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Sun, 18 Jan 2009 03:33:31 +0000</pubDate>
		<guid isPermaLink="false">http://robert.accettura.com/?p=2391#comment-607536</guid>
		<description>The DNS thing seems to be a bit weird to me, and I don&#039;t think it&#039;ll work out.

1) It&#039;s not what DNS is designed for
2) I don&#039;t know how many hosting providers allow you to declare your own DNS entries, but mine doesn&#039;t.  I&#039;m limited to making subdomains on the same server as my main site.  I can&#039;t even make one that points to my home computer or a dynamic DNS (no-ip.com, etc) entry.  Noone may be able to use it.
3) Even without your DNS solution we&#039;re still much better off than before.  Not to mention, if the server does go down, our solution at getting users to use BitTorrent to download the file has already clearly failed.  The whole point is to keep the server up. :)

Not sure how else you would do it though.  Redirect all traffic to a mirror of the torrent file on TPB or elsewhere, maybe... some servers that are failing to serve too many users with full web pages may improve if all they have to do is reply with a Location header.</description>
		<content:encoded><![CDATA[<p>The DNS thing seems to be a bit weird to me, and I don&#8217;t think it&#8217;ll work out.</p>
<p>1) It&#8217;s not what DNS is designed for<br />
2) I don&#8217;t know how many hosting providers allow you to declare your own DNS entries, but mine doesn&#8217;t.  I&#8217;m limited to making subdomains on the same server as my main site.  I can&#8217;t even make one that points to my home computer or a dynamic DNS (no-ip.com, etc) entry.  Noone may be able to use it.<br />
3) Even without your DNS solution we&#8217;re still much better off than before.  Not to mention, if the server does go down, our solution at getting users to use BitTorrent to download the file has already clearly failed.  The whole point is to keep the server up. <img src='http://robert.accettura.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Not sure how else you would do it though.  Redirect all traffic to a mirror of the torrent file on TPB or elsewhere, maybe&#8230; some servers that are failing to serve too many users with full web pages may improve if all they have to do is reply with a Location header.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://robert.accettura.com/blog/2009/01/17/bittorrent-for-http-failover/comment-page-1/#comment-607531</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Sun, 18 Jan 2009 03:28:27 +0000</pubDate>
		<guid isPermaLink="false">http://robert.accettura.com/?p=2391#comment-607531</guid>
		<description>Matt: Accept-Encoding only serves to tell the server which compression techniques we can handle (the server can compress the data stream for faster transfers) but the server can still choose whether or not it actually uses one of those.

Also your Accept idea isn&#039;t really all that great, since right now servers would go check any media type they&#039;re sending against that field (ideally) and check to see if that media type can be handled by the client.  If not, it might send a different media type.  The wildcards there mean that the browser wants the server to send whatever it&#039;s got... an explicit declaration of application/x-bittorrent would seem to be redundant, not to mention it changes the way that header is expected to be parsed by the server (*/* now means everything... EXCEPT bittorrent!  Not exactly intuitive.).

I like the Accept-Encoding method if only because with X-Torrent, the browser would likely send GET and expect to get the full file via HTTP... which the server would then send along with the X-Torrent!  A bit of a waste of bandwidth when the server is just going to cut it off and use the torrent.

Otherwise the client should send a separate X-Header of it&#039;s own to indicate BitTorrent support, to get a torrent file in return.

Or we could go and add yet another string to the User Agent to indicate built-in BitTorrent support. :)  Perhaps a JavaScript method too. :P</description>
		<content:encoded><![CDATA[<p>Matt: Accept-Encoding only serves to tell the server which compression techniques we can handle (the server can compress the data stream for faster transfers) but the server can still choose whether or not it actually uses one of those.</p>
<p>Also your Accept idea isn&#8217;t really all that great, since right now servers would go check any media type they&#8217;re sending against that field (ideally) and check to see if that media type can be handled by the client.  If not, it might send a different media type.  The wildcards there mean that the browser wants the server to send whatever it&#8217;s got&#8230; an explicit declaration of application/x-bittorrent would seem to be redundant, not to mention it changes the way that header is expected to be parsed by the server (*/* now means everything&#8230; EXCEPT bittorrent!  Not exactly intuitive.).</p>
<p>I like the Accept-Encoding method if only because with X-Torrent, the browser would likely send GET and expect to get the full file via HTTP&#8230; which the server would then send along with the X-Torrent!  A bit of a waste of bandwidth when the server is just going to cut it off and use the torrent.</p>
<p>Otherwise the client should send a separate X-Header of it&#8217;s own to indicate BitTorrent support, to get a torrent file in return.</p>
<p>Or we could go and add yet another string to the User Agent to indicate built-in BitTorrent support. <img src='http://robert.accettura.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Perhaps a JavaScript method too. <img src='http://robert.accettura.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>

