Computer Science/Computer Network

[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.5 P2P applications

y-seo 2023. 11. 2. 21:14

 

 
 

Chapter02. Application Layer

 

 
 

Peer-to-peer architecture

  • client가 server가 되기도 한다
  • server가 항상 켜져 있을 필요 없다
  • Host가 직접 소통하기도 한다 (server를 안 거친다)
  • peer는 요구 받기도 요구 하기도 한다 → 다운로드/업로드 모두 한다
  • self-scalability : 잘 작동하고 있다고 알려주고, peer가 많아져도 문제 없다고 말할 수 있는 징표, 새로운 peer가 새로운 service capaciry를 가지고 옴
  • peer은 간헐적으로 연결되며 IP 주소를 자꾼다
  • Ex. P2P 파일 공유, 스트리밍, VoIP

 

 
 

P2P file distribution : BitTorrent

  • 상업용
  • cloesed protocol
  • file distribution에 많이 사용
  • file은 256kb chunk로 나누어짐
  • torrent의 peer은 file chunk를 보내기도 받기도 함
  1. peer은 torrent에 들어감 (Tracker을 통해)
    • chunk가 없고 축적되기 시작할 것
  2. tracker에 등록하여 peer의 목록을 가져와 peer의 subset에 연결
    • subset of peer = neighbor
  3. peer가 다운로드 할 때, 다른 peer에게 업로드도 함
  4. chunk를 교환할 상대 peer가 바뀔 수도 있음
    • churn = peer가 들어오기도 나가기도 한다
  5. peer가 전체 file을 가지면 torrent에 selfishly 떠나거나 altruistically 남을 수 있다
    • selfishly : 다른 사람이 내 파일을 못 가져가게
    • altruistically : 다들 내 것을 가져 갈 수 있게
  • Requesting file chunks
    1. 어느 순간에 서로 peer들이 서로 다른 chunk의 일부분을 가지고 있음
    2. 주기적으로 Alice가 다른 peer에게 너 뭐 가졌냐고 물어봐야 함
    3. Alice가 자신한테 없는 것을 요청함, 그 중에서도 가장 드문 것을 달라고 함
  • Sending chuncks : tit-for-tat
    • 주고 받는 대상은 끊임없이 변동된다
    • Alice는 본인에게 빨리 보내는 사람 4명을 선택하여 자신의 것도 보낸다
      • = other peer은 Alice에게 choke 되었다고 표현
      • 10초마다 대상을 다시 계산 (choke 4명과 unchoke 1명, 총 5명 사이에서)
    • 매 30초마다 다른 peer 중 한 명에게 random하게 chunk를 보냄
      • = optimistically unchoke
      • 새롭게 다른 peer의 top4에 선택될 수도