P2P 네트워크

From CS Wiki
Revision as of 15:16, 20 September 2024 by SOLO (talk | contribs) (새 문서: '''Peer-to-peer Network; Peer-to-peer Model Network''' P2P 네트워크랑 중앙화된 (거의) 서버를 거치지 않고 사용자(peer)간 직접 통신하는 모델을 말한다. * 초기의 P2P 모델에서는 초기 피어 식별, 검색, 핸드셰이크 등을 위해 중앙화된 서버가 일부 기능을 하기도 하였으나, 최근엔 점차 중앙화된 서버 전혀 없이 동작하는 P2P 모델들이 많이 등장하고 있다. * 다만 효율적 네트워크...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Peer-to-peer Network; Peer-to-peer Model Network

P2P 네트워크랑 중앙화된 (거의) 서버를 거치지 않고 사용자(peer)간 직접 통신하는 모델을 말한다.

  • 초기의 P2P 모델에서는 초기 피어 식별, 검색, 핸드셰이크 등을 위해 중앙화된 서버가 일부 기능을 하기도 하였으나, 최근엔 점차 중앙화된 서버 전혀 없이 동작하는 P2P 모델들이 많이 등장하고 있다.
  • 다만 효율적 네트워크 구성을 위해 동적으로 서버 역할을 하는 슈퍼 노드를 두는 하이브리드 방식의 P2P가 많이 사용된다.

특징

  • 유연성: 상시, 고정적으로 구동되는 서버가 없고, 대부분의 엔드 포인트가 유동적인 IP를 가진다.
  • 상호성: 참여하는 각 피어들은 서비스 제공자이자 서비스 이용자이다.
  • 확장성: 수요가 늘어남에 따라 새로운 피어가 참여하여 새로운 자원으로써 역할을 하므로 자체적인 확장이 이루어진다.

구조화에 따른 구분

P2P Network Categories

  • 구조화된 P2P 네트워크 (Structured P2P Network):
    • 가상 계층: 피어들 간의 연결이 무작위가 아닌, 특정 알고리즘에 의해 결정된다. 예를 들어, DHT(분산 해시 테이블)라는 기술을 사용하여 각 피어가 네트워크 내에서 특정 역할을 맡게 된다.
    • 특정 구조: 네트워크가 미리 정의된 규칙에 따라 피어들을 연결하므로, 검색이나 데이터 조회가 효율적이다. 요청이 잘못된 피어로 가더라도, 네트워크 내에서 원하는 데이터를 빠르게 찾을 수 있다.
    • 예시: Chord, Kademlia와 같은 DHT 기반 P2P 네트워크
  • 비구조화된 P2P 네트워크 (Unstructured P2P Network):
    • 임의의 연결: 피어들이 서로 무작위로 연결되며, 특정한 구조나 규칙이 없습니다. 이는 간단하지만, 데이터를 찾는 데 있어 효율적이지 않을 수 있다. 특히 네트워크가 커질수록 검색 시간이 길어지거나 실패할 가능성이 크다.
    • 탐색 방식: 피어들이 데이터를 찾기 위해 브로드캐스트 방식으로 여러 피어에게 요청을 보내야 한다. 결과적으로, 원하는 데이터를 찾는 데 많은 트래픽이 발생할 수 있다.
    • 예시: Gnutella, Freenet
  • 하이브리드 P2P 네트워크 (Hybrid P2P Network):
    • 클라이언트-서버 구조 결합: 일부 피어들은 다른 피어들보다 더 중요한 역할을 한다. 예를 들어, 특정 피어들이 중앙 서버와 유사한 역할을 하여 네트워크 관리를 돕는다. 이로 인해 네트워크가 더 안정적이고 효율적으로 동작할 수 있다.
    • 중앙 집중식 요소: 일부 피어들은 데이터를 관리하거나 네트워크 상태를 유지하는 역할을 하며, 일반적인 피어들이 이러한 '중앙 피어'를 통해 서비스를 이용할 수 있다.
    • 피어 동기화: 새로운 피어가 네트워크에 들어올 때, 기존 피어들과 데이터를 동기화하여 시스템의 중복성을 높여 데이터 유실을 방한다.
    • 예시: BitTorrent (트래커가 중앙 서버 역할을 수행), 일부 VoIP 서비스

P2P 네트워크 중복성

P2P Network Redundancy

  • P2P 네트워크에서 중복성은 데이터 계층을 포함한 전체 애플리케이션 인스턴스가 P2P 네트워크의 모든 피어에 존재함을 의미한다.
  • 이를 통해 단일 노드의 장애가 전체 P2P 네트워크에 영향을 미치지 않도록 네트워크의 회복력이 보장된다.
  • P2P 네트워크는 더 많은 피어가 참여할수록 더욱 탄력적이고 강력해진다.
  • 새로운 피어가 P2P 네트워크에 참여하면 자원이 공유되면서 용량이 증가하여 대역폭, 저장 공간, 처리 능력이 증가한다.
  • 반면, 클라이언트-서버 네트워크에서는 중앙 서버에 대한 클라이언트 요청이 증가할수록 클라이언트 당 이용할 수 있는 자원이 줄어든다.