Domanda

Come si fa a determinare quale di connessione, si è connessi a ha la più veloce connessione (velocità di upload)?

Fa la connessione effettiva del peer dominare, che è più veloce o sarà il peer che ha bisogno la maggior parte dei pezzi di indurlo a caricare il più veloce come meno persone stanno scaricando da lui?

Voglio scrivere un algoritmo che prende tutti i coetanei nella lista dei pari restituito dal tracker e determinare appassire che sono più vicini coetanei utilizzando un ping e la tempistica della risposta o in qualche altro modo.

Grazie

È stato utile?

Soluzione

Un ping (ICMP echo request / risposta) vi darà la latenza di un pari, ma non la larghezza di banda disponibile il peer ha. Si desidera la larghezza di banda in quanto TCP è bravo a fare di larghezza di banda * prodotti di ritardo e capire come fare una connessione veloce, anche se di andata e ritorno di un satellite.

Quello che fate è di connettersi a tutti loro. Avere 40 peer connessi non è raro. E poi si decide su cui unchoke in base alle loro tassi attuali verso di voi (fino a diventare un seminatrice). Deve anche essere abbastanza dinamica, dal momento che il cambiamento della larghezza di banda disponibile nel corso del tempo. Il miglior consiglio che posso dare è quello di leggere

http://www.bittorrent.org/bittorrentecon.pdf

che dà l'idea generale di come implementare l'economia. Ma molti clienti fanno cose diverse da quelle della carta, quindi la lettura del codice è un'altra opzione.

Quindi: si vuole misurare la larghezza di banda, non è la latenza. Quindi, ping è lo strumento sbagliato per il lavoro. Misurare la larghezza di banda è fatto più facilmente con il tracciamento della velocità con cui si invia pacchetti a un peer.

Credo che il soffocamento / algoritmo di unchoking e coetanei di selezione per unchoke è una delle parti più difficili da ottenere in un client. E 'meglio risolto con la penna, carta e cervello, non da seduto davanti al computer a scrivere codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top