"그누텔라"의 두 판 사이의 차이
잔글 |
|||
(사용자 3명의 중간 판 29개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''그누텔라'''(Gnutella) | + | [[파일:그누텔라 로고.png|썸네일|200픽셀|'''그누텔라'''(Gnutella)]] |
+ | [[파일:그누텔라 글자.png|썸네일|300픽셀|'''그누텔라'''(Gnutella)]] | ||
+ | [[파일:저스틴 프랭클.jpg|썸네일|200픽셀|'''[[저스틴 프랭클]]'''(Justin Frankel)]] | ||
+ | |||
+ | '''그누텔라'''(Gnutella)란 [[아메리카 온라인]](AOL)의 자회사인 [[널소프트]](Nullsoft)가 개발한 파일 공유 프로그램이다. 그누텔라는 GNU + Nutella의 합성어로서 [[지엔유]](GNU is no Unix)와 이탈리아의 제빵기술자 페레로(Ferrero)가 헤이즐넛에 초콜릿을 입힌 것에서 따온 이름 누텔라를 합친 것이다. 2000년 3월, [[저스틴 프랭클]](Justin Frankel)과 [[톰 페퍼]](Tom Pepper)가 그누텔라의 첫 번째 프로그램을 개발했다. | ||
+ | |||
+ | {{:인터넷 배너}} | ||
== 개요 == | == 개요 == | ||
+ | 그누텔라는 [[피투피]](P2P, Peer-to-Peer) 파일 공유 [[프로그램]]으로 사람들이 중앙 서버를 사용하지 않고도 [[인터넷]]을 통해 파일을 공유하며 주고받을 수 있도록 고안되었다. 그누텔라에서는 복잡한 주소를 직접 입력할 필요가 없으며 찾고 있는 파일의 이름만 검색하면 검색 결과가 나오게 되어 있다. 전자메일, 웹 페이지 같은 인터넷 기반 응용프로그램들은 네트워크상에서 [[라우터]], [[스위치 허브]] 같은 [[하드웨어]]와, [[TCP/IP]] 프로토콜 등에 의존하지만 그누텔라는 네트워크 구조가 순간순간 바뀌는 응용 네트워크를 구축하게 되어있다. 기조 네트워크의 경우 전화선 또는 케이블이 지반에 매설되어 있고 라우터는 고정되어 해당 경로 테이블에서 가장 빠른 경로를 선택하게 되어있는 반면 그누텔라에 참여하는 라우터와 경로는 순간마다 바뀌는 동적인 구조 위에 가상 기반 주소를 가지고 있다.<ref name ="안">안철수연구소, 〈[http://a.to/19iCy92 네트워크를 이해하면 포렌식 분석이 쉽다 (1)]〉, 《안랩》, 2009-06-01</ref> | ||
+ | |||
+ | 그누텔라는 분산검색을 위한 [[프로토콜]]이다. 비록 그누텔라 프로토콜이 전통적인 [[클라이언트]]/[[서버]] 검색 모델을 지원하고는 있지만, 그누텔라의 특징은 피투피(P2P) 분산형 모델이라는 것이다. 이 모델에서, 모든 클라이언트는 서버이고, 모든 서버는 클라이언트이다. 그누텔라 서번트(Gnutella Servent)는 클라이언트와 서버의 기능을 동시에 작업하는 것을 의미한다. 서번트는 클라이언트 기능을 검색과 검색 결과를 통하여 제공하고, 이와 동시에 다른 서번트의 검색어를 접수 받아 사용자의 [[데이터]]와 비교 검색 후 이에 맞는 결과를 응답해 주는 서버의 기능을 하고 있다. 일부 서번트들의 [[네트워크]]가 오프라인이 되더라도 전체 그누텔라 네트워크의 운영에는 지장을 받지 않는 분산적인 특징 때문에, 서번트들의 네트워크는 매우 Fault-Tolerant 하다. 그누텔라 프로토콜은 서번트들이 네트워크를 통하여 대화할 수 있는 방법들을 정의한다. 다음은 그누텔라 프로토콜을 구성하고 있는 메시지들이다. 그누텔라 서번트는 현재 네트워크 안에 있는 다른 서번트들과 접속, 연결하는 과정을 통하여 스스로 네트워크에 연결한다. 하지만 다른 서번트들의 네트워크 주소를 획득하는 것은 프로토콜 정의에 포함되어 있지 않다. 이는 Host Cache라는 기술을 이용하여 그누텔라 서번트들의 네트워크 주소를 자동으로 획득한다. 일단 다른 서번트의 네트워크 주소를 획득하면 서번트와 [[TCP/IP]] 연결이 생기고, 그누텔라 서번트 간의 연결을 위한 문자열(ASCII)이 전송된다. | ||
== 주요 인물 == | == 주요 인물 == | ||
− | + | *'''[[진 칸]]'''(Gene Kan) : 영국 태생의 중국계 미국인으로, 그누텔라 프로토콜을 구현한 파일 공유 응용 프로그램의 오픈 소스 버전을 제작한 최초의 프로그래머 중 한 명이었다. 진 칸은 [[스펜서 킴볼]](Spencer Kimball)과 함께 지엔유(GNU) General Public License에 따라 라이센스가 부여된 "[[Gnubile]]"이라는 프로그램을 개발했다. 진 칸은 24살 때 [[스티브 워터하우스]](Steve Waterhouse)와 또 다른 친구와 함께 분산 검색 엔진인 인프라서치(InfraSearch)를 만들었다. 진 칸은 썬 마이크로시스템즈에서 근무하면서 이 기술을 계속 연구했다. 진 칸은 피투피(P2P) 컴퓨팅을 옹호했으며, 일부는 그누텔라 개척자들과 함께 그 창립자로 인정했다. 진 칸은 그것이 분산 컴퓨팅이라고 불리는 기술적 분야의 일부라고 주장했다.<ref>진 칸 위키백과 - https://en.wikipedia.org/wiki/Gene_Kan</ref> | |
− | [[진 칸]](Gene Kan) | + | |
+ | *'''[[저스틴 프랭클]]'''(Justin Frankel) : 윈앰프(Winamp) 미디어 플레이어 응용 프로그램 작업과 그누텔라 피투피(P2P) 네트워크 발명으로 가장 잘 알려진 미국 컴퓨터 프로그래머이다. 프랭클은 REAPER 디지털 오디오 워크 스테이션, NINJAM 공동 음악 도구 및 Jesusonic 확장 가능한 효과 프로세서와 같은 음악 제작 및 개발 소프트웨어를 만드는 [[콕코스]](Cockos)의 창립자이다. MIT 테크놀로지 리뷰 TR100에서 35세 미만의 세계 100대 혁신가 중 한 명으로 지명되었다. 2000년 3월 14일 프랭클과 톰 페퍼는 널소프트의 기업 웹 서버를 사용해서 그누텔라를 출시했다. 이후 프랭클은 50명 정도로 구성된 네트워크에서 사용할 수 있는 소규모 P2P 소프트웨어 '웨이스트'를 개발했고, 널소프트의 홈페이지에 올렸다. <ref>한세희 기자, 〈[https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=105&oid=030&aid=0000032700 AOL타임워너 "프랭클이 미워"]〉, 《전자신문》, 2003-06-04</ref> | ||
+ | |||
+ | == 역사 == | ||
+ | 2000년 3월 그누텔라는 저스틴 프랭클(Justin Frankel)과 톰 페퍼(Tom Pepper)가 널소프트(Nullsoft)에서 개발했고, 3월 14일에 널소프트에서 다운로드할 수 있게 됐다. 그누텔라는 냅스터와 달리 중앙에서 개입하는 부분이 전혀 없었다. 아무도 사용자를 추적할 수 없을 뿐만 아니라 사용자들이 교환하는 파일의 목록을 만들 수도 없었다. 아무나 네트워크에 접속할 수 있는 소프트웨어를 만들 수 있었고 대부분이 오픈 소스 형태로 쓰였기 때문에 누구나 새로운 기능을 덧붙이거나 개선할 수 있었다. 그노텔라(Gnotella), 뉴텔라(Newtella), 그넛(Gnut), 라임와이어(LimeWire), 토드노드(ToadNode) 등 약 10여 종 이상의 그누텔라들이 무료로 배포됐다. 이 프로그램은 수천 명의 사람들이 다운받았다. 하지만 널소프트의 모회사인 아메리카 온라인(AOL)이 당시 타임 워너와 합병하려던 차였기 때문에 바로 중단됐다. [[타임워너]](Time Warner)는 음악/미디어 쪽의 거인이었기 때문이다. 하지만 사람들은 널소프트가 올렸다가 지운 그 코드를 이미 가져갔고, 이를 바탕으로 자신들만의 새로운 소프트웨어, 즉 유사품들을 만들었다. 호환되는 오픈소스 클론이 나타났고, '누텔라 연방'이 등장하게 되었다. 서로 다른 그룹에 의한 클라이언트와 유사한 개발은 오늘날 그누텔라 개발의 방법론으로 남아 있다.<ref name="이명헌">이명헌, 〈[https://web.archive.org/web/20040812002643/http://www.emh.co.kr/xhtml/p2p_and_liberalism.html P2P . 냅스터 . 누텔라 . 그리고 프리넷.]〉, 《이명헌경영스쿨》, 2001-03-13</ref> | ||
+ | |||
+ | 최초의 독립 그누텔라 개척자 중에는 [[진 칸]](Gene Kan)과 [[스펜서 킴볼]](Spencer Kimball)이 있었는데, 그들은 그누텔라를 작업하기 위해 오픈 소스 커뮤니티를 모으기 위한 첫 번째 포털을 시작했다. 그누텔라 [[프로토콜]]을 구현하는 최초의 오픈 소스 중 하나인 "Gnubile"을 개발했다. 그누텔라 네트워크는 패스트트랙(KaZaA)이나 원래의 냅스터와 같은 중앙화되지 않으며, 분산적이다. 이 네트워크의 초기 인기는 2001년 [[냅스터]]를 위협했던 법적 소멸에 의해 촉발되었다. 인기가 급증하면서 초기 프로토콜의 확장성의 한계를 드러냈다. 2001년 초, 프로토콜의 변화(독점적 및 폐쇄적 소스 클라이언트에서 처음 구현)는 확장성의 개선을 가능하게 했다. 모든 사용자를 클라이언트와 서버로 취급하는 대신, 일부 사용자는 초고속 사용자로 취급되어 그들과 연결된 사용자에 대한 검색 요청과 응답을 라우팅했다. 이로 인해 네트워크는 인기를 끌 수 있었다. 2001년 말, 그누텔라 클라이언트 [[라임와이어]] 베이직(LimeWire Basic)은 무료 오픈 소스가 되었다. 2002년 2월, 상용 파일 공유 그룹인 Morpheus는 패스트트랙 기반의 피투피(P2P) 소프트웨어를 포기하고 무료 오픈 소스 그누텔라 클라이언트 Gnucleus를 기반으로 한 새로운 클라이언트를 출시했다. | ||
+ | |||
+ | 2010년 10월 26일, 인기 있는 그누텔라 클라이언트 라임와이어는 음반 업계 원고가 동의한 동의 법령에 서명하면서 뉴욕 남부 지방 법원의 킴바 우드(Kimba Wood) 판사로부터 폐쇄 명령을 받았다. 이것은 네트워크 규모가 눈에 띄게 줄어든 원인일 가능성이 높았는데, 이는 가처분 협상을 하는 동안 라임와이어 직원이 소프트웨어에 원격 비활성화 코드를 삽입했기 때문이다. 가처분 신청이 발효되면서 해당 버전(5.5.10 이하)을 설치한 사용자들은 피투피(P2P)망에서 차단됐다. 라임와이어는 무료 소프트웨어였기 때문에, 라임와이어 상표권이 사용되지 않는 한 비활성화 코드를 생략한 포크(fork)의 생성을 막을 수 없었다. 2010년 11월 9일, 라임와이어는 비밀 개발팀에 의해 부활하여 라임와이어 해적판이라는 이름이 붙여졌다. 라임와이어 5.6 베타(BETA)를 기반으로 했다. 이 버전은 서버 종속성을 제거했고 모든 PRO 기능을 무료로 가능하게 했다.<ref>그누텔라 위키백과 - https://en.wikipedia.org/wiki/Gnutella#General_specifications</ref> | ||
== 특징 == | == 특징 == | ||
− | 그누텔라는 [[네트워크]]를 구성하며 [[ | + | 그누텔라는 [[네트워크]]를 구성하며 [[트랜잭션]]을 중재하는 관리자가 필요 없으며 그누텔라에 네트워크에 연결된 호스트만 자동으로 접속하도록 되어 있다. 그누텔라는 네트워크 분산을 이용하여 책임자를 누구라도 특정 지을 수 없으며 운영의 책임을 추궁하려면 수많은 수색영장, 집행 영장, 소환장을 발급하여 대대적인 수사 인력의 투입이 필요해야 가능하리라 추측하나 현실적으로는 거의 불가능하다고 할 수 있다. 최신 고성능 사양의 컴퓨터의 등장으로 그누텔라는 [[클라이언트]]와 [[서버]]를 한 시스템에 통합시켰으며 파일을 업로드하고 다운로드하는 2가지 방법을 통하여 인터넷 사용자들과 쉽게 접속이 가능하다. 소프트웨어 기반 네트워크로 형성된 그누텔라는 인터넷상의 이 기종 및 지역 네트워크들과의 통신을 가능하게 하는 [[라우터]], [[스위치 허브]]와 같은 장비를 구성하지 않고 있으며 통신 시설을 통합해서 한[[노드]]에서 사용자가 네트워크를 관리하도록 하고 있다. 그누텔라는 특정하게 네트워크 관리자가 지정되어 있지 않으며 분산 실시간 정보 검색 시스템으로 역할을 다하고 있는데 이러한 것을 현재 우리가 주변에서 쉽게 다운로드받는 파일 공유 프로그램으로 이해하면 될 것이다. 그누텔라에서 사용하는 [[인프라서치]](InfraSearch)를 사용하면 현재 사용하는 표준 웹 브라우저에서 동일한 검색[[인터페이스]]에서 검색 질의어를 요구하면 키워드나 [[HTML]]로 이루어진 [[DB]](DataBase)에서 질의에 대해 여러 개의 노드로 구성된 독립된 그누텔라 네트워크로 [[브로드캐스팅]]하게 되어있다. [[노드]] 데이터에는 사진 이미지, 광고 메시지, 파일 이름, 계산기, [[URL]], 뉴스 기사, 임의의 콘텐츠들과 같은 다양한 데이터들이 섞여 있으며 노드들에 포함된 데이터들은 관련 있는 정보가 공유된 경우 응답하도록 되어 있다.<ref name ="안"></ref> |
+ | |||
+ | === 피투피 === | ||
+ | 피투피(P2P, peer-to-peer network)란 기존의 서버와 클라이언트 개념에서 벗어나 개인 컴퓨터들이 네트워크로 연결되어 서로 정보와 자료를 공유하는 것을 말한다. 피투피(P2P) 통신망은 일반적으로 노드들을 규모가 큰 애드 혹으로 서로 연결하는 경우 이용된다. 이런 통신망은 여러 가지로 쓸모가 있는데, 오디오나 비디오, 데이터 등 임의의 디지털 형식 파일의 공유는 매우 보편적이다. 또한, 인터넷 전화(VoIP) 같은 실시간 데이터 등도 피투피(P2P) 기술을 통해 서로 전달될 수 있다.<ref>P2P 위키백과 - https://ko.wikipedia.org/wiki/P2P</ref> P2P에는 크게 3가지 방식이 있다. | ||
+ | |||
+ | *'''하이브리드 피투피''' : 기존 서버,클라이언트 모델을 완전히 벗어나지 못한 형태의 P2P이다. 중앙서버가 존재해 중개 및 검색을 제공하고 데이터 전송은 개인 PC들 간에(peer) 주고받는 방식이다. 많이 사용하고 접하는 냅스터(Napster), [[소리바다]] 같은 파일 공유 프로그램, [[네이트온]](NateOn) 등과 같은 메신저를 통한 파일 전송 등이 있다. 중앙서버가 존재해 검색이 빠르지만, 네트워크가 커질수록 중앙서버에 부담이 가며 중앙서버가 죽으면 전체 네트워크가 죽는 단점이 있다. | ||
+ | *'''퓨어 피투피''' : 중앙서버를 사용하지 않는 방식으로 네트워크에 참여하는 모든 컴퓨터는 똑같이 서버,클라이언트 역할을 겸하며 검색, [[데이터]] 전송에 있어서 같은 책임을 진다. 이를 사용한 네트워크로 그누텔라나 [[프리넷]](Freenet) 등이 있다. 전체 네트워크가 죽는 일이 거의 불가능하며, 네트워크 확장성이 매우 높고, 네트워크 증가에 따른 비용이 거의 없다. 또한 전 세계 모든 컴퓨터의 정보 자료를 100% 검색 및 공유가 가능하기도 하고, 제한된 커뮤니티 내에서 파일 정보 공유 네트워크를 구성할 수도 있다. 그리고 이런 각 네트워크끼리 연결하면 커뮤니티 상호 간의 정보 공유망 또한 자유롭게 구축할 수 있다. 반면 중앙 서버가 없기 때문에 네트워크를 제어할 수단이 없고, 파일 목록을 검색할 때마다 네트워크의 모든 컴퓨터를 검색해야 하므로 검색 속도가 크게 뒤떨어지며, 과도한 부하, 해킹 위험 등이 있다. | ||
+ | *'''슈퍼 피어''' : [[슈퍼 피어]](Super Peer) 방식은 [[하이브리드 피투피]] 방식과 [[퓨어 피투피]] 방식의 장점을 결합해 놓은 방식이다. 하이브리드 피투피 방식과 퓨어 피투피 방식은 중앙서버의 존재 유무에 따라 각각 장단점이 나타나는데 슈퍼 피어방식은 피투피 네트워크에 중앙서버 역할을 하는 슈퍼 피어들을 여러 개 둬서 네트워크를 구성하는 방법이다. 중앙서버가 존재하므로 검색의 속도가 빠르며, 또한 중앙서버가 여러 개 존재하므로 인해 하나의 중앙서버가 죽더라도 다른 중앙서버를 이용할 수 있는 방식이다. 반면 개념 자체만으로는 매우 간단해 보이지만 실제로 슈퍼 피어를 구현하기는 쉽지 않으며 게다가 슈퍼 피어에 대한 최적화된 이론이 정립되지 않은 상태여서 구현 방식에 따라서 천차만별의 성능을 보이는 것이 단점이다.<ref>내일을 향한 기대, 〈[https://m.blog.naver.com/kaoni_5700/50045717416 P2P(peer-to-peer)란 무엇인가?]〉, 《네이버 블로그》, 2009-04-11</ref> | ||
+ | |||
+ | === 그누텔라2 === | ||
+ | 2002년 11월 [[마이클 스톡스]](Michael Stokes)는 [[그누텔라2]](Gnutella2) 프로토콜을 그누텔라 개발자 포럼에 발표했다. G2라고 부르기도 한다. 그누텔라 프로토콜에서 영감을 얻은 그누텔라2는 연결 핸드 셰이크 및 다운로드 메커니즘을 제외하고는 거의 디자인을 공유하지 않는다. 그누텔라2는 확장 가능한 바이너리 패킷 형식과 완전히 새로운 검색 알고리즘을 채택한다. 그누텔라2에는 관련 네트워크 토폴로지와 향상된 메타 데이터 시스템이 있어, 네트워크에서 바이러스와 같은 가짜 파일을 효과적으로 줄일 수 있다. 일부는 그누텔라2에 대해 언급된 목표가 그누텔라 0.6 프로토콜로 깨끗이 단절하고 다시 시작하는 것이라고 생각했다. 라임와이어(LimeWire)와 [[비어쉐어]](BearShare)의 개발자들은 이것을 엄청난 홍보라고 생각했고, 일부에서는 여전히 네트워크를 그누텔라2라고 부르기를 거부했다. 대신 마이크로 프로토콜(MP)이라고 부르기도 한다. 그누텔라2 프로토콜은 여전히 그누텔라 0.6 규격에 정의된 연결에 구형 "GNUTELLA CONNECT/0.6" 핸드셰이크 문자열을 사용한다. 이 이전 버전과 호환되는 핸드 셰이크 방법은 그누텔라 개발자 포럼에 의해 관계없는 새로운 네트워크를 부팅시키기 위해 그누텔라 네트워크를 이용하려는 시도라는 비난을 받았으며, 그 네트워크 지지자들은 그것의 의도가 그누텔라와 이전 버전과 호환되도록 유지하고 지금 그누텔라를 허용하는 것이라고 주장했다. 개발자들의 입장이 굳어지고, 양측의 결단이 더욱 공고해졌다. 초안 사양은 2003년 3월 26일에 공개되었고, 곧 상세한 사양이 나왔다. 그누텔라2는 많은 그누텔라 네트워크 고객들에 의해 지원되지 않지만, 많은 그누텔라2 고객들은 여전히 그누텔라에 연결된다. 많은 그누텔라2 지지자들은 이것이 정치적인 이유 때문이라고 주장하는 반면, 그누텔라 지지자들은 이러한 급격한 변화들이 재작성 비용을 능가할 만한 충분한 장점이 없다고 주장한다.<ref name="그누텔라2">그누텔라2 위키백과 - https://en.wikipedia.org/wiki/Gnutella2</ref> | ||
+ | |||
+ | ==== 기능 ==== | ||
+ | 그누텔라2는 [[XML]] 문서 트리와 비교할 수 있는 확장 가능한 이진 패킷 형식을 가지고 있다. 패킷 형식은 향후 네트워크 개선 및 개별 공급 업체 기능을 추가하여 네트워크의 다른 클라이언트에 버그를 발생시키지 않을 수 있도록 설계되었다. 파일 식별 및 파일의 안전한 무결성 검사를 위해 [[SHA-1]] 해시를 사용한다. 파일을 여러 소스에서 안정적으로 다운로드할 수 있을 뿐만 아니라 파일을 계속 다운로드하는 동안 부품의 신뢰할 수 있는 업로드가 가능하도록 하기 위해 Tiger 트리 해시를 사용한다. 그누텔라2는 검색을 위한 강력하고 완벽한 시스템을 만들기 위해 파일 이름으로 수집되는 것보다 더 완전한 라벨링, 등급 및 품질 정보를 검색 결과에 제공할 수 있는 메타데이터 시스템을 갖추고 있다. 노드는 파일을 삭제한 후에도 이 정보를 공유할 수 있어, 사용자가 복사본을 보관할 필요 없이 네트워크에 바이러스와 웜을 표시할 수 있다. 그누텔라2는 또한 네트워크 연결에서 압축을 이용하여 네트워크가 사용하는 대역폭을 줄인다. [[쉐어라자]](Shareaza) 에는 이미지 및 비디오의 미리 보기를 요청하는 추가 기능이 있지만 파일스코프(FilesScope) 만이 기능을 제한적으로 사용한다. gtk-gnutella는 프로토콜을 확장하여 그누텔라와 그누텔라2의 격차를 더욱 줄였다. 특히, 반 신뢰성 [[UDP]] 계층은 기존 그누텔라2 클라이언트와 역 호환되는 방식으로 누적 및 확장 확인을 추가하도록 향상되었다.<ref name="그누텔라2"></ref> | ||
+ | ==== 차이점 ==== | ||
+ | *'''프로토콜''' : 그누텔라의 패킷 형식은 원래 확장성을 염두에 두고 설계되지 않았고 수년에 걸쳐 많은 추가 기능이 있어, 패킷 구조가 복잡하고 비효율적이었기 때문에 비판을 받았다. 그누텔라2는 이것으로부터 배웠고, 그누텔라2에 추가된 그누텔라 표준의 많은 기능을 제외하고는 처음부터 미래 확장성을 위해 설계됐다. | ||
+ | *'''검색 알고리즘''' : 그누텔라는 [[쿼리 플러딩]] 검색 방법을 사용하는 반면, 그누텔라2는 검색 [[노드]]가 [[허브]](Hub) 목록을 수집하여 한 번에 하나씩 직접 연결하는 랜덤 워크 시스템을 사용한다. 그러나 허브가 스스로 조직하여, "[[허브 클러스터]]"(Hub clusters)라고 불린다. 각 허브는 이웃이 저장한 정보를 미러링하여 리프(Leaf)는 허브 클러스터 전체의 정보를 반환한다. 이것은 그누텔라의 쿼리 플러딩 시스템보다 몇 가지 장점이 있다. 검색을 계속해도 네트워크 트래픽이 기하급수적으로 증가하지 않고, 쿼리가 노드 수만큼 라우팅 되지 않으며, 검색의 세분 성을 증가 시켜, 결과의 미리 정의된 임계 값을 얻으면 그누텔라보다 효과적이다. 그러나 도보 시스템은 네트워크와 필요한 네트워크 유지 및 관리의 복잡성을 증가시키고, 악의적인 공격자가 서비스 거부 공격에 네트워크를 사용하지 못하도록 하는 안전장치를 요구한다. | ||
+ | *'''용어''' : 용어에도 차이가 있다. 네트워크를 압축하는 데 사용되는 더 유능한 노드는 그누텔라에서는 '[[울트라 피어]]'라고 하며, 그누텔라2에서는 '허브'라고 한다. 토폴로지에서는 약간 다르게 사용된다. 그누텔라에서 울트라 피어는 일반적으로 피어 연결만큼 많은 리프를 유지하는 반면, 그누텔라2 허브는 훨씬 더 많은 리프를 유지하고 더 적은 피어(허브 투 허브) 연결을 유지한다. 그 이유는 다양한 네트워크의 검색 방법이 서로 다른 최적의 토폴로지를 갖기 때문이다.<ref name="그누텔라2"></ref> | ||
+ | |||
+ | == 이용 방법 == | ||
+ | 그누텔라 네트워크에 참여하는 것은 간단하다. 누텔라 소프트웨어 패키지 중 하나를 웹을 통해 다운로드한 다음, 여러분의 컴퓨터를 "servent"(= server + client)로 바꾸면 된다. 그렇게 해서 그누텔라 네트워크상의 또 다른 '서번트(servent)'를 찾아서 서로 접촉한다. 이들 서번트의 주소는 여러 웹 사이트, 채팅방에서 쉽게 찾아볼 수 있다. 그누텔라를 이용한 접속은 분명히 인터넷상에서 이뤄지고 있고 모든 컴퓨터는 IP 주소를 통해 각각을 구분한다. 하지만 누텔라는 WWW가 아니다. 사용자의 컴퓨터는 또 다른 여러 대의 서번트와 커뮤니케이션하고 이들 서번트는 또 각자 파악하고 있는 또 다른 서번트에게 사용자의 메시지를 보내고 받는다. 이런 식으로 계속 확산되어 나가는 네트워크 되는 것이다. 파일을 찾기 위해서 키워드를 치면, 그 요청은 여러분 컴퓨터와 가장 가까운 이웃 컴퓨터로 보내진다. 이 메시지를 받은 컴퓨터는 우선 자신의 하드 디스크 드라이브를 뒤진 다음 맞는 것이 있으면 그 사실을 여러분 컴퓨터에 알려주고 여러분의 요청을 또 다른 서번트로 재전송합니다. 이걸 받은 서번트는 또 똑같은 과정을 반복한다. 그 결과, 단 한 번의 요청이 순식간에 수천 대의 컴퓨터로 퍼져나갈 수 있다.<ref name="이명헌"></ref> | ||
+ | |||
+ | == 논란 == | ||
+ | ;확장성과 사용자 폭증 | ||
+ | 2000년 9월, 그누텔라가 집중화된 냅스터 네트워크처럼 확장성이 없다는 사실을 알려졌다. 이 말은 사용자가 많아질수록 효율이 떨어진다는 뜻이다. 사용자는 몇 주 동안 이 프로그램을 사용해 검색이나 질의를 하면 결과물이 거의 나오지 않다시피 했다. 파일 검색을 할 때면 시간이 경과돼 결과를 얻지 못하기 일쑤였다. 뭔가 잘못돼 가고 있었고 도대체 어떻게 되고 있는 것인지에 대한 여러 가지 가설들이 생겨났다. 병목현상 검색을 해도 결과가 나오지 않는 것은 그누텔라 네트워크의 병목현상 때문이라는 의견이 지배적이다. | ||
+ | |||
+ | 이런 병목현상이 생긴 데는 몇 가지 이유가 있다. 첫째, 이 클라이언트 소프트웨어에 사용된 잘못된 코드다. 코드가 발표되고 나서 바로 AOL로부터 금지를 당했을 때 이 코드는 여전히 베타버전 상태였기 때문에 이것이 프로그래머들의 잘못이라고 할 수는 없다. 하지만 본질적으로 A라는 사용자가 오프라인 중에 있는 B라는 사용자의 파일을 찾을 경우, 이 소프트웨어는 이 파일이 원래 누구의 것인가를 추적하지 않고 대신 사용자 A와 연결된 모든 컴퓨터에 ‘[[푸시]](push)’ [[패킷]] [[브로드캐스트]]를 전송한다. 전체 트래픽의 절반 이상이 호스트가 오프라인일 때 발생하는 라우팅 및 푸싱 기술 때문에 시스템 작동이 원활하지 않게 된다. 코드가 완전하고 대역폭을 소모하지 않는다 하더라도 56k 모뎀 사용자들의 경우 인터넷에 접속한 사람들과 보조를 맞출 수 있을 만큼 충분한 속도로 빠르게 다양한 검색 요구를 내보낼 수 없다. 너무 많은 사람이 동시다발적으로 검색을 수행할 경우 속도는 한층 더 느려진다. 또한 56k 모뎀 사용자들이 수백 명의 다른 사용자들을 연결하는 접점이 되거나 네트워크에 연결된 또 다른 인물이 되기 때문에 이 부분의 네트워크는 필히 잘려 나가야 한다. | ||
+ | |||
+ | 대역폭 기존의 그누텔라 프로토콜이 다루지 않았던 또 다른 문제는 웹 기반 검색엔진이 네트워크에 많은 트래픽을 줄 뿐, 파일 공유는 하지 않는다는 점이다. 이런 서비스를 이용하는 사람들은 누구나 시스템을 여과시키고 대역폭을 남용하고 있다. 물론 이 모든 문제들에 대해 이런저런 말들이 많지만, 임시 해결책만으로는 부족하다. gPulp(general Purpose Location Protocol) 팀장인 [[세바스찬 램블라]] 같은 개발자들은 점검된 시스템에 대한 새로운 제안들을 그누텔라 홈페이지(gnutellaNG)에서 수집/작성하고 있었다. 이 팀은 [[W3C]], [[IETF]]를 비롯해 [[인텔]], [[시스코]] 같은 대기업들로부터 지원 및 방책을 구하고 있었다. 세바스찬은 gPulp 프로토콜이 네트워크에서 서버, 웹 주소, 무선 장비, 심지어는 연락 정보에 이르기까지 어떤 형식의 데이터라도 다 찾을 수 있을 것이라고 믿고 있었다. 그리고 새 프로토콜은 데이터를 전송하지는 않지만, 인터넷에서 어떤 것이라도 찾아내는 모든 프로그램을 연결함으로써 기존의 인프라를 보완해줄 것이다. 그 사이 법적 타당성이 의심스러운 정보원에서 음악을 다운로드하려는 사람들은 계속 냅스터, [[스카우어]](Scour), [[내피게이터]](Napigator)를 이용해야 하고, 그누텔라의 결함이 개선될 것인지 아니면 이것으로 종지부를 찍을 것인지는 앞으로 두고 본다는 의견이 나왔다.<ref>Aaron Pava ZDNet Music, 〈[http://www.zdnet.co.kr/view/?no=00000010011820 사용자 폭증에 시달리는 P2P 원조 「그누텔라」]〉, 《지디넷》, 2000-09-26</ref> | ||
+ | |||
+ | ;봇짐장수 그누텔라 | ||
+ | 인터넷의 처음 마음은 이랬다. 수많은 사람들이 평등의 전자 공간에 몰려들면서 사뭇 양상이 달라졌다. 정보를 요구하는 쪽과 제공하는 쪽이 클라이언트와 서버라는 이름으로 확연히 구분되고, 정보가 흐르는 범위도 온갖 성벽과 대문으로 출입이 봉쇄됐다. 성안에는 각종 돈 되는 정보를 가공하는 장사치들이 늘어나면서 `신경제'란 커다란 시장도 형성됐다. 일단 성을 벗어나 대량복제된 정보는 갖가지 저작권의 패찰을 달고 행세하기 시작했다. 위계·독점·집중의 시장윤리가 이곳에도 어김없이 들어섰다. 시장에 골칫덩이가 나타났다. 하릴없이 산천을 떠돌면서 정보를 사고파는 봇짐장수들이 여기저기서 출현했다. `그누텔라'도 그중 하나다. 냅스터와 달리 그누텔라는 중앙의 서버를 거치지 않으면서 사람들 간의 평등한 네트워크를 구현한다. 서버가 클라이언트와 구분되면 서버는 돈벌이용 개찰구로 군림한다. 이에 반해 그누텔라란 봇짐장수가 나타나면서 서버와 클라이언트는 하나가 된다. 봇짐장수는 이 마을 저 마을을 넘나들면서 정보를 팔거나 전하면서 사람들 간의 직접적 네트워크를 짜도록 돕는다. 밥 한술 대접에 선뜻 정보를 거저 내주기도 하면서, 멀리 떨어진 이들끼리 서로 필요한 정보의 교환을 주선한다. 발로 품을 팔며 사람들을 묶어줬던 봇짐장수의 구실은 시장의 위계를 무너뜨리는 일대일(P2P) 정보공유 체계인 그누텔라에 그대로 유지된다. 봇짐장수는 거래 기록을 남기는 법이 없다. 그저 머리에 기억된 길과 이름들뿐이다. 그가 만드는 네트워크 또한 내치는 발길에 의지한다. 그누텔라에서 교환되는 정보와 사람은 철저히 익명이다. 누군가 흐르는 정보를 강제로 감시하려 한다면 봇짐장수의 길을 꿰고 있을 때만 가능하다. 인터넷 전체를 통째로 가로막을 때나 가능하다는 얘기다. 저작권 위반 혐의로 옭아매기도 힘들게 됐다. 2001년 미국 월스트리트저널은 그누텔라가 새로운 웹 표준이 될 수 있다는 중요한 지적을 했다. 이 신문은 제2·제3의 그누텔라의 등장과 정보 검색기술의 진전이 닷컴 시장 모델을 밑에서부터 무너뜨릴 수도 있음을 알고 있다.<ref>이광석 뉴미디어 평론가, 〈[http://legacy.www.hani.co.kr/section-007009000/2001/06/007009000200106082141044.html 힘센 봇짐장수 '그누텔라']〉, 《한겨레》, 2001-06-08</ref> | ||
{{각주}} | {{각주}} | ||
== 참고자료 == | == 참고자료 == | ||
− | * https://ko.wikipedia.org/wiki/ | + | * 안철수연구소, 〈[http://a.to/19iCy92 네트워크를 이해하면 포렌식 분석이 쉽다 (1)]〉, 《안랩》, 2009-06-01 |
− | * https://blog.naver.com/ | + | * 이명헌, 〈[https://web.archive.org/web/20040812002643/http://www.emh.co.kr/xhtml/p2p_and_liberalism.html P2P . 냅스터 . 누텔라 . 그리고 프리넷.]〉, 《이명헌경영스쿨》, 2001-03-13 |
− | * | + | * 그누텔라 위키백과 - https://en.wikipedia.org/wiki/Gnutella#General_specifications |
− | * https:// | + | * P2P 위키백과 - https://ko.wikipedia.org/wiki/P2P |
− | * | + | * 내일을 향한 기대, 〈[https://m.blog.naver.com/kaoni_5700/50045717416 P2P(peer-to-peer)란 무엇인가?]〉, 《네이버 블로그》, 2009-04-11 |
− | * http:// | + | * 그누텔라2 위키백과 - https://en.wikipedia.org/wiki/Gnutella2 |
− | * http://act.jinbo.net/wp/2444/ | + | * 진 칸 위키백과 - https://en.wikipedia.org/wiki/Gene_Kan |
+ | * 한세희 기자, 〈[https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=105&oid=030&aid=0000032700 AOL타임워너 "프랭클이 미워"]〉, 《전자신문》, 2003-06-04 | ||
+ | * 저스틴 프랭클 위키백과 - https://en.wikipedia.org/wiki/Justin_Frankel | ||
+ | * 그누텔라 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=932393&cid=43667&categoryId=43667 | ||
+ | * 그누텔라 위키백과 - https://ko.wikipedia.org/wiki/%EA%B7%B8%EB%88%84%ED%85%94%EB%9D%BC | ||
+ | * 셀프리더, 〈[https://blog.naver.com/in4maker/100003854801 그누텔라 개발자 사망]〉, 《네이버 블로그》, 2004-07-06 | ||
+ | * Aaron Pava ZDNet Music, 〈[http://www.zdnet.co.kr/view/?no=00000010011820 사용자 폭증에 시달리는 P2P 원조 「그누텔라」]〉, 《지디넷》, 2000-09-26 | ||
+ | * 셀프리더, 〈[http://a.to/19wX9LL 그누텔라 프로토콜에 대하여]〉, 《네이버 블로그》, 2004-07-06 | ||
+ | * 이광석 뉴미디어 평론가, 〈[http://a.to/19dzHPI 힘센 봇짐장수 '그누텔라']〉, 《한겨례신문》, 2001-06-08 | ||
+ | * 노경윤, 〈[http://act.jinbo.net/wp/2444/ 정보공유/칼럼 새로운 인터넷을 꿈꾼다 – 그누텔라와 프리넷]〉, 《진보네트워크》, 2004-07-06 | ||
== 같이 보기 == | == 같이 보기 == | ||
− | * [[피투피]] | + | * [[피투피]] |
+ | * [[지엔유]] | ||
+ | * [[프로토콜]] | ||
+ | * [[노드]] | ||
{{인터넷|검토 필요}} | {{인터넷|검토 필요}} |
2024년 3월 19일 (화) 22:50 기준 최신판
그누텔라(Gnutella)란 아메리카 온라인(AOL)의 자회사인 널소프트(Nullsoft)가 개발한 파일 공유 프로그램이다. 그누텔라는 GNU + Nutella의 합성어로서 지엔유(GNU is no Unix)와 이탈리아의 제빵기술자 페레로(Ferrero)가 헤이즐넛에 초콜릿을 입힌 것에서 따온 이름 누텔라를 합친 것이다. 2000년 3월, 저스틴 프랭클(Justin Frankel)과 톰 페퍼(Tom Pepper)가 그누텔라의 첫 번째 프로그램을 개발했다.
[아사달] 믿을 수 있는 도메인 회사 |
개요[편집]
그누텔라는 피투피(P2P, Peer-to-Peer) 파일 공유 프로그램으로 사람들이 중앙 서버를 사용하지 않고도 인터넷을 통해 파일을 공유하며 주고받을 수 있도록 고안되었다. 그누텔라에서는 복잡한 주소를 직접 입력할 필요가 없으며 찾고 있는 파일의 이름만 검색하면 검색 결과가 나오게 되어 있다. 전자메일, 웹 페이지 같은 인터넷 기반 응용프로그램들은 네트워크상에서 라우터, 스위치 허브 같은 하드웨어와, TCP/IP 프로토콜 등에 의존하지만 그누텔라는 네트워크 구조가 순간순간 바뀌는 응용 네트워크를 구축하게 되어있다. 기조 네트워크의 경우 전화선 또는 케이블이 지반에 매설되어 있고 라우터는 고정되어 해당 경로 테이블에서 가장 빠른 경로를 선택하게 되어있는 반면 그누텔라에 참여하는 라우터와 경로는 순간마다 바뀌는 동적인 구조 위에 가상 기반 주소를 가지고 있다.[1]
그누텔라는 분산검색을 위한 프로토콜이다. 비록 그누텔라 프로토콜이 전통적인 클라이언트/서버 검색 모델을 지원하고는 있지만, 그누텔라의 특징은 피투피(P2P) 분산형 모델이라는 것이다. 이 모델에서, 모든 클라이언트는 서버이고, 모든 서버는 클라이언트이다. 그누텔라 서번트(Gnutella Servent)는 클라이언트와 서버의 기능을 동시에 작업하는 것을 의미한다. 서번트는 클라이언트 기능을 검색과 검색 결과를 통하여 제공하고, 이와 동시에 다른 서번트의 검색어를 접수 받아 사용자의 데이터와 비교 검색 후 이에 맞는 결과를 응답해 주는 서버의 기능을 하고 있다. 일부 서번트들의 네트워크가 오프라인이 되더라도 전체 그누텔라 네트워크의 운영에는 지장을 받지 않는 분산적인 특징 때문에, 서번트들의 네트워크는 매우 Fault-Tolerant 하다. 그누텔라 프로토콜은 서번트들이 네트워크를 통하여 대화할 수 있는 방법들을 정의한다. 다음은 그누텔라 프로토콜을 구성하고 있는 메시지들이다. 그누텔라 서번트는 현재 네트워크 안에 있는 다른 서번트들과 접속, 연결하는 과정을 통하여 스스로 네트워크에 연결한다. 하지만 다른 서번트들의 네트워크 주소를 획득하는 것은 프로토콜 정의에 포함되어 있지 않다. 이는 Host Cache라는 기술을 이용하여 그누텔라 서번트들의 네트워크 주소를 자동으로 획득한다. 일단 다른 서번트의 네트워크 주소를 획득하면 서번트와 TCP/IP 연결이 생기고, 그누텔라 서번트 간의 연결을 위한 문자열(ASCII)이 전송된다.
주요 인물[편집]
- 진 칸(Gene Kan) : 영국 태생의 중국계 미국인으로, 그누텔라 프로토콜을 구현한 파일 공유 응용 프로그램의 오픈 소스 버전을 제작한 최초의 프로그래머 중 한 명이었다. 진 칸은 스펜서 킴볼(Spencer Kimball)과 함께 지엔유(GNU) General Public License에 따라 라이센스가 부여된 "Gnubile"이라는 프로그램을 개발했다. 진 칸은 24살 때 스티브 워터하우스(Steve Waterhouse)와 또 다른 친구와 함께 분산 검색 엔진인 인프라서치(InfraSearch)를 만들었다. 진 칸은 썬 마이크로시스템즈에서 근무하면서 이 기술을 계속 연구했다. 진 칸은 피투피(P2P) 컴퓨팅을 옹호했으며, 일부는 그누텔라 개척자들과 함께 그 창립자로 인정했다. 진 칸은 그것이 분산 컴퓨팅이라고 불리는 기술적 분야의 일부라고 주장했다.[2]
- 저스틴 프랭클(Justin Frankel) : 윈앰프(Winamp) 미디어 플레이어 응용 프로그램 작업과 그누텔라 피투피(P2P) 네트워크 발명으로 가장 잘 알려진 미국 컴퓨터 프로그래머이다. 프랭클은 REAPER 디지털 오디오 워크 스테이션, NINJAM 공동 음악 도구 및 Jesusonic 확장 가능한 효과 프로세서와 같은 음악 제작 및 개발 소프트웨어를 만드는 콕코스(Cockos)의 창립자이다. MIT 테크놀로지 리뷰 TR100에서 35세 미만의 세계 100대 혁신가 중 한 명으로 지명되었다. 2000년 3월 14일 프랭클과 톰 페퍼는 널소프트의 기업 웹 서버를 사용해서 그누텔라를 출시했다. 이후 프랭클은 50명 정도로 구성된 네트워크에서 사용할 수 있는 소규모 P2P 소프트웨어 '웨이스트'를 개발했고, 널소프트의 홈페이지에 올렸다. [3]
역사[편집]
2000년 3월 그누텔라는 저스틴 프랭클(Justin Frankel)과 톰 페퍼(Tom Pepper)가 널소프트(Nullsoft)에서 개발했고, 3월 14일에 널소프트에서 다운로드할 수 있게 됐다. 그누텔라는 냅스터와 달리 중앙에서 개입하는 부분이 전혀 없었다. 아무도 사용자를 추적할 수 없을 뿐만 아니라 사용자들이 교환하는 파일의 목록을 만들 수도 없었다. 아무나 네트워크에 접속할 수 있는 소프트웨어를 만들 수 있었고 대부분이 오픈 소스 형태로 쓰였기 때문에 누구나 새로운 기능을 덧붙이거나 개선할 수 있었다. 그노텔라(Gnotella), 뉴텔라(Newtella), 그넛(Gnut), 라임와이어(LimeWire), 토드노드(ToadNode) 등 약 10여 종 이상의 그누텔라들이 무료로 배포됐다. 이 프로그램은 수천 명의 사람들이 다운받았다. 하지만 널소프트의 모회사인 아메리카 온라인(AOL)이 당시 타임 워너와 합병하려던 차였기 때문에 바로 중단됐다. 타임워너(Time Warner)는 음악/미디어 쪽의 거인이었기 때문이다. 하지만 사람들은 널소프트가 올렸다가 지운 그 코드를 이미 가져갔고, 이를 바탕으로 자신들만의 새로운 소프트웨어, 즉 유사품들을 만들었다. 호환되는 오픈소스 클론이 나타났고, '누텔라 연방'이 등장하게 되었다. 서로 다른 그룹에 의한 클라이언트와 유사한 개발은 오늘날 그누텔라 개발의 방법론으로 남아 있다.[4]
최초의 독립 그누텔라 개척자 중에는 진 칸(Gene Kan)과 스펜서 킴볼(Spencer Kimball)이 있었는데, 그들은 그누텔라를 작업하기 위해 오픈 소스 커뮤니티를 모으기 위한 첫 번째 포털을 시작했다. 그누텔라 프로토콜을 구현하는 최초의 오픈 소스 중 하나인 "Gnubile"을 개발했다. 그누텔라 네트워크는 패스트트랙(KaZaA)이나 원래의 냅스터와 같은 중앙화되지 않으며, 분산적이다. 이 네트워크의 초기 인기는 2001년 냅스터를 위협했던 법적 소멸에 의해 촉발되었다. 인기가 급증하면서 초기 프로토콜의 확장성의 한계를 드러냈다. 2001년 초, 프로토콜의 변화(독점적 및 폐쇄적 소스 클라이언트에서 처음 구현)는 확장성의 개선을 가능하게 했다. 모든 사용자를 클라이언트와 서버로 취급하는 대신, 일부 사용자는 초고속 사용자로 취급되어 그들과 연결된 사용자에 대한 검색 요청과 응답을 라우팅했다. 이로 인해 네트워크는 인기를 끌 수 있었다. 2001년 말, 그누텔라 클라이언트 라임와이어 베이직(LimeWire Basic)은 무료 오픈 소스가 되었다. 2002년 2월, 상용 파일 공유 그룹인 Morpheus는 패스트트랙 기반의 피투피(P2P) 소프트웨어를 포기하고 무료 오픈 소스 그누텔라 클라이언트 Gnucleus를 기반으로 한 새로운 클라이언트를 출시했다.
2010년 10월 26일, 인기 있는 그누텔라 클라이언트 라임와이어는 음반 업계 원고가 동의한 동의 법령에 서명하면서 뉴욕 남부 지방 법원의 킴바 우드(Kimba Wood) 판사로부터 폐쇄 명령을 받았다. 이것은 네트워크 규모가 눈에 띄게 줄어든 원인일 가능성이 높았는데, 이는 가처분 협상을 하는 동안 라임와이어 직원이 소프트웨어에 원격 비활성화 코드를 삽입했기 때문이다. 가처분 신청이 발효되면서 해당 버전(5.5.10 이하)을 설치한 사용자들은 피투피(P2P)망에서 차단됐다. 라임와이어는 무료 소프트웨어였기 때문에, 라임와이어 상표권이 사용되지 않는 한 비활성화 코드를 생략한 포크(fork)의 생성을 막을 수 없었다. 2010년 11월 9일, 라임와이어는 비밀 개발팀에 의해 부활하여 라임와이어 해적판이라는 이름이 붙여졌다. 라임와이어 5.6 베타(BETA)를 기반으로 했다. 이 버전은 서버 종속성을 제거했고 모든 PRO 기능을 무료로 가능하게 했다.[5]
특징[편집]
그누텔라는 네트워크를 구성하며 트랜잭션을 중재하는 관리자가 필요 없으며 그누텔라에 네트워크에 연결된 호스트만 자동으로 접속하도록 되어 있다. 그누텔라는 네트워크 분산을 이용하여 책임자를 누구라도 특정 지을 수 없으며 운영의 책임을 추궁하려면 수많은 수색영장, 집행 영장, 소환장을 발급하여 대대적인 수사 인력의 투입이 필요해야 가능하리라 추측하나 현실적으로는 거의 불가능하다고 할 수 있다. 최신 고성능 사양의 컴퓨터의 등장으로 그누텔라는 클라이언트와 서버를 한 시스템에 통합시켰으며 파일을 업로드하고 다운로드하는 2가지 방법을 통하여 인터넷 사용자들과 쉽게 접속이 가능하다. 소프트웨어 기반 네트워크로 형성된 그누텔라는 인터넷상의 이 기종 및 지역 네트워크들과의 통신을 가능하게 하는 라우터, 스위치 허브와 같은 장비를 구성하지 않고 있으며 통신 시설을 통합해서 한노드에서 사용자가 네트워크를 관리하도록 하고 있다. 그누텔라는 특정하게 네트워크 관리자가 지정되어 있지 않으며 분산 실시간 정보 검색 시스템으로 역할을 다하고 있는데 이러한 것을 현재 우리가 주변에서 쉽게 다운로드받는 파일 공유 프로그램으로 이해하면 될 것이다. 그누텔라에서 사용하는 인프라서치(InfraSearch)를 사용하면 현재 사용하는 표준 웹 브라우저에서 동일한 검색인터페이스에서 검색 질의어를 요구하면 키워드나 HTML로 이루어진 DB(DataBase)에서 질의에 대해 여러 개의 노드로 구성된 독립된 그누텔라 네트워크로 브로드캐스팅하게 되어있다. 노드 데이터에는 사진 이미지, 광고 메시지, 파일 이름, 계산기, URL, 뉴스 기사, 임의의 콘텐츠들과 같은 다양한 데이터들이 섞여 있으며 노드들에 포함된 데이터들은 관련 있는 정보가 공유된 경우 응답하도록 되어 있다.[1]
피투피[편집]
피투피(P2P, peer-to-peer network)란 기존의 서버와 클라이언트 개념에서 벗어나 개인 컴퓨터들이 네트워크로 연결되어 서로 정보와 자료를 공유하는 것을 말한다. 피투피(P2P) 통신망은 일반적으로 노드들을 규모가 큰 애드 혹으로 서로 연결하는 경우 이용된다. 이런 통신망은 여러 가지로 쓸모가 있는데, 오디오나 비디오, 데이터 등 임의의 디지털 형식 파일의 공유는 매우 보편적이다. 또한, 인터넷 전화(VoIP) 같은 실시간 데이터 등도 피투피(P2P) 기술을 통해 서로 전달될 수 있다.[6] P2P에는 크게 3가지 방식이 있다.
- 하이브리드 피투피 : 기존 서버,클라이언트 모델을 완전히 벗어나지 못한 형태의 P2P이다. 중앙서버가 존재해 중개 및 검색을 제공하고 데이터 전송은 개인 PC들 간에(peer) 주고받는 방식이다. 많이 사용하고 접하는 냅스터(Napster), 소리바다 같은 파일 공유 프로그램, 네이트온(NateOn) 등과 같은 메신저를 통한 파일 전송 등이 있다. 중앙서버가 존재해 검색이 빠르지만, 네트워크가 커질수록 중앙서버에 부담이 가며 중앙서버가 죽으면 전체 네트워크가 죽는 단점이 있다.
- 퓨어 피투피 : 중앙서버를 사용하지 않는 방식으로 네트워크에 참여하는 모든 컴퓨터는 똑같이 서버,클라이언트 역할을 겸하며 검색, 데이터 전송에 있어서 같은 책임을 진다. 이를 사용한 네트워크로 그누텔라나 프리넷(Freenet) 등이 있다. 전체 네트워크가 죽는 일이 거의 불가능하며, 네트워크 확장성이 매우 높고, 네트워크 증가에 따른 비용이 거의 없다. 또한 전 세계 모든 컴퓨터의 정보 자료를 100% 검색 및 공유가 가능하기도 하고, 제한된 커뮤니티 내에서 파일 정보 공유 네트워크를 구성할 수도 있다. 그리고 이런 각 네트워크끼리 연결하면 커뮤니티 상호 간의 정보 공유망 또한 자유롭게 구축할 수 있다. 반면 중앙 서버가 없기 때문에 네트워크를 제어할 수단이 없고, 파일 목록을 검색할 때마다 네트워크의 모든 컴퓨터를 검색해야 하므로 검색 속도가 크게 뒤떨어지며, 과도한 부하, 해킹 위험 등이 있다.
- 슈퍼 피어 : 슈퍼 피어(Super Peer) 방식은 하이브리드 피투피 방식과 퓨어 피투피 방식의 장점을 결합해 놓은 방식이다. 하이브리드 피투피 방식과 퓨어 피투피 방식은 중앙서버의 존재 유무에 따라 각각 장단점이 나타나는데 슈퍼 피어방식은 피투피 네트워크에 중앙서버 역할을 하는 슈퍼 피어들을 여러 개 둬서 네트워크를 구성하는 방법이다. 중앙서버가 존재하므로 검색의 속도가 빠르며, 또한 중앙서버가 여러 개 존재하므로 인해 하나의 중앙서버가 죽더라도 다른 중앙서버를 이용할 수 있는 방식이다. 반면 개념 자체만으로는 매우 간단해 보이지만 실제로 슈퍼 피어를 구현하기는 쉽지 않으며 게다가 슈퍼 피어에 대한 최적화된 이론이 정립되지 않은 상태여서 구현 방식에 따라서 천차만별의 성능을 보이는 것이 단점이다.[7]
그누텔라2[편집]
2002년 11월 마이클 스톡스(Michael Stokes)는 그누텔라2(Gnutella2) 프로토콜을 그누텔라 개발자 포럼에 발표했다. G2라고 부르기도 한다. 그누텔라 프로토콜에서 영감을 얻은 그누텔라2는 연결 핸드 셰이크 및 다운로드 메커니즘을 제외하고는 거의 디자인을 공유하지 않는다. 그누텔라2는 확장 가능한 바이너리 패킷 형식과 완전히 새로운 검색 알고리즘을 채택한다. 그누텔라2에는 관련 네트워크 토폴로지와 향상된 메타 데이터 시스템이 있어, 네트워크에서 바이러스와 같은 가짜 파일을 효과적으로 줄일 수 있다. 일부는 그누텔라2에 대해 언급된 목표가 그누텔라 0.6 프로토콜로 깨끗이 단절하고 다시 시작하는 것이라고 생각했다. 라임와이어(LimeWire)와 비어쉐어(BearShare)의 개발자들은 이것을 엄청난 홍보라고 생각했고, 일부에서는 여전히 네트워크를 그누텔라2라고 부르기를 거부했다. 대신 마이크로 프로토콜(MP)이라고 부르기도 한다. 그누텔라2 프로토콜은 여전히 그누텔라 0.6 규격에 정의된 연결에 구형 "GNUTELLA CONNECT/0.6" 핸드셰이크 문자열을 사용한다. 이 이전 버전과 호환되는 핸드 셰이크 방법은 그누텔라 개발자 포럼에 의해 관계없는 새로운 네트워크를 부팅시키기 위해 그누텔라 네트워크를 이용하려는 시도라는 비난을 받았으며, 그 네트워크 지지자들은 그것의 의도가 그누텔라와 이전 버전과 호환되도록 유지하고 지금 그누텔라를 허용하는 것이라고 주장했다. 개발자들의 입장이 굳어지고, 양측의 결단이 더욱 공고해졌다. 초안 사양은 2003년 3월 26일에 공개되었고, 곧 상세한 사양이 나왔다. 그누텔라2는 많은 그누텔라 네트워크 고객들에 의해 지원되지 않지만, 많은 그누텔라2 고객들은 여전히 그누텔라에 연결된다. 많은 그누텔라2 지지자들은 이것이 정치적인 이유 때문이라고 주장하는 반면, 그누텔라 지지자들은 이러한 급격한 변화들이 재작성 비용을 능가할 만한 충분한 장점이 없다고 주장한다.[8]
기능[편집]
그누텔라2는 XML 문서 트리와 비교할 수 있는 확장 가능한 이진 패킷 형식을 가지고 있다. 패킷 형식은 향후 네트워크 개선 및 개별 공급 업체 기능을 추가하여 네트워크의 다른 클라이언트에 버그를 발생시키지 않을 수 있도록 설계되었다. 파일 식별 및 파일의 안전한 무결성 검사를 위해 SHA-1 해시를 사용한다. 파일을 여러 소스에서 안정적으로 다운로드할 수 있을 뿐만 아니라 파일을 계속 다운로드하는 동안 부품의 신뢰할 수 있는 업로드가 가능하도록 하기 위해 Tiger 트리 해시를 사용한다. 그누텔라2는 검색을 위한 강력하고 완벽한 시스템을 만들기 위해 파일 이름으로 수집되는 것보다 더 완전한 라벨링, 등급 및 품질 정보를 검색 결과에 제공할 수 있는 메타데이터 시스템을 갖추고 있다. 노드는 파일을 삭제한 후에도 이 정보를 공유할 수 있어, 사용자가 복사본을 보관할 필요 없이 네트워크에 바이러스와 웜을 표시할 수 있다. 그누텔라2는 또한 네트워크 연결에서 압축을 이용하여 네트워크가 사용하는 대역폭을 줄인다. 쉐어라자(Shareaza) 에는 이미지 및 비디오의 미리 보기를 요청하는 추가 기능이 있지만 파일스코프(FilesScope) 만이 기능을 제한적으로 사용한다. gtk-gnutella는 프로토콜을 확장하여 그누텔라와 그누텔라2의 격차를 더욱 줄였다. 특히, 반 신뢰성 UDP 계층은 기존 그누텔라2 클라이언트와 역 호환되는 방식으로 누적 및 확장 확인을 추가하도록 향상되었다.[8]
차이점[편집]
- 프로토콜 : 그누텔라의 패킷 형식은 원래 확장성을 염두에 두고 설계되지 않았고 수년에 걸쳐 많은 추가 기능이 있어, 패킷 구조가 복잡하고 비효율적이었기 때문에 비판을 받았다. 그누텔라2는 이것으로부터 배웠고, 그누텔라2에 추가된 그누텔라 표준의 많은 기능을 제외하고는 처음부터 미래 확장성을 위해 설계됐다.
- 검색 알고리즘 : 그누텔라는 쿼리 플러딩 검색 방법을 사용하는 반면, 그누텔라2는 검색 노드가 허브(Hub) 목록을 수집하여 한 번에 하나씩 직접 연결하는 랜덤 워크 시스템을 사용한다. 그러나 허브가 스스로 조직하여, "허브 클러스터"(Hub clusters)라고 불린다. 각 허브는 이웃이 저장한 정보를 미러링하여 리프(Leaf)는 허브 클러스터 전체의 정보를 반환한다. 이것은 그누텔라의 쿼리 플러딩 시스템보다 몇 가지 장점이 있다. 검색을 계속해도 네트워크 트래픽이 기하급수적으로 증가하지 않고, 쿼리가 노드 수만큼 라우팅 되지 않으며, 검색의 세분 성을 증가 시켜, 결과의 미리 정의된 임계 값을 얻으면 그누텔라보다 효과적이다. 그러나 도보 시스템은 네트워크와 필요한 네트워크 유지 및 관리의 복잡성을 증가시키고, 악의적인 공격자가 서비스 거부 공격에 네트워크를 사용하지 못하도록 하는 안전장치를 요구한다.
- 용어 : 용어에도 차이가 있다. 네트워크를 압축하는 데 사용되는 더 유능한 노드는 그누텔라에서는 '울트라 피어'라고 하며, 그누텔라2에서는 '허브'라고 한다. 토폴로지에서는 약간 다르게 사용된다. 그누텔라에서 울트라 피어는 일반적으로 피어 연결만큼 많은 리프를 유지하는 반면, 그누텔라2 허브는 훨씬 더 많은 리프를 유지하고 더 적은 피어(허브 투 허브) 연결을 유지한다. 그 이유는 다양한 네트워크의 검색 방법이 서로 다른 최적의 토폴로지를 갖기 때문이다.[8]
이용 방법[편집]
그누텔라 네트워크에 참여하는 것은 간단하다. 누텔라 소프트웨어 패키지 중 하나를 웹을 통해 다운로드한 다음, 여러분의 컴퓨터를 "servent"(= server + client)로 바꾸면 된다. 그렇게 해서 그누텔라 네트워크상의 또 다른 '서번트(servent)'를 찾아서 서로 접촉한다. 이들 서번트의 주소는 여러 웹 사이트, 채팅방에서 쉽게 찾아볼 수 있다. 그누텔라를 이용한 접속은 분명히 인터넷상에서 이뤄지고 있고 모든 컴퓨터는 IP 주소를 통해 각각을 구분한다. 하지만 누텔라는 WWW가 아니다. 사용자의 컴퓨터는 또 다른 여러 대의 서번트와 커뮤니케이션하고 이들 서번트는 또 각자 파악하고 있는 또 다른 서번트에게 사용자의 메시지를 보내고 받는다. 이런 식으로 계속 확산되어 나가는 네트워크 되는 것이다. 파일을 찾기 위해서 키워드를 치면, 그 요청은 여러분 컴퓨터와 가장 가까운 이웃 컴퓨터로 보내진다. 이 메시지를 받은 컴퓨터는 우선 자신의 하드 디스크 드라이브를 뒤진 다음 맞는 것이 있으면 그 사실을 여러분 컴퓨터에 알려주고 여러분의 요청을 또 다른 서번트로 재전송합니다. 이걸 받은 서번트는 또 똑같은 과정을 반복한다. 그 결과, 단 한 번의 요청이 순식간에 수천 대의 컴퓨터로 퍼져나갈 수 있다.[4]
논란[편집]
- 확장성과 사용자 폭증
2000년 9월, 그누텔라가 집중화된 냅스터 네트워크처럼 확장성이 없다는 사실을 알려졌다. 이 말은 사용자가 많아질수록 효율이 떨어진다는 뜻이다. 사용자는 몇 주 동안 이 프로그램을 사용해 검색이나 질의를 하면 결과물이 거의 나오지 않다시피 했다. 파일 검색을 할 때면 시간이 경과돼 결과를 얻지 못하기 일쑤였다. 뭔가 잘못돼 가고 있었고 도대체 어떻게 되고 있는 것인지에 대한 여러 가지 가설들이 생겨났다. 병목현상 검색을 해도 결과가 나오지 않는 것은 그누텔라 네트워크의 병목현상 때문이라는 의견이 지배적이다.
이런 병목현상이 생긴 데는 몇 가지 이유가 있다. 첫째, 이 클라이언트 소프트웨어에 사용된 잘못된 코드다. 코드가 발표되고 나서 바로 AOL로부터 금지를 당했을 때 이 코드는 여전히 베타버전 상태였기 때문에 이것이 프로그래머들의 잘못이라고 할 수는 없다. 하지만 본질적으로 A라는 사용자가 오프라인 중에 있는 B라는 사용자의 파일을 찾을 경우, 이 소프트웨어는 이 파일이 원래 누구의 것인가를 추적하지 않고 대신 사용자 A와 연결된 모든 컴퓨터에 ‘푸시(push)’ 패킷 브로드캐스트를 전송한다. 전체 트래픽의 절반 이상이 호스트가 오프라인일 때 발생하는 라우팅 및 푸싱 기술 때문에 시스템 작동이 원활하지 않게 된다. 코드가 완전하고 대역폭을 소모하지 않는다 하더라도 56k 모뎀 사용자들의 경우 인터넷에 접속한 사람들과 보조를 맞출 수 있을 만큼 충분한 속도로 빠르게 다양한 검색 요구를 내보낼 수 없다. 너무 많은 사람이 동시다발적으로 검색을 수행할 경우 속도는 한층 더 느려진다. 또한 56k 모뎀 사용자들이 수백 명의 다른 사용자들을 연결하는 접점이 되거나 네트워크에 연결된 또 다른 인물이 되기 때문에 이 부분의 네트워크는 필히 잘려 나가야 한다.
대역폭 기존의 그누텔라 프로토콜이 다루지 않았던 또 다른 문제는 웹 기반 검색엔진이 네트워크에 많은 트래픽을 줄 뿐, 파일 공유는 하지 않는다는 점이다. 이런 서비스를 이용하는 사람들은 누구나 시스템을 여과시키고 대역폭을 남용하고 있다. 물론 이 모든 문제들에 대해 이런저런 말들이 많지만, 임시 해결책만으로는 부족하다. gPulp(general Purpose Location Protocol) 팀장인 세바스찬 램블라 같은 개발자들은 점검된 시스템에 대한 새로운 제안들을 그누텔라 홈페이지(gnutellaNG)에서 수집/작성하고 있었다. 이 팀은 W3C, IETF를 비롯해 인텔, 시스코 같은 대기업들로부터 지원 및 방책을 구하고 있었다. 세바스찬은 gPulp 프로토콜이 네트워크에서 서버, 웹 주소, 무선 장비, 심지어는 연락 정보에 이르기까지 어떤 형식의 데이터라도 다 찾을 수 있을 것이라고 믿고 있었다. 그리고 새 프로토콜은 데이터를 전송하지는 않지만, 인터넷에서 어떤 것이라도 찾아내는 모든 프로그램을 연결함으로써 기존의 인프라를 보완해줄 것이다. 그 사이 법적 타당성이 의심스러운 정보원에서 음악을 다운로드하려는 사람들은 계속 냅스터, 스카우어(Scour), 내피게이터(Napigator)를 이용해야 하고, 그누텔라의 결함이 개선될 것인지 아니면 이것으로 종지부를 찍을 것인지는 앞으로 두고 본다는 의견이 나왔다.[9]
- 봇짐장수 그누텔라
인터넷의 처음 마음은 이랬다. 수많은 사람들이 평등의 전자 공간에 몰려들면서 사뭇 양상이 달라졌다. 정보를 요구하는 쪽과 제공하는 쪽이 클라이언트와 서버라는 이름으로 확연히 구분되고, 정보가 흐르는 범위도 온갖 성벽과 대문으로 출입이 봉쇄됐다. 성안에는 각종 돈 되는 정보를 가공하는 장사치들이 늘어나면서 `신경제'란 커다란 시장도 형성됐다. 일단 성을 벗어나 대량복제된 정보는 갖가지 저작권의 패찰을 달고 행세하기 시작했다. 위계·독점·집중의 시장윤리가 이곳에도 어김없이 들어섰다. 시장에 골칫덩이가 나타났다. 하릴없이 산천을 떠돌면서 정보를 사고파는 봇짐장수들이 여기저기서 출현했다. `그누텔라'도 그중 하나다. 냅스터와 달리 그누텔라는 중앙의 서버를 거치지 않으면서 사람들 간의 평등한 네트워크를 구현한다. 서버가 클라이언트와 구분되면 서버는 돈벌이용 개찰구로 군림한다. 이에 반해 그누텔라란 봇짐장수가 나타나면서 서버와 클라이언트는 하나가 된다. 봇짐장수는 이 마을 저 마을을 넘나들면서 정보를 팔거나 전하면서 사람들 간의 직접적 네트워크를 짜도록 돕는다. 밥 한술 대접에 선뜻 정보를 거저 내주기도 하면서, 멀리 떨어진 이들끼리 서로 필요한 정보의 교환을 주선한다. 발로 품을 팔며 사람들을 묶어줬던 봇짐장수의 구실은 시장의 위계를 무너뜨리는 일대일(P2P) 정보공유 체계인 그누텔라에 그대로 유지된다. 봇짐장수는 거래 기록을 남기는 법이 없다. 그저 머리에 기억된 길과 이름들뿐이다. 그가 만드는 네트워크 또한 내치는 발길에 의지한다. 그누텔라에서 교환되는 정보와 사람은 철저히 익명이다. 누군가 흐르는 정보를 강제로 감시하려 한다면 봇짐장수의 길을 꿰고 있을 때만 가능하다. 인터넷 전체를 통째로 가로막을 때나 가능하다는 얘기다. 저작권 위반 혐의로 옭아매기도 힘들게 됐다. 2001년 미국 월스트리트저널은 그누텔라가 새로운 웹 표준이 될 수 있다는 중요한 지적을 했다. 이 신문은 제2·제3의 그누텔라의 등장과 정보 검색기술의 진전이 닷컴 시장 모델을 밑에서부터 무너뜨릴 수도 있음을 알고 있다.[10]
각주[편집]
- ↑ 1.0 1.1 안철수연구소, 〈네트워크를 이해하면 포렌식 분석이 쉽다 (1)〉, 《안랩》, 2009-06-01
- ↑ 진 칸 위키백과 - https://en.wikipedia.org/wiki/Gene_Kan
- ↑ 한세희 기자, 〈AOL타임워너 "프랭클이 미워"〉, 《전자신문》, 2003-06-04
- ↑ 4.0 4.1 이명헌, 〈P2P . 냅스터 . 누텔라 . 그리고 프리넷.〉, 《이명헌경영스쿨》, 2001-03-13
- ↑ 그누텔라 위키백과 - https://en.wikipedia.org/wiki/Gnutella#General_specifications
- ↑ P2P 위키백과 - https://ko.wikipedia.org/wiki/P2P
- ↑ 내일을 향한 기대, 〈P2P(peer-to-peer)란 무엇인가?〉, 《네이버 블로그》, 2009-04-11
- ↑ 8.0 8.1 8.2 그누텔라2 위키백과 - https://en.wikipedia.org/wiki/Gnutella2
- ↑ Aaron Pava ZDNet Music, 〈사용자 폭증에 시달리는 P2P 원조 「그누텔라」〉, 《지디넷》, 2000-09-26
- ↑ 이광석 뉴미디어 평론가, 〈힘센 봇짐장수 '그누텔라'〉, 《한겨레》, 2001-06-08
참고자료[편집]
- 안철수연구소, 〈네트워크를 이해하면 포렌식 분석이 쉽다 (1)〉, 《안랩》, 2009-06-01
- 이명헌, 〈P2P . 냅스터 . 누텔라 . 그리고 프리넷.〉, 《이명헌경영스쿨》, 2001-03-13
- 그누텔라 위키백과 - https://en.wikipedia.org/wiki/Gnutella#General_specifications
- P2P 위키백과 - https://ko.wikipedia.org/wiki/P2P
- 내일을 향한 기대, 〈P2P(peer-to-peer)란 무엇인가?〉, 《네이버 블로그》, 2009-04-11
- 그누텔라2 위키백과 - https://en.wikipedia.org/wiki/Gnutella2
- 진 칸 위키백과 - https://en.wikipedia.org/wiki/Gene_Kan
- 한세희 기자, 〈AOL타임워너 "프랭클이 미워"〉, 《전자신문》, 2003-06-04
- 저스틴 프랭클 위키백과 - https://en.wikipedia.org/wiki/Justin_Frankel
- 그누텔라 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=932393&cid=43667&categoryId=43667
- 그누텔라 위키백과 - https://ko.wikipedia.org/wiki/%EA%B7%B8%EB%88%84%ED%85%94%EB%9D%BC
- 셀프리더, 〈그누텔라 개발자 사망〉, 《네이버 블로그》, 2004-07-06
- Aaron Pava ZDNet Music, 〈사용자 폭증에 시달리는 P2P 원조 「그누텔라」〉, 《지디넷》, 2000-09-26
- 셀프리더, 〈그누텔라 프로토콜에 대하여〉, 《네이버 블로그》, 2004-07-06
- 이광석 뉴미디어 평론가, 〈힘센 봇짐장수 '그누텔라'〉, 《한겨례신문》, 2001-06-08
- 노경윤, 〈정보공유/칼럼 새로운 인터넷을 꿈꾼다 – 그누텔라와 프리넷〉, 《진보네트워크》, 2004-07-06
같이 보기[편집]