博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uTP协议的前世今生(from wikipedia)
阅读量:4049 次
发布时间:2019-05-25

本文共 2037 字,大约阅读时间需要 6 分钟。

Micro Transport Protocol 或者µTP协议是一个基于UDP协议的开放的BT点对点文件共享协议。它的目的是减轻延迟并且解决传统的基于TCP的BT协议所遇到的拥塞控制问题,提供可靠的有序的

It was devised to automatically slow down the rate at which packets of data are transmitted between users of file sharing 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 on and high-performance bulk transport, was adapted for use as a background transport protocol by Plicto (which was acquired by in 2006), and further developed within . It was first introduced in the µTorrent 1.8.x beta branches, and publicized in the alpha builds of 1.9.

The implementation of µTP used in µTorrent was later separated into the "libutp" library and published under the MIT license.

The first client to implement µTP was 4.0. currently has an incomplete implementation of µTP in a development branch. Azureus (now called ) Bittorrent Client also implements µTP (since Azureus 4.5.0.5 on and 10.5 or higher only). implements µTP since version 2.30.

Operation

µTP consists of two parts: a framing scheme and a congestion control algorithm that is less aggressive than TCP's.[]

[] µ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 ), but it is realised in a completely incompatible manner.

The µTP framing scheme is believed by some to be far from optimal.

[] µ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. Additionally, information from the µTP congestion controller can be used to choose the transfer rate of TCP connections.

LEDBAT has been described in an Internet-Draft, but the details of the µTP implementation are different from those of the draft.

转载地址:http://qtbci.baihongyu.com/

你可能感兴趣的文章
IOS开发的开源库
查看>>
IOS开发的开源库
查看>>
Jenkins - sonarqube 代码审查
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成(一)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 单机部署(二)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 高可用集群部署(三)
查看>>
Golang struct 指针引用用法(声明入门篇)
查看>>
Linux 粘滞位 suid sgid
查看>>
C#控件集DotNetBar安装及破解
查看>>
Winform皮肤控件IrisSkin4.dll使用
查看>>
Winform多线程
查看>>
C# 托管与非托管
查看>>
Node.js中的事件驱动编程详解
查看>>
mongodb 命令
查看>>
MongoDB基本使用
查看>>
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>
nodejs Stream使用中的陷阱
查看>>
MongoDB 数据文件备份与恢复
查看>>
数据库索引介绍及使用
查看>>