bt協議與emule協議幾點區別

最近把emule協議通讀了一下,和以前研究的bt協議做了個對比,當然差別還是相當大的,此處僅簡單列出幾點:

bt協議不包括文件搜索,該過程要由用戶自己進行,在找到感興趣的文件後要首先獲取一個torrent文件,根據該torrent文件找到服務器,進而找到其他peer;emule協議中的文件搜索也是由協議規定的,在結點啓動的時候向服務器發起文件查詢請求,服務器返回查詢結果,進而得到相關的peer列表

emule協議在判斷peer好壞時採用的是credit方式,即對方給自己傳輸數據的行爲會被自己記錄下來,上傳越多credit記錄越好;bt在判斷的時候採用的是tit-for-tat方式,即由結點在數據傳輸過程中實時選擇優先上傳的結點,如果peer給我數據,則我也給peer。兩種方式本質差不多,不過emule的實時性沒有bt強,另外emule是針對結點的,而bt是針對當前下載文件的。

emule協議的結點ID是服務器分配的,有high和low之分,high類型的表示結點是公網IP;bt協議的ID是結點自己產生的,不反映結點的網絡類型。

emule協議在結點和服務器以及結點之間進行連接後都需要一個認證過程,在和服務器連接後服務器會分配一個Client ID給結點,結點之間的認證通過公鑰加密;bt協議沒有此過程。

emule協議制定了結點之間以及結點和server之間的UDP通信協議,支持UDP通信的情況下可以作爲輔助,而bt協議僅僅將UDP通信作爲擴展協議,而且只在結點和tracker通信部分纔有

emule協議設計了幫助內網結點穿越NAT和防火牆的機制,雖然比較原始但還是有效的,bt協議當中則沒有設計這樣的機制,需要結點自行解決。

通過上面的分析可以看到,emule協議考慮的問題比較全面,其協議的文檔也比較長,bt協議相比是一個輕量級的協議,簡單實用爲設計目標,比較專一,涉及的方面不那麼多。也正因如此,bt客戶端軟件有很多,一個人就能寫出來,但是emule實現起來就麻煩多了。

發佈了43 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章