Adam,
        I see how the fully integrated approach can be a problem for you, as 
someone interoperating.

        However, I want to point out another way of looking at it: without the 
fully integrated approach, we may still not have BitTorrent today. Bram was 
working by himself when he designed and coded BitTorrent - he didn't have an 
army of engineer working for him. To have made BitTorrent as quickly as he did, 
he would have had to prioritize. Choosing Python as the implementation language 
was crucial (if he had chose C as the language, it may well have quadrupled the 
development time).

        Similarly, he can only keep so many things in his singular mind. There 
is tremendous advantage in using something that he understands and not have to 
learn. So, inventing his own protocol was his way of tackling the problem. 
Imagine if he had to spend months reading RFCs; deal with people who use other 
clients (instead of his own, which he fully understands), and even having to 
fix bugs because his client "isn't HTTP compliant." I am not sure if BitTorrent 
could have come out as well as it did.

        I am not arguing for the merits of how well designed the BT protocol 
is. I just want to bring up a perspective that, if it was designed any other 
ways, BT may not be here today for us to talk about.

        Just a thought.

Peter
________________________________________
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Adam Fisk
Sent: Friday, January 05, 2007 2:47 PM
To: theory and practice of decentralized computer networks
Subject: Re: [p2p-hackers] HTTP design flawed due to lack of understandingofTCP

Hi Peter-  I've come to this view after closer work over the last several years 
with the IETF and more intimate experience with protocol design in implementing 
various IETF protocols, particularly within the SIP family.  My initial forays 
into protocol design came from working on many different protocols on Gnutella, 
and some of the Gnutella protocols suffer from the same problems as BitTorrent. 

In a nutshell, well-architected protocols are designed to do very specific 
things well.  This allows each protocol to evolve independently, with each 
protocol yielding control to others in the stack at the appropriate levels of 
abstraction.  In SIP, this approach is readily apparent and strikingly 
effective, with SIP exclusively establishing sessions, leaving the Session 
Description Protocol (SDP) to describe the session, the MIME specifications 
within SDP to describe the type of media the session will handle, and with STUN 
and ICE handling thorny NAT traversal issues.  Each protocol is independent of 
the others, with these discrete building blocks leading to incredible 
flexibility as the protocols evolve.  It also allows discrete open source 
projects to be extremely focused in the protocols they implement. 

One key to these principals is to re-use protocols effectively.  With everyone 
in the world implementing and understanding MIME, SDP can interoperate much 
more easily if it also uses MIME.  For file transfers, HTTP is the universal 
standard for lots of good reasons.  BitTorrent uses effectively a proprietary 
file transfer protocol, thereby breaking interoperability with the rest of the 
Internet.  While BitTorrent is "open" in the sense that anyone can implement 
it, it's almost worse than being a closed protocol because it doesn't fit in 
with any of the very well-designed other protocols out there.  It would never 
have a chance to interoperate with, say, SIP or XMPP because it just implements 
everything as it damn well pleases. 

I say the features of BitTorrent don't come anywhere near justifying this 
because the primary reason for breaking HTTP is tit-for-tat support.  
Tit-for-tat is basically providing incentive to keep your client running.  
That's more or less fine, but that piece should not be coupled to file 
transfers.  At a protocol design level, that's just insanity.  It also comes at 
a tremendous cost.  Every web server on the planet is now an invalid source for 
a file!  Excluding the most powerful computers on the Internet from the 
distribution system doesn't seem like a sound design decision, particularly for 
the poorly conceived tit-for-tat justification described above. 

I actually have lots of other issues with BitTorrent, but the protocol layering 
issue might be the biggest.

-Adam


On 1/5/07, Peter K Chan <[EMAIL PROTECTED]> wrote:
Adam,
        Your assessment of BitTorrent caught my attention. 

        How is BitTorrent "breaking interoperability with the rest of the 
Internet?" Why is it that the unique features of BT "don't come anywhere near 
justifying" it?

Peter

_______________________________________________
p2p-hackers mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/p2p-hackers

Reply via email to