Dynamic Block Requests (DBR) (ita)
Questa funzione regolamenta la richiesta di blocchi, evitando eccessi, e dato il funzionamento potrebbe essere intesa come una sorta di endgame.
La procedura del download si sviluppa in questo modo:
- Viene effettuata una connessione al Peer e vengono determinati i chunk che il peer ha.
- Un Datarange viene riservato sul client locale per il download. Si tratta di una piccola parte del file. Lo stesso datarange non verrà richiesto ad altri peer.
- Lo stesso datarange è richiesto dal peer.
In questo modo richiedendo meno blocchi ai client lenti. Possiamo richiedere maggiori/più grandi blocchi ai client più veloci che ci comporta di conseguenza una maggiore velocità di download e quindi un più veloce completamento del download.
Questa funziona ha senso solo se rimane una piccola parte del file/chunk da terminare.
NOTA (a titolo informativo, non vale per la SharkX):
Una precedente versione di questa funzione, includeva la "rimozione" delle fonti troppo lente in modo da permettere l'avanzamento dei client più veloci. La rimozione delle fonti in questo caso non è una buona idea dato che le fonti lente potrebbero diventare veloci in poco tempo, ad esempio si potrebbe essere assegnati ad un trickle slot.
La funzione è stata ideata da Netfinity