SMALL
p2p 에 대해 알아보자
peer - to - peer (P2P)란?
Peer-to-Peer(이하 P2P)는 중앙 서버 없이 네트워크 참여자들(Peer) 간에 직접 데이터를 주고받는 통신 방식이다. 각각의 Peer는 클라이언트이자 서버의 역할을 동시에 수행하며, 자원을 요청하거나 제공할 수 있다. 이러한 구조는 분산 시스템의 대표적인 형태로, 블록체인, 파일 공유, 실시간 통신 등 다양한 분야에서 활용되고 있다.
Peer-to-Peer는 언제 사용되는가?
- 대용량 파일 공유
- 예: BitTorrent
- 하나의 서버가 아닌 여러 Peer에게서 동시에 데이터를 받아 속도와 효율을 높인다.
- 실시간 음성/영상 통신
- 예: Skype(초기 구조), WebRTC 기반 영상 통화
- 서버를 거치지 않고 사용자 간 직접 통신을 통해 지연 시간을 줄인다.
- 블록체인 및 분산 원장 시스템
- 예: Bitcoin, Ethereum
- 거래 정보를 모든 노드에 분산 저장하고, 합의를 통해 블록을 생성한다.
- 분산 파일 시스템
- 예: IPFS(InterPlanetary File System)
- 중앙 저장소 없이 전 세계에 분산된 Peer가 데이터를 저장하고 검색한다.
주요 특징
- 분산형 구조: 중앙 서버 없이 각 Peer 간에 직접 통신이 이루어진다.
- 자율성: Peer는 독립적으로 실행되며, 각자의 리소스를 사용하여 데이터 공유에 참여한다.
- 확장성: Peer 수가 늘어날수록 전체 처리 능력이 향상된다.
- 내결함성(Fault Tolerance): 일부 Peer가 중단되더라도 전체 시스템에는 영향을 덜 준다.
- 직접성: 데이터를 주고받는 과정에서 중간 서버가 없거나 최소화된다.
장점 및 단점
장점
- 확장성 우수: 시스템 참여자가 늘어날수록 처리 능력도 증가한다.
- 비용 효율적: 중앙 서버를 유지할 필요가 없어 인프라 비용이 줄어든다.
- 내결함성 강화: 일부 노드가 실패해도 전체 서비스가 중단되지 않는다.
- 분산 저장: 데이터를 여러 Peer에 분산시켜 보관할 수 있다.
단점
- 보안 이슈: 신뢰할 수 없는 Peer가 있을 경우 데이터 위변조 가능성이 존재한다.
- 복잡한 네트워크 관리: Peer 간의 연결 상태나 경로 관리가 어렵다.
- 성능 예측 어려움: 각 Peer의 네트워크 속도나 성능이 다르기 때문에 일정한 품질 보장이 어렵다.
- 법적 책임 소재 불분명: 중심 관리자가 없기 때문에 문제 발생 시 책임 추적이 어려울 수 있다.
Client-Server와의 차이점
| Client-Server | Peer-to-Peer | |
| 구조 | 중앙 서버 존재 | 서버 없이 Peer 간 직접 통신 |
| 데이터 위치 | 서버에 집중 저장 | Peer에 분산 저장 |
| 확장성 | 서버 용량에 따라 제한적 | Peer 수가 늘수록 확장 용이 |
| 의존성 | 서버 장애 시 전체 시스템 영향 | 일부 Peer 장애에도 계속 동작 가능 |
| 예시 | 웹사이트, 인터넷 뱅킹 | BitTorrent, 블록체인, WebRTC |
LIST
'끄적끄적 etc' 카테고리의 다른 글
| 자주쓰는 javascript 정규식 모음 (3) | 2025.08.10 |
|---|---|
| 서버 한 대에서 인스턴스 분리로 개발/테스트 환경 구축하기 (0) | 2025.07.20 |
| [Vite]왜 파일 하나만 고쳐도 전체를 빌드할까? (1) | 2025.06.22 |
| [네트워크] TCP vs UDP 차이 정리 (1) | 2025.05.25 |
| README.md 작성법 제대로 알기 (0) | 2025.05.18 |