P2P - ch.1

SKKRYPTO·2021년 4월 9일
2

안녕하세요 저는 SKKRYPTO 7기 김용입니다. 제가 공부한 내용은 P2P(peer-to-peer)기술입니다. 블록체인은 탈중앙화라는 특성을 가지는데 이는 블록체인이 client-server를 채택하지 않고 P2P기술을 채택하고 사용한다는 것을 의미하며 블록체인 기술과 P2P기술은 연관되어 있음을 알 수 있습니다. P2P기술이 무엇인지에 대해 앞으로 3번의 글에 걸쳐 공부해 보도록 하겠습니다.


P2P 기술이란?

P2P(peer-to-peer network)는 비교적 소수의 서버에 집중하기보다는 망구성에 참여하는 기계들의 계산과 대역폭 성능에 의존하여 구성되는 통신망입니다. P2P 통신망은 일반적으로 노드들을 규모가 큰 애드혹으로 서로 연결하는 경우 이용됩니다. 이런 통신망은 여러 가지로 쓸모가 있는데, 오디오나 비디오, 데이터 등 임의의 디지털 형식 파일의 공유는 매우 보편적입니다. 또한, 인터넷 전화(VoIP)같은 실시간 데이터 등도 P2P 기술을 통해 서로 전달될 수 있습니다.

순수 P2P 파일 전송 네트워크는 클라이언트나 서버란 개념 없이, 오로지 동등한 계층 노드들(peer nodes)이 서로 클라이언트와 서버 역할을 동시에 네트워크 위에서 하게 됩니다. 이 네트워크 구성 모델은 보통 중앙 서버를 통하는 통신 형태의 클라이언트-서버 모델과는 구별됩니다.


P2P의 특징

1. 분산 자원 공유 측면

  • 관심 대상 자원은 분산된 형태로 이용되며 피어에 가까운 네트워크 종단에 위치합니다.
  • 피어 집합 내 각 피어는 상대 피어가 제공하는 자원을 이용하며, 대상 자원은 오디오 및 비디오 데이터, 애플리케이션, 컴퓨팅 파워, 연결성 및 presence 정보 등 입니다.
  • 피어는 네트워크로 상호 연결됩니다.

2.분산 자율 조직 측면

  • 공유 자원 이용을 위하여 별도의 중앙 집중형 제어 또는 중재 없이 피어간 직접 상호작용합니다. 따라서 중앙화 구조의 병목 현상은 피하지만 클라이언트-서버 구조에 비하여 종단 시스템(웹 브라우저 프로그램, 웹 서버 프로그램같은 애플리케이션을 수행하며 호스트라고도 불림)의 가용도 감소에 대비해야합니다.
  • 성능 측면에서 완전 분산 개념의 P2P 시스템에 집중화 요소를 도입해야 할 경우가 있으며, 이를 하이브리드 P2P시스템이라고 합니다.
  • P2P 시스템에서 각 피어는 클라이언트와 서버 역할을 겸함으로써 기능 기용성 측면에서 유연성을 제공합니다.
  • 각 피어는 기능적 역할 측면에서 동등 자격을 갖습니다.

P2P 기술

집중화 구조 없이 분산시스템의 자율 구성을 목표로 하는 P2P 시스템에서 원하는 데이터를 쉽게 검색하여 찾고 관리하는 것이 가장 큰 문제점입니다. 이러한 문제점을 해결하기 위한 방식으로 2가지 접근방식이 있습니다.

1. Unstructured P2P

이 방식은 피어와 자원 간 연관성 설정이 없는 구조로써, 중앙 서버 또는 인접 피어로 검색쿼리 flooding을 이용하여 자원 및 피어를 탐색합니다.

검색쿼리 flooding이란?
P2P 네트워크는 일반적으로 네트워크의 모든 노드가 아니라 노드의 작은 하위 집합에 각각 연결된 많은 수의 노드로 구성됩니다. 노드가 네트워크에서 알지 못하는 노드에 있을 수 있는 리소스를 찾으려면 검색쿼리를 이용해 인접 이웃에게 발송할 수 있습니다.이웃에 리소스가 없으면 이웃에게 쿼리를 차례로 이웃에게 전달하도록 요청합니다. 리소스를 찾거나 모든 노드에 연결하거나 hop 제한에 도달할 때까지 반복됩니다.

P2P 네트워킹 초기 모델은 자원을 보유한 피어의 IP주소를 중앙 서버에 의해서 관리하는 집중화된 형태로 시작되었습니다. 하지만 중앙 서버에 의한 확장성 제한 등으로 사용이 제한되었습니다. 이에 대한 대안으로 원하는 자원이나 쿼리를 찾을 때까지 중앙 장치 없이 인접 피어로 검색 쿼리를 flooding 시키는 방식인 Pure P2P모델이 널리 사용되었습니다. 그러나 해당 모델은 flooding에 따른 신호 트래픽이 과다 발생하는 문제점이 제기되어 하이브리드 P2P 모델에서는 시스템을 여러 개의 슈퍼 피어(메시지의 송수신을 담당하는 피어)를 이용한 계층적 구조를 구성하고 자원 검색 쿼리를 슈퍼 피어 간에 효율적으로 flooding함으로써 신호 트래픽을 감소시키는 방식으로 보완했습니다.

2. Structured P2P

이 방식은 분산 인덱싱을 제공하는 분산 해시 테이블로 콘텐츠와 피어 정보들을 공통의 단일 주소 공간으로 매핑하여 콘텐츠 저장 및 검색이 이루어지는 분산 구조의 콘텐츠-어드레싱 기반 데이터 저장 기법을 제시하고 있습니다. 본 기법에서 최대 검색 횟수 O(logN)으로 데이터 검색이 가능하기 때문에 검색 효율에 영향 없이 피어 개수를 임의로 증가시킬 수 있습니다.(N은 피어 개수)

인덱싱이란?
인덱싱은 데이터 검색에서 발생하는 비효율적인 문제를 해결하기 위한 대표적인 방법입니다.

해시 테이블이란?
해시 테이블은 (Key, Value)로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있는 자료구조입니다.

또한 각각의 노드에서 검색을 위해 필요한 정보의 양이 기존의 중앙 서버 기반의 P2P보다 적고, 검색을 위한 통신 오버헤드가 flooding기반의 P2P 방식보다 적습니다. 따라서 unstructured P2P에 비해 상대적으로 대규모 네트워크에 적용이 가능합니다. 그러나 unstructured P2P에서 다양한 데이터 속성 값을 이용하여 복잡한 쿼리가 가능했던 반면에, 분산 해시 테이블을 사용함으로 인해 특정 키 값만을 사용한 검색을 함으로써 쿼리가 단순화되는 단점이 있습니다.


응용 서비스

1. 정보 공유 분야

P2P는 다양한 응용 분야에서 자원(presence 정보, 파일, 대역폭, 저장소 및 프로세서 사이클 등)을 관리하는 대안을 제시하고 있습니다.

1.1 presence 정보

P2P 기반 자율 구성 조직 내에서 피어 및 자원의 존재 여부 정보 제공은 P2P의 기본 기능입니다. 이를 통하여 다른 피어와 직접 연락하고 필요한 자원에 대해서 문의가 가능합니다. P2P기반 인스턴트 메시징 시스템은 본 기능을 활용한 대표적인 서비스입니다. Skype는 중앙 국설 교환기 없이 presence서비스를 이용하여 자신의 buddy list에 등록된 피어 간 인터넷 전화 서비스를 제공하고 있습니다.

1.2 문서관리

통계적으로 조직 내 문서의 대부분은 중앙 서버에 의한 일괄 관리보다는 개인 PC에 분산된 경우가 많습니다. 이를 고려하여 NextPage-NXT 4플랫폼은 P2P 네트워킹을 이용하여 각 피어에 분산된 로컬 데이터를 통합 연겨랗는 리포지터리 생성기능을 제공합니다.
P2P 기술은 분산된 데이터 자원의 연결뿐 아니라 정보의 통합 및 자율 조직형 P2P 지식 네트워크 구성 서비스에도 활용 가능합니다.

1.3 협업

클라이언트-서버 기반 그룹웨어와 달리 P2P에서는 별도의 중앙 관리 체계 없이 구성원간 협업 서비스를 제공합니다.

2. 파일 공유 분야

파일 공유는 가장 대표적인 P2P 응용 서비스입니다. P2P 환경에서 파일을 다운로드 받은 클라이언트 피어는 다른 피어에게도 해당 파일을 제공함으로써 서버 역할을 겸하게 됩니다.
P2P 파일 공유 서비스는 원하는 파일을 검ㅅ개하는 방식에 따라 flooded 요구 모델, 중앙 디렉토리 모델, 문서 라우팅 모델 등으로 분류됩니다.
flooded 요규 모델에서는 인접 피어로 검색요구를 flooding 시켜 원하는 파일을 찾는 방법으로써, 사전에 피어 검색 범위를 정의함으로써 검색요구 메시지의 flooding이 제한됩니다. 본 모델에서는 검색 피어 범위에 따라 검색 메시지가 지수 함수적으로 증가하므로 큰 규모의 망에서는 비효율적입니다. 이를 보완하는 다양한 모델이 시도되고 있으며 그중 대표적인것이 중앙 슈퍼노드를 이용하여 검색요구를 최적화하는 방식이 있습니다.
중앙 디렉토리 모델에서는 중앙 서버에 의하여 인덱스 서비스가 제공되는 하이브리드 P2P시스템입니다. 피어가 중앙 디렉토리 모델 네트워크에 접속 시 해당 피어가 제공 가능한 파일이 중앙 서버에 등록됩니다. 따라서 검색 요구시 중앙 서버는 해당 파일을 보유한 피어 리스트를 제공합니다.
문서 라우팅 모델에서는 파일이 의도적으로 별도의 피어에 저장되어 익명에 의하여 파일이 저장되고 접근된다는 점에서 앞에서의 서비스 모델과 차이점을 갖습니다. 각 파일과 피어에는 고유의 식별자가 할당되고, 파일 생성시 해당 파일 식별자와 산술적으로 가장 근접한 식별자를 가진 피어에 파일이 저장됩니다. 따라서 파일 검색 방법은 해당 파일 식별자와 산술적으로 가장 근접한 식별자를 가진 피어를 찾는 과정으로 이루어집니다. 본 방법은 대규모 망에 적용가능하나, 앞에서 제시된 모델에 비해 검색 과정이 상대적으로 복잡하다는 단점이 있습니다.

3. 대역폭 효율화 분야

기존 클라이언트-서버 형태의 중앙 구조에서는 서버로 트래픽 집중으로 인한 병목 현상이라는 문제점을 내포했지만 P2P 구조에서는 각 피어로 분산된 트래픽 루트를 이요 가능하게 함으로써 효율적인 부하 분산이 가능합니다.

3.1 부하 분산

다수의 피어에 파일이 복제된 상태에서 P2P 방식으로 효율적인 부하 분산을 이용하는 개념은 미디어 스트리밍 및 VoD 분야에 많이 적용됩니다. 이는 antivirus 데이터 갱신, 컴퓨터 게임 업그레이드 등에 활용되고 있습니다.

3.2 다운로드 속도 개선

BitTorrent는 대용량 파일을 다수의 작은 블록으로 분할하여 다수 피어로부터 동시에 수신하고 수신된 블록을 조합하여 원래의 파일을 구성하게함으로써, 소스 피어로의 대역폭을 다수의 피어가 공유할 수 있게 하여 다운로드 속도를 향상시킬 수 있습니다.

4. 데이터 스토리지 분야

망 내 컴퓨터 클러스터로 구성된 P2P 저장 네트워크를 이용하여 각 컴퓨터에서 제공 가능한 저장 공간을 사용함으로써, 기존 저장 시스템에 비해 저장 공간 활용 및 관리 측면에서 효율화가 가능합니다.

클러스터란?
여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합을 말합니다.

5. 컴퓨팅 파워 공유 분야

P2P를 이용하여 각 컴퓨터에 분산된 여러 프로세서 사이클을 묶음으로써 현존하는 최고 성능의 슈퍼 컴퓨터가 제공하기 힘든 컴퓨팅 파워를 제공할 수 있습니다.이와 같이 P2P 기반으로 가상 조직 내 분산된 컴퓨팅 자원을 공유하는 기술이 그리드 컴퓨팅이며, 이를 응용한 최초의 프로젝트가 SETI@home입니다. 현재 그리드 컴퓨팅은 컴퓨팅 자원의 제공 뿐 아니라 노드 간 가용한 자원을 상호 이용하게 하는 형태로 발전되고 있습니다.


profile
성균관대학교 블록체인 학회 SKKRYPTO 입니다.

0개의 댓글