새소식

컴퓨터 네트워크

BitTorrent의 구조: P2P 이상한 사이트가 아니야.

  • -
728x90

torrent란 피어들의 집합을 뜻해. 

 

토렌트의 구조를 영화파일로 들자면, 4gb의 영화가 있다고 하면 

수백명의 피어들이 256kb라는 'chunks'라고 불리는 파일을 서로 갖고 공유하는거야.

만약 4gb의 영화를 받아야 하는데 현재 torrent(유져 그룹)이 충분하지 않다면, 해당 주소는 무의미한 주소야. 그래서 파일을 그대로 온전히 가지고 있는 피어(유저)가 한명이라도 있는게 토렌트 파일을 받는데 중요한거지. 

 

그렇기 때문에, 항상 자기가 받고 싶은 파일만 받고 해당 공유주소를 삭제하는 일은 이기적인 일이라 볼 수 있어.

 

곧 토렌트란

다운로딩을 진행하면서 동시에 청크파일을 다른 피어들에게 공유하고 있는 상태라 볼 수 있어.

그리고 다운로딩을 진행하며 특정 업로더의 청크 다운로딩 속도가 충분히 빠르지 않다면 피어들을 교체할 수 있는거야.

 

이렇게 말하자면 이상하지만, 우리는 토렌트를 사용할때 일종의 미덕이 필요한거야. 파일을 다 받았다면, 잠시 토렌트 상에 남아서 다른 사람들에게 자료를 공유할줄도 알아야한다는거지.

 

 

토렌트의 최적화 알고리즘

만약 영화 파일 하나를 

500개의 chunk로 나눴다고 생각해보자. 번호 5번의 chunk를 공유하는 피어가 가장 적다고 하면, 

토렌트는 5번 chunk부터 주변 downloader들에게 배포해. 왜냐하면 가장 희소성있는 chunk를 P2P상에 공유함으로서 전체적인 스피트를 놀리는거지. 나중에 영화 다운로더들이 모두 5번 Chunk를 다운받으려 한다면 병목현상이 발생할태니 말이야. 

 

결국 최적의 속도를 쫓아가는거야.

 

 

 

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.