클라이언트-서버(client-server) 구조 vs 피어-투-피어(peer-to-peer, P2P) 구조

  • Application architectures
    • 클라이언트-서버(client-server) 구조
    • 피어-투-피어(peer-to-peer, P2P) 구조
컴퓨터 네트워크에서 데이터를 주고받는 방식에 따라 나뉘는 대표적인 두 가지 아키텍처

1. 기본 개념

구분 클라이언트-서버 (Client-Server) 피어-투-피어 (Peer-to-Peer, P2P)
구조 중앙 서버가 클라이언트에 서비스를 제공 모든 노드가 동등하며 직접 통신
역할 서버: 제공자, 클라이언트: 요청자 각 노드가 클라이언트이자 서버 역할 수행
예시 웹사이트 접속, 이메일 서버 토렌트, Skype, 블록체인

2. 특징 비교

항목 클라이언트-서버 피어-투-피어
중앙 집중성 서버에 집중됨 (중앙화) 분산 구조 (탈중앙화)
확장성 서버 용량이 한계 노드가 늘어나면 성능 향상
보안 보안 통제 용이 (중앙 관리) 개별 노드에 의존 → 보안 취약
설치/관리 서버 유지 비용 필요 개별 사용자 설치 및 참여
성능 많은 요청 시 서버 부하 증가 분산 처리로 부하 분산 가능
데이터 신뢰성 서버가 다운되면 전체 서비스 영향 일부 노드 문제여도 전체 시스템 유지 가능

3. 장단점

  • 클라이언트-서버
    • 장점:
      • 중앙 집중 관리 가능 → 업데이트 및 보안 용이
      • 데이터 백업, 접근 제어 용이
    • 단점:
      • 서버가 다운되면 서비스 전체 불가
      • 서버 설치 및 유지에 비용 발생
  • 피어-투-피어
    • 장점:
      • 고장에 강함 (분산 구조)
      • 서버 없이도 자유롭게 통신 가능
    • 단점:
      • 보안 및 신뢰성 문제
      • 데이터 일관성 유지 어려움

요약

  • 클라이언트-서버: 중앙 서버가 모든 요청을 처리하는 전통적인 구조, 관리와 보안이 용이하나 확장성과 장애 대응에 한계가 있음.
  • 피어-투-피어: 모든 노드가 동등하게 데이터를 주고받는 구조, 확장성과 유연성이 뛰어나지만 보안과 관리가 어려움.

Read more

포워딩 vs 라우팅

1. 네트워크 코어: 패킷 교환 (Packet Switching) * 인터넷의 중심부에서는 데이터를 패킷(packet) 단위로 나눠서 전달함. * 각 패킷은 독립적으로 경로를 따라 전달되며, 최종 목적지에서 재조립됨. * 효율적인 자원 공유가 가능하고, 회선 설정이 필요 없어 유연함. 2. 패킷 교환의 특징 저장 후 전달 (Store-and-Forward) * 각 라우터는 전체 패킷을 받은 후 다음 라우터로 전송함.

By Youn