Windows, P2P, network freezes and the TCP `half-open’ state

Have you ever tried to run a very network-intensive P2P application on Windows XP SP2 or higher? If so, you may have encountered very strange behaviour with the Windows TCP/IP network stack. Specifically, you won’t be able to open any new TCP/IP connections, so web-browsing, email checking, SSH, etc will all be basically [...]

BitTorrent Strategies: The Beginning

To follow up on my last post on the bittorrent end-game, I’m going to write about a strategy to bootstrap a torrent download. I am talking here about the case where you start a download with no existing data, in other words, from scratch. As I described in one of my earlier articles [...]

BitTorrent Strategies: The End Game

Downloads in BitTorrent take place according to a number of strategies, which map to stages. Initiating a torrent download has one strategy, normal operation has another strategy, and finally pulling down the last remaining pieces has yet another strategy.
The End Game is the name for the final download strategy – there is a [...]

BitTorrent Distributed Hash Table (DHT) or Trackerless BitTorrent I

One of the more interesting extensions to the BitTorrent protocol has been the introduction of a distributed hash table implementation. As mentioned in my previous article on the basics of the BitTorrent protocol, traditionally BitTorrent relies upon a centralised “tracker” application – which runs over standard HTTP – in order to facilitate contacting peers [...]