본문 바로가기
네트워크

[네트워크] Chap 2.6 - P2P vs Client-Server

by 개발 고양이 2024. 11. 16.

Peer-to-peer (P2P) architecture

  • no always-on server
    : P2P는 client도 됐다가, server도 됐다가 함. 즉 양쪽 모듈을 다 가지고 있음.
      always-on server가 아님! → 항상 dynamic하게 들어왔다 나갔다 함.
  • arbitrary end systems directly communicate
    : peer들끼리 직접 connection을 맺고 서로 서비스를 주고받으며 통신함
  • self scalability
    : peer들이 늘어날수록 client도 늘어나지만, server도 같이 늘어난다
    => 성능이 증가!
    (Client-Server 구조에서는 사용자가 증가할수록 성능이 저하된다)

File distribution : Client-Server  vs  P2P

 

구할것 : n명의 사용자가 모두 F bit file을 다운받을때까지 걸리는 시간

 

u_s = server의 uplink speed (bps)

d_i = i번째 사용자의 downlink speed (bps)

u_i = i번째 사용자의 uplink speed (bps)

 


 

Client-Server

Client-Server 구조는 서버의 uplink (U_s) 하나로 Fbit를 n번 날라야 한다.

=> 즉 client는 server가 혼자서만 계속 upload을 한다.

 

time to send one copy : F/u_s

time to send N copies : NF/u_s

min client download rate : d_min

min client download time : F/d_min

 

 


Peer-to-Peer

P2P도, 서버가 한번은 반드시 upload를 해야한다. 

그 후, 각 peer들이 서버로서도 동작하므로, uplink 용량은 U_s에 한정되어있지 않고, peer수에 따라 분산된다.

즉 p2p 구조에서는, 여러 peer들이 동시에 upload한다. (n이 커질수록 uplink 속도가 증가하게 된다.)

 

time to send one copy : F/u_s

min download time : F/d_min

peer upload rate : N*F bits

max upload rate : u_s + ∑ u_i

=> NF / (u_s + ∑ u_i)    < NF / N*u_i = O(1)

→ 즉 N이 증가해도 이 값은 상수. 즉 N이 엄청 커지면 빨강, 파랑 중 하나의 값에 의해서 max가 결정된다!

 

 


 

결론

P2P는 file distribution에 참여하는 사용자들의 수가 증가할수록 client-server 구조에 비해서 월등하게 성능이 좋다. 

 

Why?

=> upload하는 용량이 join하는 peer들의 숫자만큼 같이 증가하기 때문!

=> P2P의 장점! (self scalibility)

즉 P2P 구조에서는 peer들 숫자가 증가할수록 성능이 증가하게 된다.


Exercise

크기가 10Gbit 인 파일을 100 명의 사용자가 모두 공유하는 응용 프로그램을 P2P 로 작성할 경우 와 Client-Server 구조로 작성할 경우 파일분산지연(100명의 사용자 모두 10Gbit 파일 다운로드를 완료하는데 소요되는 시간)의 차이를 분석하고자 한다. 각 방식의 파일분산지연을 구하시오

  • 10 Gbit = 10 x 1024 Mbits
  • 서버의 upload speed는 20Mbps 임.
  • 모든 사용자의 download speed는 1Mbps로 동일함.
  • P2P 응용도 서버에서 최초 1번의 upload를 해야함 (수업시간 강의 슬라이드와 동일한 가정임)

100명의 사용자의 upload speed가 모두 1 Mbps 이라고 가정한다.

 

  • Client-server 방식의 파일분산지연

 

 

  • P2P 방식의 파일분산지연

따라서 위 문제에서는 P2P 방식이 더 유리하다!