검수요청.png검수요청.png

하이브리드 피투피

해시넷
juju0990304 (토론 | 기여)님의 2020년 8월 4일 (화) 11:34 판 (서버-클라이언트 모델)
이동: 둘러보기, 검색

하이브리드 피투피(Hybrid P2P)는 기존 서버-클라이언트(server-client) 모델을 완전히 벗어나지 못한 형태의 피투피(P2P)이다. 중앙서버가 존재해 중개 및 검색을 제공하고 데이터 전송은 개인 PC, 즉 피어(peer) 간에 주고받는 방식이다. 하이브리드 피투피 방식을 사용한 대표적인 예로는 냅스터(Napster), 소리바다 같은 파일 공유 프로그램, 네이트온 등과 같은 메신저를 통한 파일 전송 등이 있다.

개요

클라이언트 PC 기능 향상과 급속한 가입자망의 확대, 초고속 인터넷 환경 등이 피투피의 화려한 등장을 부추겼다. 서버(server)와 클라이언트(client)로 구성된 기존 네트워크에서는 서버 집중식으로 서버의 역할이 강조됐다. 기존 서버 집중식 네트워크 구조에서 나타날 수 있는 트래픽 집중이라는 한계를 클라이언트 상호 간 분산·협력이라는 새로운 개념으로 풀어내려는 시도가 결국에는 피투피를 등장시켰다고 할 수 있다. 피투피 프로그램을 자신의 컴퓨터에 설치하고 공유할 폴더를 설정하면 자신과 연결된 모든 이용자들은 상대방이 공유를 허락한 폴더를 검색할 수 있게 된다. 하이브리드의 개념의 피투피는 정보관리를 위한 중앙 서버를 관리하는 사업자의 유무에 따라 순수한 의미의 피투피 개념과 나뉜다.

하이브리드 피투피는 클라이언트 상호 간 효율적으로 통신하고 필요한 정보를 전달하기 위해 중앙에 서버를 두는 방식이다. 클라이언트가 서로 통신을 하기 위해 최초로 IP 주소를 서버에 인덱스 하며, 그 이후 서버의 도움 없이 클라이언트 상호 간 직접 정보를 전달하게 된다. 중간 서버로 효율적 제어 피투피는 클라이언트 간 상호 통신을 위해 정보(IP Adress)와 리소스를 서로가 공유해 서버를 거치지 않고 바로 각각의 클라이언트를 연결하는 순수한 의미의 피투피 네트워크를 떠올리기 쉽다. 하지만 꼭 그렇지만은 않다. 하이브리드의 경우 클라이언트 간 통신 방식은 최초의 관계가 형성되기까지 서버의 중계를 필요로 하며, 이 관계가 형성된 이후 클라이언트 상호 간 직접 정보를 전달하는 특성을 가진다. ICQ와 같은 인스턴트 메시지 프로그램이 이 경우에 해당한다. 처음 컴퓨터를 켜는 순간 프로그램이 자동 실행되면서 자동 실행되면서 최초에 통신에 필요한 상대방의 주소와 필요한 정보를 찾기 위해 중앙 서버에 접속한다. 냅스터 방식이 대표적인 하이브리드 방식으로 중앙에 서버를 두어서 사용자들의 공유 파일 목록 등을 제어해 클라이언트 간 통신 기능을 돕는다. 각각의 컴퓨터는 파일의 전송에 대해서만 서버와 클라이언트의 역할을 하게 된다. 이 방법을 이용하면 검색 속도나 검색 성공률을 높일 수 있다. 하지만 이 경우 동시 접속자가 늘어나면 서버를 증설해야 하고, 서버 측에 걸리는 부하도 무시할 수 없을 만큼 크다. 원래 이 기술은 인간 게놈 지도를 만드는 데 활용되었으며 영화나 애니메이션의 렌더링 작업 등에도 이용될 수도 있다. 특히 기업, 학교, 공공기관에서 구축해 비용을 절감하고 자원을 효율적으로 관리할 수 있다.[1]

특징

하이브리드 피투피(Hybrid P2P)

세대별 구분으로는 1세대, 중앙집중형 피투피(centralized P2P)라고도 불리는 방식이다. 기존 서버-클라이언트 모델을 완전히 벗어나지 못한 형태이며 중앙서버가 존재하며 그 중앙서버에 각 피어들이 접속하며 중앙서버에서는 피어들의 위치와 피어들이 가진 데이터와 메타정보(파일 공유에서 각 피어들이 가진 파일 목록)를 관리한다. 기존 서버-클라이언트 모델과의 차이점은 중앙서버는 데이터들의 메타정보만을 관리해서 검색 결과 등을 피어에 줄뿐이며 실제 데이터의 전송과 통신은 직접 피어들간에 이루어지게 된다. 법적인 대응에 취약한 구조를 가지고 있어 법적인 문제에서 자유로울 수 있는 서비스에 많이 사용된다.[2]

하이브리드 피투피는 각 노드의 정보들이 인덱스 서버에 기록된다. 각 노드들간 데티터를 주고 받는 방식은 피투피로 이루어지지만, 노드들의 검색 및 발견 등은 인덱스 서버를 통해서 이루어진다. 그래서 마치 서버-클라이언트 구조처럼 설계와 관리가 용이하지만 확장성이 떨어지는 단점이 있다. 스타크래프트와 같은 많은 게임들이 하이브리드 피투피 방식을 사용하고 있다. 게임상의 높은 네트워크 성능을 위해 유저간 직접 연결하는 피투피 통신을 사용하지만, 서로 방을 만들고 검색, 조인하기 위해서는 인덱스 서버를 활용한다.[3]

  • 장점
피어들을 헤집고 다니면서 찾아다닐 필요 없이 서버에 한 번만 물어보면 되기 때문에 라우팅(Routing)과 검색이 매우 빠르다. 라우팅과 검색만 중앙서버를 거치므로 데이터가 직접 서버를 통하는 서버-클라이언트 모델보다 비교도 안 될 만큼 효율적이다. 또한 피투피 네트워크 내에 있는 피어와 데이터에 대한 검색이 보장된다. 즉, 피투피 네트워크 내에만 존재한다면 못 찾을 리 없다는 뜻이다,
  • 단점
서버-클라이언트 모델만큼은 아니지만 피어가 늘어날수록 중앙서버에 부담이 크다. 즉, 피투피 네트워크가 커질수록 서버를 증설해야 하므로 이것은 곧 자본으로 이어진다. 네트워크 전체를 서버를 통해서 통제할 수 있기 때문에 법적인 대응이나 해킹에 매우 취약한 구조를 가지고 있다. 제일 큰 단점은 중앙서버가 죽으면 전체 네트워크가 죽는다는 점이다. 이것은 서버-클라이언트 모델의 단점이기도 하며 하이브리드 피투피가 성능 면에 있어서 다른 피투피 구조보다 뛰어나지만 다른 피투피 구조에 비해 뒤떨어지는 기술로 취급받는 이유이기도 하다.[2]

네트워크

하이브리드 피투피 네트워크 접근 방식은 일반 피어를 추적하는 슈퍼노드(Supernodes)가 있다. 네트워크에 접속할 때 피어는 하나 이상의 슈퍼노드에 연결된다. 이 하이브리드 방식에는 슈퍼노드에서 매우 기본적인 서비스를 실행하여 아키텍처를 구현할 수 있다. 이러한 서비스에는 검색 및 매치 메이킹 서비스가 포함된다. 일부 피어는 일부 서비스를 제공하려고 할 때 해당 정보를 연결된 슈퍼노드로 전송한다. 슈퍼노드는 이 정보를 목록에 추가할 것이다. 슈퍼노드는 함께 연결되어 있으며 자신이 제공하는 다른 서비스에 대한 정보를 서로 교환 할 수 있다.

서비스에 대한 피어 요청이 있을 경우, 해당 요청을 슈퍼노드로 전송하고, 슈퍼노드는 해당 목록을 확인하며, 관련 피어를 요청 피어에 반환한다. 만약 슈퍼노드가 서비스를 제공하는 관련 피어가 없다면, 다른 슈퍼노드에 요청을 전달할 것이다. 이들 피어는 각각의 목록을 확인하고 답장을 보낼 것이다. 슈퍼노드를 개시하는 요청은 결과를 컴파일하고 서비스를 요청한 피어에 요청을 전달한다. 요청 피어는 서비스 제공업체 중 한 곳과 서비스 연결을 설정한다. 이 접근방식의 장점은 분산되어 있고 확장성도 높다는 것이다. 피어는 쉽게 관리되는 작은 클러스터로 그룹화되며, 한 개의 슈퍼노드가 작동 중단되면 다른 슈퍼노드가 작동하고 다운된 슈퍼노드에 연결된 피어가 다른 슈퍼노드와 연결될 수 있다. 이 접근방식은 슈퍼노드 간 통신의 추가 트래픽을 추가하지만, 달성된 확장성, 유연성 및 성능은 훨씬 더 가치가 있다. 네트워크는 고도로 분산되어 있고 이러한 하이브리드 네트워크 접근방식을 통해 얻는 이점이 우리 아키텍처에 더 나은 접근방식을 만들어 준다.

하이브리드 피투피 네트워크는 제안된 아키텍처에서 요구되는 일련의 베터 특성을 제공한다. 그것은 높은 수준의 확장성을 제공하며, 일반 피어 수가 증가함에 따라 슈퍼노드 수도 증가하여 서비스 부하를 더 잘 처리할 수 있다. 관련 문제는 슈퍼노드를 거친다 하더라도 실제 거래는 일반 피어사이에 행해진다는 점에 유의해야한다. 더욱이 슈퍼노드가 거의 다운되지 않을 경우, 시스템은 서비스 중단 없이 계속 작동할 수 있고 로드는 다른 슈퍼노드로 이전될 수 있다. 이것은 슈퍼노드간의 통신으로 인해 도입되는 네트워크의 추가 트래픽에 대한 오버헤드를 거의 희생하지 않고 중단 없는 서비스와 더 나은 확장성을 제공한다. 그러나 이러한 추가 트래픽은 피투피 네트워크의 범람에 비해 매우 작다.[4]

활용

  • 냅스터(Napster)
냅스터는 이 프로그램을 개발한 대학생 패닝(Shawn Fanning)의 별명이다. 패닝은 1999년 1월 노스이스턴대학교(Northeastern University)에 재학 중 웹에서 음악 파일(MP3)을 찾을 때 자주 끊기거나 파일을 잃어버리는 일이 잦자 프로그램을 만들었다. 이어 같은 해 5월 한 투자자의 제의를 받아 학교를 그만두고 캘리포니아만(灣) 지역에 같은 이름의 회사를 창업하고 인터넷 서비스에 들어갔다.
이 서비스는 개인이 보유하고 있는 음악 파일을 인터넷을 통해 공유할 수 있게 해주는 서비스로, 서비스 개시와 동시에 폭발적인 인기를 끌었다. 이는 콤팩트디스크(CD) 음질의 음악 파일을 무료로 다운로드받을 수 있다는 점 때문인데, 상대방이 가진 음악을 복사해 나누어 가질 수 있도록 도와줄 뿐 아니라 오디오 파일을 쉽게 저장·전송할 수도 있다. 그러나 인터넷을 통해 MP3 음악 파일을 불법 복제해 무료로 나누어 쓸 수 있게 되자, 이 서비스를 이용하는 네티즌들이 폭발적으로 늘어났다. 이와는 반대로 음반 회사들은 음반이 팔리지 않아 울상이 되었다. 급기야 미국의 18개 음반사는 저작권 침해 혐의로 냅스터를 상대로 법원에 소송을 제기해 1999년 8월 한 지방법원으로부터 서비스 중지 판결을 받았다. 이후 계속되는 음반 회사들과의 송사에 휘말린 끝에 2001년 8월 미국 음반 산업협회(RIAA)에 의해 결국 문을 닫았다. 그러다 2002년 초 유료서비스로 전환해 다시 서비스에 들어갔으나 자금 부족과 경영진의 불화로 인해 같은 해 5월 구조조정을 위한 파산신청을 법원에 제출하였다. 이로써 냅스터 서비스도 막을 내렸다.[5]
  • 소리바다
소리바다는 2000년 5월 18일 양정환·양일환 형제가 공동 운영자로 설립한 인터넷 음악 서비스 제공 사이트이다. 특히 피투피 프로그램을 통해 사용자 간 무료로 MP3 파일을 공유하도록 했다는 점에서 선풍적인 인기를 끌었다. 이로써 출시 2년 만에 600만 명의 회원과 하루 평균 150만 명의 이용자가 방문하는 국내 최대 음악 사이트로 성장했다. 그러나 피투피 기술을 통한 파일 공유 서비스는 타인이 소장한 저작물을 제한 없이 교환할 수 있기 때문에 저작권 침해 문제를 일으키게 되었다. 결국 2001년 1월 음반사들이 저작권 침해로 소리바다의 운영자를 고소했고, 2002년 7월 주요 음반사들을 회원으로 둔 '한국음반산업협회'가 소리바다 운영자를 상대로 낸 음반 복제 등 금지 가처분 신청에 의해 법원에서 소리바다 서버 3대에 대해 사용 중지 명령을 내렸다. 이에 소리바다 운영자는 사용 중지 명령에 대한 이의신청을 제기하는 한편, 소리바다 서비스 중단 가처분 결정에 대비해 '소리바다 2(2002년)', '소리바다 3(2004년)' 등 대체 프로그램을 출시했다. 그리고 2003년 한국기술투자(현 인베스트먼트)에서 20억 원을, 2006년 교보증권에서 100억을 투자받으며, 마침내 2006년 7월 10일 '소리바다 5'를 통해 유료 서비스로 전환하였다. 그해 10월 유로 회원수가 50만 명을 돌파했고, 2006년 8월 소리바다는 총 50개 기획사와 법적 분쟁을 종료하고 음원 공급 계약을 체결했다. 이로써 국내 최초로 P2P 사이트의 음원 유료화에 성공하고 2009년 7월 저작권 보호 모범사이트 '클린 사이트'에 지정되었다.[6]
  • 비트토렌트(Bittorrent)
비트토렌트는 개인 간 피투피로 연결하여 대용량 파일을 빠른 속도로 공유하도록 만들어진 프로토콜이다. 트래커(tracker)라 불리는 중앙 서버가 사용자들 간의 파일 교환을 조정해준다. 트래커는 사용자 간의 연결만을 도와줄 뿐이며 공유되는 파일의 내용에 대한 정보는 취급하고 있지 않기 때문에 비교적 적은 대역폭으로도 많은 수의 사용자 간의 파일 공유를 가능하게 해준다.[7] 4.1.0 이전 버전이 하이브리드 피투피 방식을 사용하며 그 이후 버전은 퓨어(Pure) 피투피 방식을 사용하고 있다.
토렌트 사용을 위해서는 사용자가 토렌트 소프트웨어를 사용자 단말에 설치하고 다운로드받은 시드 파일(seed file)을 실행하여 동일 파일을 소유하고 있는 전 세계 클라이언트에서 공유 파일을 다운로드하므로, 속도가 매우 빠른 특징이 있다. 그러나 사용자 인증 및 결제 절차가 존재하지 않아, 누구나 손쉽게 불법 저작물을 공유하는 수단으로 사용될 수 있다.[8]

서버-클라이언트 모델

보통 정보나 자원을 일원적으로 관리하고, 제공하는 역할을 하는 컴퓨터(하드웨어나 소프트웨어)를 서버라 부르고, 서버에게 정보나 자원을 요청하여 그것을 이용하는 역할을 하는 하드웨어소프트웨어를 클라이언트라 부른다. 서버-클라이언트 모델은 클라이언트를 서비스 요구자로, 서버를 서비스 제공자의 형태로 네트워킹하여 자원을 공유하는 분산처리기법을 말한다.[9]

인터넷 환경에서 응용 계층의 연결은 세션 계층에서 설명한 방식을 그대로 사용한다. 하나의 서버 프로그램이 다수의 클라이언트에 응용 서비스를 제공하는 서버-클라이언트 모델은 인터넷 응용 환경에서 가장 보편화한 연결 설정 방식이다. 클라이언트와 서버는 비교적 간단한 절차로 동작한다. 둘 사이의 연결 설정 과정에서 반드시 서버가 먼저 통신 대기 상태에 있어야 하는데, 이러한 비대칭 구조는 클라이언트와 서버가 연동되는 가장 기본적이고 단순한 방법에 대한 이론적 근거가 된다. 일반적으로 서버 프로세스는 클라이언트보다 먼저 실행되어 대기 상태에 있기 때문에 클라이언트의 연결 요청에 항상 응답할 준비가 되어 있다. 서버 프로세스는 일단 시작하면 영원히 종료되지 않고 실행되며, 다수의 클라이언트 요청을 반복적으로 수행해준다. 클라이언트와 서버 사이의 네트워크 연결은 전송 계층의 포트 연결로 구현된다.[10]

서버-클라이언트 구조는 매우 효율적인 네트워크 구조이다. 다수의 사용자들이 공동으로 열람·복사·수정·관리하는 데이터를 여러 곳에 분산시키지 않고 단일한 중앙 서버에 저장하여 관리함으로써 데이터의 유일성과 통일성을 보장할 수 있다. 탈중앙 분산 저장 방식에 필요한 합의 알고리즘이 필요 없다. 중앙 서버만 관리하면 되므로 분산 저장 방식에 비해 네트워크 구성 및 유지관리 비용이 적게 든다. 하지만 구조는 해킹 공격과 디도스랜섬웨어 공격 등에 취약하다. 모든 중요 데이터가 중앙 서버에 집중되어 있기 때문에 해커가 중앙 서버에 침투하여 데이터를 위변조할 경우 모든 클라이언트들에게 잘못된 정보가 전달된다. 이를 방어하기 위해 방화벽, 웹 방화벽, 침입탐지시스템(IDS), 침입방지시스템(IPS) 등 다양한 보안 제품을 설치하고, 서버에 저장된 데이터를 복사하여 별도의 저장장치에 백업을 해야 하기 때문에 추가적인 비용이 들어간다. 중앙 서버를 두지 않고 데이터를 여러 곳에 분산 저장하는 피투피 방식을 이용할 경우 기존 서버-클라이언트의 단점을 해결할 수 있다.[11]

  • 서버(server) : 통신망 상에서 다른 컴퓨터에 대하여 회선, 디스크 장치 등에 대한 접속을 제어하는 관리 소프트웨어 또는 컴퓨터를 말한다. 서버는 그 역할에 따라 웹(Web) 서버, 와스(WAS) 서버, 웹티어(WebTier) 등이 있다.
  • 클라이언트(client) : 네트워크를 이용하여 서버 시스템에 연결된 PC스마트폰 등 사용자 측을 말한다, 클라이언트는 서버에서 받아온 데이터를 단말기 화면에 표시하고 사용자의 요청을 서버에 전달하기 위해 웹브라우저를 사용한다. 대표적인 웹브라우저에는 인터넷 익스플로러(IE), 마이크로소프트 엣지(Edge), 구글 크롬(Chrome), 애플 사파리(Safari), 모질라 파이어폭스(Firefox), 오페라(Opera) 등이 있다. 모바일 전용 웹브라우저에는 삼성 인터넷(Samsung Internet) 등이 있다.[11]

각주

  1. 조장선 기자, 〈(배워봅시다) IT 핵심용어 ②P2P〉, 《지디넷코리아》, 2001-02-16
  2. 2.0 2.1 컴퓨터 공부와 취미 자료들, 〈하이브리드 p2p의 정의와 장단점〉, 《티스토리》, 2017-04-25
  3. snowdeer's Code Holic, 〈블록체인과 P2P 통신〉, 《깃허브》, 2017-07-04
  4. Farag Azzedin, Mohamed Ettoweissy, Salman A.Khwaja, 〈Overview of Service Oriented Architecture for Resource Management in P2P Systems〉, 《리서치게이트》, 2007-01
  5. 냅스터 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=1219789&cid=40942&categoryId=32854
  6. 화상, 〈소리바다(soribada)〉, 《다음 블로그》, 2016-07-11
  7. 오픈비:삽질은없다, 〈BitTorrent의 정리〉, 《오픈비》, 2009-12-12
  8. 비트 토렌트 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=2075772&cid=42386&categoryId=42386
  9. 클라이언트/서버 모델 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=817851&cid=42344&categoryId=42344
  10. 클라이언트-서버 모델 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=2271945&cid=51207&categoryId=51207
  11. 11.0 11.1 서버-클라이언트 해시넷 - http://wiki.hash.kr/index.php/%EC%84%9C%EB%B2%84-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8

참고자료

같이 보기


  검수요청.png검수요청.png 이 하이브리드 피투피 문서는 인터넷에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.