header ads

P2P시스템은 분산 시스템의 한 종류이다.

분산 시스템의 한 종류인 P2P 시스템을 살펴보고 실생활에서 활용되는 P2P 시스템에 대하여 알아보고 분산 시스템의 장점과 단점을 정리하여 보고자 한다.

P2P(peer-to-peer network) 시스템의 정의

여러 노드(개별 컴퓨터)들로 구성된 분산 소프트웨어 시스템으로 한 노드의 자원(계산 능력, 저장공간, 정보 배분 등)을 다른 노드들이 직접 사용할 수 있다는 특징을 지닌다.

P2P 시스템에 참여하면 사용자의 컴퓨터는 노드로 전환되고 모든 노드에게는 동등한 권리와 역할이 주어진다. 각각의 사용자별로 공헌할 수 있는 자원은 조금 다를 수 있지만 시스템의 모든 노드는 동일한 기능과 책임을 갖는다. 따라서 모든 사용자의 컴퓨터는 자원의 공급자인 동시에 소비자가 된다.

▻노드 : 컴퓨터 과학에 쓰이는 기초적인 단위이며, 노드는 대형 네트워크에서는 장치나 데이터 지점(data point)을 의미하며 개인용 컴퓨터, 휴대전화, 프린터와 같은 정보처리 장치들이 노드이다. 인터넷에서 노드를 정의할 때 노드는 IP 주소를 보유한 어떠한 것도 될 수 있다. (참조: 위키백과)

실 생활에서 사용하는 P2P 예: 

  • 파일을 공유할 수 있는 P2P 파일 공유 시스템은 개별 파일은 각자의 컴퓨터에 저장되어 있으나 다른 모든 사용자와 공유하게 된다. 그래서 누군가 파일을 다운로드를 실행하면 다른 누군가의 컴퓨터로부터 파일이 다운로드되기 시작한다. 인터넷으로 연결만 되어 있다면 어디서든 가능하다.

순수 분산 P2P 시스템에는 중앙에서 통제하거나 조정하는 어떠한 요소도 존재하지 않는다. 시스템의 모든 노드는 동일한 주어진 일을 수행하며, 자원과 서비스의 생산자인 동시에 소비자 역할을 한다.

P2P 서비스 응용 분야 : 음악/동영상 file 공유, 인스턴트 메신저 등

분산 시스템 

  • 다수의 독립된 컴퓨터가 중앙 통제나 조정 요소 없이 특정 목적 달성을 위해 통신 매체를 사용하여 서로 협력하는 시스템으로 일반적으로 시스템 전체를 멈출 수 있는 단일 요소가 존재하면 아무리 아키텍쳐가 복잡해 보여도 그 시스템은 분산 시스템이 아니라고 한다.  

단일 컴퓨터와 비교할 때 분산 시스템의 장점과 단점

장점
  • 계산 능력이 뛰어나다 : 서로 연결된 모든 컴퓨터의 계산 능력이 합쳐져 구현되므로 대부분의 단일 시스템보다 강력한 계산 능력을 가진다.
  • 비용이 절감된다 : 슈퍼 컴퓨터를 제작하고 운영하는 비용과 비교하면 훨씬 더 효율적이다.
  • 더 안정적이다 : 구성하는 개별 컴퓨터가 고장 나더라도 전체 네트워크는 문제없이 잘 작동한다. 
  • 유연한 확장이 가능하다. : 시스템의 계산 능력을 높이기 위하여 컴퓨터를 추가하여 확장하는데 용이하다. 

단점
  • 조정 오버헤드 발생 : 구성 요소들의 조정 작업에 자원이 소모되는 것 
  • 통신 오버헤드 발생 : 조정을 위한 소통 즉 서로 간의 통신을 위해 계산 능력의 일부를 통신에 소모함으로 나타나는 것 
  • 네트워크 의존도가 높다
  • 프로그램이 복잡해 진다 : 조정, 통신, 네트워크 이용에 관한 추가적인 문제를 해결하기 위해서는 프로그램이 복잡해진다.
  • 보안에 취약하다.
분산 시스템의 한 종류인 P2P 시스템과 분산 시스템의 장점·단점에 대하여 간략히 정리해 보면서 P2P 시스템이 실생활의 어떤 부문에 활용될 수 있을까? 생각해 보는 좋은 계기가 되었습니다.

참조: 블록체인 무엇인가(다니엘 드레셔)