한국   대만   중국   일본 
그누텔라 - 위키百科, 우리 모두의 百科事典 本文으로 移動

그누텔라

위키百科, 우리 모두의 百科事典.
( 누텔라 (네트워크) 에서 넘어옴)

누텔라 또는 그누텔라 (Gnutella)는 中央 集中式 서버를 두지 않고 P2P 파일 共有 네트워크를 構成하기 위한 分散 소프트웨어 프로젝트이다.

歷史 [ 編輯 ]

2000年 初에 AOL의 子會社인 널소프트 저스틴 프랑켈(Justin Frankel) 톰 페퍼(Tom Pepper) 가 첫 番째 프로그램을 開發했다. 그 해 3月 14日 Nullsoft에서 파일을 내려받을 수 있었으며, Slashdot에 紹介된 첫 날 수 千名이 프로그램을 내려 받았다. Nullsoft의 母會社인 아메리카 온라인 (AOL)李 當時 音樂/미디어 쪽의 巨人인 타임 워너 와 合倂하려던 茶였기 때문에 配布된 다음날 내려 받기는 中止된다.

하지만 이미 祕密은 漏出되어 버린 뒤였다. Nullsoft가 올렸다가 지운 그 코드를 해커들이 낚아채서 이를 바탕으로 自身들만의 새로운 소프트웨어로 만들었다. 그 結果 不過 몇 週日 만에 웹 上에는 여러 種의 相互互換的인 누텔라 類似品이 登場한다.

누텔라는 냅스터 와 달리 中央에서 介入하는 部分이 全혀 없다. 2001年初 냅스터의 法廷 攻防으로 P2P 네트워크가 有名稅를 타게 되고 누텔라는 많은 使用者를 確保하게 된다. 하지만 初期 프로토콜의 擴張性 問題 (使用者가 많아질수록 다운로드가 어려워지는 問題)가 드러나게 된다. 開發者들이 擴張性 問題를 克服하는 새로운 누텔라를 開發하며, 새로운 피어간 經路 설정 技法인 "ultrapeers" 槪念을 提示한다.

"누텔라"는 특정한 프로젝트나 프로그램의 이름뿐만 아니라, 여러 클라이언트들에게 使用되는 一般的인 프로토콜의 意味를 갖기도 한다. 곳곳에서 새로운 클라이언트와 프로토콜 들이 開發되고 있으므로, "누텔라"가 未來의 P2P 標準이 될 것이라는 壯談은 할 수 없다.

Frankel과 Pepper는 누텔라를 開發하는 동안 Nutella(spread의 한 種類)를 많이 먹었고 소스를 GNU GPL 라이선스 下에 配布해서 "Gnutella"라는 이름이 誕生했다. 누텔라는 GNU 프로젝트와 聯關이 없다.

動作 方式 [ 編輯 ]

누텔라 네트워크에 參與하는 것은 어렵지 않다. 누텔라 소프트웨어 패키지 中 하나를 웹을 통해 다운로드한 다음 프로그램을 設置한 뒤, 누텔라 네트워크 上의 적어도 하나의 다른 노드를 찾아 連結하면 된다.

누텔라 노드를 찾는 方法은 클라이언트 프로그램에 미리 登錄되어 있는 노드를 利用하는 方法, "Gwebcache"를 利用하는 方法, 그리고 IRC 채팅房에서 찾는 方法이 있다.

새로 누텔라 네트워크에 接續하고자 하는 노드 A와 旣存에 누텔라에 接續해 있던 노드 B가 存在한다고 하자. 노드 A가 노드 B와의 連結을 完了하면 노드 B는 누텔라에 連結된 노드들의 住所를 노드 A에게 電送한다. 노드 A는 一定 水準 以上의 노드들(使用者가 上限線 決定)과 連結될 때까지 手動으로 設定한 住所와 다른 노드들이 電送해 준 노드들의 目錄을 이웃으로 追加해 나간다. 連結을 試圖해서 連結이 正常的으로 이루어진 노드만을 이웃으로 認定한다.

파일을 찾기 爲해서 키워드를 치면, 그 要請은 自身과 가장 가까운 이웃 노드로 보내진다. 이 메시지를 받은 컴퓨터는 먼저 自身의 하드 디스크 드라이브를 뒤진 다음 맞는 것이 있으면 그 事實을 노드 A에게 알려주고 要請을 또 다른 노드로 다시 電送한다. 이걸 받은 노드는 또 똑같은 過程을 反復한다. 그 結果, 單 한 番의 要請이 瞬息間에 數千 臺의 컴퓨터로 퍼져나갈 수 있다.

노드 A가 要請한 파일을 가지고 있는 노드는 노드 A와 直接 通信하여 電送與否를 決定한다. 萬一 要請한 파일이 여러 노드에 同時에 存在한다면 노드 A는 分割 다운로드를 遂行하여 다운로드 速度를 높인다. 한 番 이웃으로 登錄된 노드들은 프로그램 終了後 다음에 다시 使用할 수 있다.

프로토콜의 特徵과 擴張 [ 編輯 ]

누텔라는 質疑 플러딩 프로토콜이다. 누텔라 0.4 버전은 다섯가지의 패킷 類型을 提供한다.

  • ping: 네트워크 호스트 찾기
  • pong: 핑(ping)에 對한 應答
  • query: 파일을 찾기 爲해
  • query hit: query에 對한 應答
  • push: (防火壁 뒷쪽의 노드에게) 要請한 파일 다운로드

패킷 類型들은 住所 누텔라 네트워크를 찾는 것과 關聯되어 있고, 파일 電送은 HTTP를 통해 이루어진다.

現在 누텔라 프로토콜의 開發은 GDF (Gnutella Developer Forum)에서 主導하며, 소프트웨어 벤더와 GDF의 開發者들에 依해 프로토콜의 改善이 이루어지고 있다. 改善 內容은 知能的인 質疑 經路 설정, SHA checksums, 여러 노드로부터 同時에 내려받기(swarming)등이 있다.

現在 누텔라 프로토콜 開發 웹사이트에서는 누텔라 0.6 스펙을 마지막으로 프로토콜을 完成하려고 하고 있다. 0.4 버전은 오래된 프로토콜이지만 아직도 使用되고 있으며, 이를 막을 方法은 없다.

2003年 1月, Shareaza 는 檢索을 위해 TCP가 아닌 UDP를 使用하는 누텔라2 프로토콜을 發表했다. 누텔라 2는 패킷 포맷에 XML 技法을 適用하고 많은 擴張 機能들을 包含한다. 하지만 누텔라2를 支援하는 다른 클라이언트는 Gnucleus뿐이며 누텔라 開發者들은 GDF의 承認을 받지 않은 누텔라 2를 認定하지 않는다.

같이 보기 [ 編輯 ]

參照 사이트 [ 編輯 ]