Frage

Ich will collect Statistiken aus der Verbreitung einer Datei in einem neuen Bittorrent Schwarm, ohne irgendetwas tatsächlich das Herunterladen (oder so wenig wie möglich). Ich muss wissen, welche Peer hat, die Stücke (um dateibasierte Statistik) zu wissen, die Zahl der seeders und leechers oder Prozentsätze nicht genug. Später, wenn es viele Kollegen, die ich brauche, um die Daten, um festzustellen, was es ist. Dieser Teil kann mit einem normalen Torrent-Client erfolgen.

Ich habe nicht vor, das Protokoll selbst zu implementieren, so dass ich bei zwei Implementierungen sah libtorrent und ktorrent des libbtcore. Weder ist in der Lage Daten zu sammeln, während nicht, dass es das Herunterladen sind einfach keinen Peers verbunden ist, wenn es nichts zu Download ist. Libtorrent ist einfacher, aber ktorrent sieht besser kommentiert.

Ich sehe 3 Möglichkeiten:

  • Verwenden Sie einige Anwendung genau für diese. Gibt es?
  • Ändern einer torrent Implementierung zu tun, was ich will. Ist jemand mit ihnen vertraut? Wo soll ich anfangen?
  • Implementieren Sie eine kleine Teilmenge des Protokolls. Nur in regelmäßigen Abständen die Kollegen fragen, was sie haben. Ist dies nicht möglich oder würde das Programm Notwendigkeit fast das gesamte Protokoll zu unterstützen?

Was empfehlen Sie?

War es hilfreich?

Lösung

Dies ist eine alte Frage, aber vielleicht ist diese Antwort könnte für andere nützlich sein.

  
      
  • Verwenden Sie einige Anwendung genau für diese. Gibt es?
  •   

Nicht, dass ich wüsste.

  
      
  • Ändern einer torrent Implementierung zu tun, was ich will. Ist jemand mit ihnen vertraut? Wo soll ich anfangen?
  •   

Ich bin nur vertraut mit dem BitTornado Kern (die in zum Beispiel ABC verwendet wird). Es ist in Python geschrieben, aber es ist ein architektonisches Chaos.

Sie können jedoch nur jede Implementierung nehmen und sie von unnötigen Funktionen starten Strippen.

  
      
  • Implementieren Sie eine kleine Teilmenge des Protokolls. Nur in regelmäßigen Abständen die Kollegen fragen, was sie haben. Ist dies nicht möglich oder würde das Programm Notwendigkeit fast das gesamte Protokoll zu unterstützen?
  •   

Beachten Sie, dass Sie nicht „fragen“, um eine Peer was sie haben. Die anderen Peer informiert Sie, wann immer er will über die Stücke hat (so ist es Push statt Pull ). Nach den BitTorrent-Handshake, ein bitfield von Stücken hat. Danach kann es HAVE Nachrichten senden Sie darüber informiert, es ein neues Stück erworben hat. Beachten Sie auch, dass Kollegen über die Stücke liegen sie haben. Beispiele hierfür sind superseeding Peers und Freeriden Kunden wie BitThief.

Wenn Sie eine kleine Teilmenge des Protokolls implementieren wollen, sollten Sie auf das absolute Minimum benötigen die BitTorrent Quittierungsaustauschnachricht implementieren und vorzugsweise die erweiterte Quittierungsaustauschnachricht. Letzteres ermöglicht es Ihnen (und senden) uTorrent PEX-Nachrichten zu empfangen. PEX ist nützlich, schnell andere Peers im Schwarm zu entdecken.

Für Ihre statistische Zwecke zu sammeln, benötigen Sie zusätzlich die bitfield und HAVE Nachrichten zu unterstützen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top