Micro Transport Protocol

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]

μTP-Staukontrolle

[Bearbeiten | Quelltext bearbeiten]

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 6817 (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]

  • TCP congestion control
  • Multipurpose Transaction Protocol (MTP)
  • QUIC (Quick UDP Internet Connections)
  • Real-Time Media Flow Protocol (RTMFP)
  • Stream Control Transmission Protocol (SCTP UDP Encapsulation; RFC 6951 (englisch).)
  • UDP-based Data Transfer Protocol (UDT)

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Forum.bittorrent.org / A few comments about µTP (BEP-29). Archiviert vom Original am 1. März 2010; abgerufen am 15. November 2009 (englisch).
  2. Iljitsch van Beijnum: ?Torrent's switch to UDP and why the sky isn't falling. In: Ars Technica. 2. Dezember 2008, abgerufen am 11. Mai 2021 (amerikanisches Englisch).
  3. uTorrent shifts towards UDP to make it work better. In: www.thinkbroadband.com. Abgerufen am 11. Mai 2021 (englisch).
  4. Libutp, an open source implementation of µTP, has now been released (Page 1) / Announcements / µTorrent Community Forums. Archiviert vom Original am 23. Januar 2011; abgerufen am 15. Januar 2011 (englisch).
  5. KTorrent First BitTorrent Client To Adopt Open Source uTP * TorrentFreak. Abgerufen am 11. Mai 2021 (englisch).
  6. KTorrent 4.0 is out. 24. Mai 2010; (englisch).
  7. Google Code Archive - Long-term storage for Google Code Project Hosting. In: code.google.com. Abgerufen am 11. Mai 2021 (englisch).
  8. qBittorrent Official Website. In: www.qbittorrent.org. Abgerufen am 11. Mai 2021 (englisch).
  9. Tixati.com - News. In: www.tixati.com. Abgerufen am 11. Mai 2021 (englisch).
  10. Version 4400 4702 Changelog - VuzeWiki. In: wiki.vuze.com. Abgerufen am 11. Mai 2021 (englisch).
  11. Changes – Transmission. Archiviert vom Original am 24. Mai 2015; abgerufen am 12. Juli 2012 (englisch).
  12. Technical information about UDP. Archiviert vom Original am 12. Mai 2009; abgerufen am 23. Dezember 2008 (englisch).
  13. Forum.bittorrent.org / A few comments about µTP (BEP-29). Archiviert vom Original am 1. März 2010; abgerufen am 15. November 2009 (englisch).
  14. Post by developer "Greg Hazel" in thread "μTorrent 1.9 alpha". 26. November 2008, archiviert vom Original am 8. Februar 2009; abgerufen am 8. März 2009 (englisch).
  15. ΜTorrent 1.9 alpha 15380 (Page 1) / Announcements / µTorrent Community Forums. Archiviert vom Original am 25. März 2013; abgerufen am 23. Dezember 2012 (englisch).
  16. Distributed UDP hole punching for the BitTorrent protocol (Page 1) / Protocol Design Discussion / µTorrent Community Forums. Archiviert vom Original am 19. Juni 2013; abgerufen am 23. Dezember 2012 (englisch).