Micro Transport Protocol

Micro Transport Protocol ou µTP (às vezes também grafado como uTP) é uma variante aberta baseada em UDP do protocolo de compartilhamento de arquivos ponto a ponto BitTorrent destinado a mitigar problemas de latência e outros problemas de controle de congestionamento encontrados no BitTorrent convencional sobre TCP, enquanto fornece entrega confiável e ordenada.

Ele foi criado para desacelerar automaticamente[1] a taxa na qual os pacotes de dados são transmitidos entre os usuários do compartilhamento de arquivos ponto a ponto Bittorrent quando esta interfere em outros aplicativos. Por exemplo, o protocolo deve permitir automaticamente o compartilhamento de uma linha ADSL entre um aplicativo BitTorrent e um navegador da web.

Desenvolvimento

[editar | editar código-fonte]

O µTP surgiu de pesquisas na Internet2 sobre QoS e transporte em massa de alto desempenho, foi adaptado para uso como protocolo de transporte em plano de fundo pela Plicto, que foi fundada por Stanislav Shalunov[2] e mais tarde foi adquirida pela BitTorrent, Inc. em 2006 e desenvolvida posteriormente seu novo dono. Foi introduzido pela primeira vez nos ramos beta do µTorrent 1.8.x e publicado nas versões alfa do µTorrent 1.9.[3][4]

A implementação do µTP usada no µTorrent foi posteriormente disponibilizada como a biblioteca "libutp" e publicada sob a Licença MIT.[5][6]

O primeiro cliente livre a implementar o µTP foi o KTorrent 4.0.[7][8] O libtorrent implementa o µTP desde a versão 0.16.0[9] e é usado no qBittorrent desde 2.8.0.[10] O Tixati implementa o µTP desde a versão 1.72.[11] O Vuze (antigo Azureus) implementa o µTP desde a versão 4.6.0.0.[12] O Transmission implementa o µTP desde a versão 2.30.[13]

  • 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)
  • UDP-based Data Transfer Protocol (UDT)

Referências

Ligações externas

[editar | editar código-fonte]