Micro Transport Protocol 或者µTP协议是一个基于UDP协议的开放的BT点对点文件共享协议。它的目的是减轻延迟并且解决传统的基于TCP的BT协议所遇到的拥塞控制问题,提供可靠的有序的
It was devised to automatically slow down[1] the rate at which packets of data are transmitted between users of peer-to-peer file sharing torrents when it interferes with other applications. For example, the protocol should automatically allow the sharing of an ADSL line between a BitTorrent application and a web browser.
Development
µTP emerged from research at Internet2 on QoS and high-performance bulk transport, was adapted for use as a background transport protocol by Plicto (which was acquired by BitTorrent, Inc. in 2006), and further developed within BitTorrent, Inc..[2] It was first introduced in the µTorrent 1.8.x beta branches, and publicized in the alpha builds of µTorrent 1.9.[3][4]
The implementation of µTP used in µTorrent was later separated into the "libutp" library and published under the MIT license.[5][6]
The first free software client to implement µTP was KTorrent 4.0.[7][8] libtorrent currently has an incomplete implementation of µTP in a development branch.[9][10][11] Azureus (now called Vuze) Bittorrent Client also implements µTP (since Azureus 4.5.0.5 on Microsoft Windows and Mac OS X 10.5 or higher only).[12] Transmission implements µTP since version 2.30[13].
Operation
µTP consists of two parts: a framing scheme and a congestion control algorithm that is less aggressive than TCP's.[citation needed]
[edit] µTP framing
µTP stores data within UDP datagrams using its own framing scheme. µTP's framing scheme has functionality roughly equivalent to TCP's (with timestamps and SACK), but it is realised in a completely incompatible manner.
The µTP framing scheme is believed by some to be far from optimal.[14]
[edit] µTP congestion control
The congestion control algorithm used by µTP, known as Low Extra Delay Background Transport (LEDBAT), aims to decrease the latency caused by applications using the protocol while maximizing bandwidth when latency is not excessive.[15][16] Additionally, information from the µTP congestion controller can be used to choose the transfer rate of TCP connections.[17]
LEDBAT has been described in an Internet-Draft,[18] but the details of the µTP implementation are different from those of the draft.[19]