네트워크_클라이언트-서버(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

Socket_1

Socket_1: 문자열을 아스키코드로 변환하는 소켓 프로그래밍 프로그램 설명 이 프로그램은 TCP 소켓을 이용하여 클라이언트가 전송한 문자열을 서버가 받아, 해당 문자열을 아스키코드 리스트로 변환한 뒤, 다시 클라이언트에게 전송하는 방식으로 작동한다. 양방향 통신은 문자열 기반이며, 서버는 수신한 문자열을 각 문자마다 ord()를 통해 아스키 코드로 바꾼다. * 통신 방식: TCP * 인코딩 방식:

By Youn

네트워크_Mobility

Mobility란? Mobility(이동성)은 네트워크에서 기기가 네트워크 위치(IP 주소 등)가 바뀌더라도 지속적으로 연결을 유지할 수 있는 능력을 말합니다. Mobility를 처리하는 두 가지 접근 방식 1. Routing이 Mobility를 처리하게 한다 (Network-based mobility) * 개념: 이동하는 호스트의 현재 위치를 네트워크가 추적하고, 그에 따라 패킷 경로를 동적으로 수정함 * 예시: Mobile IP * 홈

By Youn