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 방식이 더 유리하다!
'네트워크' 카테고리의 다른 글
[네트워크] Chap 2.8 - Socket programming (UDP & TCP) (0) | 2024.11.18 |
---|---|
[네트워크] Chap 2.7 - Video streaming (DASH & CDN) (2) | 2024.11.17 |
[네트워크] Chap 2.5 - DNS (1) | 2024.11.15 |
[네트워크] Chap 2.4 - E-mail, SMTP, IMAP (0) | 2024.11.14 |
[네트워크] Chap 2.3 -Cookies, Web caches(proxy server), HOL blocking (7) | 2024.11.13 |