Wednesday, July 1, 2009

Micro Transport Protocol

Micro Transport Protocol is basically BitTorrent over UDP.

Traditionally, when an application needs to communicate via a network, it chooses between TCP or UDP for its transport protocol. When the need for reliability is much more important then speed, TCP is the right choice. Otherwise, it can use UDP to take advantage of its strengths. BitTorrent, which deals with the reliable transfer of data, obviously should use TCP.

However, in recent years, BitTorrent started to dominate the Internet. Regardless of the legality of the files being transferred, BitTorrent has become a bandwidth hog. This is a concern for ISPs, particularly in the US where there are no download limits. To combat the BitTorrent onslaught, ISPs started shaping their traffic. This is the start of the net neutrality debate.

Two simple examples of traffic shaping are TCP reset and random packet discard. In TCP reset, the ISP looks for P2P traffic (long session between 2 peers involving large packets) and sends a TCP reset to one or both users. In random packet discard, the ISP simply drops random packets.

To defeat the traffic shaping techniques of the ISPs, BitTorrent designers turn to UDP since UDP traffic are much harder to shape. ISPs will have to look inside the UDP packets to interfere with the traffic but such deep packet inspection is almost similar to wiretapping which is illegal in most countries. And besides, looking for long TCP sessions is so much easier than inspecting UDP packets. It is analogous to counting truck trailers in the highway versus counting the occupants of all the vehicles passing by.

Using UDP, however, has its problems too. Without the congestion control of TCP, there is a danger of flooding which can slow down other applications that use the Internet. Furthermore, TCP features such as retransmission of lost packets should be reimplemented again.

The Micro Transport Protocol addresses congestion issue by controling the transfer rate of TCP connections using information gathered from the transport. It aims to decrease latency caused by applications using the protocol while maximizing bandwidth when latency is not excessive. This way, there is no need for the user to set the upload/download rate since the protocol automatically adjusts to the network.

Since the protocol is still being implemented, its features are typically hidden or made obscure. The lack of an open-source implementation of this protocol or even a standard surrounding it will, in my opinion, slow down its adaptation and may further the debate if UDP is right for BitTorrent or not.

No comments:

Post a Comment