Background an Motivation隨著個人電腦的進步及價格的低廉,幾乎每個家庭都有個人電腦,不過觀察一下生活週遭的電腦使用情況,不難發現其實電腦大部分的時間都是處於發呆或是關閉狀態,使電腦不能真正的有效運用;但隨著網路的頻寬增加以及蓬勃發展,可以利用網路的力量將大家的電腦資源給結合起來,是未來網路發展的一項重要趨勢,「讓每台電腦都將參與在網路之中」主要的精神就是將分散在不同地理位置的電腦組織在一起,其中每一台參與計算的電腦就是屬於整個系統上的一份子,如此整個分散式系統上的所有電腦資源就能夠互相分享、整個計算也是由所有系統上的電腦共同合力完成。簡單地講,就是把整個網路上的電腦整合成一台巨大的超級電腦,實現計算資源、存儲資源、資料資源、資訊資源、知識資源的全面共用。而近年來,分散式系統蓬勃發展,究其原因,「檔案分享」的應用就是讓他受到大家廣泛使用的重要因素,目前在網路上大家普遍使用到的分散式系統有eMule、eDonkey、kuro 等系統,而在此類分散式系統中,使用者可以隨時加入或離開,將自己的一些檔案或資料分享給其他人,並且也可以透過此系統搜尋所想要的檔案,或是下載所需的檔案。不過上述的系統中,都有所謂的中央伺服器來記錄來自各地的使用者分享的資料,以成本的考量上來看,為了要達到如此大規模的檔案分享系統,是需要功能強大的電腦,並且需要人力來維持中央系統的正常運作,所需資金不匪,故我們希望能將資料分享的運用建置在完全分散式的 Peer-to-Peer 系統上,如此即可以省掉購買強大伺服器的必要,因為 Peer-to-Peer 系統是不需要中央的伺服器來記錄或管理資料,而是由系統上的所有電腦來共同負責,彼此的檔案可以透過底層的邏輯架構及路由的資訊,來將檔案的資訊存放在系統上,在藉由相同的演算法,而可以搜尋到相關的檔案資訊,藉此達到彼此檔案分享的需求。Project Goal一、 完全分散式的 peer-to-peer 系統一個完全沒有中央控制機制的系統,網路上的每台電腦扮演相同的腳色,因此不會因為部分電腦的當機而癱瘓整個系統,且系統中的使用者不需記住整個系統的所有電腦的資訊或位址,即可找到系統中的任何一台電腦。二、 能提供檔案分享使用者可以自行將檔案分享給整個系統,而此系統會將相關的檔案訊息放置在系統中適當的電腦存放。三、 快速的檔案查詢使用者可以不知道系統中各台電腦的位址的情況下,而以檔名搜尋系統,並找到系統中此檔案的相關資訊,我們...