클라이언트-서버 구조 (클라이언트-서버와 P2P 방식의 차이점 알고있기)
- server
- 항상 동작하는 호스트
- IP 주소가 고정
- 주로 데이터 센터에 있음
- clients
- 서버와 접속 및 통신
- 서버와 가끔식 연결
- IP 주소가 변경됨
- 클라이언트 간의 ‘직접’통신은 하지 않음
- ex) HTTP, IMAP, FTP
Peer-to-peer 구조 (P2P)
- 항상 동작하는 서버 x
- 임의의 호스트 간 직접 통신
- 피어(peer)는 다른 피어들에게 서비스 요청과 서비스 제공을 동시에 수행
- 자기 확장성 : 새로운 피어는 새로운 서비스를 요구하지만 새로운 서비스 용량도 제공!!!
- 피어가 간헐적으로 연결되고 IP 주소가 변경 가능
- 고도의 분산 구조로 보안, 성능, 신뢰성 측면에서 관리하기 복잡함
- ex) BitTorrent, Skype
클라이언트 vs P2P (차이점 알고 있기)
| 구분 |
클라이언트-서버(Client-Server) |
P2P(Peer-to-Peer) |
| 구조 |
중앙 서버와 여러 클라이언트 |
모든 노드가 동등 (서버이자 클라이언트) |
| 역할 |
서버: 서비스 제공 |
|
| 클라이언트: 서비스 요청 |
모든 노드가 서비스 제공 & 요청 가능 |
|
| 중앙 집중성 |
중앙 서버에 의존 |
분산 구조 |
| 예시 |
웹 브라우징, 이메일, 온라인 쇼핑 |
토렌트, Skype, 블록체인 |
| 확장성 |
서버 성능에 따라 제한적 |
노드가 늘어날수록 성능 향상 가능 |
| 신뢰성 |
서버에 문제가 생기면 전체 서비스 영향 |
일부 노드가 사라져도 전체 시스템 유지 가능 |
| 설치/운영 비용 |
서버 유지 비용 큼 |
각 노드가 자원 공유, 비용 분산 |
| 보안 |
서버 중심으로 보안 관리 가능 |
분산 구조로 보안 관리가 어려움 |
애플리케이션이 필요한 트랜스포트 서비스 (4가지 알고있기)
- 신뢰적 데이터 전송(TCP, UDP는 불가능)
- 시간 보장(회선 교환 방식만 가능, 패킷은 불가능)
- 처리율(회선 교환 방식만 가능, 패킷은 불가능)
- 보안(LTS를 통해 가능)