| 리포트 | 기술문서 | 테크-블로그 | 원샷 갤러리 | 스폰서 컨텐츠 | 네트워크/통신 뉴스 | 기술자료실 | 자유게시판      한국 ICT 기업 총람 |

제품 검색

|

통신 방송 통계

 
 
 
섹션 5G 4G LTE C-RAN/Fronthaul Gigabit Internet IPTV/UHD IoT SDN/NFV Wi-Fi Video Streaming KT SK Telecom LG U+ OTT Network Protocol CDN YouTube Data Center
 

5G 특화망

(Private 5G) 

포탈 홈 넷매니아즈 Private 5G 분석글 5G 특화망 뉴스  5G 특화망 정책 일본의 Local 5G 전개현황 KT SK Telecom Verizon AT&T Vodafone DT  Telefonica
China Mobile Optage NEC Fujitsu Microsoft AWS HFR Ericsson Nokia Huawei Samsung Mavenir Affirmed Metaswitch Athonet Altiostar Airspan Kyocera Apresia
 
스폰서채널 |

 HFR의 5G 특화망 솔루션 (my5G |  CIENA 기술백서 (통합 X-haul, IP/광 통합, 에지 데이터센터)

  스폰서채널 서비스란?
banner
banner
BitTorrent 프로토콜의 동작원리
Understanding of the BitTorrent Protocol
By Netmanias (tech@netmanias.com)
banner
코멘트 (5)
26
Page 2 of 4

 

 

 

목차

1. BitTorrent 프로토콜 특징

2. BitTorrent 프로토콜 동작원리

3. BitTorrent 프로토콜 메시지

4. 글을 마치며

 

 

2. BitTorrent 프로토콜 동작원리
 

1장에서 설명한 바와 같이 BitTorrent는 P2P 방식을 사용하는 대표적인 프로토콜이다. P2P 방식은 클라이언트와 클라이언트 간에 세션이 직접 생성되는 것과 공유하고자 하는 파일을 여러 개의 조각(Piece)으로 나누어 주고받는 것이 특징이다.


BitTorrent 프로토콜을 사용하여 파일을 다운로드 받기 위해서는 BitTorrent 클라이언트 프로그램(e.g., BitTorrent, uTorrent 등)을 설치하여야 한다. 설치 이후 사용자는 웹(토렌트 커뮤니티, 웹 서핑 등)을 통해 다운로드 받고자 하는 파일의 정보가 담긴 토렌트 파일(확장자: .torrent)을 받아 실행하여야 한다. 토렌트 파일은 공유 할 파일을 가지고 있는 사용자가 자료 공유를 목적으로 토렌트 파일을 작성하여 웹에 게시하는 것이 일반적이며, 자료를 얻고자 하는 유저는 해당 토렌트 파일을 받아 실행하면 자료를 다운로드 받을 수 있다.


그림 2는 BitTorrent 클라이언트를 이용하여 파일을 다운로드 받는 절차를 보여 주고 있다.

 

그림 2. BitTorrent를 이용한 파일 다운로드

 

• 조각(Piece): 공유 파일을 작은 용량 단위로 조각 낸 파일
• 시더(Seeder): 공유 파일의 완전체를 가지고 있는 클라이언트(파일의 모든 조각을 소유)
• 리처(Leecher): 공유 파일의 불완전체를 가지고 있는 클라이언트(파일의 일부 조각만을 소유)
• 피어(Peer): 시더와 리처를 총칭함
• 트래커(Tracker): 파일 공유를 위해 피어들의 정보를 관리하는 서버
 스웜(Swarm): 각 공유 파일마다 존재하며, 공유 파일에 대한 고유 식별자(Hash)와 공유 파일을 소유하고 있는 피어 리스트 정보를 가짐. 스웜은 트래커에 의해서 관리됨

 

① 토렌트 파일 (.torrent) 다운받기
사용자는 “이소라.mp3”를 다운로드 받기 위해 웹 검색 등을 통해 토렌트 파일인 “이소라_mp3.torrent”를 다운로드 받아서 실행 하여야 한다. 해당 토렌트 파일에는 “이소라.mp3”를 위한 고유의 Hash 값이 포함되어 있으며 트래커의 URL 주소가 포함되어 있다. Hash 값은 파일 식별자로써 동일한 파일 이름을 가진 다른 컨텐츠와 구분을 위하여 생성되는 고유의 값이며 트래커의 URL은 파일을 공유하는 피어들의 정보를 관리하는 서버(트래커)를 지정하는 것이다. 만약 동일한 파일에 대하여 트래커의 URL이 서로 다르게 적혀있는 토렌트 파일을 클라이언트에서 실행하게 되면 클라이언트들의 정보를 서로 다른 트래커에서 관리하게 되므로 서로 다른 트래커를 이용하는 클라이언트들간에는 파일을 공유할 수 없다.


② 트래커에 피어 리스트 (IP 주소 리스트 ) 요청하기: Tracker Request
“이소라.mp3”를 다운로드 받고자 하는 사용자가 토렌트 파일을 실행하면 BitTorrent 클라이언트는 토렌트 파일에 포함된 “이소라.mp3”의 고유 Hash 값을 트래커(토렌트 파일에 포함되어 있는 URL)로 전송한다. 이 메시지를 Tracker Request(HTTP Get)라고 한다. 이와 같이 동일한 토렌트 파일을 사용하여 “이소라.mp3”를 공유하고 있는 모든 피어들은, 트래커에게 “이소라.mp3”의 Hash 값을 보내게 된다. 피어들로부터 Tracker Request를 받은 트래커는 “이소라.mp3”의 Hash값에 해당하는 스웜(Swarm)을 생성하고 “이소라.mp3”의 Hash 값을 보낸 피어들의 IP 주소를 이 스웜을 통해 관리한다.


③ 피어 리스트 (IP 주소 리스트 ) 받아오기: Tracker Response
Tracker Request를 받은 트래커는 해당 메시지에 포함된 “이소라.mp3”의 Hash 값을 참조하여 해당하는 스웜이 존재하는지를 확인한다. 만약 존재하지 않는다면 새로운 스웜을 생성하고 다른 피어로부터 Tracker Request가 들어올 때까지 기다린다. 기존에 만들어진 스웜이 존재하여 피어들의 정보가 있을 경우에는 스웜에 포함되어 있는 피어들을 리스트로 만들어 Tracker Response 메시지(HTTP Response)에 포함하여 응답한다. Tracker Response에 들어있는 피어 리스트는 피어들의 IP 주소로 이루어지며 Tracker Request를 보낸 피어에게 알려주는 피어 리스트는 50개 피어들의 IP 주소로 구성된다. 만약 스웜에 존재하는 피어의 개수가 50개 이상인 경우, 트래커가 50개가 넘는 피어들 중에 무작위로 피어의 IP 주소를 선정하여 피어 리스트를 구성한다.


④ 파일 다운로드 받기
피어 리스트를 받은 BitTorrent 클라이언트는 모든 피어 IP 주소로 “이소라.mp3”의 Hash 값을 보낸다. 이 메시지를 받은 피어들 중에 “이소라.mp3” 파일 공유가 가능한 피어는 동일한 “이소라.mp3”의 Hash 값으로 응답 하게 된다. 이러한 Hash 교환을 통해 피어와 피어는 세션을 생성하게 되고 생성된 세션을 통해 조각을 교환한다. BitTorrent 프로토콜은 이러한 방식으로 트래커로부터 다수의 피어들 IP 주소(기본 설정 50개)를 받아 세션을 생성하므로 하나의 클라이언트는 동시에 여러 개의 세션을 생성하게 된다.

 

Page 2 of 4
백아현 2013-09-23 11:49:48
감사합니다.
강재원 2016-01-04 17:38:53

안녕하세요. 소중한 자료 감사합니다.
읽다가 의문이 생겨서 문의드립니다.

Tracker response 과정에서,

 tracker에 hash 정보가 일치한 peer 있으면 IP 리스트를 user에게 전해주고, 

peer가 없으면 동일 새로운 tracker request가 들어올 때까지 기다린다고 하셨는데요, 

tracker request를 보내는 peer는 ".mp3"파일이 없는 상태가 아닌가요?

".mp3"파일이 없는 peer 2명이 만나서 파일을 다운받을 수 있나요?

감사합니다~!

강동혁 2019-07-13 10:27:14

.mp3 파일은 없어서 다운 받고 싶은 것이고, 그래서 tracker로 부터 hash값만 받아서 .mp3파일은 없지만 hash는 존재 하죠.

그래서 그 파일을 가지고 있는 peer들 즉, seeder들의 주소를 tracker로 부터 요구 하는데, 요구 할때 원하는 파일의 hash로 요청 하는 것으로 보입니다.

김일중 2016-01-12 12:35:20

tracker request를 보내는 peer는 ".mp3"파일이 없는 상태가 아닌가요?

re) 없을수도 있고, 있을수도 있는거죠. 있다면 다운받고 있거나 이미 파일의 완전체를 가지고 있는거죠.

".mp3"파일이 없는 peer 2명이 만나서 파일을 다운받을 수 있나요?

re) 당연히 다운받을 수 없습니다. 다른 피어들이 들어오기 전까진...

 

강동혁 2019-07-13 10:02:28

너무 기초적인 질문 일지 모르지만,

피어 와 피어 접속시 한쪽은 Server Socket 을 열어야 하는데, 요즘 서버 리스너를 마구 열어도 되나요? 보안상 안되는 경우는 없나요?

Thank you for visiting Netmanias! Please leave your comment if you have a question or suggestion.
banner
Related Contents
06/15/2011
Netmanias Technical Documents

 

 

     
         
     

 

     
     

넷매니아즈 회원 가입 하기

2020년 1월 현재 넷매니아즈 회원은 49,000+분입니다.

 

넷매니아즈 회원 가입을 하시면,

► 넷매니아즈 신규 컨텐츠 발행 소식 등의 정보를

   이메일 뉴스레터로 발송해드립니다.

► 넷매니아즈의 모든 컨텐츠를 pdf 파일로 다운로드

   받으실 수 있습니다. 

     
     

 

     
         
     

 

 

비밀번호 확인
코멘트 작성시 등록하신 비밀번호를 입력하여주세요.
비밀번호