Changeset 11161

Show
Ignore:
Timestamp:
06/23/09 14:07:51 (9 months ago)
Author:
arvid
Message:

one aspell later

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • dotorg/trunk/html/beps/bep_0029.rst

    r11159 r11161  
    3939 
    4040The traditional solution to this problem is to cap the upload rate 
    41 of the bittorrent client to 80% of the uplink capacity. 80% leaves 
     41of the BitTorrent client to 80% of the up-link capacity. 80% leaves 
    4242some head room for interactive traffic. 
    4343 
    4444The main drawbacks with this solution are: 
    4545 
    46 1. The user needs to configure his/her bittorrent client, it won't 
     461. The user needs to configure his/her BitTorrent client, it won't 
    4747   work out-of-the-box. 
    48482. The user needs to know his/her internet connection's upload 
     
    5050   may connect to a large number of different networks. 
    51513. The headroom of 20% is arbitrary and wastes bandwidth. Whenever 
    52    there is no interactive traffic competing with bittorrent, the 
     52   there is no interactive traffic competing with BitTorrent, the 
    5353   extra 20% are wasted. Whenever there is competing interactive 
    5454   traffic, it cannot use more than 20% of the capacity. 
     
    130130....... 
    131131 
    132 This is the protcol version. The current version is 1. 
     132This is the protocol version. The current version is 1. 
    133133 
    134134connection_id 
     
    145145This is the 'seconds' and 'microseconds' parts of the timestamp of when this 
    146146packet was sent. This is set using gettimeofday() on posix and QueryPerformanceTimer() 
    147 on windows. The higher resultion this timstamp has, the better. 
     147on windows. The higher resolution this timestamp has, the better. 
    148148 
    149149timestamp_difference_microseconds 
     
    210210a packet that has not yet been received. 
    211211 
    212 The bitmask has reverse byteorder. The first byte represents packets [ack_nr + 2, 
     212The bitmask has reverse byte order. The first byte represents packets [ack_nr + 2, 
    213213ack_nr + 2 + 7] in reverse order. The least significant bit in the byte represents 
    214214ack_nr + 2, the most significant bit in the byte represents ack_nr + 2 + 7. The 
     
    264264        The sequence number is initialized to 1. The connection ID is initialized 
    265265        to a random number. The syn packet is special, all subsequent packets sent 
    266         on this connection (except for resends of the ST_SYN) are sent with the 
     266        on this connection (except for re-sends of the ST_SYN) are sent with the 
    267267        connection ID + 1. The connection ID is what the other end is expected to 
    268268        use in its responses. 
     
    348348In order to have as little impact as possible on slow congested links, uTP adjusts 
    349349its packet size down to as small as 150 bytes per packet. Using packets that small 
    350 has the benefit of not clogging up a slow uplink, with long serialization delay. 
     350has the benefit of not clogging up a slow up-link, with long serialization delay. 
    351351The cost of using packets that small is that the overhead from the packet headers 
    352352become significant. At high rates, large packet sizes are used, at slow rates, 
     
    373373original sender of the packet (timestamp_difference_microseconds). This value is not meaningful 
    374374as an absolute value. The clocks in the machines are most likely not synchronized, 
    375 especially not down to micorsecond resolution, and the time the packet is in transit is 
     375especially not down to microsecond resolution, and the time the packet is in transit is 
    376376also included in the difference of these timestamps. However, the value is useful in 
    377377comparison to previous values. 
    378378 
    379379Each socket keeps a sliding minimum of the lowest value for the last two minutes. This value 
    380 is called *base_delay*, and is used as a baseline, the minumum delay between the hosts. 
     380is called *base_delay*, and is used as a baseline, the minimum delay between the hosts. 
    381381When subtracting the base_delay from the timestamp difference in each packet you get a 
    382382measurement of the current buffering delay on the socket. This measurement is called *our_delay*. 
     
    384384decrease the send window (which controls the send rate). 
    385385 
    386 The *CCONTROL_TARGET* is the buffering delay that the uTP accepts on the uplink. Currently the 
     386The *CCONTROL_TARGET* is the buffering delay that the uTP accepts on the up-link. Currently the 
    387387delay target is set to 100 ms. *off_target* is how far the actual measured delay is from the 
    388388target delay (calculated from CCONTROL_TARGET - our_delay).