P2P (Peer to Peer)

- always-on server 가 없다

- end systems 간의 직접 communicate

eg) BitTorrent, VoIP(Skype)

 

 

1. 보통의 Server-Client 간 File Distribution Time

1) File F 를 N 번 업로드 하는데 걸리는 서버의 전송 시간 : NF/Us

2) 클라이언트가 파일 F를 다운로드 받는데 걸리는 최대 시간 F/dmin

파일 F를 N개의 클라이언트에 distribute 하는데 걸리는 시간 : max { NF/Us , F/dmin }

    : 서버가 파일을 업로드 하는 시간 or 클라이언트 중 파일을 다운로드하는데 최대로 걸리는 시간 중 최대 시간

    : 유저가 많아질 수록 N 이 증가하므로 속도가 느려짐

 

2. P2P 에서의 File Distribution Time

1) 서버에서 하나의 카피를 올리는 경우 걸리는 시간 : F/Us

2) 클라이언트가 파일 F를 다운로드 받는데 걸리는 최대 시간 : F/dmin

N명의 클라이언트 모두가 파일을 받을 경우 NF bits

max upload rate : Us + ∑Ui

파일 F를 N개의 클라이언트에 distribute 하는데 걸리는 시간 : max {F/Us, F/dmin, NF/(Us+∑Ui)}

: 유저가 많아질수록 N 과 Ui 모두 증가하므로 속도가 느려지지 않음

 

 

Client-Server vs P2P Distribution Time 비교

 

BitTorrent

- file 을 256Kb chucks로 나눔

- torrent : 파일 chunk를 교환하는 peer 그룹

- tracker : 토렌트에 속하는 peer 가 누구인지 tracking

- churn : peer 가 들어갔다 나갔다 하는 것

- rarest first : chunk를 보유한 peer 가 가장 적은 것 부터 request

- selfish peer : 다운로드만 받고 업로드는 하지 않는 peer

 

※ tit-for-tat

좋은 partner peer 를 남기고 selfish peer 를 버리기 위한 전략

- 가장 많은 chunk 를 제공하는 peer top 4 에게 chunk 를 보내준다

- 10초마다 top 4를 재평가

- 30초마다 랜덤으로 peer 를 선택하고 chunk를 보낸다. (top 4 가 고정되는 것을 방지하기 위해)

 

 

 

※ 이화여대 이미정 교수님의 네트워크 강의 내용 정리

 

반응형

+ Recent posts