Computer Science/Computer Network

[네트워크] "BitTorrent" - P2P applications (2)

oneonlee 2022. 10. 18. 00:10
반응형

P2P applications

Pure P2P architecture에 관한 내용은 이 곳을 참고해주세요.

 

[네트워크 애플리케이션 구조] client-server, P2P

Network Application architectures client-server peer-to-peer (P2P) Client-server architecture 유저의 시스템(client)이 내놓은 요구를 시스템(server)이 처리하도록 한 네트워크 구성 서버: 항상 켜져 있는 호스트이다. 영

oneonlee.tistory.com

 

이 글은 전편에 이어지는 글입니다. P2P application의 초창기 모델인 "Napster"와 "Gnutella"에 대한 설명은 여기를 참조해주세요.

 

[네트워크]

P2P applications Pure P2P architecture에 관한 내용은 이 곳을 참고해주세요. [네트워크 애플리케이션 구조] client-server, P2P Network Application architectures client-server peer-to-peer (P2P) Client-server architecture 유저의

oneonlee.tistory.com

 

(3) "BitTorrent"

  • Piece: 공유 파일의 한 조각 (256 kb)
    • 피어들은 파일을 256kb로 쪼개어 공유한다. (사실, 공유하는 파일의 크기가 크면, 쪼개는 파일의 크기를 256kb로 고정하지 않고, 늘리는 경우도 있다.)
  • Peer: Piece들을 upload/download 하는 주체.
  • Seeder: 모든 piece를 전부 가지고 있는 피어를 지칭
  • Leecher: 일부 piece만을 가지고 있는 피어를 지칭
  • Tracker: 클라이언트(피어)에게 peer list를 전달하는 중앙 컴퓨터 (공개/비공개)
  • Swarm: Tracker 안에 있으며, peer list를 담고 있는 DB

 

작동방식 : 

 

Torrent의 알고리즘과 전략

    1. 조각 선택 알고리즘 (Piece Selection Algorithm)
      • (1) Strict Priority (전 과정)
        • 조각을 받기 시작하면, 다른 조각에 신경 쓰지 말고, 해당 조각을 다운 받는데 최선을 다하라.
      • (2) Random First Piece (처음)
        • Client가 어떤 조각도 갖고 있지 않을 경우, random으로 piece를 선택해서 download를 시작한다.
      • (3) Rarest First (중간)
        • download 시, 자신이 download 해야하는 조각 중에서 해당 조각을 가지고 있는 peer의 수가 가장 적은 조각으로 결정한다.
        • 따라서 가장 많은 peer를 가지고 있는 조각이 다운로드의 마지막에 남게 된다.
        • 첫 조각은 Random First Piece 전략을 사용하며, 그 다음 조각부터 Rarest First 전략을 사용한다.
      • (4) End Game Mode (마지막)
        • 마지막 한 개의 조각을 download 할 때는, peer 전체에게 download request를 한다.
        • download가 끝나면 다른 peer들에게는 cancel 요청을 한다.
    1. 피어 선택 알고리즘 (Peer Selection Algorithm)
      • Choking
        • upload를 하지 않고, download만 하는 peer를 방지하는 방법.
        • "일시적으로 특정한 client에게 uploading을 거부하는 것."
        • 10초마다 갱신되는 각각의 peer로부터의 download 속도를 계산하여 choke를 할지 unchoke를 할지 계산한다.
        • BitTorrent에서는 uploading 하는 peer가 downloading 하는 peer에게 “unchoke”를 보냄으로서 download가 시작된다.
        • “unchoke” 되는 peer의 수는 4개
      • "optimistic unchocking"
        • 자신으로 uploading하는 속도가 빠른 peer에 대해 unchoke를 실행
        • (20초 단위로 관측하고, 10초마다 unchoke peer를 변경)
      • 30초마다 optimistic unchocking 하지 않고, "random selection" 한다.
        • 방금 접속한 새로운 peer들에게 기회를 주는 역할을 한다.
  • 번외) torrent 운영 회사의 수익 모델은 무엇인가?
    • SW의 업데이트, 신규 배포 등을 torrent를 통해 배포를 하기 대문에 수익이 발생한다.

 


 

참고 자료

  1. Computer Networking: A Top Down Approach 6th edition - Jim Kurose, Keith Ross Addison-Wesley March 2012
반응형