Replacing FTP: The Peer Distributed Transfer Protocol (PDTP)


The Peer Distributed Transfer Protocol, or PDTP, is a project to define a replacement for the venerable FTP protocol. PDTP is similar to BitTorrent in the way it handles distributed streams, but also manages a directory hierarchy automatically and includes other interesting features such as metadata rich directory listings and support for file integrity validation through the use of DSS signatures. The project proposes three use cases for increasing scale. So what's wrong with BitTorrent? Here's a snippet from the FAQ:

As PDTP is fundamentally different from BitTorrent in several ways, it shouldn't be viewed as "reinventing the wheel". However, PDTP was designed after analyzing and learning from a number of BitTorrent's design and implementation problems.

BitTorrent places considerable logic in the client. The tracker is little more than a switchboard through which every client participating chaotically attempts to manage the transfer process. Because no one client ever has the "big picture", transfer rates are often suboptimal as the network of transfers is not logically organized by a central authority into an optimal configuration. Without centralized control, special hacks are required in order to improve transfer rates.

BitTorrent provides a means of transferring groups of files rather tha files within a hierarchy. Consequently, BitTorrent cannot act as a "drop-in" replacement for an HTTP or FTP server. While it would be possible to use a program like dnotify to autogenerate .torrent files for every file within a directory hierarchy, a subsequent problem with BitTorrent's design is encountered with the computational overhead of the protocol design.

Tracker communication in BitTorrent is handled over HTTP in a connectionless manner, which places significantly more demand on the server than a lightweight transactional protocol. Because of this, it becomes difficult for a single server to serve multiple "torrents" due to the resource usage of the BitTorrent tracker. While BitTorrent makes claims of "limitless scalability", anyone who has actually used it knows this isn't the case.

BitTorrent suffers another problem in that the only usable implementations are currently only available in Python. The primary problem with Python is its excessive resource usage, but other problems arise such as integration of the Python implementation into a native GUI frontend for a given platform, as well as the need to bundle the Python runtime with the BitTorrent client on most platforms as few deployed systems have a Python runtime available.
From pdtp - FAQ
Referenced Thu Apr 01 2004 19:41:12 GMT-0700

The project is far from complete. In fact, at this point its mostly a collection of Sourceforge projects with little in the way of downloadable code. The project status page shows that there's still much to do. If you're a programmer, jump in and help. This is a project worthy of support. I have to say that if I never had to select a mirror again when downloading a large file, I wouldn't miss it at all.