비트토렌트에 관한 많은 논의가 진행되고 있으나, 인터넷상에서의 표준화된 명칭이 없으므로, 명확성을 위해서 사용할 대표적인 비트토렌트 용어들을 정리하였다.1)
Torrent / Swarm
비트토렌트 프로토콜을 사용하여 같은 파일을 받고자 하는 peer들의 집합. 보통 torrent와 swarm이교환적으로 사용된다.
Metainfo File (.torrent)
Torrent file (즉, “.torrent”)이라고도 불리며 piece(조각)의 개수나 파일을 다운로드하기 위한 모든 정보가 들어있다. 각각의 piece를 검증하기 위해 piece의 SHA-1 해시값이 들어있으며, 트래커의 IP 주소와 포트번호가 들어있다.
Tracker
비트토렌트 시스템 중에서 유일한 centralized 요소로 실제적인 파일의 전송에는 관여하지 않으나 파일을 공유하는 peer들의 위치 정보를 가지고 있으며, 그들의 통계 또한 수집한다. 호스트가 접속하면 해당 토렌트를 공유하는 peer 리스트를 제공한다.
Piece and Blocks
파일은 여러 개의 piece로 나뉘어져 있으며 각각의 piece는 block으로 또 나누어져 있다. 실제적인 전송단위는 block이며 peer가 완전한 piece을 소유하지 않으면 공유할 수가 없다.
Leecher and Seed
파일의 piece를 다운로드하고 있는 상태일 경우(즉, 모든 piece를 소유하고 있지 않을 때) leecher라고 하며, 파일의 다운로드가 끝나고 완전한 사본을 소유하고 있을 때 (즉, 모든 piece를 소유하고 있을 때) seed라고 한다. 한 peer는 위 두 가지 상태 중 하나의 상태에만 있을 수 있다.
Rarest-First Algorithm
어떠한 piece를 요구할 지를 결정하는 선택 기법이다. 각각의 peer는 자신과 연결된 peer가 어떠한 piece를 소유하고 있는지에 대한 리스트를 가지고 있고, 이 리스트를 바탕으로 가장 개수가 적은 piece를 선택하고 요청하게 된다. 이때, 각 peer가 소유한 정보를 바탕으로 선택하기 때문에 local rarest-first algorithm이라고도 한다.
Peer 선택 기법 (Choking Algorithm)
Choking 알고리즘은 자신이 업로드 할 peer를 선택하는 것으로 비트토렌트에서는 tit-for-tat 전략에 의해 peer를 선택하게 된다.
tit-for-tat 전략이란 자신에게 각 peer가 업로드한 비율을 비교해서 가장 많이 업로드한 4개의 peer를 선택하는 전략이다. 주기적으로 호스트는 자신에게 upload해준 peer들의 upload rate를 계산하여 unchoke할 peer와 choke할 peer를 선택하게 된다. 만약 이러한 기법이 비트토렌트에 존재 하지 않으면 자신이 가지고 있는 piece를 다른 peer에게 전송해줄 이유가 없게 되고, 다른 peer에게 자신이 가지고 있는 piece를 업로드 하지 않은 채 자신이 받고자 하는 파일만 받고 바로 나가버리는 free-rider문제가 심화된다. 즉 비트토렌트에 공헌한 Peer는 많은 파일을 다운 받을 수 있고, 그렇지 않은 Peer는 혜택을 적게 받는 구조이다.
1) http://www.bittorrent.com
댓글 없음:
댓글 쓰기