Can you summarize the following document?
        
  Gnutella網路的第一個客戶端由Nullsoft公司的賈斯汀·法蘭科(Justin Frankel)與湯姆·帕勃(Tom Pepper)於2000年早期最先開發。同年3月14日,該程式被放在Nullsoft的伺服器上並允許公眾下載。該程式的原始碼原計劃稍後在GNU通用公共許可證下被髮布。  與半集中式網路如FastTrack(KaZaA)以及Napster不同,Gnutella網路是完全分散式的。其最初的流行是源於2001年早期Napster由於法律糾紛而被關閉的威脅。不斷增長的使用者也使得該協議的最初版本暴露了不少缺陷。2001年早期,各種不同版本的協議(最初以專有閉源客戶軟體形式實現)使得Gnutella的擴充套件性得到了增強。與先前的協議將每一個使用者節點都當作使用者以及伺服器不同,改進過的協議將某些使用者當作"超節點"(ultrapeer),其為與之連線的所有使用者路由搜尋請求及迴應。  這些發展使得Gnutella網路進一步吸引了更多使用者。2001年晚期,一種Gnutella客戶端軟體LimeWire成為免費開源軟體。2002年2月,Morpheus,一個商業檔案共享開發群,放棄了原先的基於FastTrack的端到端軟體,併發行了新的基於免費開源Gnutella客戶端軟體Gnucleus的新客戶端軟體。  "Gnutella"這個詞語現在被來指作被不同的客戶端軟體使用的一種開放網路協議,而不用來指作任何一個單獨的專案或者某一個軟體。由於許多不同的組織都在開發新的客戶端軟體,而且該協議本身也將不斷演變,Gnutella這個詞語的意義在將來或許也會變化。  Gnutella這個名字是"GNU"與"Nutella"的混成詞:人們普遍認定法蘭科與帕勃在開發Gnutella專案的時候吃了許多的Nutella,並且希望在GNU通用公共許可證下完成專案。Gnutella並未與任何GNU專案相關聯;關於Gnutella在GNU中的相關專案,可以參見GNUnet。

  要了解Gnutella網路是怎樣工作的,先設想一個大的由使用者(稱為“節點”)組成的環,每個節點都有Gnutella客戶端軟體執行。當初始啟動時,客戶端軟體必須進行自舉(Bootstrapping)並找到至少一個其它節點,有多種不同的方法可以達到這一功能,包括軟體內建的一組正在工作的已經存在的地址列表,Web快取的已知節點更新(稱為GWebCaches), UDP伺服器快取以及IRC。一旦連線上,客戶端就會請求一張活動地址列表。  當使用者想要進行搜尋時,客戶向每一個活動聯接節點傳送請求。在歷史上(協議0.4版本),一個客戶的活動聯接節點數十分小(大約是5),所以每一個收到請求的聯接節點都會再向其自身的所有聯接節點轉發該條請求,如此繼續下去,直到該請求資料包在網路中被轉發的“跳數”超過一個預先設定的數值(最大為7)。  到了0.6版之後,Gnutella網路中的節點被劃分為葉節點(leaf nodes)與超節點(ultra nodes或ultrapeers)。每個葉節點僅與少數(一般為3)超節點連線,而每一個超節點與多於32個的其它超節點相連。在這種更高的出度(outdegree)下,先前提到的一條查詢在網路中能達到的最大“跳數”被降低到4。  葉節點與超節點利用查詢路由協議(Query Routing Protocol)來交換查詢路由表(Query Routing Table (QRT))。葉節點將它的QRT傳送到每一個與之連線的超節點,超節點隨後將每一個與之相連線的葉節點傳來的QRT以及其本身的QRT合併,並且將其與自身的鄰居節點交換。  在實際中,這種在Gnutella網路中的搜尋模式是十分不可靠的。由於每一個節點都是一臺普通的計算機使用者,他們經常連線或者斷開網路,所以整個Gnutella網路結構永遠都不是完全穩定的。Gnutella網路搜尋的頻寬消耗也是隨著連線使用者的增加而指數遞增的,經常飽和的連線會導致較慢的節點失去作用。因此,搜尋請求在網路中會被經常丟棄,與整個網路相比,大多數的查詢只會到達其中的很少一部分節點。

  Gnutella曾經是一種純粹的基於洪泛式請求(query flooding)協議。早期的Gnutella 0.4版使用5種不同的資料包種類,即是:  以上不同訊息包的定義主要是為了處理Gnutella網路中的搜尋功能。檔案傳輸功能是由HTTP協議實現的。  Gnutella協議的開發目前由GDF(Gnutella開發者論壇)所領導。許多擴充套件協議已經或正在由不同的軟體商以及GDF的自由開發人員開發。這些擴充套件包括智慧查詢路由(intelligent query routing)、SHA-1校驗碼、query hit transmission via UDP、基於UDP的查詢(querying via UDP)、基於TCP的動態查詢(dynamic queries via TCP)、基於UDP的檔案傳輸(file transfers via UDP)、XML後設資料、source exchange(也被稱為"the download mesh)以及parallel downloading in slices(swarming)。  在Gnutella開發網站上有試圖在Gnutella 0.6版中將這些協議擴充套件規範完成的相關努力。由於所有的協議擴充套件還只是作為提議而存在於規範中,因此儘管已經過時,Gnutella 0.4版的標準至今仍是最新的完整技術規範。實際上,GDF的開發人員指出在目前的Gnutella網路中使用0.4版的訊息握手機制已經十分困難,或者根本不可能,開發人員應該遵循正在編寫中的技術規範來進行開發工作。

  Gnutella2並不是Gnutella的繼承者,而是Gnutella網路協議的一個分支,其於Gnutella相比既有優點也有自己的缺點。 A sore point with many Gnutella supporters is that the "Gnutella2" name conveys an upgrade or superiority.
Gnutella(,單詞中的"g"不發音,或者發音為)是一種檔案共享網路。2005年6月,gnutella約有181萬臺使用者(計算機),而2006年1月增加到超過300萬個節點。截至2007年底,它是網際網路上最流行的檔案共享網路,估計市場份額超過40%。