Computer Science/Computer Network

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

kyxxn 2024. 5. 15. 17:55
728x90

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 > Computer Network' 카테고리의 다른 글

[CN] 2장: CDNs  (0) 2024.05.17
[CN] 2장: The Domain Name System, DNS  (0) 2024.05.13
[CN] 2장: E-mail, SMTP, IMAP  (0) 2024.05.11
[CN] 2장: Web and HTTP  (0) 2024.05.10
[CN] 2장: Principles of network applications  (0) 2024.05.10