[CN] 2장: Peer-To-Peer Applications

2024. 5. 15. 17:55·🖥️ Computer Science/Network

Peer-To-Peer Applications

P2P 개요

클라이언트가 송신, 제공 다 하는 역할 → 자기 확장성
항상 동작하지 않고, 피어의 IP 주소는 바뀔 수 있음

파일 분배: 클라이언트-서버 vs P2P

한 서버에서 F크기의 파일을 N개의 피어로 배포하는데 걸리는 시간?

클라이언트-서버

: N이 증가함에 따라 선형적으로 시간 증가
→ 서버가 N명한테 다 주는 방식

서버 전송

파일 1개: F/u

파일 N개: N*F/u

클라이언트

최소분배시간: F/d(min)

d(min) = 다운 로드가 가장 느린 클라이언트의 속도

P2P

: N이 증가해도, u(i)도 증가해서 효율적임

서버 전송

반드시 1개 파일,
F/u 시간 걸림

클라이언트

최소분배시간: F/d(min)

P2P 파일 분배: BitTorrent

토렌트: 특정 파일 분배에 참여하는 피어의 모임

트래커: 토렌트에 참여하는 피어들을 추적

피어가 처음 토렌트에 가입하면

→ 트래커에 등록 + 이웃 피어와 TCP 연결

피어는 파일을 다운로드 할 때, 다른 피어한테 청크를 제공도 함

Request

청크를 요청할 때,

피어마다 특정 시간에 갖고 있는 청크가 다름

  1. 주기적으로 각 피어에게 뭘 갖고 있는지 요청함
  2. 나한테 없는 희귀한 청크를 다른 피어에게 요청

Sending

나한테 청크를 요청하면 때, tit-for-tat 규칙에 따라 줌

  1. 나한테 가장 빨리 보내는 피어들한테만 답장함
  2. 나한테 안 보내는 다른 애들한테는 안 보냄
  3. 30초마다 ’낙관적 활성화’를 통해 다른 피어를 무작위로 선택
    새로운 가입자를 위해
저작자표시 (새창열림)

'🖥️ Computer Science > Network' 카테고리의 다른 글

[CN] 3장: 다중화 & 역다중화  (0) 2024.07.02
[CN] 2장: CDNs  (0) 2024.05.17
[CN] 2장: The Domain Name System, DNS  (0) 2024.05.13
[CN] 2장: E-mail, SMTP, IMAP  (1) 2024.05.11
[CN] 2장: Web and HTTP  (1) 2024.05.10
'🖥️ Computer Science/Network' 카테고리의 다른 글
  • [CN] 3장: 다중화 & 역다중화
  • [CN] 2장: CDNs
  • [CN] 2장: The Domain Name System, DNS
  • [CN] 2장: E-mail, SMTP, IMAP
kyxxn
kyxxn
컴퓨터공학을 좋아하는 대학생의 공부 일기
  • kyxxn
    컴공 학부생의 공부 일기
    kyxxn
  • 전체
    오늘
    어제
    • 분류 전체보기 (156)
      • 📱 iOS (64)
        • Xcode (10)
        • Swift (17)
        • Swift Concurrency (12)
        • UIKit (21)
        • SwiftUI (0)
      • 🖥️ Computer Science (57)
        • 🏛️ Software Architecture Pa.. (2)
        • 👨🏻‍🎨 Design Pattern (3)
        • Data Structure (4)
        • Algorithm (10)
        • Computer Architecture (4)
        • Operating System (19)
        • Network (15)
      • ✍🏻 회고록 (9)
      • 🎸 기타 (25)
        • 해커톤 (1)
        • git (6)
        • 세미나 (1)
        • 책을 읽고 (1)
        • AOS, Kotlin (6)
        • Reinforcement Learning (9)
  • 블로그 메뉴

    • 링크

      • 깃허브
      • 일상 블로그
    • 공지사항

    • 인기 글

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    kyxxn
    [CN] 2장: Peer-To-Peer Applications
    상단으로

    티스토리툴바