>> (PORTFOLIO) Scott VS. BITTORRENT

The general claims chart exemplified below is one of many claims charts on multiple intellectual property assets invented by Scott. In addition to other proofs of ‘first-to-invent’ status, signed NDA’s, leaked competitor emails, internal competitor documents, federal file wrappers, news videos, whistle-blower testimony, court records and voluminous other evidence exists to support the veracity of the assertions over IP rights.

Cohen seems to have fancied himself a writer for a time. His “parody” of a pirate’s manifesto created some controversy for his company in 2005. But other fiction, not widely known, was available on his personal website at the same time. And had it been publicized then, it would have been far more controversial. Here are excerpts from the two pieces of violently misogynistic fiction depicting rape and murder:

“A Torturer’s Account”:

It says here that you are to be subdued and violated. I don’t like fucking bitches like you so don’t count on not getting seriously hurt. I do what it says right here, and it doesn’t matter if I like it.

“It Happened”:

She is a whore. The only thing she has is her body. Just because she flirts and doesn’t give it away doesn’t mean she isn’t a whore. And just because she lets some guy fuck her because it will be a good source of melodrama doesn’t mean she’s in love. I hate that bitch.

The writings, dating back to 1998 and 1999, remained available for many more months after his manifesto was discovered; however, they elicited no response at the time, as far as I can tell.

Now that BitTorrent is trying to transition from its file-sharing roots into a legitimate online-media business, his Sand Hill Road investors and Hollywood partners may want to take another look at the company’s chief scientist.

Cohen is now married with kids, and one hopes he’s grown past the ravings of his youth. But the fact that he kept the stories up on his site as late as 2005 is curious. A person is entitled to his fantasies. Sharing them in public, though, is another matter. One wonders if, had his writings become public sooner, Cohen would have been able to strike deals with Hollywood moguls and raise money from venture capitalists — let alone remain BitTorrent’s CEO for so long. At the very least, if Cohen is to remain at BitTorrent in any capacity, one would think he’d offer an explanation of what he wrote, and why he published it for all to see.

I just stumbled across a fascinating mailing list thread in which there’s a fairly nasty exchange between two open source poster children, Bram Cohen (of BitTorrent fame, but in this case writing in his capacity as Codeville developer) and Linus Torvalds (of Linux fame, original author of Git).

Now, I’ve never had a particular liking for either of these personalities, although I’ve had to recognize that they’re very clever individuals. Both of them have been known for occasional demonstrations of arrogance.

But the really interesting thing about their interchange is not the fireworks in the thread but the way things look like in hindsight. Having become familiar with Git over the last few days I have to say that Torvalds was right on just about every count. I knew Torvalds was smart, but seeing as I was never really more than an occasional Linux user I never realized just how smart; I’d thought he was just a good programmer who happened to be in the right place at the right time and had a few good ideas. But after closely studying Git I’m a little bit awestruck; Torvalds is a frickin’ genius, a true visionary, and somehow managed to just “get it” and instantly, in a flash of insight, come up with “the solution” for version control. In the meantime, Codeville still languishes in pre-1.0 “alphaville” and Git has forged ahead to become (at version 1.5.2.4) the most powerful, high-performance, superbly documented version control system out there and with a stunningly active community.

Git is a weekend hack which looks like a weekend hack.

Source: Bram Cohen.

On merge algorithms

The Codeville website has this to say:

If you’d like to know why there is a need for new merge algorithms, consider what the lead monotone developer has to say.

And clicking through the link reveals that this is what he has to say:

3-way merge is an inappropriate choice of merge algorithm for a modern VCS.

He describes a scenario in which the merge algorithm doesn’t produce desirable results. Once you understand the scenario you can scan the mailing list thread where Bram and Linus duke it out; selected highlights:

Bram: Honestly, that you would think of doing whole-tree three-way merges and even consider moving lines between files shows that you haven’t explored the merge problem very deeply. This is a much harder problem than you think it is, and one which has already been solved by other systems.

What I’d really like to hear is some explanation of why git is reimplementing all of this stuff from scratch. Your implicit claims that git will do more things than the other systems without having to reinvent all of their functionality first are, honestly, naive, ill-informed arrogance.

I’d like to reiterate that *nothing* out there supports moving lines between files, and further predict, with total confidence, that if git tries to support such functionality it will simply fail, either by giving up or creating a system which can behave horribly. Before you get all dismissive about this claim, please remember that I’ve spent years thinking about merge algorithms, and have actually designed and implemented them, and have spoken at length with other people who have done the same, while you’ve merely thought about them for a few weeks.

Linus: Me _personally_, I want to have something that is very repeatable and non-clever. Something I understand _or_ tells me that it can’t do it. And quite frankly, merging single-file history _without_ taking all the other files’ history into account makes me go “ugh”.

The important part of a merge is not how it handles conflicts (which need to be verified by a human anyway if they are at all interesting), but that it should meld the history together right so that you have a new solid base for future merges.

In other words, the important part is the _trivial_ part: the naming of the parents, and keeping track of their relationship. Not the clashes.

And it looks like 99% of SCM people seem to think that the solution to that is to be more clever about content merges. Which misses the point entirely.

Bram: So you think that a system which supports snapshots and history but has no merging functionality whatsoever is the right thing? I’m asking this seriously.

I’m not sure how many merge algorithms Git has at the time that thread took place, but today it has four (see the git-merge man page for details). But clever or non-clever merge algorithms are besides the point: what were the real insights that Torvalds somehow grasped from the very beginning? What is it that made me describe him above as “a frickin’ genius”?

What Git does right

There is no need for fancy metadata, rename tracking and so forth. The only thing you need to store is the state of the tree before and after each change. What files were renamed? Which ones were copied? Which ones were deleted? What lines were added? Which ones were removed? Which lines had changes made inside them? Which slabs of text were copied from one file to another? You shouldn’t have to care about any of these questions and you certainly shouldn’t have to keep special tracking data in order to help you answer them: all the changes to the tree (additions, deletes, renames, edits etc) are implicitly encoded in the delta between the two states of the tree; you just track what is the content.

Git is already very smart, and it can (and will) get smarter about figuring out what happened, and where a given line in a given revision came from, and it will do so without ever having to embed additional meta data in its repositories. Absolutely everything can (and should) be inferred.

Git breaks the mould because it thinks about content, not files. It doesn’t track renames, it tracks content. And it does so at a whole-tree level. This is a radical departure from most version control systems. It doesn’t bother trying to store per-file histories; it instead stores the history at the tree level. When you perform a diff you are comparing two trees, not two files.

As a result of this fundamental design decision, the structure of a Git repository is stunningly simple. It’s so simple in fact, that you’ll be surprised at the sophistication of the things you can do with it. But that’s the way the best code will always be: simple, solid premises out of which complex applications arise.

The other fundamentally smart design decision is how Git does merges. The merging algorithms are smart but they don’t try to be too smart. Unambiguous decisions are made automatically, but when there’s doubt it’s up to the user to decide. This is the way it should be. You don’t want a machine making those decisions for you. You never will want it. That’s the fundamental insight in the Git approach to merging: while every other version control system is trying to get smarter, Git is happily self-described as the “stupid content manager”, and it’s better for it.

Footnote

If you try the tricky merge issue described by the Monotone dev above you’ll find that Git does exactly the right thing:

mkdir playground
cd playground
git init
echo "hello, world" > greeting
git add greeting
git commit -m "Add greeting"
git checkout -b left
git mv greeting saludo
git commit -a
git checkout master
git rm greeting
git commit -a
git merge left

Git responds with:

CONFLICT (rename/delete): Renamed greeting->saludo in left and deleted in HEAD
Automatic merge failed; fix conflicts and then commit the result.

In my opinion this is exactly the right behaviour. This is a clearly ambiguous merge and it simply wouldn’t be right for your version control system to try “resolving” it for you. You actually want it to be a “dumb” content tracker and handle automatically only the simplest, non-ambiguous cases; in an instance like this one you want it to ask you what to do. And as you can see, Git does an excellent job of describing the nature of the conflict, which will make it easier for you to solve it.

Evidence in an Australian Court case seems to show that Bittorrent is covertly owned by every major Hollywood Studio!

All in all.. let’s take a look at Scott’s patent that the U.S. Government said was first before Bittorrent’s:

The following chart compares certain claims of one of Scott’s many U.S. video Patents to BitTorrent, Inc.’s BitTorrent protocol.

Scott’s Issued Patent

BitTorrent Protocol

[1.1] A system for providing load balanced, secure media content delivery in a distributed computing environment, the system comprising:

BitTorrent (and associated products) provides a system for load balanced, secure media content delivery in a distributed computing environment:

  • “BitTorrent (often abbreviated as BT) is a peer-to-peer (P2P) protocol (a description and set of rules on how to do things) created by Bram Cohen, designed to distribute data in such a way that the original distributor would be able to decrease bandwidth usage while still being able to reach at least the same amount of people.”

http://www.bittorrent.com/btusers/guides/bittorrent-user-manual/chapter-02-basic-guides/basics-bittorrent

https://web.archive.org/web/20081218113145/http://www.bittorrent.com/btusers/guides/bittorrent-user-manual/chapter-02-basic-guides/basics-bittorrent

  • BitTorrent is the global standard for delivering high-quality files over the Internet. With an installed base of over 160 million clients worldwide, BitTorrent technology has turned conventional distribution economics on its head. The more popular a large video, audio or software file, the faster and cheaper it can be transferred with BitTorrent.”

http://www.bittorrent.com/btusers/what-is-bittorrent/

  • Throughout the download process, BitTorrent DNA carefully balances its use of peer and CDN or server resources, downloading from all, in parallel, to meet per-object or streaming media QoS requirements.”

http://www.bittorrent.com/dna/technology/

  • BitTorrent is a protocol (a set of rules and description of how to do things) allowing you to download files quickly by allowing people downloading the file to upload (distribute) parts of it at the same time.”

http://www.bittorrent.com/btusers/what-is-bittorrent/

http://www.bittorrent.com/btusers/guides/beginners-guide

BitTorrent 6 is a client. A ‘client’ in this case is a computer program that follows the rules of a protocol. . . . The BitTorrent 6 client will give you access to the world of content on the protocol in a lightweight, fast and reliable package.”

http://www.bittorrent.com/btusers/what-is-bittorrent/

BitTorrent Sync synchronizes your files using a peer-to-peer (P2P) protocol. This protocol is very effective for transferring large files across multiple devices, and is very similar to the powerful protocol used by applications like µTorrent and BitTorrent.”

https://web.archive.org/web/20131104111424/http://labs.bittorrent.com/experiments/sync/technology.html

Throughout the download process, BitTorrent DNA carefully balances its use of peer and CDN or server resources, downloading from all, in parallel, to meet per-object or streaming media QoS requirements.”

http://www.bittorrent.com/dna/technology/

http://www.bittorrent.com/dna/technology/

[1.2] A centralized control center that segments and encrypts media content into a set of individual encrypted segments, a plurality of the segments being a portion of or an entirety of a media content size,

the centralized control center including an encryption module stored in memory and executable by a processor to encrypt each individual segment to a unique encryption key;

General Summary of the BitTorrent Protocol’s Satisfaction of Claim Element: Content delivery network servers (such as media servers) and end-user computers (“peers”) in the peer-to-peer network are configured to act as one or more media file databases.1

BitTorrent provides:

  • A centralized control center that segments and encrypts media content into a set of individual encrypted segments, a plurality of the segments being a portion of or an entirety of a media content size

“In order for everyone to be able to locate one another, there needs to be some centralized location that peers could connect to in order to obtain the other peers’ IP addresses. BitTorrent trackers serve as this centralized location. In the most basic explanation, for each given swarm, a tracker only needs to collect a peer’s IP address and port number to share with other peers connecting to that same swarm.” [chapter 2 basics]

“Cohen’s idea was to “break” the file being transferred into smaller segments called pieces. To save bandwidth, each person downloading (more commonly referred to as peers in the BitTorrent community) would have the pieces that they acquired available for upload to other peers in the swarm (the entire network of people connected to a single torrent). In this way, much of the load of sharing the file to every peer interested in it is offloaded to the peers.” [chapter 2 basics]

“We have full support for Protocol Encryption. It is not enabled by default, but can be enabled in the BitTorrent section of the client preferences.

  • Enabled: Attempts to encrypt outgoing connections, but will fall back to an unencrypted mode if the connection fails.

  • Force: Attempts to encrypt outgoing connections, and will NOT fall back to an unencrypted mode if the connection fails.

  • Allow legacy incoming connections enables or disables incoming legacy (non-encrypted) connections.

All modes will accept incoming encrypted connections (and the encryption is 2-way)!

http://help.bittorrent.com/customer/en/portal/articles/163493-client-features

“The data is transferred in pieces from each of the syncing devices, and BitTorrent Sync chooses the optimal algorithm to make sure you have a maximum download and upload speed during the process.

BitTorrent Sync was designed with privacy and security in mind. The system uses SRP for mutual authentication and for generating session keys that ensure Perfect Forward Secrecy. All traffic between devices is encrypted with AES-128 in counter mode, using a unique session key. Modification requests are all verified using Ed25519 signatures and only systems with full access keys can generate valid modification requests.”

/http://labs.bittorrent.com/experiments/sync/technology.html

https://web.archive.org/web/20131104111424/http://labs.bittorrent.com/experiments/sync/technology.html

  • the centralized control center including an encryption module stored in memory and executable by a processor to encrypt each individual segment to a unique encryption key

Since the BitTorrent Client, which includes encryption functionality, is installed on a computer, it is understood that the encryption module will be stored in the computer memory and executed by the computer processor.

“1)  From the Bundle website, click the “Purchase this Bundle”. Fill out the required payment information and click ‘Purchase Now’

2) Select either the BitTorrent Client installer or the standalone torrent file option.

3)  If the installer is downloaded, launch the installer by clicking on the item at the bottom of your browser window or directly from your downloads folder.

4)  Launch the Client. In the top window, your Bundle should be in the torrent list, where you’ll see the status as “downloading”, and you can monitor the progress from there. When the progress bar is complete, the status will change to “seeding”; you can now open the files!

5)  Double-click each file to open the containing folder. You can drag any audio tracks into your player of choice (iTunes, Windows Media Player, VLC), and videos should open in your media player, too. If you receive any messages that a file format is not supported, consider or player like VLC or you can also upgrade to BitTorrent Pro, which gives you access to a number of codecs for playing different file types.

Since the BitTorrent Client, which includes encryption functionality, is installed on a computer, it is understood that the encryption module will be stored in the computer memory and executed by the computer processor.

BitTorrent DNA is designed to complement existing delivery mechanisms, including content delivery networks (CDNs) and traditional web servers. To provide maximum flexibility and robustness, BitTorrent DNA can seed its managed peer network from multiple CDNs in parallel.”

http://www.bittorrent.com/dna/technology/

BitTorrent is a protocol (a set of rules and description of how to do things) allowing you to download files quickly by allowing people downloading the file to upload (distribute) parts of it at the same time.”

http://www.bittorrent.com/btusers/what-is-bittorrent/

http://www.bittorrent.com/btusers/guides/beginners-guide

Seeding is where you leave your BitTorrent client open after you’ve finished your download to help distribute it (you distribute the file while downloading, but it’s even more helpful if you continue to distribute the full file even after you have finished downloading).”

http://www.bittorrent.com/btusers/guides/beginners-guide

[1.3] a plurality of intermediate control nodes that stage the set of individual encrypted segments

a plurality of intermediate servers that mirror individual encrypted segments from the staged set;

BitTorrent provides a plurality of intermediate control nodes that stage the set of individual encrypted segments

a plurality of intermediate servers that mirror individual encrypted segments from the staged set;

Seeding enables computers in the process of downloading files and media to act as intermediate control nodes/servers that mirror the encrypted segments.

“Seeding is where you leave your BitTorrent client open after you’ve finished your download to help distribute it (you distribute the file while downloading, but it’s even more helpful if you continue to distribute the full file even after you have finished downloading). Chances are that most of the data you got was from seeds, so help give back to the community!”

http://help.bittorrent.com/customer/en/portal/articles/164656-what-is-seeding-

BitTorrent DNA utilizes servers to route traffic and files:

Use of the peer network is tightly controlled by a specialized tracker operated by BitTorrent, Inc. and accessible to BitTorrent DNA customers through a web-based dashboard that provides control and reporting tools.”

http://www.bittorrent.com/dna/technology/

BitTorrent DNA contains a number of enhancements to mitigate the impact of peer networking on service provider networks. These enhancements include: BitTorrent’s sophisticated congestion-avoiding transport technology; an intelligent peer selection algorithm that prefers peers on the same LAN, network, or AS; and work with vendors of BitTorrent caching products to support local cache discovery. By keeping traffic local and non-congestive, BitTorrent DNA reduces long-haul and peering traffic for service providers, while improving the end-user experience.”

http://www.bittorrent.com/dna/technology/

BitTorrent DNA uses one or more existing origin servers or CDNs to seed a managed peer network.”

http://www.bittorrent.com/dna/technology/

BitTorrent Sync utilizes intermediate relay servers for transfer of files when direct connection between devices are not possible:

However, if direct connection is not possible due to Sophisticated NATs, firewalls, proxy servers, etc. this option will allow Sync to establish connection to BitTorrent relay server, which will allow to transfer data without direct connection. This can impact the speed at which the files sync.

To enable the Relay Server option, select the folder preferences and make sure the ‘Use Relay Server when Required’ option is checked. When Sync detects that a Relay server is needed, it will make the appropriate connection with the Relay Server, allowing you to connect to your peers.”

http://sync-help.bittorrent.com/customer/en/portal/articles/1656691-what-is-a-relay-server-

BitTorrent Sync can use multiple devices as nodes for “n-way synchronization,” which uses a plurality of devices as intermediate nodes/servers to distribute files to a device:

Accelerated transfers
As you share a folder, every additional device makes sharing faster. Instead of one server feeding updates to each device individually, you can have dozens of devices sharing the effort. This is called n-way synchronization, and it is made efficient by the BitTorrent protocol.”
https://www.getsync.com/features

[1.4] at least one client that:

Bit Torrent includes at least one client in a peer-to-peer network (see [1.1] above).

[1.5] sends requests for the media content to the centralized control center,

BitTorrent sends a request for the media content to the centralized control center.

“To start downloading, a user does the following:

  1. Install BitTorrent (or have done so already).

  2. Surf the web.

  3. Click on a link to a .torrent file.

  4. Select where to save the file locally, or select a partial download to resume.”

http://help.bittorrent.com/customer/en/portal/articles/1604192-i-don-t-have-a-bittorrent-client-how-do-i-get-a-bundle-

[1.6] receives the set of individual encrypted segments from one of an intermediate control node and an intermediate server optimally sited from a requesting client, and reassembles the set of individual encrypted segments into the media contents for media playback, and includes:

BitTorrent receives the set of individual encrypted segments from one of an intermediate control node and an intermediate server optimally sited from a requesting client, and reassembles the set of individual encrypted segments into the media contents for media playback.

“Where normal downloading through a browser is done linearly, what makes the Bittorrent protocol unique is that it allows parts of a file to be downloaded simultaneously from different sources and out-of-order. The Client assembles these parts into the complete file.”

http://help.bittorrent.com/customer/en/portal/articles/1636317-what-is-the-bittorrent-client-

[1.7] a broadcasting module stored in memory and executable to broadcast a pulse prior to receiving individually encrypted segments and,

BitTorrent provides a broadcasting module stored in memory and executable to broadcast a pulse prior to receiving individually encrypted segments.

BitTorrent must inherently include a broadcasting module to send a pulse to the torrent servers to request download of the files prior to receiving any individually encrypted segments.

Also see [1.5] above.

[1.8] a request processing module stored in memory and executable to select the optimally sited one of intermediate control node and intermediate server based on responses to the pulse for subsequent receipt of the set of individual encrypted segments; and

BitTorrent provides a request processing module stored in memory and executable to select the optimally sited one of intermediate control node and intermediate server based on responses to the pulse for subsequent receipt of the set of individual encrypted segments.

“While on the surface, it appears that the only way to maintain a swarm’s health is for there to always be a seed connected to the swarm, that is not the case. The most important factor to determining whether a swarm can continue to allow peers to complete a torrent is the availability. The availability of a torrent is the number of complete copies of the torrent contents there are distributed in the part of the swarm you’re connected to, including the data you have. In most cases, if there is an availability of 1.0 or greater, then even if one single person does not have all the pieces, they are all still distributed across the entire swarm and can be acquired to form the complete file.

Because of the very nature of BitTorrent, speeds are not guaranteed for any given torrent swarm. While you may get great speeds in one swarm, you might not in another. This is due to the fact that BitTorrent is a P2P protocol, so it depends on the upload speeds of the other peers you are connected to to generate your download speeds. A common misconception held by many people is that torrent swarms that contain more seeds and peers are faster than those with less. This is not always the case. There can be a swarm with only a few seeds and/or peers on fast Internet connections, and you’ll be able to get great speeds from them, while a swarm with many more seeds and/or peers might contain mostly people with slow, dial-up Internet connections, will get you terrible speeds from them. In the same vein, connecting to more seeds and/or peers does not equate to greater speeds, and seeds don’t necessarily give better speeds than normal peers.”

http://help.bittorrent.com/customer/en/portal/articles/178790-the-basics-of-bittorrent

[1.9] a mirror module stored in memory and executable to mirror individual encrypted segments from a staged complete set to a plurality of peer clients, wherein the request processing module receives the set of individual encrypted segments from one of the intermediate control node, the intermediate server and the plurality of peer clients optimally sited from the requesting client.

BitTorrent provides a mirror module stored in memory and executable to mirror individual encrypted segments from a staged complete set to a plurality of peer clients, wherein the request processing module receives the set of individual encrypted segments from one of the intermediate control node, the intermediate server and the plurality of peer clients optimally sited from the requesting client.

BitTorrent must inherently include a mirror module to provide the functionality of mirroring the individually encrypted segments through the “Seeding” of the downloaded media files.

See [1.3] above.

Scott’s Issued

Patent: Claim 2

BitTorrent Protocol

The system of claim 1, further comprising:

a request queue stored in memory and executable to queue requests from a plurality of clients on at least one of a single intermediate control node and intermediate server; and

a multicasting module stored in memory and executable on at least one of the single intermediate control node and intermediate server and that multicasts the set of individual encrypted segments to the plurality of clients.

See Claim 1.

General Summary of the BitTorrent Protocol’s Satisfaction of Claim Element: BitTorrent Protocol uses “torrent” files, which includes metadata about the files. These “torrent” files are treated as a number of identically sized pieces during distribution, wherein the metadata contained therein provides the necessary information to allow distribution to occur.

To share a file or group of files, a peer first creates a small file called a “torrent” (e.g. MyFile.torrent). This file contains metadata about the files to be shared and about the tracker, the computer that coordinates the file distribution. Peers that want to download the file must first obtain a torrent file for it, and connect to the specified tracker, which tells them from which other peers to download the pieces of the file.”

http://en.wikipedia.org/wiki/BitTorrent_(protocol)

The peer distributing a data file treats the file as a number of identically-sized pieces, typically between 64 kB and 4 MB each. The peer creates a checksum for each piece, using the SHA1 hashing algorithm, and records it in the torrent file. Pieces with sizes greater than 512 kB will reduce the size of a torrent file for a very large payload, but is claimed to reduce the efficiency of the protocol. When another peer later receives a particular piece, the checksum of the piece is compared to the recorded checksum to test that the piece is error-free. Peers that provide a complete file are called seeders, and the peer providing the initial copy is called the initial seeder.”

http://en.wikipedia.org/wiki/BitTorrent_(protocol)

Many BitTorrent websites act as both tracker and index. Sites such as these publicize the tracker’s URL and allow users to upload torrents to the index with the tracker’s URL embedded in them, providing all the features necessary to initiate a download.”

http://en.wikipedia.org/wiki/BitTorrent_tracker

Scott Issued

Patent: Claim 3

The system of claim 1, further comprising a segmentation module stored in memory and executable to determine the media content size for each individual encrypted segment based on a running time of the media content.

See Claim 1.

General Summary of the BitTorrent Protocol’s Satisfaction of Claim Element: Content delivery network servers (such as media servers) and end-user computers (“peers”) in the peer-to-peer network are configured to act as one or more media file databases for the storage of media files.2

BitTorrent DNA uses one or more existing origin servers or CDNs to seed a managed peer network.”

http://www.bittorrent.com/dna/technology/

Throughout the download process, BitTorrent DNA carefully balances its use of peer and CDN or server resources, downloading from all, in parallel, to meet per-object or streaming media QoS requirements.”

http://www.bittorrent.com/dna/technology/

BitTorrent DNA scales organically with demand, providing capacity exactly where and when you need it. . . . BitTorrent DNA automatically scales its delivery capacity with demand to ensure a consistently high-quality user experience.”

http://www.bittorrent.com/dna/technology/

Our proprietary transport technology leverages the full available network capacity of all paths without disrupting other applications.”

http://www.bittorrent.com/dna/technology/

BitTorrent DNA automatically moderates its use of the network to ensure that web browsing, voice over IP (VoIP), Internet gaming, and other applications are not disrupted.”

http://www.bittorrent.com/dna/technology/

BitTorrent DNA contains a number of enhancements to mitigate the impact of peer networking on service provider networks. These enhancements include: BitTorrent’s sophisticated congestion-avoiding transport technology; an intelligent peer selection algorithm that prefers peers on the same LAN, network, or AS; and work with vendors of BitTorrent caching products to support local cache discovery. By keeping traffic local and non-congestive, BitTorrent DNA reduces long-haul and peering traffic for service providers, while improving the end-user experience.”

http://www.bittorrent.com/dna/technology/

Seeding is where you leave your BitTorrent client open after you’ve finished your download to help distribute it (you distribute the file while downloading, but it’s even more helpful if you continue to distribute the full file even after you have finished downloading).”

http://www.bittorrent.com/btusers/guides/beginners-guide

BitTorrent (often abbreviated as BT) is a peer-to-peer (P2P) protocol (a description and set of rules on how to do things) created by Bram Cohen, designed to distribute data in such a way that the original distributor would be able to decrease bandwidth usage while still being able to reach at least the same amount of people. Cohen’s idea was to “break” the file being transferred into smaller segments called pieces. To save bandwidth, each person downloading (more commonly referred to as peers in the BitTorrent community) would have the pieces that they acquired available for upload to other peers in the swarm (the entire network of people connected to a single torrent). In this way, much of the load of sharing the file to every peer interested in it is offloaded to the peers. Note that a seed is basically a peer with every piece, so when a peer successfully attains all data in the torrent contents, that peer becomes a seed as well.”

http://www.bittorrent.com/btusers/guides/bittorrent-user-manual/chapter-02-basic-guides/basics-bittorrent

The initial distributor of the complete file or collection acts as the first seed. Each peer who downloads the data also uploads it to other peers, even after they have dismounted the original seed.”

http://en.wikipedia.org/wiki/BitTorrent_(protocol)

To share a file or group of files, a peer first creates a small file called a “torrent” (e.g. MyFile.torrent). This file contains metadata about the files to be shared and about the tracker, the computer that coordinates the file distribution. Peers that want to download the file must first obtain a torrent file for it, and connect to the specified tracker, which tells them from which other peers to download the pieces of the file.”

http://en.wikipedia.org/wiki/BitTorrent_(protocol)

The peer distributing a data file treats the file as a number of identically-sized pieces, typically between 64 kB and 4 MB each. The peer creates a checksum for each piece, using the SHA1 hashing algorithm, and records it in the torrent file. Pieces with sizes greater than 512 kB will reduce the size of a torrent file for a very large payload, but is claimed to reduce the efficiency of the protocol. When another peer later receives a particular piece, the checksum of the piece is compared to the recorded checksum to test that the piece is error-free. Peers that provide a complete file are called seeders, and the peer providing the initial copy is called the initial seeder.”

http://en.wikipedia.org/wiki/BitTorrent_(protocol)

Downloading torrents and sharing files

Users browse the web to find a torrent of interest, download it, and open it with a BitTorrent client. The client connects to the tracker(s) specified in the torrent file, from which it receives a list of peers currently transferring pieces of the file(s) specified in the torrent. The client connects to those peers to obtain the various pieces. Such a group of peers connected to each other to share a torrent is called a swarm. If the swarm contains only the initial seeder, the client connects directly to it and begins to request pieces. As peers enter the swarm, they begin to trade pieces with one another, instead of downloading directly from the seeder.”

http://en.wikipedia.org/wiki/BitTorrent_(protocol)

A BitTorrent tracker is a server which assists in the communication between peers using the BitTorrent protocol. It is also, in the absence of extensions to the original protocol, the only major critical point, as clients are required to communicate with the tracker to initiate downloads. Clients that have already begun downloading also communicate with the tracker periodically to negotiate with newer peers and provide statistics; however, after the initial reception of peer data, peer communication can continue without a tracker.”

http://en.wikipedia.org/wiki/BitTorrent_tracker

Multi-tracker torrents feature multiple trackers in the one torrent. This way, should one tracker fail, the others can continue supporting file transfer.”

http://en.wikipedia.org/wiki/BitTorrent_tracker

1 BitTorrent does not provide publicly available information regarding whether the media files are compressed prior to storage; however, uncompressed video files would, in most instances, be highly inefficient and unlikely.

2 BitTorrent does not provide publicly available information regarding whether the media files are compressed prior to storage; however, uncompressed video files would, in most instances, be highly inefficient and unlikely.