本文共 1839 字,大约阅读时间需要 6 分钟。
问题:The fact that BitTorrent uses multiple TCP connections gives it an unfair advantage when competing with other services for bandwidth, which exaggerates the effect of BitTorrent filling the upload pipe. The reason for this is because TCP distributes the available bandwidth evenly across connections, and the more connections one application uses, the larger share of the bandwidth it gets.
大意是说BitTorrent使用多个TCP连接,使得它相比其他应用,占用了更多的带宽,特别是上传带宽。主要原因是TCP是对每个连接是均匀的分配带宽的。BitTorrent应用采用的连接越多,它占用的带宽就越大。
解决方案:uTP solves this problem by using the modem queue size as a controller for its send rate. When the queue grows too large, it throttles back.
uTP协议解决这个问题是通过采用队列大小控制其发送速度来达到目的的。当这个队列发送队列成长过快,则它自行抑制。
这种解决方案存在的问题主要在于:
The main drawbacks with this solution are:
The user needs to configure his/her BitTorrent client, it won't work out-of-the-box. The user needs to know his/her internet connection's upload capacity. This capacity may change, especially on laptops that may connect to a large number of different networks. The headroom of 20% is arbitrary and wastes bandwidth. Whenever there is no interactive traffic competing with BitTorrent, the extra 20% are wasted. Whenever there is competing interactive traffic, it cannot use more than 20% of the capacity.utp协议是基于UDP协议的,但它的拥塞控制机制是基于滑动窗口的。原文如此,Each socket has a max_window which determines the maximum number of bytes the socket may have in-flight at any given time. Any packet that has been sent, but not yet acked, is considered to be in-flight.是需要有一个最大窗口来控制这个网络拥塞。
即使如此,还有一些实现细节需要注意。
当目前窗口大小+包大小小于或者等于 Min(最大窗口,wnd_size)套接字最小也可能只传一个包。wnd_size是指 is the advertised window from the other end. It setsan upper limit on the number of packets in-flight.
Unlike TCP, sequence numbers and ACKs in uTP refers to packets, notbytes. This means uTP cannot repackage data when resending it.
转载地址:http://atbci.baihongyu.com/