컴퓨터네트워크[7]: P2P applications

2023. 4. 19. 03:19· 학교강의필기장/컴퓨터네트워크
반응형

Peer-to-peer architecture

서버가 항상 켜져있지 않음

임의의 end-systems가 직접 통신한다.

다른 피어에게서 서비스를 요청하고, 다른 피어에게 서비스를 제공한다.

- 자체 확장성(self scalability): 새로운 피어는 새로운 service capacity와 새로운 service demands(수요)를 가져옴

피어는 간헐적으로 연결되고 ip주소가 변경된다. - 관리하기 복잡하다

 

 

File distribution: client-server vs P2P

크기 F의 파일을 한 서버에서 N개의 피어로 분산하는 데 필요한 시간은?? 

- 피어의 업로드/다운로드 용량은 제한된 리소스이다.

 

client-server에서, 

server transmission : 순차적(sequentially)으로 N개의 파일 복사본을 보내줘야 한다.

- 한 복사본을 보내는데 걸리는 시간 : F/Us

- N개의 복사본을 보내는데 걸리는 시간 : NF/Us

 

client : 각 클라이언트는 파일 복사본을 다운로드 해야한다.

- Dmin = 클라이언트의 다운로드 최소 속도

- 클라이언트의 다운로드 최소 시간은 F/Dmin

 

클라이언트-서버 방식에서 파일 F를 N개의 클라이언트에게 분산하는데 걸리는 시간 Dc-s는,

Dc-s >= max{NF/Us, F/Dmin}

 

P2P에서,

server transmission : 적어도 하나의 복사본을 업로드 해야한다

- 한 복사본을 보내는데 걸리는 시간 : F/Us

 

client : 각 클라이언트는 파일 복사본을 다운로드 해야한다.

- 클라이언트의 다운로드 최소 시간은 F/Dmin

 

clients : 모두 합쳐서 NF bits를 다운로드 받아야 한다.

- 최대 업로드 속도(최대 다운로드 속도 제한)은 Us + Sigma(Ui)이다.

 

P2P 방식에서 파일 F를 N개의 클라이언트에게 분산하는데 걸리는 시간 Dp2p는,

Dp2p >= max{F/Us, F/Dmin, NF/(Us + Sigma(Ui))}

 

파일이 분산된 경우 P2P가 더 효과적이다.

 

 

 

P2P file distribution: BitTorrent

BitTorrent는 대규모 파일을 여러 조각(chunks)로 나눠서 네트워크 상에 공유함.

파일을 공유하는 피어들은 각각 다른 chunk를 가지고 있음.

 

다운로드를 시작하는 클라이언트는 tracker에 등록해서 피어 목록을 얻고, 일부 피어에 연결한다.

다운로드하는 동안 피어는 청크를 다른 피어에게 업로드한다.

피어가 다른 피어들과 청크를 교환하는 도중, 다른 피어들과의 연결을 변경할 수 있다.

접속하는 피어는 언제든지 오고가며 이를 초기화(churn)이라 한다.

 

 

Requesting chunks

언제든지 서로 다른 피어들은 파일 청크의 서로 다른 하위 집합을 갖고 있다.

주기적으로 각 피어에게 그들이 갖고 있는 청크 목록을 요청한다.

희귀한 것부터 먼저(rarest first), 누락된 청크를 피어에게 요청한다.

 

Sending chunks : tit-for-tat

현재 가장 높은 속도로 청크를 보내는 4명의 피어에게 청크를 보낸다. (나한테 청크 주면 나도 청크 줄게!)

- 다른 피어들은 차단되어 청크를 받지 못한다.

- 매 10초마다 상위 4개 피어를 재평가한다.

매 30초마다 다른 피어를 임의로 선택해서 청크를 보낸다.

- 이 피어에게 낙관적으로 언초크(optimistically unchoke) 한다. - 새로운 피어들이 상위 4개 피어중 하나가 될 기회를 부여

- 새롭게 선택된 피어가 상위 4개 피어 중 하나가 될 수 있다.

 

 

 

반응형

'학교강의필기장 > 컴퓨터네트워크' 카테고리의 다른 글

컴퓨터네트워크[9]: Transport-layer services  (0) 2023.04.19
컴퓨터네트워크[8]: Video streaming and content distribution networks  (0) 2023.04.19
컴퓨터네트워크[6]: Domain Name System DNS  (0) 2023.04.19
컴퓨터네트워크[5]: E-mail, SMTP, IMAP  (0) 2023.04.19
컴퓨터네트워크[4]: Web and HTTP  (0) 2023.04.18
'학교강의필기장/컴퓨터네트워크' 카테고리의 다른 글
  • 컴퓨터네트워크[9]: Transport-layer services
  • 컴퓨터네트워크[8]: Video streaming and content distribution networks
  • 컴퓨터네트워크[6]: Domain Name System DNS
  • 컴퓨터네트워크[5]: E-mail, SMTP, IMAP
푸더기
푸더기
푸더기의 다사다난한 블로그입니다
푸더기
푸더기와 푸닥푸닥
푸더기
전체
오늘
어제
  • 분류 전체보기 (236)
    • 현생 (95)
      • Flecs (Entity Component Sys.. (1)
      • TCP 소켓 프로그래밍 (43)
      • 백준 온라인 저지 (22)
      • 후기 (4)
      • 기록 (1)
      • spring boot (2)
      • 임베디드 (13)
      • 리눅스 커널 (9)
    • 학교강의필기장 (132)
      • 현대음악 (17)
      • 알고리즘 (7)
      • 운영체제론 (20)
      • 컴퓨터구조 (24)
      • 컴퓨터네트워크 (16)
      • 암호학 (16)
      • OOP (12)
      • 프로그래밍언어론 (12)
      • 고전음악 (8)
    • 잡탕 (9)
      • 리뷰 (1)
      • 군대 (2)
      • 맛집 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

태그

  • 현대음악
  • 소켓 프로그래밍
  • 열혈 TCP/IP 소켓 프로그래밍
  • ip
  • 다중접속서버
  • dp
  • 컴퓨터사이언스
  • TCP
  • 컴퓨터구조
  • TCP/IP
  • 암호학
  • 백준
  • 컴퓨터 네트워크
  • UDP
  • MIPS
  • C
  • 열혈 TCP/IP 소켓프로그래밍
  • OS
  • 운영체제론
  • 윤성우
  • 소켓프로그래밍
  • CS
  • Linux
  • 알고리즘
  • 이분탐색
  • 쓰레드
  • C++
  • 컴퓨터네트워크
  • 프로세스
  • 맛집

최근 글

hELLO · Designed By 정상우.v4.2.2
푸더기
컴퓨터네트워크[7]: P2P applications
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.