資科四周文彥89703014
Peer-to-Peer
今天請到清華大學的金仲達教授為我們解釋Peer to Peer (P2P)的原理。我原本以為P2P就只是點對點的傳輸。然而今天卻發現其實要架構一個P2P的系統不是那麼容易。
現今的ezpeer等P2P的軟體。事實上是有Server端和Client端的架構。因為檔案列表都存在Server端上,然後再由Client下Query的指令。由Server端找到可以下載的端點,再讓兩者進行所謂P2P的傳輸。這種方式可行而且容易,但是所造成的問題卻是「非法」的問題。然後,Server端勢必要建立一個非常龐大的資料庫來管理這些所謂的檔案列表。可行似乎變的不可行了。但只要真能建構一個去除Server端的P2P。
然則,該如何下Query?要找哪台電腦?要找幾台電腦?這些都成了問題,在失去了Server之後。P2P分成了structured和unstructured兩種。相比之下,unstructred他可以容易的下query指令,然而卻有可能會找不到檔案,即使這個檔案是存在的。而structured則具備了不少好處,例如具有方向性的搜尋,而非漫無目的的。然後structured應用了許多hash的技術,用來建立hash table而將這些所謂的table存在每一台電腦之上。這些都是我以前從未想過的。
然後,該如何才能夠用最少的搜尋,如何才能將鄰近的電腦使用較短的routing?如何才能建立一個有區域性的hash table?如何處理隨時可能會增加或減少的端點?問題似乎很多,不是嗎?
比方下了一個Query,尋找 xyz.mp3。那麼當P2P的Query向四面八方傳輸出去的時候,又該如何將這些資料回傳呢?感覺這些問題相當的有趣。都是可以研究的方向。