요약

  • BitTorrent는 인기 있는 파일의 아웃바운드 트래픽 상당 부분을 출판사에서 내려받는 사람들에게로 옮겼습니다. 웹 호스트, 트래커, 최초 시드를 배포 사슬에서 제거하지는 않았습니다.
  • Cohen의 상호성 초킹(choking) 정책은 클라이언트 전략이었지, 와이어 프로토콜에 내장된 보장이 아니었습니다. 피어는 받은 것보다 더 기여할 수도, 자신의 다운로드를 개선할 만큼만 기여할 수도, 공유를 중단할 수도 있었습니다.
  • 2007년 연구는 전략적 클라이언트가 업로드 기여를 줄이면서 개인 성능을 향상시킬 여지가 있음을 발견했습니다. 그 결과는 해당 연구의 시스템과 측정치를 기술한 것이며, 이후의 모든 스웜에 적용되지 않습니다.

전달 비용은 파일과 함께 움직인다

기존 HTTP 다운로드에서는 호스트가 각 사본을 전송합니다. 파일이 갑자기 많은 관심을 받으면 출판사는 아웃바운드 용량을 확보하거나 더 느린 전달을 감수해야 합니다. Bram Cohen의 2003년 논문은 업무 분배 방식을 달리 제안했습니다. 여러 사람이 같은 파일을 내려받고 있으면 서로 조각을 교환할 수 있다는 것입니다. 원본 소스가 모든 바이트를 모든 수신자에게 보낼 필요가 없어지는 것입니다.

이는 전달 용량의 출처를 바꿉니다. 출판사의 서버는 여전히 파일을 처음 소개하지만, 스웜 참여자들이 도착하면서 업로드 용량을 더합니다. Cohen은 이 덕분에 매우 인기 있는 파일의 호스팅을 감당할 수 있게 될 수 있다고 주장했으며, 특히 다운로더의 업로드 대역폭이 종량제가 아닌 경우를 들었습니다. 마지막 단서가 중요합니다. 종량제가 아닌 연결은 사용자에게 전송이 공짜처럼 느껴지게 할 수 있지만, 연결·전기·용량 비용이 없어지는 것은 아니며 모든 접속 요금제를 대표하지도 않습니다.

이 설계는 작지만 중요한 소스 역할도 남겨 두었습니다. 출판사는 일반 웹 서버에.torrent메타정보 파일을 올리고, 트래커가 내려받는 사람들이 피어를 찾도록 돕고, 완전한 파일을 가진 시드가 배포를 시작해야 했습니다. Cohen은 파일 전송에 비해 웹 서버와 트래커가 필요로 하는 대역폭이 상대적으로 적다고 설명하면서도, 시드는 최소 한 개의 완전한 사본을 공급해야 한다고 했습니다. BitTorrent는 큰 흐름을 재분배했을 뿐, 소스를 없애지는 않았습니다.

그래서 "더 저렴한 호스팅"이라는 결론은 너무 광범위합니다. 이 메커니즘은 출판사의 아웃바운드 부담을 줄일 수 있지만, 실제 현금 비용을 줄이는지는 대역폭 가격, 용량 한도, 청중의 업로드 가용성, 시드 유지 비용에 달려 있습니다. 또한 사용자에게 배포 인프라의 일부를 공급하도록 요구합니다. 경제적 변화는 전달 업무의 소멸이 아니라, 전달 용량을 누가 기여하는가의 이동입니다.

상호성은 지역 규칙이었지 약속이 아니었다

Cohen의 논문은 피어들이 tit-for-tat의 변형을 통해 어떤 다른 피어에게 업로드할지 결정한다고 설명합니다. 클라이언트는 연결을 일시적으로 초킹해 다운로드는 허용하면서 업로드를 보류할 수 있고, 낙관적 언초크(optimistic unchoke)로 그렇지 않으면 쓰이지 않을 연결을 시험할 수도 있습니다. 이 시험은 이미 생산적인 파트너만 보상하는 것이 아니라 더 빠르거나 유용한 파트너를 발견할 여지를 만들어 줍니다.

그러나 Cohen은 이 메커니즘에 명시적으로 경계를 그었습니다. 초킹 알고리즘은 기술적으로 BitTorrent 와이어 프로토콜의 일부가 아니라는 것입니다. 프로토콜은 피어가 데이터와 신호를 교환하는 방법을 제공했고, 누구를 서비스할지에 대한 클라이언트의 선택은 별개의 운영 정책이었습니다. 이 구분이 중요합니다. "BitTorrent는 상호 교환을 보장한다"는 말은 공유 프로토콜이 요구한 바를 과장한 것입니다. 클라이언트 행동, 가용 조각, 연결 교체, 남는 업로드 용량이 모두 결과를 좌우했습니다.

출판사의 선택도 중요했습니다. Cohen은 파일 소유자가 BitTorrent를 사용할지 결정하지만, 사용자는 원하는 파일에 도달하는 경로이기 때문에 그것을 선택한다고 지적했습니다. 그는 클릭 한 번으로 다운로드하는 단순한 인터페이스가 채택에 크게 기여했으며, 성능과 비용 재분배 기능보다 더 중요할 수 있다고 주장했습니다. 조율 시스템이 우아한 인센티브 규칙을 갖고 있더라도, 시스템에 쉽게 들어오는 경로에 의존할 수 있습니다.

2007년 도전이 보여준 것

Michael Piatek, Tomas Isdal, Thomas Anderson, Arvind Krishnamurthy, Arun Venkataramani는 인센티브가 BitTorrent를 견고하게 만든다는 주장을 재검토했습니다. 이들의 2007년 USENIX 연구에서 실제 트레이스에 기반한 모델링은, 일부 피어가 자신의 성능을 직접 개선하지 않는 자원을 공급하고 있음을 시사했습니다. 이들의 BitTyrant 클라이언트는 이 간극을 전략적으로 이용하려 하며, 능동 피어 집합과 업로드 레이트를 조정해 더 적은 업로드로 더 많은 다운로드 처리량을 얻으려 했습니다.

학회 초록은 그들이 측정한 실제 스웜에서 1 Mbit/s 클라이언트의 성능이 중앙값 기준 70% 향상했다고 보고합니다. 저자들은 또한 전략적 클라이언트가 보편적으로 채택되면 연구 대상 클라이언트 구현에 비해 스웜당 평균 성능이 떨어질 수 있다고 경고했습니다. 이러한 발견은 tit-for-tat만으로 견고한 기여가 담보된다는 생각에 도전합니다. 그러나 이것이 모든 클라이언트나 현재 스웜이 무엇을 하는지를 확립하지는 않으며, 70% 수치는 일반적인 성능 보장이 아닙니다.

핵심 구분은 교환을 조직하는 데 도움을 줄 수 있는 인센티브와, 기여를 강제할 수 있는 메커니즘 사이의 구분입니다. BitTorrent의 지역 상호성은 유용한 업로드에 보상할 수 있었지만, 낙관적 시험과 불균등한 용량은 직접 상환되지 않는 기여의 여지를 남겼습니다. 전략적 클라이언트는 그 가치의 일부를 가로채려 할 수 있습니다. 광범위한 전략적 행동이 특정 스웜을 훼손할지는 피어들이 어떻게 행동하는지와 유용한 용량이 얼마나 남는지에 달려 있었습니다.

소스는 여전히 통제 지점이다

소스의 최초 결정이 여전히 시스템을 작동시킵니다. 메타정보를 게시하고, 트래커 또는 다른 피어 발견 경로를 유지하며, 완전한 시드를 공급하는 것입니다. 스웜이 커지면 각 피어의 클라이언트가 자신의 기여를 통제합니다. Cohen의 설계에는 모든 참여자에게 업로드 업무를 배분하는 중앙 할당자가 없습니다.

이 분할은 유연성과 노출을 동시에 만듭니다. 출판사는 아웃바운드 용량을 모두 구매하지 않고도 피어로 전달을 확장할 수 있습니다. 참여자는 얼마나 오래 시드할지, 어떤 클라이언트를 실행할지 선택할 수 있습니다. 그러나 출판사는 프로토콜의 존재만으로 안정적인 업로드 용량 공급을 추론할 수 없습니다. 시드가 모든 조각이 퍼지기 전에 떠나거나, 희소 조각을 가진 피어가 접속을 끊으면 파일이 불완전해질 수 있습니다. rarest-first 조각 선택은 희소 조각의 복제를 돕지만, 마지막 보유자가 사라진 뒤 조각이 계속 가용할지는 보장할 수 없습니다.

따라서 운영자에게 유용한 질문은 BitTorrent가 호스팅을 "해결했는가"가 아니라, 출판사가 여전히 어느 트래픽을 발생시키는지, 청중이 실제로 부하를 얼마나 흡수하는지, 수요의 꼬리 구간에서 완전한 사본을 무엇이 유지하는지입니다. Cohen의 기여는 내려받는 사람들을 잠재적 배포자로 바꾼 것이었습니다. 이후의 증거는 그 용량을 가정해서는 안 되고 측정해야 하는 이유를 보여주었습니다.

출처