맨위로가기

그누텔라

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

그누텔라는 2000년 초 널소프트의 개발자들이 개발한 분산형 P2P 파일 공유 프로토콜이다. 초기에는 AOL의 배포 중단으로 인해 소스 코드가 공개되었고, 리버스 엔지니어링을 통해 다양한 오픈 소스 클론이 등장했다. 냅스터와 같은 중앙 집중형 시스템의 대안으로 등장했으나, 확장성 문제와 무임승차 문제에 직면했다. 그누텔라는 중앙 서버 없이 노드 간 연결을 통해 파일을 공유하며, 쿼리 플러딩 방식을 사용한다. 다양한 클라이언트 프로그램이 존재하며, Gnutella2는 그누텔라와는 별개의 프로토콜이다. 저작권 침해 및 악성코드 유포 문제로 비판을 받았다.

더 읽어볼만한 페이지

  • 해시 자료 구조 - I2P
    I2P는 2003년 Freenet에서 분기된 익명 P2P 분산 통신 계층으로, IP 주소 노출을 방지하며 다양한 소프트웨어와 익명성 응용 프로그램을 지원하고, 기부금으로 운영되며 6~8주마다 릴리스를 진행한다.
  • 해시 자료 구조 - 분산 해시 테이블
    분산 해시 테이블(DHT)은 중앙 조정 없이 자율적이고 분산적으로 작동하며 결함 허용 및 확장성을 갖춘 분산 컴퓨팅 시스템으로, 일관성 해싱 등을 통해 키를 노드에 매핑하여 파일 공유, 콘텐츠 배포 네트워크 등 다양한 애플리케이션에 활용된다.
  • 파일 공유 네트워크 - 냅스터
    냅스터는 1999년부터 2001년까지 운영된 P2P 파일 공유 서비스로, MP3 파일 공유를 용이하게 하여 음악 산업에 큰 영향을 주었으며 저작권 침해 소송으로 서비스가 중단되었으나 현재는 음악 스트리밍 서비스로 운영되고 있다.
  • 파일 공유 네트워크 - WinMX
    WinMX는 한때 인기를 얻었던 P2P 파일 공유 프로그램으로, 독자적인 WinMX 피어 네트워크 프로토콜을 사용했으나 저작권 문제로 서비스가 종료된 후 사용자 커뮤니티를 중심으로 부활 노력이 이어졌다.
그누텔라
기술 정보
그누텔라 프로토콜 계층
그누텔라 프로토콜 계층
개발자저스틴 프랭클과 톰 페퍼 (Nullsoft)
최초 발표2000년 3월 14일
최신 버전0.9.2 (2008년 6월 17일)
상태비활성
일반 정보
운영 체제크로스 플랫폼
유형파일 공유
라이선스오픈 소스
웹사이트rfc.gnutella.brynosaurus.com
추가 정보
프로토콜UDP 및 TCP
포트6346-6347 (기본)

2. 역사

2000년 초, AOL의 자회사 널소프트의 저스틴 프랑켈과 톰 페퍼가 최초의 그누텔라 프로그램을 개발했다. 그누텔라(Gnutella)라는 이름은 GNU와 Nutella의 혼성어인데, 프랭클(Frankel)과 페퍼(Pepper)는 개발하는 동안 Nutella를 많이 먹었고 소스를 GNU GPL 라이선스 하에 배포해서 이러한 이름이 탄생했다. 다만, 그누텔라는 GNU 프로젝트와는 연관이 없다.[5][6]

냅스터와 달리 중앙에서 개입하는 부분이 전혀 없다는 점이 특징이다. 2001년 초 냅스터의 법정 공방으로 P2P 네트워크가 유명해지면서 많은 사용자를 확보하게 되었으나, 초기 프로토콜의 확장성 문제가 드러나기도 했다. 개발자들은 확장성 문제를 극복하기 위해 새로운 피어 간 경로 설정 기법인 "울트라피어(ultrapeers)" 개념을 제시하기도 했다.

"그누텔라"는 특정한 프로젝트나 프로그램의 이름뿐만 아니라, 여러 클라이언트들에게 사용되는 일반적인 프로토콜의 의미를 갖기도 한다.

2. 1. 개발 초기

2000년 초, AOL의 자회사인 널소프트의 저스틴 프랭클과 톰 페퍼가 최초의 그누텔라 클라이언트를 개발했다.[5][6] 2000년 3월 14일, 이 프로그램은 널소프트 서버에서 다운로드할 수 있게 되었으며, 슬래시닷에 소개된 첫날 수천 명이 프로그램을 내려받았다.[7][8] 소스 코드GNU 일반 공중 사용 허가서(GPL)에 따라 공개될 예정이었지만, AOL은 법적 문제로 인해 프로그램 제공을 중단하고 널소프트가 프로젝트를 더 이상 진행하지 못하게 했다.[9]

그러나 며칠 후, 프로토콜은 역공학되었고, 호환 가능한 자유-오픈 소스 소프트웨어 클론들이 나타나기 시작했다.[10] 이 중 Gene Kan과 Spencer Kimball은 그누텔라 작업을 위한 오픈 소스 커뮤니티를 모으는 최초의 포털을 시작했으며,[11][12] 그누텔라 프로토콜을 구현하는 최초의 오픈 소스(GNU-GPL) 프로그램 중 하나인 "GNUbile"을 개발했다.[13][14]

초기 프로토콜에는 확장성 문제와 '무임승차' 문제 등 여러 기술적, 윤리적 문제가 있었다. 사용자 기반이 확대되면서 네트워크는 PING 요청과 검색 쿼리로 넘쳐났고, 느린 모뎀 연결과 비효율적인 네트워크 토폴로지로 인해 높은 부하가 발생했다. 또한, 1세대 소프트웨어의 버그로 인해 패킷이 네트워크 상에서 불분명하게 떠돌아다니는 문제도 있었다.

2. 2. 그누텔라의 발전

2000년 초, 널소프트의 저스틴 프랑켈과 톰 페퍼가 최초의 그누텔라 프로그램을 개발했다. 2001년 초 냅스터의 법정 공방으로 P2P 네트워크가 유명해지면서 그누텔라는 많은 사용자를 확보했지만, 초기 프로토콜의 확장성 문제가 드러났다. 사용자 수가 증가하면서 다운로드가 어려워지는 문제가 발생했다.[5][6]

이 문제를 해결하기 위해 개발자들은 "울트라피어"라는 새로운 피어 간 경로 설정 기법을 제시했다. 이는 일부 사용자를 서버처럼 활용하여 검색 요청과 응답을 라우팅하는 방식이었다.[7][8]

2002년 2월, 상업적 파일 공유 그룹인 Morpheus는 FastTrack 기반 P2P 소프트웨어를 포기하고, Gnucleus를 기반으로 하는 새로운 그누텔라 클라이언트를 출시했다.[9]

2010년 10월 26일, 인기 있는 그누텔라 클라이언트였던 LimeWire는 저작권 문제로 폐쇄 명령을 받았다.[16] 그러나 2010년 11월 9일, 비밀 개발자 팀이 LimeWire Pirate Edition으로 부활시켰다. 이 버전은 서버 종속성이 제거되었고 모든 PRO 기능이 무료로 활성화되었다.[17]

2. 3. 한국에서의 그누텔라

2000년대 초, 한국에서는 냅스터소리바다와 같은 중앙 집중형 P2P 서비스가 큰 인기를 얻었다. 하지만, 이러한 서비스들은 저작권 문제로 인해 서비스가 중단되거나 유료화되는 어려움을 겪었다. 그누텔라는 중앙 서버 없이 작동하는 분산형 P2P 네트워크 구조를 가지고 있어, 이러한 저작권 문제에서 상대적으로 자유로울 수 있었다.

그럼에도 불구하고, 그누텔라는 한국에서 널리 사용되지 않았다. 이는 중앙 집중형 서비스에 익숙한 사용자들의 이용 습관, 기술적인 문제, 그리고 불법 콘텐츠 유통에 대한 우려 등 복합적인 요인 때문으로 보인다.

더불어민주당은 정보 공유와 접근성 확대를 지지하는 입장에서 그누텔라와 같은 분산형 기술의 잠재력에 주목하고 있다. 그러나 저작권 침해와 불법 콘텐츠 유통 문제는 여전히 해결해야 할 과제로 남아있다.

3. 동작 방식

그누텔라는 중앙 서버 없이 사용자 간 직접 파일 공유를 가능하게 하는 퓨어 P2P 네트워크이다. 사용자는 클라이언트 소프트웨어(노드)를 통해 네트워크에 참여하며, 검색 및 파일 전송은 노드 간 통신을 통해 이루어진다.
동작 방식


  • 네트워크 구성: 중앙 서버가 없는 퓨어 P2P 방식이다.
  • 노드 연결: 초기에는 클라이언트에 내장된 주소, Gwebcache, IRC 등을 통해 다른 노드를 찾는다. 이후 연결된 노드로부터 주소 목록을 받아 네트워크를 확장한다.
  • 파일 검색: 검색어는 가까운 이웃 노드로 전달되고, 각 노드는 자신의 파일을 검색하고 결과를 알리며, 동시에 요청을 다른 노드로 전달한다. 이 과정은 반복되어 수천 대의 노드로 확산된다.
  • 파일 전송: HTTP 프로토콜을 사용하며, 파일을 가진 노드와 직접 연결하거나, 방화벽이 있는 경우 "푸시" 요청을 통해 연결한다. 여러 노드에서 동시에 분할 다운로드하여 속도를 높일 수 있다.
  • 프로토콜: 초기에는 5가지 패킷 유형(ping, pong, query, query hit, push)을 사용했으며, 현재는 GDF 주도로 다양한 프로토콜 확장이 이루어지고 있다.
  • 확장성: 초기에는 질의 플러딩 방식으로 인해 확장성 문제가 있었으나, ''울트라피어''와 ''리프'' 노드로 구성된 계층적 네트워크 구조와 쿼리 라우팅 프로토콜(QRP), 동적 쿼리(DQ) 등의 기술을 통해 개선되었다.
  • 분산화: 중앙 서버가 없어 네트워크 폐쇄가 어렵고, 콘텐츠에 대한 사용자 제어가 가능하다는 장점이 있다.


Gnutella 노드와 연결 다이어그램.
그누텔라 검색 및 검색 프로토콜


2002년[20]경부터 그누텔라는 리프 노드와 울트라 노드(울트라피어)로 구성된 복합 네트워크를 사용한다. 리프 노드는 소수의 울트라피어(일반적으로 3개)에 연결되고, 각 울트라피어는 32개 이상의 다른 울트라피어에 연결된다. 이 높은 출력 차수를 통해 쿼리가 이동할 수 있는 최대 ''홉'' 수가 4로 줄었다.

리프와 울트라피어는 쿼리 라우팅 프로토콜을 사용하여 쿼리 라우팅 테이블(QRT)을 교환한다. 쿼리 라우팅은 쿼리의 단어를 해시하여 QRT에서 일치하는지 확인하는 방식으로 수행된다. 울트라피어는 쿼리를 리프 노드로 전달하기 전, 그리고 쿼리가 이동할 수 있는 마지막 홉인 경우 피어 울트라 노드로 전달하기 전에 해당 검사를 수행한다.

검색 요청에서 결과가 나타나면, 해당 결과를 가진 노드가 UDP를 통해 검색을 시작한 노드(일반적으로 노드의 울트라피어)에게 직접 연락한다. 이렇게 하면 그누텔라 네트워크를 통해 라우팅되는 트래픽 양이 줄어들어 확장성이 훨씬 더 향상된다.[21]

사용자가 파일을 다운로드하기로 결정하면 파일 전송을 협상한다. 요청된 파일을 가진 노드가 방화벽으로 보호되지 않은 경우, 쿼리 노드는 해당 노드에 직접 연결할 수 있다. 그러나 노드가 방화벽으로 보호된 경우, ''푸시 프록시''가 도입되어 다운로드 요청의 신뢰성을 높이고 트래픽 양을 줄인다.[22]

3. 1. 네트워크 참여

그누텔라 네트워크는 중앙 서버 없이 클라이언트 소프트웨어(노드) 간의 연결을 통해 구성된다. 처음 네트워크에 참여하는 노드는 다음과 같은 방법으로 다른 노드를 찾아 연결한다.[18]

  • 클라이언트에 등록된 노드
  • Gwebcache
  • IRC 채팅방


새로 네트워크에 접속하는 노드 A가 기존 노드 B와 연결되면, 노드 B는 네트워크에 연결된 노드들의 주소를 노드 A에게 전송한다. 노드 A는 일정 수준 이상의 노드들과 연결될 때까지 수동으로 설정한 주소와 다른 노드들이 전송해 준 노드 목록을 추가하며, 연결이 정상적으로 이루어진 노드만 이웃으로 인정한다.

파일 검색 시, 요청은 가장 가까운 이웃 노드로 보내진다. 메시지를 받은 노드는 자신의 하드 디스크를 검색하고, 일치하는 파일이 있으면 노드 A에게 알리고 요청을 다른 노드로 전송한다. 이 과정이 반복되어 한 번의 요청이 수천 대의 컴퓨터로 퍼져나간다.

요청한 파일을 가진 노드는 노드 A와 직접 통신하여 전송 여부를 결정한다. 여러 노드에 파일이 존재하면 분할 다운로드를 통해 속도를 높인다. 한 번 이웃으로 등록된 노드들은 프로그램 종료 후 다시 사용할 수 있다.

초창기 그누텔라는 각 사용자가 클라이언트 소프트웨어를 가진 큰 원(노드) 형태로 작동했다. 처음 시작 시 부트스트래핑하여 다른 노드를 찾아야 했다. 이를 위해 다음과 같은 방법이 사용되었다.[18]

  • 소프트웨어와 함께 제공되는 작동 가능한 노드의 사전 주소 목록
  • 업데이트된 웹 캐시 (''Gnutella 웹 캐시'')
  • UDP 호스트 캐시
  • IRC (드물게 사용)


연결 후 클라이언트는 작동하는 주소 목록을 요청하고, 다른 노드에 연결을 시도하여 특정 수에 도달하면 연결을 유지하고, 시도하지 않은 주소는 로컬에 캐시하며, 유효하지 않은 주소는 버린다.

2002년부터 그누텔라는 리프 노드와 울트라 노드(울트라피어)로 구성된 복합 네트워크가 되었다. 리프 노드는 소수의 울트라피어에 연결되고, 각 울트라피어는 32개 이상의 다른 울트라피어에 연결된다. 이를 통해 쿼리가 이동할 수 있는 최대 ''홉'' 수가 4로 줄었다.

리프와 울트라피어는 쿼리 라우팅 프로토콜을 사용하여 쿼리 라우팅 테이블(QRT)을 교환한다. 쿼리 라우팅은 쿼리의 단어를 해시하여 QRT에서 일치하는지 확인하여 수행된다.

검색 결과는 UDP를 통해 검색을 시작한 노드, 일반적으로 노드의 울트라피어로 직접 전송된다. 이를 통해 트래픽 양이 줄어들어 확장성이 향상되었다.[21]

파일 다운로드는 파일 전송 협상을 통해 이루어진다. 방화벽으로 보호되지 않은 노드는 직접 연결할 수 있다. 방화벽으로 보호된 경우, ''푸시 요청''을 보내 연결을 시작하도록 한다. ''푸시 프록시''는 이러한 요청을 안정적으로 처리하고 트래픽 양을 줄이는 데 사용된다.[22]

연결 해제 시 클라이언트 소프트웨어는 알려진 노드 목록을 저장하여 다음 시작 시 부트스트랩 서비스와 독립적으로 연결할 수 있다.[23]

초창기 그누텔라 네트워크는 불안정하고 확장성이 떨어지는 문제가 있었다. 검색 요청이 자주 삭제되고, 대부분의 쿼리가 네트워크의 작은 부분에만 도달했다.[24]

병목 현상 해결을 위해 ''울트라피어''와 ''리프''의 계층화된 시스템이 구현되었다. 울트라피어는 검색 및 네트워크 유지 관리 메시지를 라우팅하여 효율성과 확장성을 향상시켰다.[26]

그누텔라는 트래픽 오버헤드를 줄이고 검색을 효율적으로 만들기 위해 쿼리 라우팅 프로토콜(QRP)과 동적 쿼리(DQ)를 채택했다.[27]

그누텔라의 분산된 특성은 네트워크를 폐쇄하기 어렵게 만들고, 사용자가 콘텐츠를 결정할 수 있게 한다. 중앙 서버에 의존하는 냅스터와 달리, 노드 하나를 닫는 것으로 네트워크를 폐쇄할 수 없다.[28]

냅스터와 같은 중앙 서버를 사용하는 P2P 클라이언트와 달리, 그누텔라는 순수하게 피어 간 통신만으로 파일 송수신 기능을 구현한다. 이러한 방식을 퓨어 P2P라고 하며, 서버의 중재를 필요로 하는 하이브리드 P2P와 구분된다.

그누텔라 네트워크에서 교환되는 메시지는 PING, PONG, PUSH, QUERY, QUERY_HIT이다.

초기에는 노드 정보를 게시판 등에서 얻었지만, GWC(GWebCache)라는 부트스트랩 서버를 통해 연결하는 방식이 채택되었다. 연결 시 PING(연결 요청)과 PONG(응답) 신호를 통해 핸드셰이크를 수행한다.

3. 2. 검색 및 파일 전송

사용자가 파일을 검색하기 위해 키워드를 입력하면, 그 요청은 사용자와 가장 가까운 이웃 노드로 전달된다. 이 메시지를 받은 노드는 먼저 자신의 하드 디스크를 검색하여 일치하는 파일이 있으면 그 사실을 요청한 노드에게 알리고, 동시에 요청을 다른 이웃 노드로 전달한다. 이 과정은 순차적으로 반복되어, 단 한 번의 요청이 수천 대의 컴퓨터로 빠르게 확산될 수 있다.[19]

요청한 파일을 가진 노드는 요청한 노드와 직접 통신하여 전송 여부를 결정한다. 만약 여러 노드가 동일한 파일을 가지고 있다면, 노드는 분할 다운로드를 수행하여 다운로드 속도를 높일 수 있다.

파일 전송은 HTTP 프로토콜을 통해 이루어진다.[21] 파일 소유자의 IP 주소나 포트 번호 등의 정보를 담은 QUERY_HIT 식별자를 사용하여, 파일 소유자에게 HTTP 전송 명령을 내리는 방식이다.

만약 파일을 소유한 노드가 방화벽 뒤에 있는 경우, PUSH 식별자를 보내어 상대 노드가 HTTP 전송 명령을 내리도록 하는 '푸시' 요청 방식을 사용한다. 이를 통해 방화벽으로 인해 직접 연결이 어려운 상황에서도 파일 전송이 가능하다.[22]

3. 3. 프로토콜 특징 및 확장

초기 그누텔라는 질의 플러딩 프로토콜을 사용했다. 누텔라 0.4 버전은 다음 다섯 가지 패킷 유형을 제공했다.[29]

  • ping: 네트워크에서 호스트를 찾음
  • pong: 핑에 대한 응답
  • query: 파일을 찾기 위함
  • query hit: 쿼리에 대한 응답
  • push: (방화벽 뒤쪽의 노드에게) 요청한 파일 다운로드


이 패킷들은 검색을 용이하게 하며, 파일 전송은 HTTP로 처리되었다.[30]

현재 그누텔라 프로토콜 개발은 GDF(Gnutella Developer Forum)에서 주도하고 있다. 소프트웨어 공급업체와 GDF의 자유 그누텔라 개발자들에 의해 여러 프로토콜 확장이 개발되고 있다. 이러한 확장에는 지능형 쿼리 라우팅, SHA-1 체크섬, UDP를 통한 쿼리 히트 전송, UDP를 통한 쿼리, TCP를 통한 동적 쿼리, UDP를 통한 파일 전송, XML 메타데이터, 소스 교환(일명 '다운로드 메쉬'), 슬라이스(스와밍)별 병렬 다운로드가 포함된다.[30]

그누텔라 프로토콜 개발 웹사이트에서는 이러한 프로토콜 확장을 그누텔라 0.6 사양으로 마무리하려는 노력이 있다. GDF 개발자들에 따르면, 새로운 개발자는 [https://web.archive.org/web/20080724010901/http://gnet-specs.gnufu.net/ 개발 중인 사양]을 사용하여 버전 0.6을 추구해야 한다.[31]

그누텔라 프로토콜은 개발 중이며, 현재까지 가장 성공적인 파일 공유 프로토콜 중 하나로 남아 있다.[32]

2002년[20]경부터 그누텔라는 리프 노드와 울트라 노드(울트라피어라고도 함)로 구성된 복합 네트워크를 사용한다. 리프 노드는 소수의 울트라피어(일반적으로 3개)에 연결되고, 각 울트라피어는 32개 이상의 다른 울트라피어에 연결된다. 이 더 높은 출력 차수를 통해 쿼리가 이동할 수 있는 최대 ''홉'' 수가 4로 줄었다.

리프와 울트라피어는 쿼리 라우팅 프로토콜을 사용하여 쿼리 라우팅 테이블(QRT)을 교환한다. 쿼리 라우팅은 쿼리의 단어를 해시하여 QRT에서 모두 일치하는지 확인하여 수행된다. 울트라피어는 쿼리를 리프 노드로 전달하기 전, 그리고 쿼리가 이동할 수 있는 마지막 홉인 경우 피어 울트라 노드로 전달하기 전에 해당 검사를 수행한다.

검색 요청에서 결과가 나타나면, 해당 결과를 가진 노드가 UDP를 통해 검색을 시작한 노드(일반적으로 노드의 울트라피어)에게 직접 연락한다. 이렇게 하면 그누텔라 네트워크를 통해 라우팅되는 트래픽 양이 줄어들어 확장성이 훨씬 더 향상된다.[21]

사용자가 파일을 다운로드하기로 결정하면 파일 전송을 협상한다. 요청된 파일을 가진 노드가 방화벽으로 보호되지 않은 경우, 쿼리 노드는 해당 노드에 직접 연결할 수 있다. 그러나 노드가 방화벽으로 보호된 경우, ''푸시 프록시''가 도입되어 다운로드 요청의 신뢰성을 높이고 트래픽 양을 줄인다.[22]

다음은 그누텔라 클라이언트들의 프로토콜 지원 현황이다.

클라이언트해시 검색채팅친구 목록[https://github.com/gtk-gnutella/gtk-gnutella/blob/devel/doc/public/GGEP/LF 큰 파일](> 4 GB) 처리유니코드
쿼리 라우팅
UPnP
포트 매핑
NAT 트래버설NAT
포트 매핑
RUDTCP
푸시 프록시
UDP
푸시 프록시
울트라피어GWebCacheUDP
호스트 캐시
TLS기타
scope=row style="background:-
scope=row style="background:-
scope=row style="background:-
gtk-gnutellaIPv6, DHT, GUESS, G2
scope=row style="background:DHT
WireShareDHT
PhexI2P
ShareazaG2, BT, eD2k, IRC


4. 주요 클라이언트 및 호환 소프트웨어

(그렇지 않은 경우 중단됨)최신 릴리스헤리티지AcquisitionmacOS독점아니오LimeWireBearFlixWindows독점아니오5.2.6.0BearShareBearShareWindows독점아니오Original workCabosJavaGPL아니오LimeWireCitrixWireWindows독점아니오2014[33]AddaxCocoGnutRISC OS독점아니오1.21 (2005-06-21)Original workFilesWire (P2P)Java독점아니오Beta 1.1 (2007)Original workgiFT (Gnutella plug-in)Cross-platformGPL아니오0.0.11 (2006-08-06)Original workGnucleus-GnucDNAWindowsGPL, LGPL아니오Original workgtk-gnutellaCross-platformGPLOriginal workKCeasyWindowsGPL아니오giFTKiwi AlphaWindowsGPL아니오GnucDNALimeWireJavaGPL아니오Original workMorpheusWindows독점아니오GnucDNAPhexJavaGPL아니오Original workPoisonedmacOSGPL아니오giFTShareazaWindowsGPLOriginal workSymellaSymbianGPL아니오Original workWireShare (aka LimeWire Pirate Edition)JavaGPL예6.0.2 (2022-10-04)LimeWireZultraxWindows독점아니오4.33 (2009년 4월)Original work



이름플랫폼라이선스
AcquisitionmacOS셰어웨어
AcqlitemacOSGNU GPL
BearShareMicrosoft Windows셰어웨어 :en:Closed source
PhexJavaGNU GPL
CabosJavaGNU GPL
CocoGnutRISC OS프리웨어
GnucleusMicrosoft WindowsGNU GPL, GNU LGPL
GTK-GnutellaUNIXGNU GPL
LimeWireJavaGNU GPL
mlDonkey
MorpheusMicrosoft Windows:en:Closed source
MutellaUNIXGNU GPL
PoisonedmacOSGNU GPL
QtellaLinuxGNU GPL
ShareazaMicrosoft WindowsGNU GPL
SymellaSymbian OSGNU GPL
XNapJavaGNU GPL
XFactormacOSGNU GPL


5. Gnutella2

Gnutella2(G2)는 그누텔라와 이름은 비슷하지만, 완전히 다른 프로토콜을 사용하는 별개의 네트워크이다. G2는 그누텔라보다 효율적인 검색 방식을 제공하지만, 사용자 기반은 상대적으로 작다. Gnutella2라는 명칭은 그누텔라 개발자들 사이에서 논쟁을 일으키기도 했다.[5][6][7][8][9][10][11][12][13][14][15][16][17]

6. 비판 및 논란

그누텔라는 2세대 P2P (퓨어 P2P) 방식으로, 각 클라이언트가 서버 역할을 하는 (서번트) 분산형 네트워크 구조를 가진다. 이러한 특성상 저작권 침해 파일을 공유하는 데 악용될 수 있다는 비판과[1] 악성코드 유포 문제가 제기된다. 제작자는 그누텔라가 "핵전쟁에서도 살아남을 수 있도록 설계"되었다고 언급하며, 네트워크의 내고장성을 강조하기도 했다.

6. 1. 저작권 침해 문제

2세대 P2P (퓨어 P2P)인 그누텔라는 각 클라이언트가 서버 역할을 겸하는 (서번트) 분산형 네트워크의 특성상, 저작권 침해 파일을 공유하는 데 악용될 수 있다는 비판을 받는다.[1] 이에 대한 대응으로, 일부 클라이언트에서는 필터링 기능을 제공하거나 저작권 보호 기술을 도입하기도 한다.

6. 2. 악성코드 유포 문제

2세대 P2P (퓨어 P2P)인 그누텔라는 각 클라이언트가 서버 역할을 겸하는 (서번트) 구조로 인해 내고장성이 높다. 제작자는 "핵전쟁에서도 살아남을 수 있도록 설계된 것", "만약 뉴욕에 핵폭탄이 투하되더라도 (그 자체는 끔찍한 일이지만) 뉴욕 이외의 ‘그누텔라 친구들’에 의해 그누텔라 네트워크는 유지될 것이다"라는 말을 통해 그누텔라 네트워크의 특징을 설명했다.

참조

[1] 간행물 The World's Most Dangerous Geek http://74.220.215.94[...] 2011-05-10
[2] 웹사이트 Slyck News - eDonkey2000 Nearly Double the Size of FastTrack http://www.slyck.com[...] Slyck.com 2005-06-02
[3] 웹사이트 On the Long-term Evolution of the Two-Tier Gnutella Overlay http://www.barsoom.o[...] 2006
[4] 웹사이트 Ars Technica Study: BitTorrent sees big growth, LimeWire still #1 P2P app https://arstechnica.[...] Eric Bangeman 2008-04-21
[5] 뉴스 AOL's Nullsoft creates software for swapping MP3s http://news.cnet.com[...] 2017-04-13
[6] 뉴스 Gnutella http://www.afterdawn[...] 2017-04-13
[7] 웹사이트 Open Source Napster: Gnutella - Slashdot https://slashdot.org[...] 2019-03-24
[8] 웹사이트 CNN - Breaking News, Latest News and Videos https://www.cnn.com/ 2019-03-24
[9] 웹사이트 Regarding Gnutella - GNU Project - Free Software Foundation https://www.gnu.org/[...] 2015-03-17
[10] 서적 Webster's New World Hacker Dictionary https://books.google[...] John Wiley & Sons 2020-10-02
[11] 뉴스 Programmers help "Napster" clones take off http://news.cnet.com[...] 2017-04-13
[12] 뉴스 Gnutella pioneer Gene Kan dies http://news.cnet.com[...] 2017-04-13
[13] 웹사이트 gnubile file listing http://www.stearns.o[...] 2017-04-13
[14] 웹사이트 The source code for Gnubile http://underpop.free[...] 2017-04-13
[15] 웹사이트 Regarding Gnutella (www.gnu.org) https://www.gnu.org/[...] 2015-03-17
[16] 웹사이트 Indie Labels Sue LimeWire Over Failed Copyright Deal https://www.pcmag.co[...] Ziff-Davis 2012-03-19
[17] 웹사이트 Report: LimeWire 'Resurrected' by Secret Dev Team https://www.pcmag.co[...] Ziff-Davis 2012-03-19
[18] 웹사이트 How Auto Discovery Works - Amazon ElastiCache https://docs.aws.ama[...] 2023-06-08
[19] 서적 Computational Science and Its Applications - ICCSA 2011 Proceedings Springer 2022-03-10
[20] 웹사이트 Gnutella Protocol Development http://rfc-gnutella.[...] 2017-04-13
[21] 논문 Topology of Gnutella Network: Discovery and Analysis https://www.academia[...] 2023-06-08
[22] 웹사이트 Gnutella clients that still work https://questhalo.am[...] 2023-06-08
[23] 논문 SoK: Network-Level Attacks on the Bitcoin P2P Network https://ieeexplore.i[...] 2023-07-11
[24] 웹사이트 Why Gnutella Can't Scale. No, Really. http://www.darkridge[...] 2001-02
[25] 논문 A hierarchical super peer network for distributed software development https://www.academia[...] 2023-06-08
[26] 웹사이트 Network Topology - an overview {{!}} ScienceDirect Topics https://www.scienced[...] 2023-06-08
[27] 웹사이트 DQ in Arabic - English-Arabic Dictionary {{!}} Glosbe https://glosbe.com/e[...] 2023-06-08
[28] 웹사이트 Decentralized Peer-to-Peer Network Architecture: Gnutella and Freenet https://www.berkes.c[...] University of Manitoba 2019-10-26
[29] 문서 Network Fundamentals Cisco Networking Academy, Cisco Press
[30] 문서 Network Fundamentals Cisco Networking Academy, Cisco Press
[31] 웹사이트 Gnutella Protocol Development http://rfc-gnutella.[...] 2022-07-21
[32] 논문 A Middleware Approach to Building Content-Centric Applications https://www.academia[...] 2023-06-08
[33] 웹사이트 CitrixWire http://www.brotherso[...] 2017-04-13
[34] 웹사이트 Gnutella vs. Gnutella2, Part 2 http://www.mp3newswi[...] Slyck.com 2003-02-25
[35] 웹사이트 Gnutella vs. Gnutella2, Part 1 http://www.slyck.com[...] Slyck.com 2003-02-25
[36] 논문 A comparison of Peer-to-Peer search methods http://wortschatz.un[...] Dimitrios Tsoumakos 2007-09-26
[37] 웹사이트 Query Routing for the Gnutella Network proposal http://www.ic.unicam[...] 2015-09-24
[38] 웹사이트 Query Routing for the Gnutella Network 1.0 http://www.ic.unicam[...] 2015-09-24
[39] 웹사이트 G2 Network Statistics http://crawler.trill[...] Population ~200,000 January 2010. 2010-05-01
[40] 서적 ソースコードの反逆 株式会社アスキー 2002-06-11



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com