p2p - BitTorrent Optimistic Unchoke/Bandwith probing -


while thinking how bittorrent works, few questions come mind. appreciate if can share few possible responses.

  1. suppose bittorrent gets 50 peers tracker , establishes connection 20 of them form peer-set. peer-set randomly selected or based on bandwith? (i understand peers unchoked selected based on offered bandwidth) subsequently, how bandwidth determined each connection (a ping can give latency not bandwidth assume)

  2. the optimistic unchoke leads problem of free-riders in system. considering unchoke might not result in better peers, why not possible discard policy @ all? (i assume policy helps peers slow bandwith fulfill requests, why cannot bittorrent adopt policy probe bandwith of optimistic peer without sending data packets; , have (maybe 5th connection) low-bandwidth peers don't starve. 5th channel transmit @ fraction of bandwith compared other 4 channels) may @ least discourage free-riding?

  1. traditionally peers selected @ random. clients may have had weak biases based on previous interactions peers or cidr distance. however, there recent proposal (which utorrent , libtorrent implementes) suggests consistent uniformly distributed peer selection/priority algorithm. more information, see this blog post. unchoke algorithm triggered every 15 seconds. peers sorted number of bytes sent during last 15 seconds. ones sending unchoked, , rest choked. so, download rate 15 second average.

  2. if don't optimistically unchoke peers, there's no way prove them better other peers in unchoke set, , never unchoke back. without optimistic unchokes (also assuming don't have allow-fast extension), there no way start download. when first join, won't have pieces, can't trade first piece, have rely on being optimistically unchoked. estimating someone's bandwidth without sending bulk data hard , unreliable. if got estimate of someones capacity, wouldn't mean capacity available you. current mechanism robust in doesn't need make assumptions network equipment between peers (like packet-train bandwidth estimation needs do) , looks @ actual data.


Comments

Popular posts from this blog

Android layout hidden on keyboard show -

google app engine - 403 Forbidden POST - Flask WTForms -

c - Why would PK11_GenerateRandom() return an error -8023? -