검수요청.png검수요청.png

"비트토렌트"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
 
(사용자 2명의 중간 판 4개는 보이지 않습니다)
1번째 줄: 1번째 줄:
[[파일:비트토렌트 로고.png|썸네일|200픽셀|'''비트토렌트'''(BitTorrent) 로고]]
+
[[파일:비트토렌트 로고.png|썸네일|200픽셀|'''비트토렌트'''(BitTorrent)]]
[[파일:비트토렌트 글자.png|썸네일|300픽셀|'''비트토렌트'''(BitTorrent) 로고와 글자]]
+
[[파일:비트토렌트 글자.png|썸네일|300픽셀|'''비트토렌트'''(BitTorrent)]]
  
'''비트토렌트'''(BitTorrent)는 음악, 영화, 문서 등 다양한 데이터 파일을 인터넷에서 [[P2P]] 방식으로 전송하고 공유할 수 있는 통신 [[프로토콜]] 서비스이다. 비트토렌트는 중국의 [[저스틴 선]]이 만든 암호화폐인 [[트론]](Tron)에 인수된 후 '''[[비트토렌트토큰]]'''<!--비트토렌트 토큰-->(BTT)을 만들었다.
+
'''비트토렌트'''(BitTorrent)는 [[음악]], [[영화]], [[문서]] 등 다양한 데이터 파일을 [[인터넷]]에서 [[P2P]] 방식으로 [[전송]]하고 [[공유]]할 수 있는 통신 [[프로토콜]] 서비스이다. 비트토렌트는 중국의 [[저스틴 선]]이 만든 암호화폐인 [[트론]](Tron)에 인수된 후 '''[[비트토렌트토큰]]'''<!--비트토렌트 토큰-->(BTT)을 만들었다.
 +
{{:인터넷 배너|호스팅}}
  
 +
==상세==
 +
비트토렌트는 [[P2P]](peer-to-peer) [[파일]] 전송 [[프로토콜]]의 이름이자 그것을 이용하는 [[응용 소프트웨어]]의 이름이다. 비트토렌트를 이용하면 파일을 [[인터넷]] 상에 분산하여 저장하여 놓고 다수의 접속을 사용하여 여러 곳에서 동시에 파일을 가져오게 되어 전송 속도가 빨라진다.
 +
 +
비트토렌트 프로토콜은 [[프로그래머]] [[브램 코언]](Bram Cohen)이 창안하였으며, 2001년 4월부터 설계되었고 최초의 구현이 2001년 7월 2일 발표되었다. 코언이 창립한 회사인 비트토렌트 주식회사가 이것을 유지보수하고 있다.<ref>〈[https://web.archive.org/web/20130905140757/http://finance.groups.yahoo.com/group/decentralization/message/3160 BitTorrent - a new P2P app]〉, 《Wayback Machine》, 2001-07-02</ref> 본래 비트토렌트 프로그램은 분산 [[해시테이블]]을 활용하여 [[파이썬]]으로 작성되었으며 [[오픈소스]] 저작권하에서 배포되고 있다. 그 외에도 비트토렌트 프로토콜과 호환되는 각종 비트토렌트 클라이언트가 출시되어 있다. 이 프로토콜을 사용하는 인터넷 [[트래픽]]이 전 세계 인터넷 트래픽 중 상당 부분을 차지하고 있으나 정확한 통계는 측정할 수 없는 것으로 알려져 있다. 비트토렌트는 2018년 6월 18일 [[트론]](Tron) 파운데이션의 설립자 [[저스틴 선]](Justin Sun)에 의해 140,000,000 달러에 인수되었다.
 +
 +
==이용방법==
 +
비트토렌트 프로토콜을 이용하기 위해서는 비트토렌트 프로토콜과 호환되는 비트토렌트 클라이언트를 설치해야 한다. 비트토렌트를 이용해서 파일을 공유하고 싶으면 우선 토렌트(torrent) 파일을 생성해야 한다. 토렌트 파일은 공유를 하고자 하는 파일의 [[메타데이터]], [[호스트]] [[컴퓨터]]의 정보 등이 기록된다. 파일의 구체적인 내용은 비트토렌트 프로토콜 버전에 따라서 다르며, 파일 확장자는 항상 .torrent이다.
 +
 +
===.torrent 파일===
 +
토렌트 파일에는 어나운스(announce) 섹션이 있는데, 이는 트래커(Tracker)의 [[URL]] 정보를 포함한다. 트래커란 일종의 [[서버]]로 스웜(swarm) 안에 시더(seeder)와 피어(peer)를 모니터링한다. 클라이언트는 트래커 서버로 자기 정보를 보내고 현재 스웜 안의 시더와 피드에 관한 정보를 받는다. 트래커 서버는 [[데이터]] 전송에 직접적인 영향이나 관계는 없으며 공유되는 파일의 복사본을 가지고 있지 않는다. 비트토렌트 버전은 트래커 서버 없이도 구현이 가능하도록 되어 있다. 그러나 대부분의 비트토렌트는 현재까지는 트래커 서버를 많이 사용하고 있다.
 +
 +
토렌트 파일의 인포(info) 섹션은 파일의 이름, 길이, 파일 조각의 길이, 그리고 파일의 [[무결성]]을 진단하기 위한 각 조각의 [[SHA-1]] [[해시]] [[코드]]가 포함되어 있다. 파일을 다 받은 클라이언트는 시더 역할을 수행할 수 있어서 파일 공유의 효율을 높일 수 있다. 공유하고자 하는 파일의 토렌트 파일을 생성한 후에는 웹사이트 등에 토렌트 파일을 퍼블리시해서 트래커 서버에 등록할 수도 있다. 이 방식은 많이 사용되고 있는 토렌트 파일의 공유 방법이다.<ref name='위키'>〈[https://ko.wikipedia.org/wiki/%EB%B9%84%ED%8A%B8%ED%86%A0%EB%A0%8C%ED%8A%B8#.torrent_%ED%8C%8C%EC%9D%BC 비트토렌트]〉, 《위키백과》</ref>
 +
 +
===업·다운로드===
 +
사용자는 토렌트 파일이 등록되어 있는 [[웹사이트]]에 가서 토렌트 [[파일]]을 [[다운로드]]하여 비트토렌트 클라이언트를 이용하여 토렌트 파일을 연다. 비트토렌트 클라이언트는 트래커 서버에 접속하여 현재 공유파일의 시더와 피어에 대한 정보를 가지고 온다. 다시 말해서 현재 다운로드하고 있는 사람과 업로드하고 있는 사람의 수를 가지고 온다. 이 모든 사람들을 통 틀어서 Swarm이라고 한다.
 +
 +
처음에는 Peer가 하나도 없을 수 있다. 단지 처음 파일을 올린 사람인 시더만 있을 수 있다. 이렇게 되면 첫 시더로부터 파일을 받기 시작한다. 비트토렌트 프로토콜은 파일을 여러 조각으로 나누어서 조그만 파일로 만들어서 전송을 한다. 일반적으로 한 조각의 크기는 256 [[킬로바이트]](KB) 정도이다. 일반적으로 파일 크기가 클수록 조각의 크기도 커진다. 예를 들어, 4.37 [[기가바이트]](GB)의 한 조각은 4.3 [[메가바이트]](MB) 정도이다. 하나의 조각을 다운로드할 때마다 [[해시 알고리즘]]을 이용하여 [[에러]] 여부를 점검한다.
 +
 +
여러 사람들이 파일을 다운로드하기 시작하면서 스웜 안에 있는 피어의 숫자는 늘어난다. 피어들이 생기면서 서로 조각들을 공유하기 시작한다. 다운로드 중인 피어들은 랜덤하게 조각을 받기 때문에 서로 받은 조각들을 공유할 수 있게 된다. 그러므로 원본 파일을 가지고 있는 시더의 전송 [[부하]](Bandwidth)를 줄인다.
 +
 +
[[P2P]]의 효율성을 높이는 데 중요한 역할을 하는 요소는 클라이언트간의 데이터를 주고 받는 정책이다. 클라이언트들은 자기에게 파일을 준 클라이언트에 다시 파일을 주는 형식으로 구성하여 공유의 효율성을 높인다. 이러한 여러 가지 정책에 따라 공유의 효율성, [[다운로드]] 속도, [[업로드]] 속도 등의 차이가 난다. 비트토렌트는 공유를 많이 할수록 좋으며 대신 다른 P2P와 다르게 Queue(줄) 서서 기다리는 것이 없다. 비트토렌트는 “optimistic unchoking”라는 메커니즘을 이용한다.<ref>짱구, 〈[https://onlysmile.tistory.com/7 BitTorrent, 정보 공유의 벽을 무너뜨려라~]〉, 《티스토리》, 2010-03-31</ref> 이 메커니즘은 클라이언트의 [[대역폭]]을 일부 할당하여 무작위로 피어들한테 조각을 보내서 모든 피어들이 일정한 양의 조각을 가지고 있을 수 있게 한다. 그렇게 되면 모든 피어들이 다 다른 조각을 가지고 있게 되므로 공유의 효율성이 높아진다.<ref name='위키'/>
 +
 +
==동작==
 +
비트토렌트 [[프로토콜]]을 구현하기만 하면 비트토렌트 클라이언트라고 간주할 수 있다. 각 클라이언트는 이 프로토콜을 사용하여 임의의 종류의 [[컴퓨터]] [[파일]]을 [[네트워크]] 상에서 예비하고, 요청하고, 전송할 수 있다. 이 때, 클라이언트가 동작하고 있는 컴퓨터를 피어라 부른다.
 +
 +
파일 한 개(혹은 파일의 그룹)를 공유하고 싶으면, 우선 피어는 .torrent 파일을 하나 생성해야 한다. 이 작은 파일은 공유할 파일 및 트래커(파일 분산을 조율하는 컴퓨터)에 대한 [[메타데이터]]를 담고 있다. 피어는 어떤 파일을 받기 위해서는, 우선 그 파일을 위한 .torrent 파일을 획득하여야 하며, 그 파일의 조각조각을 받기 위해서 어떤 피어들에게 접속해야하는지를 알려주는 소정의 트래커에 접속해야 한다.
 +
 +
네트워크 상에서 파일을 다운로드 받을 수 있게 해준다는 점에서는 비슷하지만, 비트토렌트 다운로드와 전통적인 풀-파일 [[HTTP]] 요청 사이에는 다음과 같은 근본적인 차이가 있다.
 +
 +
* 비트토렌트는 많은 수의 소규모 [[P2P]] 요청(request)을 여러 개의 [[TCP]] 소켓을 이용하여 생성한다. 반면, [[웹브라우저]]는 일반적으로 한 개의 HTTP GET 요청(request)을 한 개의 TCP 소켓 상에서 생성한다.
 +
* 비트토렌트 다운로드는 랜덤(random) 방식이거나 "희귀한 것 우선"(rarest-first) 방식이다.<ref>G. Urvoy-Keller and P. Michiardi, 〈[https://web.archive.org/web/20071128062900/http://www.imconf.net/imc-2006/papers/p20-legout.pdf# Rarest First and Choke Algorithms Are Enough]〉, 《Wayback Machine》, 2007-01-11</ref> 이러한 접근 방식은 고가용성(high availability)를 보장한다. 반면 일반적으로 HTTP 다운로드는 순차적 방식이다.
 +
 +
두 가지 차이점 덕분에, 비트토렌트는 아주 작은 비용으로 매우 큰 리던던시(redundancy)를 확보할 수 있었으며, 일반적인 HTTP 서버보다 어뷰즈(abuse) 나 플래시 크라우드에 강한 면모를 보인다. 하지만 이러한 프로텍션 효과는 그냥 얻어지지는 않는다. 다운로드는 최고 속도(full speed)에 이르기까지 시간이 걸린다. 왜냐하면 충분한 피어 접속들이 이루어지기까지는 시간이 걸리기 때문이며, 또한 한 개의 [[노드]](node)가 충분한 [[데이터]]를 받아 놓아 효용 있는 업로더(uploader)가 되기까지 시간이 걸리기 때문이다. 결론적으로 일반적인 비트토렌트 다운로드는 처음에 낮은 속도로 시작하였다가 속도가 점점 증가해 최고 속도에 이르게 되며, 다운로드의 종료 시점까지 점점 속도가 떨어지게 된다. 이러한 점에서, 매우 빨리 최고 속도에 이르며 스피드 스루아웃(throughout)을 계속 유지하는 HTTP 다운로드와는 차이가 있다.<ref name='위키'/>
 +
 +
==프로토콜==
 +
비트토렌트는 P2P 방식을 사용하는 대표적인 프로토콜로서 전 세계 인터넷 트래픽 중 매우 많은 부분을 차지하고 있다. 비트토렌트 프로토콜은 기존의 파일 다운로드 방식인 서버-클라이언트 구조의 일대다 파일 공유방식을 사용하는 대표적인 프로토콜이다. 기존의 파일 공유 방식과 P2P 파일 공유 방식의 차이를 보여준다. 일대일 파일 공유 방식은 서버가 A라는 파일을 가지고 있고 클라이언트가 서버로부터 A를 받아가는 방식이다. 일대일 파일 공유 방식은 인터넷 환경과 서버의 성능 및 정책에 따라 파일 전송 속도가 결정되며, 이 속도는 전송이 완료될 때까지 유지되는 것이 일반적이다.
 +
 +
일대다 파일 공유 방식은 A 파일을 5개의 조각으로 나누어 각 클라이언트 간에 조각들을 서로 교환하는 방식이다. 클라이언트는 A 조각들을 소유 및 공유하고 있는 클라이언트와 세션을 생성하여 필요한 조각에 대하여 전송을 요청한다. 각 클라이언트들은 A를 공유하고 있는 새로운 클라이언트를 발견하면 자신이 가지고 있는 조각의 정보를 알려주고 새로운 클라이언트에게 자신이 필요한 조각을 요청한다. 이러한 방식 때문에 하나의 클라이언트는 여러 개의 클라이언트들과 무수히 많은 세션을 생성하게 되며 세션이 계속하여 늘어남에 따라 사용자의 다운로드 속도는 점진적으로 늘어나 클라이언트가 사용하는 인터넷 환경의 최대 대역폭까지 다운로드 속도가 증가한다.
 +
 +
비트토렌트 프로토콜은 파일을 공유하는 많은 클라이언트들과 동시에 많은 세션들을 생성하여 매우 빠른 다운로드 속도로 파일을 받을 수 있다. 하지만 무수히 많은 세션을 생성하여 파일을 공유하는 방식에 대한 문제점들이 통신 사업자에서 논의되고 있으며, 이러한 문제점을 이해하기 위해서 비트토렌트 프로토콜의 원리에 대한 이해가 필수적이다.<ref>Netmanias, 〈[https://www.netmanias.com/ko/?m=view&id=techdocs&no=5185 BitTorrent 프로토콜의 동작원리 - Understanding of the BitTorrent Protocol]〉, 《넷마니아즈》</ref>
 +
 +
====동작원리====
 +
비트토렌트는 P2P 방식을 사용하는 대표적인 프로토콜이다. P2P 방식은 클라이언트와 클라이언트 간에 세션이 직접 생성되는 것과 공유하고자 하는 파일을 여러 개의 조각으로 나누어 주고받는 것이 특징이다. 비트토렌트 프로토콜을 사용하여 파일을 다운로드 받기 위해서는 비트토렌트 클라이언트 프로그램을 설치하여야 한다. 설치 이후 사용자는 웹을 통해 다운로드 받고자 하는 파일의 정보가 담긴 토렌트 파일을 받아 실행하여야 한다. 토렌트 파일은 공유할 파일을 가지고 있는 사용자가 자료 공유를 목적으로 토렌트 파일을 작성하여 웹에 게시하는 것이 일반적이며, 자료를 얻고자 하는 유저는 해당 토렌트 파일을 받아 실행하면 자료를 다운로드 받을 수 있다.
 +
 +
# 조각(piece) : 공유 파일을 작은 용량 단위로 조각 낸 파일이다.
 +
# 시더(seeder) : 공유 파일의 완전체를 가지고 있는 클라이언트(파일의 모든 조각을 소유)이다.
 +
# 리처(leecher) : 공유 파일의 불완전체를 가지고 있는 클라이언트(파일의 일부 조각만을 소유)이다.
 +
# 피어(peer) : 시더와 리처를 총칭한다.
 +
# 트래커(tracker) : 파일 공유를 위해 피어들의 정보를 관리하는 서버이다.
 +
# 스웜(swarm) : 각 공유 파일마다 존재하며, 공유 파일에 대한 고유 식별자(Hash)와 공유 파일을 소유하고 있는 피어 리스트 정보를 가진다. 스웜은 트래커에 의해서 관리된다.
 +
 +
* '''토렌트 파일 다운받기''' : 사용자는 A를 다운로드 받기 위해 웹 검색 등을 통해 토렌트 파일인 A를 다운로드 받아서 실행해야 한다. 해당 토렌트 파일에는 A를 위한 고유의 해시값이 포함되어 있으며 트래커의 URL 주소가 포함되어 있다. 해시값은 파일 식별자로써 동일한 파일 이름을 가진 다른 콘텐츠와 구분을 위하여 생성되는 고유의 값이며 트래커의 URL은 파일을 공유하는 피어들의 정보를 관리하는 서버를 지정하는 것이다. 만약 동일한 파일에 대하여 트래커의 URL이 서로 다르게 적혀있는 토렌트 파일을 클라이언트에서 실행하게 되면 클라이언트들의 정보를 서로 다른 트래커에서 관리하게 되므로 서로 다른 트래커를 이용하는 클라이언트들 간에는 파일을 공유할 수 없다.
 +
 +
* '''트래커에 피어 리스트 요청하기''' : A를 다운로드 받고자 하는 사용자가 토렌트 파일을 실행하면 비트토렌트 클라이언트는 토렌트 파일에 포함된 A의 고유 해시값을 트래커로 전송한다. 이 메시지를 트래커 요청이라고 한다. 이와 같이 동일한 토렌트 파일을 사용하여 A를 공유하고 있는 모든 피어들은 트래커에게 A의 해시값을 보내게 된다. 피어들로부터 트래커 요청을 받은 트래커는 A의 해시값에 해당하는 스웜을 생성하고 A의 해시값을 보낸 피어들의 IP 주소를 이 스웜을 통해 관리한다.
 +
 +
* '''피어 리스트 받아오기''' : 트래커 요청을 받은 트래커는 해당 메시지에 포함된 A의 해시값을 참조하여 해당하는 스웜이 존재하는지를 확인한다. 만약 존재하지 않는다면 새로운 스웜을 생성하고 다른 피어들로부터 트래커 요청이 들어올 때까지 기다린다. 기존에 만들어진 스웜이 존재하여 피어들의 정보가 있을 경우에는 스웜이 포함되어 있는 피어들을 리스트로 만들어 트래커 응답 메시지에 포함하여 응답한다. 트래커 응답에 들어있는 피어 리스트는 피어들의 IP 주소로 이루어지며 트래커 요청을 보낸 피어에게 아렬주는 피어 리스트는 50개 피어들의 IP 주소로 구성된다. 만약 스웜에 존재하는 피어의 개수가 50개 이상인 경우, 트래커가 50개가 넘는 피어들 중에 무작위로 피어의 IP 주소를 선정하여 피어 리스트를 구성한다.
 +
 +
* '''파일 다운로드 받기''' : 피어 리스트를 받은 비트토렌트 클라이언트는 모든 피어 IP 주소로 A의 해시값을 보낸다. 이 메시지를 받은 피어들 중에 A 파일 공유가 가능한 피어는 동일한 A의 해시값으로 응답하게 된다. 이러한 해시 교환을 통해 피어와 피어는 세션을 생성하게 되고 생성된 세션을 통해 조각을 교환한다. 비트토렌트 프로토콜은 이러한 방식으로 트래커로부터 다수의 피어들 IP 주소를 받아 세션을 생성하므로 하나의 클라이언트는 동시에 여러 개의 세션을 생성하게 된다.
 +
 +
==트론 인수==
 
중국의 암호화폐인 [[트론]] 측은 2018년 6월 비트토렌트(BitTorrent)를 1억 2,000만 달러(약 1,300억원)에 인수했다. 개인간 [[P2P]] 파일 공유 업체인 비트토렌트는 전 세계 138개국에 1억명의 활성화된 사용자와 10억명의 일반 사용자를 보유하고 있어 P2P 시장에서 가장 많은 사용자를 가지고 있다. 트론의 비트토렌트 인수는 트론 생태계 확장 전략의 일환으로, 비트토렌트의 인프라와 트론의 블록체인이 결합되면 세계에서 가장 큰 P2P 네트워크를 만들 수 있다. 이 결합은 온라인 콘텐츠의 지불 계산과 글로벌 결제에 대한 새로운 가능성을 제공할 것이다. 콘텐츠 제작자는 중개자 없이 분산 네트워크를 통해 수억 명의 글로벌 사용자에게 다가갈 수 있다. 이러한 변화로 인해 다양한 산업이 큰 영향을 받게 될 것이다.<ref>신은동 기자, 〈[https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&oid=011&aid=0003327038&sid1=001 트론 설립자, 비트토렌트 1억 2,000만 달러 인수]〉, 《서울경제》, 2018-06-20</ref>
 
중국의 암호화폐인 [[트론]] 측은 2018년 6월 비트토렌트(BitTorrent)를 1억 2,000만 달러(약 1,300억원)에 인수했다. 개인간 [[P2P]] 파일 공유 업체인 비트토렌트는 전 세계 138개국에 1억명의 활성화된 사용자와 10억명의 일반 사용자를 보유하고 있어 P2P 시장에서 가장 많은 사용자를 가지고 있다. 트론의 비트토렌트 인수는 트론 생태계 확장 전략의 일환으로, 비트토렌트의 인프라와 트론의 블록체인이 결합되면 세계에서 가장 큰 P2P 네트워크를 만들 수 있다. 이 결합은 온라인 콘텐츠의 지불 계산과 글로벌 결제에 대한 새로운 가능성을 제공할 것이다. 콘텐츠 제작자는 중개자 없이 분산 네트워크를 통해 수억 명의 글로벌 사용자에게 다가갈 수 있다. 이러한 변화로 인해 다양한 산업이 큰 영향을 받게 될 것이다.<ref>신은동 기자, 〈[https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&oid=011&aid=0003327038&sid1=001 트론 설립자, 비트토렌트 1억 2,000만 달러 인수]〉, 《서울경제》, 2018-06-20</ref>
 +
 +
===비트토렌트 토큰===
 +
비트토렌트 토큰(BTT)은 파일 공유 시스템 비트토렌트(BitTorrent)에서 사용자들에게 파일 공유에 대한 유인을 제공하고 보상을 제공하기 위해 만들어진 트론 플랫폼 기반의 디지털 자산이다. 사용자들은 희소성 높은 자료의 시드를 유지할 때마다 더욱 큰 보상을 받게 되며 이를 통해 원활한 시드 유지가 가능해진다.
 +
 +
비트토렌트 사는 비트토렌트 토큰(BTT)이라는 TRON TRC-10 암호화 토큰을 도입하였다. 비트토렌트토큰은 비트토렌트  클라이언트와 서비스 요청자 및 서비스 제공자로 이루어진 유동 시장 간에 공유되는 컴퓨팅 리소스를 거래하기 위한 범용 메커니즘으로 작동한다. 비트토렌트토큰은 비트토렌트토큰이 사용되는 비트토렌트 생태계에서 서비스 제공을 위한 거래를 나타내는 단위다. 이는 세분화된 가격 책정이 가능한 분할 가능한 토큰으로 제공된다. 예상되는 규모로 인해 모든 거래에 공용 T트론 블록체인을 직접적으로 사용할 수 없다. 따라서 비트토렌트 사는“온체인/오프체인 교환을 사용할 것이다. 거래소는 고성능 사설 원장과 공용 트론 블록체인 간의 토큰 전송을 가능하게 한다.<ref>〈[https://upbitcare.com/academy/research/697 (업비트 투자자보호센터) 비트토렌트 국문 백서.pdf]〉, 《업비트 투자자보호센터》, 2024-01-10</ref>
  
 
{{각주}}
 
{{각주}}
  
 
== 참고자료 ==
 
== 참고자료 ==
*  "[https://whitepaper.io/document/389/bittorrent-whitepaper BitTorrent White paper v0.8.7]", ''BITTORRENT FOUNDATION'', 2019년 2월
 
 
* 〈[https://ko.wikipedia.org/wiki/%EB%B9%84%ED%8A%B8%ED%86%A0%EB%A0%8C%ED%8A%B8 비트토렌트]〉, 《위키백과》
 
* 〈[https://ko.wikipedia.org/wiki/%EB%B9%84%ED%8A%B8%ED%86%A0%EB%A0%8C%ED%8A%B8 비트토렌트]〉, 《위키백과》
 +
* 〈[https://ko.wikipedia.org/wiki/%EB%B9%84%ED%8A%B8%ED%86%A0%EB%A0%8C%ED%8A%B8#.torrent_%ED%8C%8C%EC%9D%BC 비트토렌트]〉, 《위키백과》
 
* 〈[https://namu.wiki/w/%EB%B9%84%ED%8A%B8%ED%86%A0%EB%A0%8C%ED%8A%B8 비트토렌트]〉, 《나무위키》
 
* 〈[https://namu.wiki/w/%EB%B9%84%ED%8A%B8%ED%86%A0%EB%A0%8C%ED%8A%B8 비트토렌트]〉, 《나무위키》
 +
* etmanias, 〈[https://www.netmanias.com/ko/?m=view&id=techdocs&no=5185 BitTorrent 프로토콜의 동작원리 - Understanding of the BitTorrent Protocol]〉, 《넷마니아즈》
 +
* 〈[https://web.archive.org/web/20130905140757/http://finance.groups.yahoo.com/group/decentralization/message/3160 BitTorrent - a new P2P app]〉, 《Wayback Machine》, 2001-07-02
 +
* G. Urvoy-Keller and P. Michiardi, 〈[https://web.archive.org/web/20071128062900/http://www.imconf.net/imc-2006/papers/p20-legout.pdf# Rarest First and Choke Algorithms Are Enough]〉, 《Wayback Machine》, 2007-01-11
 +
* 짱구, 〈[https://onlysmile.tistory.com/7 BitTorrent, 정보 공유의 벽을 무너뜨려라~]〉, 《티스토리》, 2010-03-31
 +
* Caitlin McGarry, 〈[https://www.ciokorea.com/news/15708 인터뷰 | 비트토렌트, “분산 공유 기술의 새로운 미래 개척 중”]〉, 《CIO》, 2013-02-08
 +
* 강일용 기자, 〈[https://it.donga.com/17247/ 비트토렌트로 파일을 확실히 내려받는 방법]〉, 《아이티동아》, 2014-02-04
 +
* 개구리, 〈[https://blog.naver.com/PostView.nhn?blogId=manhdh&logNo=220038243469 BitTorrent (토렌트) 의 원리와 구조]〉, 《네이버 블로그》, 2014-06-22
 +
* Ian Paul, 〈[https://www.itworld.co.kr/t/62079/undefined/89187 ‘클라우드가 필요 없는’ 비트토렌트 싱크 활용하는 3가지 방법]〉, 《아이티월드》, 2014-08-27
 +
* 시너지메이커9, 〈[https://samson32.com/entry/%EB%B9%84%ED%8A%B8%ED%86%A0%EB%A0%8C%ED%8A%B8-%ED%86%A0%EB%A0%8C%ED%8A%B8-%EC%84%A4%EC%A0%95-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-%EC%86%8D%EB%8F%84-%EB%B0%8F-%EC%B5%9C%EC%A0%81%ED%99%94-%EB%94%B0%EB%9D%BC%ED%95%98%EA%B8%B0 비트토렌트 토렌트 설정 완전 정리! 속도 및 최적화 따라하기]〉, 《개인블로그》, 2016-09-30
 
* 신은동 기자, 〈[https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&oid=011&aid=0003327038&sid1=001 트론 설립자, 비트토렌트 1억 2,000만 달러 인수]〉, 《서울경제》, 2018-06-20
 
* 신은동 기자, 〈[https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&oid=011&aid=0003327038&sid1=001 트론 설립자, 비트토렌트 1억 2,000만 달러 인수]〉, 《서울경제》, 2018-06-20
 +
*  "[https://whitepaper.io/document/389/bittorrent-whitepaper BitTorrent White paper v0.8.7]", ''BITTORRENT FOUNDATION'', 2019년 2월
 +
* 〈[https://upbitcare.com/academy/research/697 (업비트 투자자보호센터) 비트토렌트 국문 백서.pdf]〉, 《업비트 투자자보호센터》, 2024-01-10
  
 
== 같이 보기 ==
 
== 같이 보기 ==
19번째 줄: 96번째 줄:
 
* [[저스틴 선]]
 
* [[저스틴 선]]
  
{{인터넷|토막글}}
+
{{인터넷|검토 필요}}

2024년 6월 14일 (금) 14:07 기준 최신판

비트토렌트(BitTorrent)
비트토렌트(BitTorrent)

비트토렌트(BitTorrent)는 음악, 영화, 문서 등 다양한 데이터 파일을 인터넷에서 P2P 방식으로 전송하고 공유할 수 있는 통신 프로토콜 서비스이다. 비트토렌트는 중국의 저스틴 선이 만든 암호화폐인 트론(Tron)에 인수된 후 비트토렌트토큰(BTT)을 만들었다.

아사달 스마트 호스팅 가로 배너 (since 1998).jpg
이 그림에 대한 정보
[아사달] 스마트 호스팅

상세[편집]

비트토렌트는 P2P(peer-to-peer) 파일 전송 프로토콜의 이름이자 그것을 이용하는 응용 소프트웨어의 이름이다. 비트토렌트를 이용하면 파일을 인터넷 상에 분산하여 저장하여 놓고 다수의 접속을 사용하여 여러 곳에서 동시에 파일을 가져오게 되어 전송 속도가 빨라진다.

비트토렌트 프로토콜은 프로그래머 브램 코언(Bram Cohen)이 창안하였으며, 2001년 4월부터 설계되었고 최초의 구현이 2001년 7월 2일 발표되었다. 코언이 창립한 회사인 비트토렌트 주식회사가 이것을 유지보수하고 있다.[1] 본래 비트토렌트 프로그램은 분산 해시테이블을 활용하여 파이썬으로 작성되었으며 오픈소스 저작권하에서 배포되고 있다. 그 외에도 비트토렌트 프로토콜과 호환되는 각종 비트토렌트 클라이언트가 출시되어 있다. 이 프로토콜을 사용하는 인터넷 트래픽이 전 세계 인터넷 트래픽 중 상당 부분을 차지하고 있으나 정확한 통계는 측정할 수 없는 것으로 알려져 있다. 비트토렌트는 2018년 6월 18일 트론(Tron) 파운데이션의 설립자 저스틴 선(Justin Sun)에 의해 140,000,000 달러에 인수되었다.

이용방법[편집]

비트토렌트 프로토콜을 이용하기 위해서는 비트토렌트 프로토콜과 호환되는 비트토렌트 클라이언트를 설치해야 한다. 비트토렌트를 이용해서 파일을 공유하고 싶으면 우선 토렌트(torrent) 파일을 생성해야 한다. 토렌트 파일은 공유를 하고자 하는 파일의 메타데이터, 호스트 컴퓨터의 정보 등이 기록된다. 파일의 구체적인 내용은 비트토렌트 프로토콜 버전에 따라서 다르며, 파일 확장자는 항상 .torrent이다.

.torrent 파일[편집]

토렌트 파일에는 어나운스(announce) 섹션이 있는데, 이는 트래커(Tracker)의 URL 정보를 포함한다. 트래커란 일종의 서버로 스웜(swarm) 안에 시더(seeder)와 피어(peer)를 모니터링한다. 클라이언트는 트래커 서버로 자기 정보를 보내고 현재 스웜 안의 시더와 피드에 관한 정보를 받는다. 트래커 서버는 데이터 전송에 직접적인 영향이나 관계는 없으며 공유되는 파일의 복사본을 가지고 있지 않는다. 비트토렌트 버전은 트래커 서버 없이도 구현이 가능하도록 되어 있다. 그러나 대부분의 비트토렌트는 현재까지는 트래커 서버를 많이 사용하고 있다.

토렌트 파일의 인포(info) 섹션은 파일의 이름, 길이, 파일 조각의 길이, 그리고 파일의 무결성을 진단하기 위한 각 조각의 SHA-1 해시 코드가 포함되어 있다. 파일을 다 받은 클라이언트는 시더 역할을 수행할 수 있어서 파일 공유의 효율을 높일 수 있다. 공유하고자 하는 파일의 토렌트 파일을 생성한 후에는 웹사이트 등에 토렌트 파일을 퍼블리시해서 트래커 서버에 등록할 수도 있다. 이 방식은 많이 사용되고 있는 토렌트 파일의 공유 방법이다.[2]

업·다운로드[편집]

사용자는 토렌트 파일이 등록되어 있는 웹사이트에 가서 토렌트 파일다운로드하여 비트토렌트 클라이언트를 이용하여 토렌트 파일을 연다. 비트토렌트 클라이언트는 트래커 서버에 접속하여 현재 공유파일의 시더와 피어에 대한 정보를 가지고 온다. 다시 말해서 현재 다운로드하고 있는 사람과 업로드하고 있는 사람의 수를 가지고 온다. 이 모든 사람들을 통 틀어서 Swarm이라고 한다.

처음에는 Peer가 하나도 없을 수 있다. 단지 처음 파일을 올린 사람인 시더만 있을 수 있다. 이렇게 되면 첫 시더로부터 파일을 받기 시작한다. 비트토렌트 프로토콜은 파일을 여러 조각으로 나누어서 조그만 파일로 만들어서 전송을 한다. 일반적으로 한 조각의 크기는 256 킬로바이트(KB) 정도이다. 일반적으로 파일 크기가 클수록 조각의 크기도 커진다. 예를 들어, 4.37 기가바이트(GB)의 한 조각은 4.3 메가바이트(MB) 정도이다. 하나의 조각을 다운로드할 때마다 해시 알고리즘을 이용하여 에러 여부를 점검한다.

여러 사람들이 파일을 다운로드하기 시작하면서 스웜 안에 있는 피어의 숫자는 늘어난다. 피어들이 생기면서 서로 조각들을 공유하기 시작한다. 다운로드 중인 피어들은 랜덤하게 조각을 받기 때문에 서로 받은 조각들을 공유할 수 있게 된다. 그러므로 원본 파일을 가지고 있는 시더의 전송 부하(Bandwidth)를 줄인다.

P2P의 효율성을 높이는 데 중요한 역할을 하는 요소는 클라이언트간의 데이터를 주고 받는 정책이다. 클라이언트들은 자기에게 파일을 준 클라이언트에 다시 파일을 주는 형식으로 구성하여 공유의 효율성을 높인다. 이러한 여러 가지 정책에 따라 공유의 효율성, 다운로드 속도, 업로드 속도 등의 차이가 난다. 비트토렌트는 공유를 많이 할수록 좋으며 대신 다른 P2P와 다르게 Queue(줄) 서서 기다리는 것이 없다. 비트토렌트는 “optimistic unchoking”라는 메커니즘을 이용한다.[3] 이 메커니즘은 클라이언트의 대역폭을 일부 할당하여 무작위로 피어들한테 조각을 보내서 모든 피어들이 일정한 양의 조각을 가지고 있을 수 있게 한다. 그렇게 되면 모든 피어들이 다 다른 조각을 가지고 있게 되므로 공유의 효율성이 높아진다.[2]

동작[편집]

비트토렌트 프로토콜을 구현하기만 하면 비트토렌트 클라이언트라고 간주할 수 있다. 각 클라이언트는 이 프로토콜을 사용하여 임의의 종류의 컴퓨터 파일네트워크 상에서 예비하고, 요청하고, 전송할 수 있다. 이 때, 클라이언트가 동작하고 있는 컴퓨터를 피어라 부른다.

파일 한 개(혹은 파일의 그룹)를 공유하고 싶으면, 우선 피어는 .torrent 파일을 하나 생성해야 한다. 이 작은 파일은 공유할 파일 및 트래커(파일 분산을 조율하는 컴퓨터)에 대한 메타데이터를 담고 있다. 피어는 어떤 파일을 받기 위해서는, 우선 그 파일을 위한 .torrent 파일을 획득하여야 하며, 그 파일의 조각조각을 받기 위해서 어떤 피어들에게 접속해야하는지를 알려주는 소정의 트래커에 접속해야 한다.

네트워크 상에서 파일을 다운로드 받을 수 있게 해준다는 점에서는 비슷하지만, 비트토렌트 다운로드와 전통적인 풀-파일 HTTP 요청 사이에는 다음과 같은 근본적인 차이가 있다.

  • 비트토렌트는 많은 수의 소규모 P2P 요청(request)을 여러 개의 TCP 소켓을 이용하여 생성한다. 반면, 웹브라우저는 일반적으로 한 개의 HTTP GET 요청(request)을 한 개의 TCP 소켓 상에서 생성한다.
  • 비트토렌트 다운로드는 랜덤(random) 방식이거나 "희귀한 것 우선"(rarest-first) 방식이다.[4] 이러한 접근 방식은 고가용성(high availability)를 보장한다. 반면 일반적으로 HTTP 다운로드는 순차적 방식이다.

두 가지 차이점 덕분에, 비트토렌트는 아주 작은 비용으로 매우 큰 리던던시(redundancy)를 확보할 수 있었으며, 일반적인 HTTP 서버보다 어뷰즈(abuse) 나 플래시 크라우드에 강한 면모를 보인다. 하지만 이러한 프로텍션 효과는 그냥 얻어지지는 않는다. 다운로드는 최고 속도(full speed)에 이르기까지 시간이 걸린다. 왜냐하면 충분한 피어 접속들이 이루어지기까지는 시간이 걸리기 때문이며, 또한 한 개의 노드(node)가 충분한 데이터를 받아 놓아 효용 있는 업로더(uploader)가 되기까지 시간이 걸리기 때문이다. 결론적으로 일반적인 비트토렌트 다운로드는 처음에 낮은 속도로 시작하였다가 속도가 점점 증가해 최고 속도에 이르게 되며, 다운로드의 종료 시점까지 점점 속도가 떨어지게 된다. 이러한 점에서, 매우 빨리 최고 속도에 이르며 스피드 스루아웃(throughout)을 계속 유지하는 HTTP 다운로드와는 차이가 있다.[2]

프로토콜[편집]

비트토렌트는 P2P 방식을 사용하는 대표적인 프로토콜로서 전 세계 인터넷 트래픽 중 매우 많은 부분을 차지하고 있다. 비트토렌트 프로토콜은 기존의 파일 다운로드 방식인 서버-클라이언트 구조의 일대다 파일 공유방식을 사용하는 대표적인 프로토콜이다. 기존의 파일 공유 방식과 P2P 파일 공유 방식의 차이를 보여준다. 일대일 파일 공유 방식은 서버가 A라는 파일을 가지고 있고 클라이언트가 서버로부터 A를 받아가는 방식이다. 일대일 파일 공유 방식은 인터넷 환경과 서버의 성능 및 정책에 따라 파일 전송 속도가 결정되며, 이 속도는 전송이 완료될 때까지 유지되는 것이 일반적이다.

일대다 파일 공유 방식은 A 파일을 5개의 조각으로 나누어 각 클라이언트 간에 조각들을 서로 교환하는 방식이다. 클라이언트는 A 조각들을 소유 및 공유하고 있는 클라이언트와 세션을 생성하여 필요한 조각에 대하여 전송을 요청한다. 각 클라이언트들은 A를 공유하고 있는 새로운 클라이언트를 발견하면 자신이 가지고 있는 조각의 정보를 알려주고 새로운 클라이언트에게 자신이 필요한 조각을 요청한다. 이러한 방식 때문에 하나의 클라이언트는 여러 개의 클라이언트들과 무수히 많은 세션을 생성하게 되며 세션이 계속하여 늘어남에 따라 사용자의 다운로드 속도는 점진적으로 늘어나 클라이언트가 사용하는 인터넷 환경의 최대 대역폭까지 다운로드 속도가 증가한다.

비트토렌트 프로토콜은 파일을 공유하는 많은 클라이언트들과 동시에 많은 세션들을 생성하여 매우 빠른 다운로드 속도로 파일을 받을 수 있다. 하지만 무수히 많은 세션을 생성하여 파일을 공유하는 방식에 대한 문제점들이 통신 사업자에서 논의되고 있으며, 이러한 문제점을 이해하기 위해서 비트토렌트 프로토콜의 원리에 대한 이해가 필수적이다.[5]

동작원리[편집]

비트토렌트는 P2P 방식을 사용하는 대표적인 프로토콜이다. P2P 방식은 클라이언트와 클라이언트 간에 세션이 직접 생성되는 것과 공유하고자 하는 파일을 여러 개의 조각으로 나누어 주고받는 것이 특징이다. 비트토렌트 프로토콜을 사용하여 파일을 다운로드 받기 위해서는 비트토렌트 클라이언트 프로그램을 설치하여야 한다. 설치 이후 사용자는 웹을 통해 다운로드 받고자 하는 파일의 정보가 담긴 토렌트 파일을 받아 실행하여야 한다. 토렌트 파일은 공유할 파일을 가지고 있는 사용자가 자료 공유를 목적으로 토렌트 파일을 작성하여 웹에 게시하는 것이 일반적이며, 자료를 얻고자 하는 유저는 해당 토렌트 파일을 받아 실행하면 자료를 다운로드 받을 수 있다.

  1. 조각(piece) : 공유 파일을 작은 용량 단위로 조각 낸 파일이다.
  2. 시더(seeder) : 공유 파일의 완전체를 가지고 있는 클라이언트(파일의 모든 조각을 소유)이다.
  3. 리처(leecher) : 공유 파일의 불완전체를 가지고 있는 클라이언트(파일의 일부 조각만을 소유)이다.
  4. 피어(peer) : 시더와 리처를 총칭한다.
  5. 트래커(tracker) : 파일 공유를 위해 피어들의 정보를 관리하는 서버이다.
  6. 스웜(swarm) : 각 공유 파일마다 존재하며, 공유 파일에 대한 고유 식별자(Hash)와 공유 파일을 소유하고 있는 피어 리스트 정보를 가진다. 스웜은 트래커에 의해서 관리된다.
  • 토렌트 파일 다운받기 : 사용자는 A를 다운로드 받기 위해 웹 검색 등을 통해 토렌트 파일인 A를 다운로드 받아서 실행해야 한다. 해당 토렌트 파일에는 A를 위한 고유의 해시값이 포함되어 있으며 트래커의 URL 주소가 포함되어 있다. 해시값은 파일 식별자로써 동일한 파일 이름을 가진 다른 콘텐츠와 구분을 위하여 생성되는 고유의 값이며 트래커의 URL은 파일을 공유하는 피어들의 정보를 관리하는 서버를 지정하는 것이다. 만약 동일한 파일에 대하여 트래커의 URL이 서로 다르게 적혀있는 토렌트 파일을 클라이언트에서 실행하게 되면 클라이언트들의 정보를 서로 다른 트래커에서 관리하게 되므로 서로 다른 트래커를 이용하는 클라이언트들 간에는 파일을 공유할 수 없다.
  • 트래커에 피어 리스트 요청하기 : A를 다운로드 받고자 하는 사용자가 토렌트 파일을 실행하면 비트토렌트 클라이언트는 토렌트 파일에 포함된 A의 고유 해시값을 트래커로 전송한다. 이 메시지를 트래커 요청이라고 한다. 이와 같이 동일한 토렌트 파일을 사용하여 A를 공유하고 있는 모든 피어들은 트래커에게 A의 해시값을 보내게 된다. 피어들로부터 트래커 요청을 받은 트래커는 A의 해시값에 해당하는 스웜을 생성하고 A의 해시값을 보낸 피어들의 IP 주소를 이 스웜을 통해 관리한다.
  • 피어 리스트 받아오기 : 트래커 요청을 받은 트래커는 해당 메시지에 포함된 A의 해시값을 참조하여 해당하는 스웜이 존재하는지를 확인한다. 만약 존재하지 않는다면 새로운 스웜을 생성하고 다른 피어들로부터 트래커 요청이 들어올 때까지 기다린다. 기존에 만들어진 스웜이 존재하여 피어들의 정보가 있을 경우에는 스웜이 포함되어 있는 피어들을 리스트로 만들어 트래커 응답 메시지에 포함하여 응답한다. 트래커 응답에 들어있는 피어 리스트는 피어들의 IP 주소로 이루어지며 트래커 요청을 보낸 피어에게 아렬주는 피어 리스트는 50개 피어들의 IP 주소로 구성된다. 만약 스웜에 존재하는 피어의 개수가 50개 이상인 경우, 트래커가 50개가 넘는 피어들 중에 무작위로 피어의 IP 주소를 선정하여 피어 리스트를 구성한다.
  • 파일 다운로드 받기 : 피어 리스트를 받은 비트토렌트 클라이언트는 모든 피어 IP 주소로 A의 해시값을 보낸다. 이 메시지를 받은 피어들 중에 A 파일 공유가 가능한 피어는 동일한 A의 해시값으로 응답하게 된다. 이러한 해시 교환을 통해 피어와 피어는 세션을 생성하게 되고 생성된 세션을 통해 조각을 교환한다. 비트토렌트 프로토콜은 이러한 방식으로 트래커로부터 다수의 피어들 IP 주소를 받아 세션을 생성하므로 하나의 클라이언트는 동시에 여러 개의 세션을 생성하게 된다.

트론 인수[편집]

중국의 암호화폐인 트론 측은 2018년 6월 비트토렌트(BitTorrent)를 1억 2,000만 달러(약 1,300억원)에 인수했다. 개인간 P2P 파일 공유 업체인 비트토렌트는 전 세계 138개국에 1억명의 활성화된 사용자와 10억명의 일반 사용자를 보유하고 있어 P2P 시장에서 가장 많은 사용자를 가지고 있다. 트론의 비트토렌트 인수는 트론 생태계 확장 전략의 일환으로, 비트토렌트의 인프라와 트론의 블록체인이 결합되면 세계에서 가장 큰 P2P 네트워크를 만들 수 있다. 이 결합은 온라인 콘텐츠의 지불 계산과 글로벌 결제에 대한 새로운 가능성을 제공할 것이다. 콘텐츠 제작자는 중개자 없이 분산 네트워크를 통해 수억 명의 글로벌 사용자에게 다가갈 수 있다. 이러한 변화로 인해 다양한 산업이 큰 영향을 받게 될 것이다.[6]

비트토렌트 토큰[편집]

비트토렌트 토큰(BTT)은 파일 공유 시스템 비트토렌트(BitTorrent)에서 사용자들에게 파일 공유에 대한 유인을 제공하고 보상을 제공하기 위해 만들어진 트론 플랫폼 기반의 디지털 자산이다. 사용자들은 희소성 높은 자료의 시드를 유지할 때마다 더욱 큰 보상을 받게 되며 이를 통해 원활한 시드 유지가 가능해진다.

비트토렌트 사는 비트토렌트 토큰(BTT)이라는 TRON TRC-10 암호화 토큰을 도입하였다. 비트토렌트토큰은 비트토렌트 클라이언트와 서비스 요청자 및 서비스 제공자로 이루어진 유동 시장 간에 공유되는 컴퓨팅 리소스를 거래하기 위한 범용 메커니즘으로 작동한다. 비트토렌트토큰은 비트토렌트토큰이 사용되는 비트토렌트 생태계에서 서비스 제공을 위한 거래를 나타내는 단위다. 이는 세분화된 가격 책정이 가능한 분할 가능한 토큰으로 제공된다. 예상되는 규모로 인해 모든 거래에 공용 T트론 블록체인을 직접적으로 사용할 수 없다. 따라서 비트토렌트 사는“온체인/오프체인 교환을 사용할 것이다. 거래소는 고성능 사설 원장과 공용 트론 블록체인 간의 토큰 전송을 가능하게 한다.[7]

각주[편집]

  1. BitTorrent - a new P2P app〉, 《Wayback Machine》, 2001-07-02
  2. 2.0 2.1 2.2 비트토렌트〉, 《위키백과》
  3. 짱구, 〈BitTorrent, 정보 공유의 벽을 무너뜨려라~〉, 《티스토리》, 2010-03-31
  4. G. Urvoy-Keller and P. Michiardi, 〈Rarest First and Choke Algorithms Are Enough〉, 《Wayback Machine》, 2007-01-11
  5. Netmanias, 〈BitTorrent 프로토콜의 동작원리 - Understanding of the BitTorrent Protocol〉, 《넷마니아즈》
  6. 신은동 기자, 〈트론 설립자, 비트토렌트 1억 2,000만 달러 인수〉, 《서울경제》, 2018-06-20
  7. (업비트 투자자보호센터) 비트토렌트 국문 백서.pdf〉, 《업비트 투자자보호센터》, 2024-01-10

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 비트토렌트 문서는 인터넷에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.