<< 2007년 5월 19일 (토) | | 2007년 5월 21일 (월) >>

BitTorrent 기술 이해

오늘은 제가 BitTorrent 기술을 설명해 보겠습니다.
아래는 BitTorrent 의 흐름을 그림으로 그려봤습니다.

BitTorrent

BitTorrent는 3개의 Entity 즉, File Server에 호스팅된 torrent파일과 Tracker, Peer들로 구성되어 있습니다.
자세한 설명은 아래 용어 정의에서 확인하실 수 있습니다. 자, 그럼 BitTorrent 방식은 어떻게 파일을 다운로드되는지 설명하겠습니다.
특정 이용자가 올린 파일은 BitTorrent 프로토콜의 운영에 동의한 파일이라는 가정하에 아래 시나리오를 정리했습니다.

  • 클라이언트인 Leech가 원하는 파일을 얻기 위해서 Tracker에 Peer-List의 정보를 요청하여 정보를 받습니다.
  • Leech는 클라이언트 정보를 파악하여 네트워크나 서버 정보가 좋은 클라이언트에게 Hash정보를 가지고 특정 파일 조각(pieces)을 요청한다.
  • Seed는 특정 파일 조각(pieces)을 Leech에게 제공한다.
  • Leech는 파일의 조각의 해시값을 비교하여 파일을 조합한다. 이때 Leech는 다운로드 받을 전체 파일의 사이즈를 미리 할당해 놓은 상태입니다.
  • Seed가 자신의 서버 부하 상태가 나빠질 경우 uncoke를 통해서 Tracker와 최신의 상태 정보를 공유하게 됩니다.

BitTorrent의 제한점

  • 파일 다운 받을 수 있는 Peer정보들을 가지고 있고 수시로 Peer정보를 최상의 상태로 만들어야 하기에 Tracker의 성능이 좋아야 한다. Tracker가 다운되면 BitTorrent 시스템은 불가능하게 된다.
  • 파일 조각의 사이징에 따라 다운로드 성능에 영향을 많이 받는다.
  • 작은 파일들의 전송시에 네트웍 오버헤드가 높아진다.
  • Peer들에게 Attack의 대상이 되기도 한다.

보완 되어야 할 점

고객들의 자원을 활용하므로 인해 네트워크에 대한 비용 전가에 대한 혜택을 제공해야 합니다. 그리고 Peer들의 공격의 대상이 될 수도있고 바이러스의 전파 경로로 활용, 보안 등으로 이용될 수 있어 이런 문제점 해결이 보완되어야 합니다.