-
# P2P+ Peer To Peer 의 줄임말+ 컴퓨터의 쌍방향 파일 전송 시스템을 가리킴.+ 중앙서버 없이 컴퓨터간을 연결+ 프로그램 엔진만 만들면 되기 때문에 간편하게 파일 전송할 수 있음+ 인터넷 속도가 느릴때는 평가가 좋지 않았으나, 인터넷 전송속도가 빨라지면서 널리 사용됨+ 한국최초 P2P 소리바다.+ 사용자의 컴퓨터 자원을 어느 정도 나눠 쓴다는 점에서 서버 성능의 한계를 극복할 수 있는 유용한 기술# P2P 의 종류+ 비슷한 성능의 PC 끼리만 연결된 순수 형티의 p2p(pure p2p)+ PC 끼리의 인터렉션을 원활하게 해주는 서버가 개입되는 혼합형 p2p(hybrid p2p)# [비트토렌트] BitTorrent+ P2P 파일 전송 프로토콜의 이름이자 프로토콜을 이용하는 응용 소프트웨어의 이름.+ 파일이 인터넷 상에 분산하여 저장되므로 다수의 접속을 사용하여 전송 속도가 빠르다.+ 브램 코헨이 창안. 2001년 7월 2일 발표+ 코헨이 창립한 회사 비트토렌트 Inc가 유지보수중.+ 초기에는 분산 해시 테이블을 활용하여 파이선으로 작성됨.# torrent 파일+ 파일을 공유하고자 하는 파일의 메타데이터, 호스트 컴퓨터 정보등이 기록됨.# torrent - announce 섹션 = Tracker의 URL 정보 포함+ Tracker 란 일종의 서버로 swarm 안에 seed 와 peer를 모니터링+ Client는 Tracker 서버로 자기 정보를 보내고 현재 swarm 안의 seed 와 peer 정보 획득+ 현재 비트토렌트 버전은 tracker 서버 없이도 구현가능+ 대부분의 비트토렌트는 현재까지 tracker 서버를 대부분 사용.# torrent - info 섹션+ 파일의 이름, 길이, 파일 조각의 길이, 무결성 진단을 위한 조각의 SHA1 해시코드가 포함되어 있음.# swarm+ Client 가 tracker 서버에 접속하여 현재 공유파일의 Seeder 와 Peer에 대한 정보를 가져온다.+ 업로드, 다운로드 Instance 모두를 통틀어 Swarm이라고 한다.# swarm 동작+ Peer 가 하나도 없는경우 Seeder 로부터 다운로드+ 비트토렌트 프로토콜은 파일을 여러 조각으로 나누어 조그만 파일로 만들어서 전송+ 한 조각크기는 256kb+ 파일크기가 클수록 조각도 커짐 4.37GB의 경우 파일의 조각은 4.3MB+ 하나의 조각을 다운로드 할 때마다 해시 알고리즘을 이용하여 에러 여부를 점검# optimistic unchoking+ 비트토렌트의 매커니즘.+ 클라이언트의 대역폭을 일부 할당하여 무작위로 Peer 들한테 조각을 보내서 Peer 들이 일정한 양의 조각을 가지고 있을 수 있게 함.+ 모든 Peer 들이 다 다른 조각을 가지고 있게 되어 공유 효율성이 높아짐.# 동작+ 비트토렌트는 많은 수의 소규모 P2P 요청을 여러개의 TCP 소켓을 이용하여 생성+ 반면 웹브라우저는 일반적으로 한 개의 HTTP GET 요청을 한개 TCP 소캣 상에서 생성+ 비트토렌트 다운로드는 랜덤방식이거나 희귀한것 우선(rarest-first) 방식.+ 아주 작은 비용으로 큰 redundancy확보가능.+ 다운로드 최고속도에 이르기까지는 충분한 피어 접속이 이뤄질때까지 시간이 소요됨.+ 매우 빠르게 최고속도에 이르며 스피드 스루아웃(throughout)을 계속 유지하는 HTTP 다운로드와 다름.# 비트 토렌트 활용+ 영화, 비디오, 앨범등을 배포하는 용도로 사용+ 오픈소스 프로젝트에서는 서버 부하를 줄이고 가용성을 높이기 위해 택+ 게임 클라이언트 업데이트 배포를 위해 토렌트 사용.[참조]