Two products, namely BitTorrent and SwarmStream, and one research project, namely, Microsoft’s “Avalanche” project, have been included in this up-to-date analysis.
The following is a summary of my up-to-date conclusion regarding each of the above mentioned products, provided here in pros vs cons format, for brevity.
1. Open Protocol (can be replicated freely by commercial applications)
2. Allows users to download as well as publish
3. Uses true and tried algorithms; no experimental or easy-to-abuse features
4. Open source; independently maintainable & evolveable (GPL-like license)
1. No streaming support
2. Allows users to publish content (may be undesirable for copyright owners)
3. Allows users to adjust bandwidth limits (slows down the network)
1. Supports streaming
2. Works with any browser over HTTP port; works with direct links, no .torrent files required
3. Does not allow the user to publish (may be desirable for copyright owners)
4. Does not allow users to adjust bandwidth usage (maintains maximum network speed)
5. Available as a Java pluggable protocol handler (known as SwarmStream Public Edition); offers functionality transparently to Java developers. No license fee for open source and commercial use. This is limited in some ways, especially scalability, compared to the full commercial version. Less appealing than using a BitTorrent Java library, but no such publicly available library exists yet.
1. Proprietary protocol (always loses to open, commodity protocols in the long run)
2. Commercial version license ($25K)
3. Implements experimental features (potentially unsecure or unproven); tries to do too much (which leaves a lot of room for performance and security problems in unexpected network topologies and under unexpected network conditions)
Microsoft Avalanche (research project)
As vaporware, it has no pros.
“Randomized Network Coding” is an idea that has popped up fairly recently within the Information Theory field. The purpose of it was to out-perform network routing in terms of how much of a network’s total potential bandwidth may be utilized. It attempted to do so by essentially transforming the problem from a routing problem to an encoding problem. As it turned out, the encoding required at each node would cost a great deal in CPU and memory usage when dealing with very large files (e.g. movie files) and/or large number of blocks (reference), which slows down the network dramatically.
Due to the real-life vs theoretical gap and the inherent complexity of peer-assisted content distribution, it is generally wise to rely on true and tried algorithms than the latest and greatest theoretical research and simulations.
Concerns common issues:
- Manageability (decentralized network)
- Lack of locality (which frustrates caching schemes) increases transit costs for ISPs. This is being tackled by companies like Cachelogic which cache P2P content as it travels thru the network and localizes it. More on this can be found in this press release on BitTorrent.com.
- Asymmetric-traffic (traffic engineering)
- Variable bandwidth, peers come and go
- Need for more sophisticated peer-assisted content distribution algorithms
- Need for dynamic elimination of malicious peers from client’s peer list (easy to implement but so far missing)