1. BitTorrent’s Piece

    실제 BitTorrent가 어떻게 구현되었는가를 보기위해 C++로 만든 libtorrent를 보고있다. BitTorrent는 .torrent파일에 infohash 리스트를 가지고 있다. 이 infohash는 단위 파일의 조각(piece)의 해쉬다. piece는 eMule과 달리 고정된 사이즈가 없고 2^n으로 정한다. 아래의 그림 처럼 여러개의 파일을 하나의 파일로 붙였다고 생각하고 2^n으로 잘라서 각 piece의 SHA1 해쉬를 구한다. 각 조각의 해쉬를 다 붙여서 루트해쉬를 만든다. .torrent가 제공하는 파일리스트가 다르면 완전히 다른 조각들의 infohash를 가지기 때문에 단위 파일이 같다고 infohash가 같을순 없다.

    참고: libtorrent