티스토리 뷰

자료창고

Torrent(토렌트)의 전반적인 이해

으뜸회오리 2010. 3. 23. 02:29

비트토렌트란 무엇인가?
 

● BitTorrent(비트토렌트)는 개인들간 피어투피어(peer-to-peer)로 연결하여 대용량 파일을 빠른 속도로 공유하도록 만들어진 프로토콜이다. 트래커(tracker)라 불리는 중앙 서버가 사용자들간의 파일 교환을 조정해 준다. 트래커는 사용자간의 연결만을 도와 줄 뿐이며 공유되는 파일의 내용에 대한 정보는 취급하고 있지 않기 때문에 비교적 적은 대역폭으로도 많은 수의 사용자간의 파일공유를 가능하게 해준다. 토렌트의 핵심 철학은 사용자들이 파일을 업로드 해 주어야만 다운로드 할 수 있다는 것이다. 즉 자신의 다운로드 속도는 자신의 업로드 속도에 비례한다. (이는 당나귀(eDonkey)를 이용해본 사람들은 잘 이해할 것이다.) 이렇게 함으로써 네트워크 대역폭을 가장 효율적으로 이용할 수 있으며 특정 파일을 다운하고자하는 사람들의 숫자가 늘면 늘수록 토렌트를 통한 파일 공유의 효율은 더 증가하게 되는 것이다.
 



● 비트토렌트는 어떻게 작동하는가?


● 비트토렌트를 이용해서 파일을 공유하려면 3가지가 필요하다. (1) 비트토렌트 클라이언트, 즉 다운로드 프로그램, (2) 공유 파일의 정보를 내장하고 있는 토렌트 파일 (확장자가 .torrent로 끝나는 파일), 그리고 (3) 클라이언트에게 파일의 소스의 위치를 추적(track)해 주고, 각 클라이언트간 파일의 업로드와 다운로드를 조정해 주는 트래커(tracker). 트래커는 당나귀 네트워크에서 중앙 서버의 역할을 해준다.
 

● 비트토렌트 클라이언트는 당나귀 클라이언트와 달리 독자적으로 오픈되지 않는다. 즉, torrent 파일을 클릭하지 않는 이상 비트토렌트 클라이언트는 항상 비활성 상태로 있게 된다. http://www.suprnova.org 같은 토렌트 정보 사이트에 올라와 있는 토렌트 파일을 클릭하거나 이미 자신의 컴퓨터에 다운로드 받아놓은 토렌트 파일을 클릭하면 비로소 비트토렌트 클라이언트는 활성화되어 다운로드와 업로드 기능을 수행한다. 즉, 토렌트파일이 없는 경우는 작동하지 않는 것이다. 혹 시작메뉴에 있는 비트토렌트 클라이언트를 클릭하면 클라이언트는 토렌트 파일을 열것을 요구한다. 토렌트 파일이 없으면 비트토렌트 클라이언트는 자동으로 다시 닫히게 된다.


 

● 트래커는 동일한 토렌트 파일(즉, 동일한 hash code를 가지고 있는 토렌트 파일)을 오픈한 사람들끼리만 연결시켜 준다. 만일 내가 2개의 서로 다른 트래커에 등록된 2개의 토렌트 파일을 오픈시켜 2가지 다른 파일을 동시에 다운로드 받고 있다고 한다면 (예를 들어, Lord.of.the.Rings.3.Screener.3CD.torrent와 Kill.Bill.Screener.2CD.torrent를 이용하여 두 영화를 동시에 다운하는 경우), 내 컴퓨터에는 두개의 비트토렌트 클라이언트가 오픈 되어 서로 다른 트래커와 연결 되어 파일을 다운로드/업로드하고 있을 것이다. 이점이 비트토렌트가 당나귀 네트워크와 가장 크게 다른점이다. 즉, 당나귀 네트워크는 서버 중심의 파일공유 시스템인데 반해, 비트토렌트 네트워크는 트래커가 중심이 아니라, 공유되는 파일을 중심으로 네트워크가 형성되는 것이다. 즉, 당나귀의 경우는 서버접속 --> 서버에게 다운받을 파일의 소스의 위치와 숫자 문의 --> 서버가 소스파악/다운로드/업로드 조정의 순서로 일처리를 한다면, 비트토렌트의 경우는 토렌트 파일 오픈 --> 지정된 트래커 접속 --> 트래커의 다운로드/업로드 조정의 순서로 일이 처리되는 것이다. 따라서 비트토렌트의 경우는 토렌트 파일을 매개로 공유되는 특정 파일에 관심이 있는 사람들끼리만 연결시켜 줌으로써 트래커가 소스를 찾기 위해 시간을 허비하지 않아도 되는 것이다. 이런 이유로 당나귀 네트워크와 비교한다면, 당나귀는 중앙 네트워크 방식인 반면에, 비트토렌트는 분산 네트워크 방식이라고 불리워지는 것이다.
 

● 비트토렌트의 분산 네트워크 방식은 당나귀에 비해서 빠른 연결과 다운로드/업로드 조정을 함으로써 파일 공유 속도가 빠른 반면에, 네트워크의 안정성이 매우 약하다. 즉, 공유 네트워크가 특정 파일에 관해 관심을 가진 사람들 위주로 분산적으로 형성되기때문에, 시간이 지남에 따라 파일 공유자의 숫자가 줄어 들면, 그만큼 특정 파일의 공유 네트워크의 폭이 줄어드는 것이다. 즉, 비트토렌트 네트워크는 생성되고 소멸되는 주기가 굉장히 짧은 일종의 게릴라식 네트워크라는 것이다. 이 때문에 비트토렌트를 이용하여 오래전에 공유되었던 파일을 다운로드하기란 정말 어렵다. 최초로 공유된지 한달정도 지난 파일의 경우, 인기 있는 파일이어서 계속 공유자들이 릴레이 되지 않는 이상, 그 소스를 찾기란 당나귀처럼 쉽지 않다. 그대신 많은 사람들이 동시에 관심을 가지고 있는 최신의 파일인 경우는 동시에 많은 사람들이 공유하기 때문에 쉽고 빠르게 다운로드 할 수 있다. (하지만 최근에는 비토렌트 서치엔진 http://www.n4p.com 같은 것이 등장하고, 또 트래커의 안정성이 예전보다 향상되고 있기 때문에, 파일 공유주기가 예전에 비해 점점 늘어나고 있는 추세이다. 따라서 비트토렌트 네트워크를 통해서 구할 수 있는 파일의 숫자가 엄청 늘어나고 있음.)
 



● 비트토렌트가 당나귀와 다른 점은 무엇인가?
 

● 비트토렌트는 당나귀 네트워크와 같이 파일을 조각내어 공유한다는 면에서는 파일 공유 방식이 동일하다. 하지만 동일한 조건이라면 (즉, 소스를 가지고 있는 사람의 수와 인터넷 회선의 속도가 같은 경우) 당나귀 네트워크보다 다운로드 속도가 훨씬 더 빠르다. 왜냐하면, (1) 파일의 소스를 추적(track)하여 원하는 사람에게 연결시켜 주는 당나귀 네트워크의 중앙 서버 역할을 하는 트래커(tracker)는 파일의 내용에 관한 정보를 포함하고 있지 않기 때문에, 파일 공유 조정(coordination)에 필요한 정보량이 당나귀네트워크 방식보다 훨씬 적어서 다운로드하려는 사람과 업로드 하는 사람간의 연결 속도가 더 빠르기 때문이다. (2) 파일 찾기 기능이 없는 것이 단점이기는 하지만 이것 또한 다운로드 속도가 당나귀에 비해 빠른 이유 중에 하나이다. 당나귀와는 달리, 비트토렌트는 이미 설명했듯이 분산 네트워크 방식을 취한다. 즉 트래커는 오직 하나의 공유 단위(단일 파일일 수도 있고 여러개의 파일을 포함한 디렉토리일 수도 있음)에 관심이 있는 사람들끼리 연결을 시켜준다. (3) 트래커가 파일조각 (file parts)을 연결된 클라이언트들에 배분할 때 따른 클라이언트가 받지 않은 조각들을 우선해서 배분해 준다. 즉, 각 클라이언트들에게 서로 다른 조각들을 우선해서 배분해주므로, 각 클라이언트가 같은 조각을 받기 위해 대기하는 시간을 최소화 해주고, 또한 각 클라이언트간에 서로 다른 파일 조각들을 교환하게 함으로써 최단 시간내에 파일 공유를 극대화시켜준다. (4) 또한 비트토렌트는 당나귀에 비해 리소스를 훨씬 적게 사용하기 때문에, 비트토렌트 사용 중 컴퓨터가 느려진다거나 하는 일이 없으므로 다른 프로그램을 사용하는데에 큰 지장이 없다.
 

● 그 대신 비트토렌트의 경우는 당나귀와 같은 검색 기능이 없다. 당나귀의 경우는 사용자가 다운로드 받은 파일을 공유 폴더에 넣어 두기만 하면 자신은 다른 파일을 다운 받더라도 그것을 원하는 사람이 서버를 통해서 계속해서 그 파일을 다운 받을 수 있지만 (즉, 업로드/다운로드 파일이 다를 수 있지만), 비트 토렌트의 경우는 소스를 가진 사람이 토렌트 파일을 오픈시켜 놓지 않는 이상 (이를 seeding이라 한다. 즉, 완전체를 가진 사람이 업로드만 해주는 경우, 이를 시딩이라고 한다.) 파일의 소스를 구할 수는 없는 것이다. (제작자 Bram Cohen의 설명에 의하면 seeder(완전체를 가진 사람)가 없더라도 각 클라이언트들이 가진 서로 다른 파일 조각들의 합이 100 퍼센트이면 seeder없이도 파일을 100퍼센트 받을수 있다고 함.)
 

● 파일 검색 기능이 없는 것이 비트토렌트의 불편한 점이기는 하지만, 무수히 많은 공유 사이트를 통해서 많은 사람들이 관심을 갖고 있는 최신 파일(영화/게임/애니/유틸 등등)을 구하기란 어렵지 않다.
 

● 당나귀를 어느 정도 사용한 사람이라면 몇시간, 아니 몇일동안 다운받은 파일이 가짜(페이크)로 드러나, 허탈해서 화가난 적이 한번쯤은 다 있을 것이다. 하지만, 토렌트 네트워크에서는 가짜 파일이 거의 없다.
 

● 당나귀의 경우는 다운로드하는 파일과 업로드 하는 파일이 다를 수 있다. 하지만 비트토렌트의 경우는 2개 이상의 토렌트를 오픈시키지 않는 이상, 다운로드와 업로드하는 파일이 다를 수 없다. 즉, 특정 토렌트 파일을 오픈시키면 자신이 그 토렌트에 담겨있는 파일을 다운로드하고 동시에 업로드하는 것이다.
 

● 당나귀의 경우 공유 단위가 단일 파일인 반면, 비트토렌트는 공유 단위가 파일뿐만 아니라 복수의 파일을 포함한 디렉토리도 포함된다. 즉, 당나귀 네트워크에서는 복수의 파일을 공유할 경우 압축을 하거나 시디 이미지로 만들어서 1개의 파일로 만들어야만 공유가 가능하지만, 비트토렌트에서는 자신의 하드에 있는 디렉토리 자체를 하나의 토렌트 파일에 담아서 공유가 가능하다. 물론 별도로 토렌트 파일을 만들어야 하는 번거로움이 있기는 하지만, 공유를 위해 여러개의 파일을 단일 파일로 압축을 하거나 하나의 시디 이미지로 만들 필요가 없다는 것이다.
 



● 그럼 언제 어떤 용도로 비트토렌트를 사용하는것이 좋은가?
 

● 위에서 살펴보았듯이, 토렌트는 당나귀에 비해 빠른 다운속도라는 장점이 있는 반면, 네트워크의 안정성, 파일 검색 기능, 오래된 파일을 구하기 힘든점 등의 단점이 있다. 그리고 아직 한국에서는 쓰는 사람이 많지 않기 때문에 한국 관련 파일도 많이 공유되고 있지 않다. 따라서 현재로서는 최근에 외국에서 새로 나온 영화/게임/음악/유틸/등등을 다운 받는 경우에 사용하면 당나귀보다 훨씬 빠른속도로 다운 받을 수 있으리라고 생각된다. 당연한 말이겠지만, 한국 사용자가 늘면 늘수록 한국 관련 파일들도 비트토렌트를 통해서 구할 수 있게 되리라고 본다.
 


--------------------------------------------------------------------------------------------

● 비트토렌트는 여러 종류의 클라이언트 프로그램이 존재합니다.
입맛에 맞는 프로그램을 사용하시면 됩니다.
 

다운로드 : BitTorrent :: 원조... by python
다운로드 : BitTornado :: 유명한... by python

다운로드 : Yet ABC (Yet Another Bittorrent Client) :: BitTornado 0.2.0를 기초해서 만든... by python
다운로드 : Azureus :: Java로 만든...
다운로드 : BitSpirit :: 많은 기능을 제공...
다운로드 : BitComet :: 검색사이트 링크 제공...
 

● 비트토렌트는 원래 검색기능이 없기 때문에 관련 사이트를 통해 다운로드하는 경우가 많습니다.
몇가지 사이트를 소개합니다.
 

http://www.litezone.com :: 비트토렌트 사이트 순위

http://isohunt.com/stats.php?mode=btSites :: 비트토렌트 사이트 순위

http://www.kompletlywyred.com :: 상당한 컨텐츠 보유 사이트

http://www.suprnova.org :: 가장 유명한 외국사이트

http://www.n4p.com :: 서치엔진
http://bt.eastgame.net :: 중국 사이트
당나귀 스쿨 :: 당나귀를 위한 사이트지만 비트토렌트의 자료링크도 제공
http://club.paran.com/bittorrent :: 파란 까페

출처: http://dodozi.tistory.com