> The biggest difference between TCP > and BitTorrent is that TCP delivers data in the same order you sent > it, which is the order in which the user wants it, whereas BitTorrent > delivers in random order, so you potentially have to wait until the > very end of reception.
The order in which data is delivered in BitTorrent is determined by the recipient, not the sender. Senders notify recipients of what blocks they have, and the recipients decide which blocks to ask which senders for. Of course, the senders may not answer that request quickly, and there's a lot of tuning involved in making the whole thing perform well. But a recipient is free to ask for block #0, block #1, block #2, etc. BitTorrent Inc. has defined extensions to the protocol to support streaming. Basically this involves requesting blocks sequentially. This is not so terrible, since if most recipients are requesting them in sequential order, they will then be able to upload those same early-numbered blocks to the next guy. "BitTorrent DNA provides fast downloads for large files like feature-length movies, games, software programs, and makes it possible to easily stream broadcast-quality video." http://www.bittorrent.com/about/press/bittorrent2019s-delivery-network-accelerator-dna-service-improves-the-online-experience-for-streaming-video-downloadable-software-and-video-games http://www.bittorrent.com/dna/streamingservices.html http://www.bittorrent.com/dna/technology.html http://en.wikipedia.org/wiki/BitTorrent_DNA They have not released protocol specs for this (they took the entire BitTorrent software proprietary, and are doing the same with new specs). But it's been somewhat reverse-engineered. See: http://wefixedtheglitch.tumblr.com/post/22786974 How does the "btdna.exe" work? How does it speed up flash movies? This is easy, "btdna.exe" is simply an http proxy for the flash wrapper around the movie that you view in your browser. The "btdna.exe" process simply get meta data(torrent) from the site visited, loads this up and starts a normal BitTorrent transfer however the piece picker has been changed so rarest first is not the case as this would not work when trying to stream media. Now that "btdna.exe" is chunking away just like regular BitTorrent the Flash/Flex movie that you see opens an HTPP connection to "btdna.exe"'s built in webserver and streams the media from localhost or 127.0.0.1. What is the webserver running in "btdna.exe" called? 00421665 |. 68 58714500 PUSH btdna.00457158 ; ASCII "HTTP/1.1 200 OK %s%sServer: BitTorrent_DNA_Proxy/1.0 Connection: close Do flash web applications have access to "btdna.exe"? Yes in fact they do over a TCP socket. The following code was found in "btdna_unpacked.exe": db '?xml version="1.0"? cross-domain-policy allow-access-from domain="*" / /cross-domain-policy'db '/crossdomain.xml' This is a Policy file that determines if a Flash or Flex application can access 127.0.0.1:0. The first thing that a Flash/Flex application does when attempting to connect to your local machine is check for this "crossdomain.xml" policy file, if it exists, is valid and allows the domain then the Flash/Flex application running inside of your browser can make tcp socket connections to the service, in this case "btdna.exe". That is how the Flash/Flex movie gets access to the content that "btdna.exe" has downloaded thus far. The open/public torrent community has also been working on streaming: http://torrentfreak.com/eu-invests-22-million-in-next-generation-bittorrent-client/ "One of the biggest names taking part is the BBC, who will use the new BitTorrent client to stream TV programs. ... The main goal is to develop an open source, BitTorrent-compatible client that supports live streaming." http://torrentfreak.com/mininova-launches-music-torrent-streaming-080209/ http://torrentfreak.com/streaming-music-from-a-torrent-file-080108/ http://torrentfreak.com/bittorrent-dna-vulnerable-to-remote-hijack-080103/ > Well, but when you're streaming through a TCP connection, you cannot > guarantee at the beginning that every block will be available by the > time you're ready to consume it. You can't guarantee this via UDP, or any other method, on the Internet. The essence of IP is that there are no guarantees. Still, most of the time, it works well enough. John _______________________________________________ Gnash-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnash-dev

