2010-02-20 3 views
3

나는 실제로 비트를 다운로드하지 않고 (또는 가능한 한 작은) 새로운 비트 토 런트 득시글 득시글하다. 어떤 피어가 파일 기반 통계를 만들기 위해 어떤 조각을 가지고 있는지 알기 위해 파종기 수와 leechers 수 또는 퍼센티지의 수가 충분하지 않다는 것을 알고 있어야합니다. 나중에 많은 동료가있는 경우 데이터를 다운로드하여 그 내용을 확인해야합니다. 이 부분은 일반 토런트 클라이언트로 수행 할 수 있습니다.BitTorrent swarm에서 통계를 수집하는 방법은 무엇입니까?

저는 프로토콜을 직접 구현하지 않으므로 libtorrent와 ktorrent의 libbtcore 구현을 살펴 보았습니다. 어느 것도 다운로드하지 않을 때 데이터를 수집 할 수 없으며 다운로드 할 것이 없을 때 단순히 연결된 피어가 없습니다. Libtorrent는 더 간단하지만 ktorrent는 더 잘 설명됩니다.

  • 를 사용하여 정확히 몇 가지 응용 프로그램 :

    나는 3 가능성을 참조하십시오. 거기 아무도 없나요?

  • 내가 원하는 것을 수행하도록 토런트 구현을 수정하십시오. 누구와도 친숙한가요? 어디서 시작하나요?
  • 프로토콜의 작은 하위 집합을 구현합니다. 동료들에게 주기적으로 주기적으로 물어보십시오. 이것이 가능합니까 아니면 프로그램이 거의 모든 프로토콜을 지원해야합니까?

무엇이 좋습니다?

답변

3

이것은 오래된 질문이지만, 아마도이 대답은 다른 사람들에게 유용 할 수 있습니다.

  • 일부 응용 프로그램을 정확하게 사용하십시오. 거기 아무도 없나요?

나는 그렇지 않습니다.

  • 내가 원하는 것을 수행하도록 토런트 구현을 수정하십시오. 누구와도 친숙한가요? 어디서 시작하나요?

저는 (예 : ABC에서 사용되는) BitTornado 코어에 대해서만 잘 알고 있습니다. 그것은 파이썬으로 작성되었지만 아키텍처가 엉망입니다.

그러나 구현을 수행하고 불필요한 기능을 제거하기 만하면됩니다.

  • 프로토콜의 작은 하위 집합을 구현하십시오. 동료들에게 주기적으로 주기적으로 물어보십시오. 이것이 가능합니까 아니면 프로그램이 거의 모든 프로토콜을 지원해야합니까?

동료에게 물어볼 수는 없습니다. 다른 피어는 자신이 원하는 조각을 원한다면 언제든지 알려줍니다 (대신 푸시). BitTorrent 핸드 셰이크가 끝나면 피어는 bitfield 조각을 보낼 수 있습니다. 그 후에 새로운 조각을 획득했음을 알려주는 메시지를 보낼 수 있습니다. 또한 친구들은 자신이 가지고있는 조각에 대해 거짓말을 할 수 있습니다. 예를 들면 superseeding peers과 BitThief와 같은 프리 라이딩 클라이언트가 있습니다.

프로토콜의 작은 하위 집합을 구현하려면 최소한 비트 토 런트 핸드 셰이크 메시지와 확장 핸드 셰이크 메시지를 구현해야합니다. 후자는 uTorrent PEX 메시지를 수신 (및 전송) 할 수있게합니다. PEX는 떼에서 다른 동료를 빨리 발견하는 데 유용합니다.

통계 수집 목적으로 비트 필드 및 HAVE 메시지를 추가로 지원해야합니다.

관련 문제