Das Micro Transport Protocol (μTP, manchmal auch uTP) ist eine offene, auf dem User Datagram Protocol (UDP) basierende Variante des Peer-to-Peer-Filesharing-Protokolls BitTorrent mit dem Zweck die schlechten Latenzzeiten und Staukontrollprobleme, die bei herkömmlichem BitTorrent über Transmission Control Protocol (TCP) auftreten, abzumildern und gleichzeitig eine geordnete Zustellung zu gewährleisten.
Es wurde entwickelt, um die Übertragungsrate der Datenpakete zwischen Nutzern von Peer-to-Peer-Torrents automatisch zu verringern[1] wenn dies andere Anwendungen stört. So soll das Protokoll beispielsweise automatisch die gemeinsame Nutzung einer DSL-Leitung durch eine BitTorrent-Anwendung und einen Webbrowser ermöglichen.
μTP entstand aus der Forschung bei Internet2 zu QoS und hochleistungsfähigem Massentransport, wurde von Plicto, gegründet von Stanislav Shalunov und Ben Teitelbaum, für die Verwendung als Hintergrundtransportprotokoll angepasst und später von BitTorrent, Inc. im Jahr 2006 übernommen und von seinem neuen Eigentümer weiterentwickelt. Es wurde erstmals in den Beta-Zweigen von μTorrent 1.8.x eingeführt und in den Alpha-Builds von μTorrent 1.9 veröffentlicht.[2][3]
Die in μTorrent verwendete Implementierung von μTP wurde später in die Bibliothek „libutp“ ausgegliedert und unter der MIT-Lizenz veröffentlicht.[4]
Der erste freie Software-Client, der μTP implementierte war KTorrent 4.0.[5][6] libtorrent implementiert μTP seit Version 0.16.0[7] und in qBittorrent wird es seit Version 2.8.0 verwendet.[8] Tixati implementiert μTP seit Version 1.72.[9] Vuze (früher Azureus) implementiert μTP seit Version 4.6.0.0.[10] Transmission implementiert μTP seit Version 2.30.[11]
Der von μTP verwendete Staukontrollalgorithmus, bekannt als Low Extra Delay Background Transport (LEDBAT), zielt darauf ab, die Latenz bei Anwendungen, die das Protokoll verwenden, zu verringern und gleichzeitig die Bandbreite zu maximieren, wenn die Latenz nicht übermäßig ist.[12][13] Darüber hinaus können die Informationen der μTP-Überlaststeuerung verwendet werden, um die Übertragungsrate von TCP-Verbindungen zu bestimmen.[14] LEDBAT ist in RFC (englisch). beschrieben. Ab 2009 unterschieden sich die Einzelheiten der μTP-Implementierung von denen des damaligen Internetentwurfs.
μTP unterstützt auch NAT-Traversal mittels UDP-Hole-Punching zwischen zwei portbeschränkten Gegenstellen, wobei eine dritte unbeschränkte Gegenstelle als STUN-Server fungiert.[15][16]