[네트워크] P2P vs Client-Server

KoK·2022년 10월 12일
1

네트워크

목록 보기
1/4

[Application layer: P2P application_1]

🤷‍♀️ P2P란?
양방향 파일 전송시스템(Peer-to-peer)
모든 노드(end system == peer)가 client, server 역할 둘 다 할 수 있다.

Self scalability(자체 확장성) : 새로운 peer는 새로운 서비스를 요구하고 새로운 서비스를 가져다 줌
Autonomous(자율성) : peer들은 간헐적으로 연결되고 IP 주소를 바꿈
예시 : Gnutella, BitTorrent, KanKan

😒 P2P의 이슈들
1. Lack of robustness(견고함의 부족)
2. Low capability of each node(각 노드의 낮은 능력)
3. Poor resource search(정보 부족)
4. NAT traversal(NAT 통과)
5. Free riding(무임승차)
6. Security(안전성)

  1. Lack of robustness: 서비스를 제공하고 받고 떠나는 것이 자유롭기 때문에 이런 특성이 통신망을 휘저어(?) 통신망이 견고하지 못함
  2. Low capability of each node: 낮은 대역폭, 낮은 성능의 컴퓨터, 낮은 가동시간
  3. Poor resource search: 서버가 따로 존재하는 게 아니라서 내가 원하는 정보를 누가 갖고 있는지 알기 어려움
  4. NAT traversal: 사설 ip 주소는 자기 스스로 ip주소 할당 가능, 공용 ip 주소에서는 이러한 사설 IP를 막기 때문에 이를 뚫고 나가는 방법이 필요.
    Network Address Translation: 사설 ip와 공용 ip 간의 매핑 테이블을 생성하여 상호변환 해주는 기술
  5. Free riding: 받고 싶은 것만 받고 연결 끊어버리는 무임승차 이슈
  6. Security

🍕 File distribution time(파일 분배 시간)

  • 각 peer가 파일을 업로드하고 다운받을 수 있는 용량은 제한되어 있음

[Client-Server]

  • server transmission: N개 파일의 복사본을 차례대로 업로드 해야함. N개의 파일 복사본을 업로드하는 데 걸리는 시간은 NF/u(s)이다.
  • client: 가장 작은 다운로드 용량을 가진 client = d(min), 다운로드하는데 걸리는 시간은 적어도 F/d(min)이다.
  • N명의 client에게 파일을 분배하는 데 걸리는 시간 ⬇
  • P2P와 달리 client가 늘어날 수록 전송에 더 오랜시간이 걸린다.

[P2P]

  • server transmission: 적어도 한개의 복사본을 업로드 해야함. F/u(s)
  • client: F/d(min)
  • clients: 모든 peer들이 파일을 업로드하는 데 걸리는 시간. u(s) + S(ui)
  • N명의 client에게 파일을 분배하는 데 걸리는 시간 ⬇
  • Client-Server와 달리 peer가 늘어날 수록 전송에 더 오랜시간이 걸리지는 않는다.
  • peer가 늘어날수록 전송해야할 파일크기와 함께 파일을 다운받을 수 있는 용량 S(ui)도 증가하기 때문.

P2P vs Client-server

  • client-sever에서 client가 늘어날 수록 파일 전송에 더 오랜 시간이 걸리는 반면, p2p는 peer가 늘어날 수록 파일 전송시간이 증가하지는 않는다(확장성 때문).
profile
100% + 100%

0개의 댓글