舊文件

此處文件僅供參考,請自行考量時效性與適用程度,其他庫藏文件請參考文件頁面
我們亟需您的協助,進行共筆系統搬移、及文件整理工作,詳情請查閱參與我們

使用者討論:Etsos

出自 MozTW Wiki

於 2007年12月27日 (四) 21:38 由 Etsos對話 | 貢獻 所做的修訂 (突破E-mail 限制,瞬間大檔案分享)

免費下載安裝Pando

[轉貼] 為什麼BT沒有內建搜尋功能

透視BT(四)──為什麼BT沒有內建搜尋功能?

四月 14, 2007 由 Days

“Blog 的新位置在 http://mmdays.com,本Blog將在 12/22 號之後,不同步更新。還請網友轉往新站留言:)”

Posted by Mr. Friday

前幾篇BT系列文刊出之後迴響熱烈, 看來大家都有聽過BT的名頭, 或多或少也都曾經下載過 , 不過對於BT在各種層面的影響似乎沒有非常深的認識. 今天要來討論的主題顯然也是許多使用者長年以來的疑問: 為什麼BT沒有內建搜尋功能? 雖然真正的答案可能只有Bram Cohen才知道, 不過這裡將從P2P軟體設計及網站架設的困難度, 試著尋求合理的解釋.

如果你想用P2P軟體下載檔案, 不論你使用哪種程式, 一貫的動作順序是:

輸入關鍵字 -> 找到檔案資訊 -> 進行下載

以往的分享軟體自Napster以降, 都包含了整套的配件, 讓使用者可以一氣喝成的完成從搜尋到下載的動作. 然而到了 BT, 卻變成

輸入關鍵字(在別的論壇) ->找到檔案資訊(在別的論壇) -> 連線到BT tracker(在BT端) -> 進行下載(在BT端)

變成兩段式的了. 換言之, BT下載機制本身完全跳過搜尋的過程, 它完全是在”使用者已經找到要的檔案了, 只缺下載”的假設下運作. 為什麼會這樣? 最可能也最合理的猜測是, 搜尋這件事比大家想像得還要困難, 尤其是在P2P網路中.

今天有很多人對於”P2P”的印象都停留在ezPeer, Kuro跟Foxy這些下載軟體, 事實上這些軟體的流行在極大的程度上誤導了很多使用者: 它們在結構上都不是真正純粹的P2P. 真正學術上對P2P的定義是: 任何角色隨時都可以被其他人所替代的一種合作模式. 純粹的P2P是什麼意思呢? 讓我舉個例子. 假設今天是某間國小開學的第一天, 老師來了, 告訴同學們要選一個班長. 推舉班長的方法當然很多, 以下是兩種可能的方式:

1. 由老師直接指定

2. 同學們互相推舉, 最後投票選出來一個班長. 選舉過程老師沒有插手干預.

第一種投票方法, 屬於非常典型的”主從式架構”,英文稱之為client/server model. 在這種架構中, 存在著一個幾乎是全知全能, 其他人無法取代的角色:Server(本例中是老師). 由Server對其他人發號司令. 這種作法的好處是號令統一, 命令的傳達非常迅速, 缺點是client(學生)一多server(老師)就難以招架, 而一旦老師招架不住掛點之後, 學生就會群龍無首,難以控制.

第二種方法, 則是標準的”純P2P式架構”, 英文稱之”Pure P2P”. 在推舉過程中, 每一個人都處在平等地位, 都有可能選上班長. 而選上班長的人雖然可能暫時來講會比其他同學高一級, 但由於他是從一般同學中推選出來的, 一旦被發現不適任, 大家隨時可以再用相同投票方法從同學中選出新班長. 這種作法的好處是, 如果投票的方法設計得好, 是可以讓幾千幾萬個同學在幾分鐘間選出新班長的, 而且不用擔心若有人缺席會導致無法選出班長.

P2P被應用在很多場合, 比如說還在發展中的sensor network, 或是各種無線通訊裝置(例如手機)如何在沒有基地台的情況下與其他手機連絡等等. 當然, 網路下載也可以是一種. 以前面的例子來解釋, P2P下載就像是把全世界的網友都被視作是班上的一個同學, 檔案交換則視為是同學間私下互相交換小玩具. 然而此時麻煩就出現了, 如果沒有領導者如老師或班長的幫忙, 一個同學要如何知道哪個同學有他想要的玩具呢?

如同前面的例子, 搜尋的方法也分成兩種, 一種是主從式架構型的, 一種是純P2P式的. 很不幸的, 純P2P式的搜尋到目前為止, 可說都是非常沒有效率的(只有極少極少的例外). 純P2P型搜尋方式的代表為Anthill. 顧名思義, 搜尋的過程就像螞蟻找食物, 使用者發出很多小小隻的螞蟻, 挨家挨戶的去敲門, 看看有沒有好心人願意提供使用者想要的食物. 有的話就傳送回來. 沒有的話? 只好認栽. 事實上因為網路使用者眾多, 小螞蟻們根本不可能爬完所有門戶, 所以這種搜尋方式也不能保證找到應該要有的檔案. 這種略帶殘缺的搜尋方式被應用在早期的Gnutella, FreeNet, 以及現在日本的winny.

主從式的搜尋方法就比較有效率. 一開始由一個人負責匯整班上所有同學手上的清單, 然後再讓同學根據清單來找尋他想要的玩具. 不會出現”明明網路上有人有檔, 為啥程式告訴我找不到”的現象. 早期大紅的Knapster就是這類的代表. 不過就如同我前面所說主從式的缺點: 雖然有效率, 可是遇到人多的時候就會塞車, 伺服器端的資源耗得又凶又快. 不僅如此, 在數位音樂時代, 又多了一項大缺點: 容易被告! Knapster的伺服器因為擁有所有人的檔案清單, 一下子就被RIAA給告倒了. 伺服器掛點後, Knapster有如樹倒猢猻散, 曾經擁有的數百萬名使用者從此轉投他人懷抱, 即使多年之後Knapster 2.0再起, 也無法回到當年榮景.

所以P2P式的下載環境就沒辦法兼顧有效率的搜尋方式, 同時避免被告的風險嗎? 為解決這個問題, 出現了現在大家所熟知的KaZaA 以及 eMule. 這兩種檔案分享軟體的作法處於上述兩者中間, 兼顧了主從式的搜尋架構, 以及純P2P式不因單一伺服器故障就整個系統掛掉的優點. 這種方法稱之為: 混合式P2P (Hybrid P2P)

相信看到這個圖就很好理解了吧! 在混合式P2P架構中, 存在著一批伺服器. 每一台伺服器服務一部分的使用者. 當使用者想找檔案時, 伺服器先找找看自己手上的名單中有沒有符合的, 同時也順便問問其他伺服器有沒有看過這個檔案. 這種做法稱為混合式的原因是, 說它是主從式嘛…伺服器間是以純P2P的方式合作, 說是純P2P嘛, 又存在著一般使用者與伺服器的分野, 彼此不能互換. 因為難以界定到底是哪種, 所以被稱為混合式. 混合式P2P算是兼顧了主從式架構在搜尋上的效率, 也舒緩了單一伺服器的效能瓶頸. 如果其中某一台伺服器掛了, 至少還有別台當候補. 混合式P2P好處眾多, 也因此成為eDonkey, eMule, KaZaA等軟體的主要架構, 但唯一的缺點就是, 還是需要相當多的資源, 才能架起一台伺服器.

看到這裡, 大家應該多少開始對BT為什麼沒有內建搜尋機制心底大概有個譜. KaZaA是一家商業公司, 找資金來架伺服器不是問題(尤其現在KaZaA公司又出了Skype, 應該賺翻了). eMule前身是eDonkey, eDonkey也是由一家叫MetaMachine的公司所開發的, 因此草創初期的Server也不愁沒有人出資來架. BT的開發者Bram Cohen呢? 很抱歉, 他顯然什麼資源都沒有. 從Mr. Friday自己的角度出發, 如果今天我沒錢去架混合式P2P所需要的Server, 又忍受不了純P2P式極爛的搜尋環境, 那我會怎麼做呢? 乾脆不做搜尋功能. 我們今天看到的BT程式, 都假設使用者已經找到要下載的torrent檔了, 很顯然就是在這種情況下誕生的. 也因此, BT大量仰賴全世界各地的論壇, 因為若沒有這些論壇提供BT檔搜尋功能, 很多人大概一輩子也找不到他要的torrent檔在哪邊. 那麼未來BT有沒有辦法再修改程式, 改成eMule那樣子, 可以自動搜尋torrent檔在哪? 我不知道, 不過顯然很困難, 因為重寫程式是一件很麻煩的事情, 而且從Bram Cohen的網頁上看來, 他的重心已經不在維護BT程式碼上面了.

那麼BT現在發展出的DHT技術呢? DHT技術也是一種純P2P式的機制, 目的在把Tracker(仔細想想會發現, 這是BT中唯一以主從式架構設計的東西)架空, 變成完全由使用者分擔紀錄使用者名單的機制 : 每個人分別紀錄一些名單, 連線時只要先找到一個人就可以逐漸得到所有人的名字. 由於有些超級使用者總是在線上, 參與下載的BT檔又多, 因此手上有各種BT檔的參與成員名單, 隱隱然有一點eMule伺服器的味道, 那透過搜尋這些超級使用者手上的BT紀錄來實現搜尋功能呢? 嗯, 這是個可行的做法, 但是還需要一段時間的發展, 畢竟在BT裡面並沒有針對搜尋來做最佳化的演算法: 如何有效率的儲存每個人手上的BT人員名單? 用什麼方法來搜尋超級使用者(派出螞蟻雄兵在超級使用者家門口敲門, 超級使用者家會被塞爆唷, 真正厲害的搜尋法不用派出那麼多人就可以找到想要的資訊了)? 甚或是怎麼判定哪些人是超級使用者… 這些問題若沒有好的解答, 那BT在搜尋這方面就還有很長的路要走.

透視BT系列在這邊暫時告一個段落, 接下來會不會再寫P2P相關應用的系列? 也許會, 不過就要看有沒有讓我感興趣, 覺得值得介紹給大家的內容囉!

p.s. 最近看到一篇PPStream, PPLive, Sopcast等網路電視的流量測試報告, 雖然這些程式本身設計方式都是保密的, 但是從測試報告中可以讀到什麼? 嗯嗯, Mr. Friday還在鑽研中, 不過看來蠻有趣的喔, 也許之後會寫一篇也說不定!

新富階級VS新貧窮級的思考邏輯

新富階級的思考邏輯是「加法的邏輯」,他們考慮的並不是「我能以多低的價格拿到這個東西」(這個稱為減法的邏輯),而是「如果我要花這樣的錢,能產生多少更大的效益」。

突破E-mail 限制,瞬間大檔案分享

突破E-mail 限制,瞬間大檔案分享 厭倦了Email只有10MB容量大小的限制嗎?緊急的時候要傳輸檔案,但是公司的MIS卻始終不肯開放防火牆?求人不如求己,使用Pando可以幫助你突破公司的限制,利用Email就可輕鬆分享高達1GB的檔案。


當你要傳送大型檔案的時候,最大的困擾就是不管用哪一種方法,都會有檔案容量傳輸限制的問題。尤其是Email或是Web Mail,再怎麼號稱容量沒有限制,但是每次單封信件附加檔案的最大容量往往還是只有10MB的大小。這對現在的使用需求來說,可能連傳個 PowerPoint檔案都不夠,實在很不便利。可是,使用Email或是即時通訊軟體,又是一種比較便捷的方式。從即時性來說,用IM軟體通知對方最迅速。如果對方不在位置上,也可以用Email的方式來通知對方接收檔案,都是比較具有時效性的方法。因此,如果有一種方案既可以兼顧時效性,又可以突破檔案傳輸的限制的話,就是理想的解決方案。Pando是一個使用起來非常簡單的檔案傳輸軟體,它其實是採用BT的原理來設計的,所以要傳輸的檔案大小可以不受限制,官方網站宣稱可傳輸的檔案最大為1GB。當你安裝了Pando後,它可以幫助你將要傳輸的檔案壓制成為種子(在Pando中稱為 Package),然後你只要將這個種子用Email或即時通訊軟體傳輸給別人,或是放在網頁上做一個連結,別人就可以透過它的Pando來下載檔案。 @Soft Info: 軟體名稱:Pando 軟體性質:免費軟體 軟體大小:4.4MB 網址:www.pando.com

個人工具