2012-02-15 2 views
2

비트 토 런트 라이브러리를 작성하거나 네트워크 코딩을 사용하여 파일을 송수신 할 수 있도록 YAIRCC와 같은 일부 확장되어 있습니다. 이렇게하려면 필자의 선형 조합에 대한 메시지를 보내야합니다. 어떻게해야합니까? LTEP와 같은 확장 프로그램을 사용해야합니까, 아니면 다른 방법이 있습니까?네트워크 코딩 비트 토 런트 라이브러리

+0

정확히 "네트워크 코딩 사용"은 무엇을 말합니까? 직접적인 해결책은 xmlrpc를 통한 rTorrent와 같은 API를 사용하여 기존 클라이언트를 원격 제어하는 ​​것입니다. – pyroscope

+0

즉, 네트워크 코딩으로 파일을 코딩하고 선형 조합을 다른 사용자에게 보냅니다. 수신과 동일합니다. – hottea

답변

1

LTEP를 사용하여 새 메시지에 대한 지원을 알리는 것이 좋습니다.이 메시지는 표준 REQUEST 및 PIECE 메시지 대신 두 피어에서 지원할 때 지원됩니다. 그것은 이전 버전과 호환 될 것입니다. 네트워크 코딩을 사용하면 요청 메시지가 훨씬 간단해질 수 있습니다. 예를 들어 원하는 블록을 지정하지 않아도됩니다. 선형 종속 블록을 최소화하기 위해 특히 관심이있는 벡터에 대한 정보를 지정하는 것이 유용 할 수 있습니다.

확장 할 비트 토 런트 구현을 찾고있는 경우 libtorrent을 살펴볼 수 있습니다. 그것은 이와 같은 확장 메시지를 추가하기위한 플러그인 인터페이스를 가지고 있습니다.

이제는 성능 향상이 디스크 성능 저하로 완전히 사라질 것이라고 생각합니다. 다운로드가 끝나면 결과 방정식 시스템을 해결하면 종속성을 풀기 위해 모든 블록을 여러 번 다시 읽고 작성해야합니다. 이로 인해 상당한 시간이 걸릴 수 있습니다.

더 합리적인 접근 방식은, 내 마음에, 주어진 블록이 조합 될 수있는 실제 블록의 수를 제한하는 것입니다. 그렇게하면 네트워크 코딩의 중복성 이점 중 일부를 상쇄 할 수 있지만 결국에는 성능을 향상시킬 수 있습니다. 사실, 희소 우선 알고리즘이 잘 작동하여 네트워크 코딩으로 얻을 수있는 혜택이 중요하지 않을 수도 있습니다.

어느 쪽이든, 단순히 XOR 블록이 두 개의 다른 블록 만 결합하는 간단한 방법을 권장합니다. 그런 식으로 요청자는 아마도 XOR 블록을 다운로드해야 할 필요가있을 것이다.

+0

답변 해 주셔서 감사합니다. 네트워크 코딩을 사용하고 있기 때문에 그것이 이익이 될지 생각하지 않습니다. LTEP에서 새로운 유형의 메시지 또는 콘텐츠를 만들려면 어떻게해야합니까? 새 사전? – hottea

+0

다소 띄엄 띄엄 묘사 된 http://www.rasterbar.com/products/libtorrent/libtorrent_plugins.html 예제는 ut_metadata.cpp 또는 smart_ban.cpp를 참조하십시오. – Arvid

관련 문제