Board logo

主題: [整理]eDonkey心得_為什麼老是覺得驢子慢?(特別典藏紀念版) [打印本頁]

發表人: xTheme    時間: 2007-8-21 07:18 PM     主題: [整理]eDonkey心得_為什麼老是覺得驢子慢?(特別典藏紀念版)

eDonkey心得_為什麼老是覺得驢子慢?(特別典藏紀念版)
============================================================
每次逛進論壇裡時,偶爾總是會不經意地跑到這裡來看看,每次總會瞄到這篇已經有點歷史的PO文~
[eDonkey心得]為什麼老是覺得驢子慢 ? (圖文進階版)
有時‧‧不自覺的也會點進去看看,每次‧‧總會引起一點情緒起伏,觸動一些過往回憶在腦海中盤旋。

   「呵~呵~~這篇殘缺的文章,怎麼還在這啊?」

許久了~真的記不起那位版主的厚愛,把俺這篇PO文給置頂、加入精華的,
而且訝異的是在經過妖驢戰亂、論壇改版的洗鍊後,它居然還在...逃得過剪刀手的摧殘;
twed2k也夠堅硬的~居然也陪俺那麼長一段時間了,硬是要得!!

看著~想著~~來把它稍微修改一下,再PO上來~當作是 特別典藏紀念 吧!
以此篇獻給所有念舊的驢友、壇主、VIC以及所有曾經在論壇裡奉獻、努力的壇友;

   『謝謝您們陪我走過一段歡樂時光,也因為你們的努力讓我在此收益良多,並祝福twed2k將來可以更好!!』

============================================================
為什麼老是覺得驢子慢?想臭罵 !! ~~ 想訐譙 !! ~~ 先別急 !!!!
你知道當你以 50 KB/Sec 下載檔案時,要多少人供檔給你 ? 又驢子作了哪些事 ??  請看看這裡說明
這裡有 【基本原理】【網路運作說明】【搜尋運作說明】【傳輸速度說明】
.... 等等介紹,希望您能對 eDonkey 有更進一步了解,愛用它,並且多多分享、下載完後盡量把檔案放久一點、儘可能打開上傳的頻寬,讓你、我、大家都受益喔 !!

---------------------------------------------------------------------------------------------------------------------
壹、【基本原理】 eDonkey 2000 運作原理 .....................................................  2002/07/29
  1. eDonkey2000 是以多重來源檔案傳輸協定 Multisource File Transfer Protocol (MFTP),作為通訊協定基礎的檔案傳輸程式。
  2. 構成 Donkey (以下全部稱呼為:驢子) 的網路傳輸是以 Server、Client 兩種應用程式搭配共同運作所組成。
  3. 驢子的客戶端 (Client) 程式,就是指我們現在安裝在自己的電腦裡,用來搜尋、下載並且分享檔案所使用的 eDonkey 2000 程式。
  4. 驢子的伺服器端 (Server) 程式,就是指現在我們常常連上去,才可以搜尋檔案和下載檔案的連線主機,像常用的 台灣 Ed2K 伺服器、NCTU-Taiwan eDonkeyServer 伺服器都是。
  5. 舉個例子來說:伺服器有點類似電話簿,電話簿是讓我們查詢某某人的電話,而驢子的伺服器則是當我們的驢子要去下載檔案時,找看看誰的電腦裡有這個檔案,找到之後回傳給我們 (~誰有~),所以驢子的伺服器本身是沒有檔案也不傳檔案的。
附圖:驢子的基本網路架構圖 ↓

        
附註:


---------------------------------------------------------------------------------------------------------------------

貳、【網路運作說明】
eDonkey 2000 運作原理之網路運作說明 ................................  2002/07/29
Connection :TCP/IP 資料傳遞的基礎,就好比火車一樣,需要鐵軌才有辦法行駛。

eDonkey2000 的網路運作共會開啟四種"連結" Connection 。


這四種"連結"的作用如下:

  1. 主要伺服器連結:驢子客戶端與主伺服間的連線,當驢子連上任一部伺服器時即已建立,它使用 TCP Port 4661。
  2. 延伸伺服器連結:當你使用"延伸搜尋"(extend search)時或下載檔案中,驢子會以你伺服器清單中可以連線的伺服器建立延伸伺服器連結,它使用 UDP Port 4665。
  3. 驢友對驢友的連結:驢友對驢友間的連結,驢子自伺服器取得"檔案來源"的驢友清單後,便開始一個一個嘗試與清單所列的網友分別建立"驢友對驢友的連結",一旦可以建立連結,驢子便開始常是要求傳輸所要求的"檔案片段"它使用 TCP Port 4662。
  4. 伺服器相互連結:當你的驢子連上伺服器時,有些伺服器會自動下載伺服器清單給你,這個功能裡的伺服器清單(Server List)就是靠"伺服器相互連結"所提供,驢子伺服器間只有非常小資料流量的通訊,它週期性的對其它伺服器發出"我在這"的通知,其他伺服器如果有在工作(On Line is Live)收到這個訊息,便回傳它自己的伺服器清單作為回應,伺服器上的伺服器清單表便是透過這種方式來維護。

所以驢子設定項裡的最大連線數 (MaxConnections) 會影響你的傳輸情形。
附圖:驢子的網路連結架構圖 ↓

                    
圖示說明:各"連結"主要通訊內容         

註:
1. 驢子到底使用多少連結 ( Connections ) ? 我要如何設定最大連結數 ?
    驢子用掉的連結數大約可以用這樣的公式計算:
    { 主伺服器連結數 + 延伸伺服器連結數 +  驢友間連結數 + 等候中( Queue )數 } →
    大約是 1 + 5 + 驢友間連結數 + Queue 數 ==> 設定最大連結數的參考依據 !!
    驢友間連結數可於驢子 Command Line 區,以指令 vp 查詢目前驢友的連結數。  


參、【搜尋運作說明】
eDonkey 2000 運作原理之搜尋運作說明 ................................  2002/07/29
           eDonkey2000 的多重來源檔案傳輸協定  (MFTP),靠的是驢子伺服器和驢子客戶端共同合作來達成,驢子的搜尋方式有兩種:
    "正常搜尋" (Search) 與 "延伸搜尋 " (Extend Search)。

正常搜尋
    當驢子的客戶端 (Client) 程式連結到(Connected)驢子伺服器(Server)後,這部伺服器便成為主伺服器,並且驢子客戶端會告訴主伺服器在這部電腦有哪些分享的檔案,每一部驢子的伺服器都會管理、維護一份所有連結到它的驢子所分享的檔案清單總表,其中包含ID 與分享的 檔案名稱、大小、類型、Hash 值 ... 等等資料。
    當驢子的客戶端要搜尋某個檔案時,它是送出"搜尋字串"給主伺服器,主伺服器便傳回符合搜尋字串的清單給客戶端,其中包含 檔案名稱、大小、類別、檔案格式及可得數等資料;而可得數 指的是連結到這部伺服器有相關檔案的驢子客戶端數。

延伸搜尋
    當你在正常搜尋結束後,若你不太滿意搜尋結果並按下"延伸搜尋"按鈕時,驢子便依照你伺服器清單裡有的伺服器順序,以UDP送出"搜尋字串"及接收"搜尋結果",來限制對驢子伺服器所造成的"網路傳輸頻寬需求擴大"及"連結數提高" .. 等運作負荷,並由於延伸搜尋使用UDP來傳輸,所以~~可能透過"延伸搜尋"所得到的結果,會比使用"正常搜尋 "所得到的結果清單要來的少。
附圖:驢子的搜尋傳遞示意圖 ↓


---------------------------------------------------------------------------------------------------------------------

肆、【下載運作說明】
eDonkey 2000 運作原理之 下載運作說明    ..................  2002/07/29
當你從驢子搜尋結果中或者是從你好友的分享檔案清單中要下載你要的檔案時,驢子會先蒐集擁有你想要下載那個檔案的 eDonkey Client (我們把它稱為驢友好了),首先驢子會問 Server (你現在已經連線的那個),哪些人有你要下載的那個檔案 (P.S. 不管他是不是已經把檔案全部傳完),接下來驢子也會去問其他的Server (你伺服器清單裡其它的Server) 還有誰擁有你想要下載的檔案,然後驢子開始跟其他驢友連線,開始傳輸那個檔案你還沒有的部分,一直到整個檔案傳完為止;這即是說:驢子傳檔是分段在傳,它會把檔案以每9.28MB(約) 為單位分段(9,728,000 Byte)。   
附圖:驢子下載時網路交換方式示意圖 ↓
        

圖例說明:假設小明的驢子連線到台灣ed2K伺服器,他的驢子裡伺服器清單裡還有另外的伺服器 NCTU Sssun,小明現在要下載 " VCD 我不笨.dat " 這個檔案,檔案大小為 63 MB,小明的驢子送出"檔案來源"的查詢給主伺服器,詢問主伺服器台灣ed2K有哪些人有這個檔案?,伺服器回答共有 ABCDEFG 七位驢友有" 豕者豆頁自爆我不笨,我只是呆了點.dat
" 這個檔案,{ 驢友G } 有完整的檔案,而驢友  ABCDEF
這六位網友剛好分別有 a ~ f
9.28MB為單位的各段,接著小明的驢子便分別和這七位驢友的驢子嘗試連線,並且分別開始溝通傳輸檔案各個分段的部分,小明很幸運 因為 ABCDEF
  這六位網友剛好分別有這個檔案的各段,所以小明便享受了七位網友傳檔給他的傳輸速度。
{ 驢友G }上傳的頻寬蠻大的,沒多久小明就把" 豕者豆頁自爆我不笨,我只是呆了點.dat " 這個檔案 g 段部分給下載完了。
這時小明的驢子與 { 驢友:A } 的驢子彼此溝通後,{ 驢友:A } 沒有" 豕者豆頁自爆我不笨,我只是呆了點.dat" 這個檔案 g 段部分,請小明的驢子傳給它,小明的驢子回答"可以"後便開始傳了,小明的驢子會重複上面的動作直到" 豕者豆頁自爆我不笨,我只是呆了點.dat" 這個檔案的各段全部傳完,並且組合成為一個完整的檔案。
ABCDEF
  這六位網友的驢子也會像小明的驢子一樣,不斷重複上面的步驟一直到整個檔案傳輸完成。
附註:驢子在把檔案分段時是使用稱為MD4s的公式來計算,所以當你剛啟動驢子時,會花比較多時間。


---------------------------------------------------------------------------------------------------------------------
五、【傳輸速度說明】eDonkey 2000 運作原理之傳輸速度說明 ....................  2002/07/29
附圖:驢子在傳檔時的連線速度說明示意圖 ↓

圖例說明:

     假設小明的驢子用512Kb/64Kb速率的ADSL連線到台灣ed2K伺服器,那他設定驢子上傳為 5KB/Sec,他今天很熱心的分享了自拍的VCD "豕者豆頁自爆我不笨,我只是呆了點.dat " 這個檔案供網友認識他,他把檔案放到已經設定好"分享"的一個目錄區去,並且按下了驢子的分享檔案Shared Tab "更新"的按鈕,並從分享清單List中找到了"豕者豆頁自爆我不笨,我只是呆了點.dat "這個檔案,他複製連結到剪貼簿中,貼到已經打好的電子郵件裡寄給十位同樣都是用512Kb/64Kb速率的ADSL網友(驢友),網友在收到他的電子郵件後,陸續地開始下載小明的VCD"豕者豆頁自爆我不笨,我只是呆了點.dat t" 這個檔案,剛開始只有3個網友在下傳,小明看他的上傳清單中三位網友( ABC )各以2K/Sec 左右的速度在接收檔案,若以這個速度計算這三位網友大概需要 32,256 秒 ==> 538 分鐘 ==> 9 小時才能傳完。
     一個半小時(90分鐘)後,網友D也開始下載,網友D剛開始時以16KB/Sec的速度在接收檔案,大約10分鐘後變成剩下約1.2KB/Sec的傳輸速度在接收檔案。
     假設只有這四位網友在下載檔案,那麼所有網友完成檔案傳輸的時間就是大約13小時 後。

[xTheme 在  2007-9-9 05:05 PM 作了最後編輯]
發表人: su72amd    時間: 2007-8-21 11:46 PM

真是詳細
驢子用了4年
一點也沒有想要去了解原理
發表人: swat_martin    時間: 2007-8-31 07:28 AM

太專業了,結果只有一直往下轉轉轉看圖而已..............XD
發表人: cidchen    時間: 2007-9-8 12:38 AM

哇,做的真詳細
可不可以借我用一下
我要解釋給朋友的
呵呵^^a
發表人: xTheme    時間: 2007-9-9 12:34 AM


引用:
cidchen寫到:
哇,做的真詳細
可不可以借我用一下
我要解釋給朋友的
呵呵^^a

您請隨意取用哦~
發表人: innison    時間: 2007-9-9 05:00 PM

既然已有更佳的版本
那舊的殘缺版就卸下囉!

置頂位置過高可能反而被忽略
所以我先將顏色標亮吧!
發表人: beartree    時間: 2007-9-10 10:17 AM

這個....
小弟只能送花了
我都不知道要講什麼....
對於原理..我太慚愧了
發表人: samuel_3533    時間: 2007-9-11 09:20 PM

上了一課,謝謝
不送花就說不過去
發表人: mancool1234    時間: 2007-9-11 10:22 PM

大大 你太屌了 請受小弟一拜 orz
發表人: 00880707    時間: 2007-9-11 10:45 PM

樓主解釋的很詳細喔
長久以來只會騎驢
但完全不知道驢子怎麼跑~~~真是慚愧
發表人: jazzblue    時間: 2007-9-11 11:19 PM

eDonkey已經成為過去式了
有沒有eMule 的教學呢 ?  

雖然兩者有許多相似處,但終究不是完全一樣!

[jazzblue 在  2007-9-11 11:21 PM 作了最後編輯]
發表人: boxturtle    時間: 2007-9-12 12:50 AM

我覺得版主應該要提一提WINDOWS XP SP2 所做的連線數限制
像我這次重灌電腦一直沒注意到這一點,導致平常只能以20k下載在龜爬

一修正之後,下載馬上跑到80k喔(H 2m / 256k).....
發表人: skyjay171    時間: 2007-9-13 05:19 PM

太專業了...
佩服佩服
哪像我
只懂的抓東西....
發表人: navy    時間: 2007-9-13 10:54 PM

這真是一篇好文章及教學.
讓小弟我增長不少之知識.
平常只知騎驢.不知其源
感謝大大詳實說明.
感溫阿!
發表人: chriswjm    時間: 2007-9-14 08:25 PM

被置頂.推精華~
還真不是沒有原因~
當之無愧阿,大大~
謝謝大大分享嚕~*
發表人: ashoola    時間: 2007-9-14 10:45 PM

對"傳輸速度"一直不是很瞭解,原來下載人數的影響有這麼大啊
發表人: ricky-ma    時間: 2007-9-16 07:40 AM

玩蛋了
看的最仔細的  沒想到是  何謂驢
刻苦耐勞 ......  講的我們 努力掛阿....
反正那段驢 的PS 簡介 跟自己在掛的感覺好像.........我是隻小小驢
慚愧慚愧
發表人: long220    時間: 2007-9-20 07:11 PM

講解得真清楚
上了寶貴的一課
每人出一些力
滴水成河
感謝大家
發表人: mario    時間: 2007-10-21 04:16 PM

非常專業的解說
那怎樣才能加快呢
發表人: 瓦特    時間: 2007-11-3 11:57 PM

真不愧是"特別典藏紀念版",圖文並茂,若要收編到計算機概論的教科書裡一點也不為過,只是可能會被改成通識課程就是了
發表人: fantasykao    時間: 2007-11-6 04:43 PM

增長見識, 獲益不淺
發表人: sam2    時間: 2007-11-7 01:59 PM

看那麼多...
不給花就說不過去囉...
辛苦你大大...感謝囉...
發表人: harryuse    時間: 2007-11-27 04:37 AM

雖然看的迷迷糊糊的,但是聽到大大說篇文章居然在twed2k存再那麼久了,而且還置頂,我得好好拜讀研究一下,我深信我們生活在共享的世界裡,這篇大作,是twed2k的會員們的一們功課
謝謝大大,您辛苦了
發表人: ballgi    時間: 2008-8-7 08:41 AM

感謝,紀念版。這種資訊總是要留下來的
這樣才能培育下一代的使用者
發表人: atp1995    時間: 2009-2-4 08:16 PM

感谢详细解释.
發表人: 紅焰    時間: 2009-5-1 02:45 AM

由衷佩服大大專業與用心送上鮮花




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0