librtorrent

Bibliothèque BitTorrent C ++
Télécharger maintenant

librtorrent Classement & Résumé

Publicité

  • Rating:
  • Nom de l'éditeur:
  • Rasterbar Software
  • Systèmes d'exploitation:
  • Windows XP / Vista / 7
  • Taille du fichier:
  • 980 KB

librtorrent Mots clés


librtorrent La description

Une caractéristique complète implémentation C ++ de chaque mettant l'accent sur l'efficacité et l'évolutivité libtorrent est une fonction complète implémentation C ++ de chaque mettant l'accent sur l'efficacité et l'évolutivité. Il fonctionne sur les systèmes embarqués ainsi que les ordinateurs de bureau. Il dispose d'une interface bibliothèque bien documentée qui est facile à utiliser. Il est livré avec un simple client bittorrent démontrant l'utilisation de la bibliothèque. Les principaux objectifs de libtorrent sont les suivants: * Pour être efficace cpu * Pour être efficace de la mémoire * Être très facile à utiliser Caractéristiques libtorrent est en cours de développement. Il est un projet en cours. Ses supports actuels de l'État et comprend les caractéristiques suivantes: extensions * Interface plug-in pour la mise en uvre des extensions personnalisées bittorrent sans avoir à modifier libtorrent * Les flots de supports (en utilisant le réseau principal protocole Kademlia DHT) avec des extensions de DHT. 5 MPE. * Prend en charge le protocole d'extension de chaque. Voir extensions. 10 MPE. * Prend en charge le protocole de transfert de métadonnées uTorrent BEP 9 (à savoir des liens aimant). * Supporte le protocole d'échange de pairs uTorrent (PEX). * Soutient la découverte par les pairs locaux (multidiffusions pour les pairs sur le même réseau local) * Le support d'extension multipiste (supporte à la fois la MPE stricte 12 et l'interprétation uTorrent). * écorchures tracker * Supports extension lt_trackers, pour échanger des trackers entre pairs * HTTP ensemencement, comme spécifié dans BEP 17 et 19 BEP. * Prend en charge le protocole UDP-Tracker. (BEP 15). * Prend en charge la no_peer_id = 1 extension qui facilitera la charge de trackers. * Supporte le compact = 1 paramètre de suivi. * Super ensemencement / ensemencement initial (16 MPE). * Torrents privés (27 MPE). * Prise en charge IPv6, y compris 7 et MPE 24 MPE. * Prise en charge des torrents d'arbre de hachage de Merkle. Cela rend la taille des fichiers torrent échelle bien avec la taille du contenu. Gestion de disque * Utilise un thread séparé E / S disque pour ne pas avoir le disque bloque toujours sur le réseau ou l'interaction client. (Voir threads). * fichiers supports> 2 gigaoctets. * Prise en charge de reprise rapide, une façon de se débarrasser du contrôle de pièce coûteuse au début d'une reprise de torrent. Enregistre l'état de stockage, l'état de piece_picker ainsi que tous les pairs locaux dans un fichier de reprise rapide séparé. * A une lecture réglable et cache disque d'écriture pour un débit de disque amélioré. * torrents files d'attente pour la vérification du fichier, au lieu de vérifier tous en parallèle. * N'a pas toutes les exigences de l'ordre de pièce dans un torrent qu'il reprend. Cela signifie qu'il peut reprendre un torrent téléchargé par tout client. * Prend en charge les fichiers rares et l'allocation de fichier compact (où les pièces sont regroupées sur le disque maintenus) * Le mode de semences, où les fichiers sur le disque sont supposés être complets, et chaque hachage de pièce est vérifiée la première fois qu'il est demandé. Réseau * Ajuste la longueur de la file d'attente de la demande en fonction du taux de téléchargement. * Sert plusieurs torrents sur un seul port et dans un seul fil * Pièce cueillette sur le bloc-niveau (par opposition à niveau de pièce). Cela signifie qu'il peut télécharger des parties de la même pièce de différents pairs. Il préférera également télécharger des morceaux entiers de pairs simples si la vitesse de téléchargement est assez élevée de ce poste particulier. * Http supports proxy et l'authentification de proxy de base * Prise en charge gzip Tracker-réponses * Peut limiter l'utilisation du chargement et le téléchargement de bande passante et le nombre maximum de pairs débloque * Possibilité de limiter le nombre de connexions. * Retards ont des messages s'il n'y a pas d'autre trafic sortant vers le pair, et ne l'envoie pas des messages à leurs pairs qui a déjà la pièce. Cela permet d'économiser la bande passante. * Téléchargement sélectif. La possibilité de sélectionner les parties d'un torrent que vous voulez télécharger. * Filtre IP à des adresses IP disallow et plages d'adresses IP de connexion et étant reliés. * NAT-PMP et support UPnP (de mappage de port automatique sur les routeurs qui le supporte) Implante emplacements de téléchargement automatique, afin d'optimiser le taux de téléchargement sans propagation capacité de chargement trop mince. Le nombre de slots d'émission est ajustée en fonction de la capacité de téléchargement des pairs au travail même pour les connexions qui sont des ordres de grandeur plus rapidement que d'autres. caractéristiques remarquables: la mise en cache du disque Tous les E / S disque libtorrent se fait de manière asynchrone au fil de réseau, par le disque io fil. Lorsqu'un bloc est lu, le disque io thread lit tous les blocs suivants de cette pièce dans le cache en lecture, en supposant que le poste demandant le bloc demandera également plusieurs blocs de la même pièce. Cela diminue le nombre de syscalls pour la lecture des données. Elle diminue également les retards de recherche. De même, pour les demandes d'écriture, les blocs sont mis en cache et rincé sur le disque une fois qu'une pièce complète est terminée ou la pièce est la moins récemment mise à jour, une fois que plus d'espace de cache est nécessaire. Le cache attribue de manière dynamique l'espace entre le cache d'écriture et de lecture. Le cache d'écriture est strictement priorisé sur le cache de lecture. Les blocs de cache utilisés sont utilisés, sont enfermés dans une mémoire physique pour éviter d'être poncé sur le disque. Autoriser le cache de disque à sortir sur le disque signifie qu'il deviendrait extrêmement inefficace de le rincer, car il faudrait être lu dans la mémoire physique uniquement pour être reversé sur le disque. Afin de conserver la mémoire et des appels système, les opérations de fichier IOVEC sont utilisées pour affleurer plusieurs blocs de cache dans un seul appel. Sur les systèmes à faible mémoire, le cache de disque peut être désactivé tout à fait ou défini sur une limite plus petite, pour enregistrer la mémoire. L'algorithme de mise en cache de disque est configurable entre «LRU» et «plus gros contigus». Le plus grand algorithme contigu est la valeur par défaut et chasse le plus grand bloc contigu des tampons, au lieu de rincer tous les blocs appartenant à la pièce qui a été écrite au moins récemment. Sous-système de disque haute performance Dans certaines circonstances, le cache de disque peut ne pas suffire de fournir des performances maximales. Un tel exemple est l'ensemencement de haute performance, à un grand nombre de pairs, sur un lien rapide. Dans un tel cas, la quantité de RAM peut simplement ne pas suffire à la lecture de disque de cache. Lorsqu'il n'y a pas assez de RAM sur le disque de cache, le débit de disque se dégraderait généralement pour fonctionner aussi mal qu'aucun cache, à la majorité du temps passé à attendre que la tête du disque recherche. Pour résoudre ce problème, LibTorrent Trie de lire des demandes par leur compensation physique sur le disque. Ils sont traités par la lecture de la tête de lecture du disque sur le lecteur. Cela rend Libtorrent très approprié pour les semences à grande échelle et à haut débit. Ces parcelles illustrent le décalage de disque physique pour des lectures au fil du temps. L'intrigue gauche est d'une exécution où la réinscription de l'opération de disque est désactivée et que la haleine est quand elle est allumée. La droite a une forme d'onde sinusoïdale relativement lisse, tandis que la gauche est plus aléatoire et implique beaucoup plus de temps sur le disque. Les requêtes de décalage de disques physiques véridiques ne sont prises en charge que sur les nouveaux noyaux Linux, Mac OS X et Windows 2000 et UP. Sur les CPU avec de petites caches L2, la copie de la mémoire peut être des opérations coûteuses. Il est important de continuer à copier au minimum sur de telles machines. Cela s'applique principalement aux systèmes embarqués. Afin de minimiser la copie du nombre de données reçues, la mémoire tampon de réception pour les données de charge utile est reçue directement dans un tampon de disque aligné de page. Si la connexion est cryptée, le tampon est déchiffré en place. Le tampon est ensuite déplacé dans le cache de disque sans être copié. Une fois que tous les blocs d'une pièce ont été reçus ou que le cache doit être rincé, tous les blocs sont transmis directement à Writev () pour les rincer dans un seul syscall. Lors de l'ensemencement et du chargement en général, une copie inutile est évitée par des blocs de mise en cache dans des tampons alignés, copiés une fois dans la mémoire tampon d'envoi de peer. Le tampon d'envoi de pair n'est pas garanti d'être aligné, même si c'est la plupart du temps. Le tampon d'envoi est ensuite crypté avec la clé spécifique des pairs et enchaînée sur l'IOVEC pour l'envoi. Cela signifie qu'il existe une copie de l'espace utilisateur afin de permettre aux demandes de pairs non alignés et au cryptage spécifique à des pairs. Ceci est illustré par la figure suivante: Picker Le sélecteur de pièces est un composant central d'une implémentation BitTorrent. Le sélecteur de pièces dans Libtorrent est optimisé pour trouver rapidement les pièces les plus rares. Il conserve une liste de toutes les pièces disponibles triées par rareté et pièces avec la même rareté, mélangées. Le premier mode le plus rare est le mode de sélection de pièces dominant. D'autres modes sont également pris en charge et utilisés par des pairs dans des situations spécifiques. Le cueilleur de la pièce permet de combiner la disponibilité d'une pièce avec une priorité. Ensemble, ils déterminent l'ordre de tri de la liste de pièces. Les morceaux avec priorité 0 ne seront jamais choisis, ce qui est utilisé pour la fonctionnalité de téléchargement sélective. Afin d'avoir autant de pièces partiellement finies que possible, les pairs ont une affinité à choisir des blocs des mêmes pièces que d'autres pairs dans la même catégorie de vitesse. La catégorie de vitesse est une catégorisation grossière des pairs basée sur leur taux de téléchargement. Cela rend les pairs lents à choisir des blocs de même pièce et des pairs rapides choisissent de la même pièce et diminuent donc la probabilité de pairs lents qui bloquent l'achèvement des pièces. Le sélecteur de pièces peut également être réglé sur des pièces de téléchargement dans l'ordre séquentiel. Merkle Hash Tree Torrents Merkle Hash Tree Torrents est une extension qui permet uniquement à un fichier torrent contenir uniquement le hachage racinaire de l'arbre de hachage formant la pièce. Le principal avantage de cette fonctionnalité est que peu importe le nombre de pièces dans un torrent, le fichier .torrent sera toujours la même taille. Il ne grandira que avec le nombre de fichiers (puisqu'il doit toujours contenir les noms de fichiers). Avec des torrents réguliers, les clients doivent demander plusieurs blocs pour des pièces, typiquement de différents pairs, avant que les données puissent être vérifiées contre le hachage de la pièce. Plus les pièces sont grandes, plus il faudra la plus grande pour télécharger une pièce complète et le vérifier. Avant que la pièce ne soit vérifiée, elle ne peut pas être partagée avec l'essaim, ce qui signifie la taille de la pièce la plus grande, les données de retournement plus lentes ont une fois que celle-ci est téléchargée par des pairs. Comme en moyenne, les données doivent s'asseoir, en attente, dans des tampons de cliente avant d'avoir été vérifiés et peuvent être téléchargés à nouveau. Un autre problème avec les grandes tailles de la pièce est qu'il est difficile pour un client d'identifier le pair malveillant ou buggy lorsqu'une pièce échoue, et il faudra plus de temps pour le télécharger et prendre plus de tentatives avant que la pièce ne réussisse aux plus grandes pièces. La taille de la pièce dans des torrents réguliers est un compromis entre la taille du fichier .torrent lui-même et la taille de la pièce. Souvent, pour les fichiers de 4 Go, la taille de la pièce est de 2 ou 4 Mo, juste pour éviter de rendre le fichier .torrent trop gros. Merkle Torrents résout ces problèmes en supprimant le compromis entre la taille et la taille de la pièce. Avec Merkle Torrents, la taille de la pièce peut être la taille de bloc minimum (16 Ko), qui permet à ses pairs de vérifier chaque bloc de données reçues des pairs, immédiatement. Cela donne un délai d'exécution minimum et supprime complètement le problème de l'identification de pairs malveillants. Le hachage racinaire est construit en hachage de toutes les pièces de la pièce paires de hasard, jusqu'à ce qu'ils s'effondrent tous sur la racine. Stockage de fichiers personnalisable La mise en uvre du stockage de LibRent est personnalisable. Cela signifie qu'un client BitTorrent spécial peut remplacer le moyen par défaut pour stocker des fichiers sur disque. Lors de la mise en uvre d'un cache BitTorrent, peu importe la manière dont les données sont stockées sur le disque, à condition que cela puisse être récupéré et ensemencé. Dans ce cas, une nouvelle classe de stockage peut être mise en uvre (héritante de la classe de stockage_interface) qui évite l'étape inutile de mapper des emplacements pour des fichiers et des compensations. Le stockage peut ignorer les limites du fichier et simplement stocker tout le torrent dans un seul fichier (qui finira par être concaténé tous les fichiers). L'avantage principal de cela, autre qu'un léger gain de performance de la CPU, est que toutes les opérations de fichier seraient alignées sur la page (et le secteur). Cela permet d'émettre des E / S ignorés efficaces et peut potentiellement conduire à une mise en cache de lecture plus efficace (à l'aide du cache de disque intégré plutôt que de s'appuyer sur le cache de disque du système d'exploitation). L'interface de stockage prend en charge les systèmes d'exploitation où vous pouvez demander des régions clairsemées (telles que Windows et Solaris). L'avantage de ceci est que lors de la vérification des fichiers, les régions connues pour être clairsemées peuvent être ignorées, ce qui peut réduire considérablement le temps nécessaire pour vérifier de manière significative un torrent. API facile à utiliser L'un des objectifs de conception de l'API librente est de faire des opérations communes simples, mais il est toujours possible de faire des opérations compliquées et avancées.


librtorrent Logiciels associés

EASYXLS Professional pour Java

EASYXLS Professional pour Java dispose de toutes les fonctionnalités nécessaires pour exporter des données de manière professionnelle à partir de vos applications Java vers des fichiers Excel ou de lire et d'importer des données dans vos applications Java à partir de fichiers Excel. ...

167 13.3 MB

Télécharger