비트토렌트 ( BitTorrent )
비트토렌트(BitTorrent) 는 P2P(peer-to-peer) 파일 전송 프로토콜의 이름 이자 그것을 이용하는 응용 소프트웨어의 이름이다.
비트토렌트를 이용하면 파일을 인터넷 상에 분산하여 저장하여 놓고 다수의 접속을 사용하여 여러 곳에서 동시에 파일을 가져오게 되어 전송 속도가 빨라진다.
이분이 브램 코언(Bram Cohen, 1975년 ~ ) 미국 출신의 컴퓨터 프로그래머.
비트토렌트 프로토콜은 프로그래머 브램 코헨이 창안하였으며, 2001년 4월부터 설계되어 최초의 구현이 2001년 7월 2일 발표되었다. 현재는 코헨이 창립한 회사인 비트토렌트 Inc.가 이것을 유지보수하고 있다. 본래 비트토렌트 프로그램은 분산 해시 테이블을 활용하여 파이썬으로 작성되었으며 오픈 소스 저작권하에서 배포되고 있다. 그 외에도 비트토렌트 프로토콜과 호환되는 각종 비트토렌트 클라이언트가 출시되어 있다.
이 프로토콜을 사용하는 인터넷 트래픽이 전 세계 인터넷 트래픽 중 상당 부분을 차지하고 있으나 정확한 통계는 측정할 수 없는 것으로 알려져 있다.
동작원리
비트토렌트 프로토콜을 구현하기만 하면 비트토렌트 클라이언트라고 간주할 수 있다. 각 클라이언트는 이 프로토콜을 사용하여 임의의 종류의 컴퓨터 파일을 네트워크 상에서 예비하고, 요청하고, 전송할 수 있다. 이 때, 클라이언트가 동작하고 있는 컴퓨터를 피어라 부른다.
파일 한 개(혹은 파일의 그룹)를 공유하고 싶으면, 우선 피어는 .torrent 파일을 하나 생성해야 한다. 이 작은 파일은 공유할 파일 및 tracker(파일 분산을 조율하는 컴퓨터)에 대한 메타데이터를 담고 있다. 피어는 어떤 파일을 받기 위해서는, 우선 그 파일을 위한 .torrent 파일을 획득하여야 하며, 그 파일의 조각조각을 받기 위해서 어떤 피어들에게 접속해야하는지를 알려주는 소정의 tracker에 접속해야 한다.
- 비트토렌트는 많은 수의 소규모 P2P 요청(request)을 여러 개의 TCP 소켓을 이용하여 생성한다. 반면, 웹 브라우저는 일반적으로 한 개의 HTTP GET 요청(request)을 한 개의 TCP 소켓 상에서 생성한다.
- 비트토렌트 다운로드는 랜덤(random) 방식이거나 "희귀한 것 우선"(rarest-first) 방식이다. 이러한 접근 방식은 고 가용성(high availability)를 보장한다. 반면 일반적으로 HTTP 다운로드는 순차적 방식이다.
상기 두 가지 차이점 덕분에 일반적인 HTTP 서버보다 어뷰즈(abuse) 나 "플래시 클라우드"에 강한 면모를 보인다.
하지만 이러한 프로텍션 효과는 그냥 얻어지지는 않는다: 다시 말해 다운로드는 최고 속도(full speed)에 이르기까지 시간이 걸린다.