andy6989
論壇執行長
∷ 職務: 站長
∷ 編號: 1
∷ 級別:
天使會員
∷ 發帖: 8098
篇
∷ 威望: 6189
點
∷ 財富: 36813
蓋幣
∷ 貢獻: 173
個
∷ 配偶: 單身
∷ 家族: 無門無派
∷ 註冊: 2005-01-30
∷ 上次: 2019-03-27
鮮花(55 )
【字體:大 中 小 】
《
》
【本站推薦】:
【教學】BT名詞解釋+出錯程式碼解釋+BT設定
挺實用的文章..對瞭解BT有很大的說明 ......喜歡BT的朋友看看吧 BT:BT是一種共享軟體(不是「變態」),全名叫"BitTorrent"。 一般來講,下載是把文件由伺服器端傳送到客戶端,例如FTP,HTTP,PUB等等。 但是這樣就出現了一個問題,隨著用戶的增多,對帶寬的要求也隨之增多,用戶過多就會造成瓶頸,而且搞不好還會把伺服器掛掉,所以很多的伺服器會都有用戶人數的限制,下載速度的限制,這樣就給用戶造成了諸多的不便。 但BT就不同,用BT下載反而是用戶越多,下載越快,這是為什麼呢?因為BT用的是一種傳銷的方式來達到共享的 BT首先在上傳者端把一個文件分成了Z個部分,甲在伺服器隨機下載了第N各部分,乙在伺服器隨機下載了第M個部分,這樣甲的BT就會根據情況到乙的電腦上去拿乙已經下載好的M部分,乙的BT就會根據情況去到甲的電腦上去拿甲已經下載好的N部分,這樣就不但減輕了伺服器端得負荷,也加快了用戶方(甲乙)的下載速度,效率也提高了,更同樣減少了地域之間的限制。比如說丙要連到伺服器去下載的話可能才幾K,但是要是到甲和乙的電腦上去拿就快得多了。所以說用的人越多,下載的人越多,大家也就越快,BT的優越性就在這裡。而且,在你下載的同時,你也在上傳(別人從你的電腦上拿那個文件的某個部分),所以說在享受別人提供的下載的同時,你也在貢獻。 ★開放防火牆BT連接阜一步一步學★ 僅為超級菜鳥服務: ICF是"Internet Connection Firewall"的簡稱,也就是英特網連接防火牆。ICF建立在你的電腦與英特網之間,它可以讓你請求的資料通過、而阻礙你沒有請求的資料包,是一個關於包的防火牆。在使用BT有時會因為ICF的阻攔,引起連接不到SEED或者資料包延滯降低下載速度。所以我們有必要在ICF中設定對BT使用的連接阜不進行阻攔。 1。在你的桌面上右鍵點擊「網路芳鄰」,彈出的表單中選項「內容」。 2。彈出「網路連接」視窗。在裡面找到你上網用的連接,右鍵點擊它,在彈出的表單中選項「內容」。 3。彈出「本機連接內容」視窗。選項其中的「進階」選擇項。 4。看看滑鼠所指的項目有沒有選(如果沒有選就不用往下看了),選了就點擊視窗下方的「設定」按鈕。 5。彈出「進階設定」視窗。圖中被選的是一些一般的網路服務,現在我們要增加新的BT服務,點擊「增加」按鈕。 6。彈出「服務設定」視窗。依次填寫「服務描述」(隨便你羅),「本機IP位址」(也可以寫你的機器名),「連接阜號」(BT連接阜是6881~6890,每個BT線程佔用一個連接阜,據說只能開9個),然後確定即可。(別忘了選TCP傳輸協定) 7。這樣「服務」欄中就增加了一個「BT1」服務,這個服務開放的是6881連接阜,同樣你可以再新增開放6882~6890連接阜的服務,都搞定以後就點「確定」按鈕。 8。現在我們的BT就可以在ICF中通行無阻了。 9。很多電腦中都沒有開啟ICF,但裝有其他的專業防火牆。以最常用的天網防火牆個人版為例,同樣可以設定開放BT連接阜,點擊天網的「自訂IP規則」按鈕。 10。點擊「增加規則」按鈕。 11。彈出「IP規則修改」視窗。如圖依次填寫「名稱」(隨便寫),「資料包方向」選「接收或傳送」,對方IP位址選「任何位址」,選TPC傳輸協定,「本機連接阜」填「從6881到6890」,「TCP標誌位」選「SYN」項目,最後選項當滿足上面條件時「通行」,其他的填不填無所謂,然後點確定。 12。現在「自訂IP規則」欄中就增加了一個「BT」規則,打上前面的鉤鉤。 13。點「儲存」按鈕,搞定收工。呼~ 使用BT程序中出現10060/10061錯誤後不必退出,這只是tracker伺服器太忙,BT會自動重試(無論這種情況是出現在開始還是下載程序中) 另外注意錯誤的時間,如果距現在已經超過2分鐘,恰恰說明現在是正常的。(BT不會自動清除過期的錯誤) BT Experimental的Advanced介紹 BitTorrent EXPERIMENTAL是BT的一個非官方版本,主要是增加了 限制上傳速度、最大上傳人數及其他一些功能,在最新版的BT Experimental v3.2.1b-2中,又增加了一個新的功能 [Advanced],通過這個功能,你能夠察看:和你相聯接的有哪些人,你和它們之間的資料傳輸速度怎麼樣(包括上傳和下載)等等。 BT Experimental的界面與BT很像,使用方法也一模一樣,只是多了一些設定: 左下角的 Settings for 預設的多種上網方式,選項與你的上網方式相同的選項,BT Experimental就會自動為你設定比較理想的 最大上傳速度和人數,當然你也可以自己設定,不過記住:your download rate is proportional to your upload rate(你的下載速度與你的上傳速度相關) 右下角的Upload rate和Max uploads就是你的 最大上傳速度和人數。 接下來,就是主要介紹的Advanced功能了。 在左下角的 Settings for 下面,有個藍色的 Advanced 單詞,點擊它,就會彈出Advanced視窗,如下: 解釋一下每列的意義: optimistic unchoke:意義不明 IP:對方的IP local/remote:也不太清楚 Up:當前你為對方上傳資料的速度,也就是對方在你這裡下載的當前速度。 Interested:你是否有對方需要的資料," * " 表示是。 Choking:對方是否暫時被你拒絕從你這裡下載資料," * " 表示是。 這個需要解釋一下:在BT Experimental裡,你是可以限制同時從你這裡下載的人數的,比如你限制為6,但並不是說只能有6個人連到你這裡,可能有幾十個人連到你的電腦,這時,BT Experimental就會自動選項6個人,允許他們下載資料,其他的人就被暫時拒絕了,當過了一段時間後,BT Experimental又會自動選項另外的6個人,保證每個想從你這裡下載的人都能夠下載到資料。 Down:當前你從對方那裡下載的速度。 Interesting:對方是否有你需要的資料," * " 表示是。 Choked:你是否暫時被對方拒絕從他那裡下載資料," * " 表示是。 Snubbed:暫時意義不明。 Downloaded:你從對方那裡下載的資料總量。 Completed:對方的文件資料的完整度。100%的那些人就是SeeD。大家都來拜一拜呀~~~~~ Peer Download Speed:對方下載的總速度。嗯嗯,看到那些上百KB速度的人了吧,羨慕啊~~~~~ 好了,介紹完畢,這下大家都明白了吧?這個Advanced功能很不錯吧,如果喜歡就去下載一個吧,和BT一樣方便,但是功能更強,穩定性也很好。(廣告!廣告!) 下載位址:http://ei.kefro.st/projects/btclient/ BT執行原理分析及局內網提速方法 由於局內網用戶無法提供一個對外的連接阜,所以無法做伺服器.但用BT的時候,發現它可以讓局內網用戶做 Send,作為程序員就忍不住下載了它的來源碼分析了一把(為了看它,還專門去寫了一下Python:}) 比起其它的P2P軟體,BT有個獨特的地方,它存在一個中間的WEB伺服器,就是我們在發佈的時所填寫的announce.該伺服器提供了發佈的統一管理,不像其它P2P軟體那樣到處去找哪些非常不穩定的個人伺服器,相對起來讓人安心的多. 該WEB伺服器更大的作用是局內網用戶可以做 Send(下面會說明原理),這是其它軟體無法做到的,但不好的地方是announce當機的時候就無法下載了,要知道P2P下載關鍵是要人氣要高,announce停一下就搞到人氣全沒有了 .torrent 的作用 大家都知道我們要用BT下載 ,就要先下載一個.torrent文件,這個文件到底有甚麼呢: 首先是 announce 紀錄了發佈伺服器的位置,讓BT知道是那個WEB伺服器發佈的 然後是一些文件信息,檔案名,目錄名,長度等等 最後是片段長度,和片段的 Sha1 校驗碼 (BT為了事現續傳和文件校驗,就把文件分成若干個片段) 大家可以用寫字板打看torrent文件看看,就是知道個大概,後面的亂碼是片段 Sha1 校驗碼 開始-續傳的實現 sha校驗 BT 開啟一個 torrent文件後,先要你選項文件儲存那裡.然後判斷文件不存在的話就建立新文件,存在的話就用 Sha1 校驗碼去校驗文件---錯誤的就是還沒下載的,這樣就可以實現續傳了,但128位校驗,想不慢都不行 得到 peer 現在知道要下載甚麼了,到那裡下載呢?這就要尋找有誰提供上傳了,這裡BT是通過WEB伺服器來實現的,首先BT會通過分析 torrent 來得到一面一串網址 http://btfans.3322.org:6969/an...nt=started http://btfans.3322.org:6969/announce 是發佈伺服器的位址 info_hash 是torrent文件中的 info 部分的Sha校驗碼,WEB通過它在發佈列表找到對應的紀錄, peer_id 是自身的標識,它是12個0和當前時間+全球的唯一標識碼(GUID)的Sha校驗的前八位,共20位 port 你提供上傳的 port IP 你的ip位址,沒有的話伺服器會自己找到 uploaded downloaded 你上傳和下載了多少,伺服器可以用它來做流量分析 left 你還要下載多少個字元 event 狀態,告訴伺服器你是準備開始下載,還是停止,還是下載完成了 以上這個操作預設 5 分鐘做一次,或由伺服器設定 伺服器會做甚麼 伺服器中有個一個 track 程序來管理這些請求 得到這一串程式碼後就會用 info_hash 來搜尋列表,找到你就可以下載,找不到就對不起啦 接著它會反連(NatCheck)你的 IP 和 Port這樣就可以知道你是局內網用戶還是共網用戶(如果你是局內網用戶,它是連不通的,因為它會連到你的伺服器上,你的伺服器當然沒有這個連接阜啦) 然後伺服器返回現在正在下載這個文件的所有公共外網用戶的IP和port,就像是這樣 d8:intervali1800e5eersld2:ip14:xxx.xxx.xx.xxx7eer id20:00180531904b7e3abdd74orti6881eeee interval 1800 是告訴 BT 隔多少秒來查詢一次這裡是 30 分鐘 (有點過分了) 最後如果你是公共外網用戶它會把你提交的 IP 和 Port 放到info_hash 對應的列表中,這樣其它人就可以找到你 下載 得到這些 peer IP後,BT就可以找到對應的IP下載了 Bt會到所有的peer去尋找自己要下載的東西,不是一定要到seed下載. Bt每找到一個peer就和建立一個Socket來下載,所以下載的人越多,速度就越快. 局內網用戶可以做Send的原理 上面說到伺服器只會返回公共外網的ip的,那局內網用戶怎麼可以做Send呢,這是因為BT是一個主動連接的軟體(即使你已經下載完了,也不也會主動連接他人) 下面是一個仿真流程: 1 局內網用戶開始做 seed, 2 伺服器收到請求,由於是第一個所以也沒有peer返回 3 公共外網用戶提交請求,由於seed是局內網用戶所以也沒有peer返回,等待下載,但伺服器會把它的IP放到列表中 4 局內網經過 interval 時間間隔後,再向伺服器放出請求,得到上面得公共外網IP 5 得到公共外網IP後,局內網馬上進行連接 6 公共外網用戶建立連接,資料開始傳輸 (注意現在是公共外網用戶做伺服器,局內網用戶做客戶端,是不是有點怪) 7 其它局內網用戶去上面公共外網用戶下載資料 所以,局內網用戶做 seed 一定要有公共外網用戶得參與,否則其它局內網用戶無法下載.如果全部是局內網用戶,那個所有連接都不會成立,當然這是比較極端的情況. 以上可見,局內網用戶不能和局內網用戶連接,其它用戶無法從伺服器查到你,所以無法主動連接你,你只能每隔30分鐘從伺服器找到公共外網用戶一個個進行連接. 由於中國很多用戶的是局內網用戶(我從伺服器上查回來的peer還沒試過超過10個的),所以局內網用戶用BT的確要比公共外網用戶要慢很多.於是有了下面的 一直是0%: 可能SEED是局內網,連接不上。有時用PTC和shareaza無法下的東東,用BT就可以下。 下不了的話具體原因跟具體情況有關,如你的網路是否區域網路,你是否能訪問到tracker,你使用的是那種客戶端,你下載的具體是哪一個BT文件,你是從頭開始下還是續傳,續傳的話之前是否當機過等這些都有關係。 BT下載慢的一些原因: 1、不是公共外網用戶。局內網用戶不能提供主動連接,所以較慢 2、各個運營商網路接頭速率不高 3、下載者上傳速率不高。因為BT優先處理上傳較快的人 4、發佈時seed的多少,還與發佈者的速率相關,還有下載的人數越多相應的下載速度就越快(這就是BT的最大優點) 5、用戶的防火牆阻礙作用 關於BT錯誤信息的一些解釋 最近發現有很多人問有關BT的出錯資訊,下面給出完整的解釋: 事實上,當你看到這些錯誤提示時,其實並不要緊張,這是你所要做的便是----等待. 注意:使用BT程序中出現紅字錯誤後不必退出,BT會自動重試(無論這種情況是出現在開始還是下載程序中)另外注意錯誤的時間,如果距現在已經超過5分鐘,恰恰說明現在是正常的。(BT不會自動清除過期的錯誤) I. A piece failed hash chech, re-downloading it 這並不是什麼壞消息,你不用理會它.意思是告訴你,你下載的文件有一部分是壞的,bt會自動幫你重新下載錯誤的部分.導致這個錯誤的大多數原因在於某些人錯誤的使用了"跳過hash檢查"這個選項 II.bad data from tracker - 通常你不必理會它,通常是tracker伺服器過載或者down了.也有可能是你的網掉線了(如部分長寬,訪問任何網站會返回登入界面,就是錯誤的data啦) III.Problem connecting to tracker - timeout exceeded Problem connecting to tracker - HTTP Error 503: Connect failed Problem connecting to tracker - [Errno socket error] (10061, "Connection refused") Problem connecting to tracker - (111, 'Connection refused') 說明在連接tracker伺服器程序中出現錯誤,有可能trakker伺服器過載或者down了,這時並不要心急,等待BT自動重試.如果很長時間都沒有反映的話,你可以加上"--http_timeout 120"的參數來加大連接重試時間.具體做法另文說明. IV.Problem connecting to tracker - HTTP Error 400: Not Authorized 說明這個tracker伺服器不允許你使用這個torrent文件(國內好像比較少見),有些tracker伺服器只允許在他們自己網站上發佈的torrent才允許下載.解決只有換一個torrent文件了, V.Problem connecting to tracker - HTTP Error 404: Not Found 很簡單,torrent文件在tracker伺服器上已經找不到了,找個新的吧. VI.Problem connecting to tracker - HTTP Error 407: Proxy Authentication Required 假如你用的是代理下載BT,說明這個代理需要驗證,需要你輸入用戶名和密碼. VII.Problem getting response info - [Errno 2] No such file or directory: "C:\\Documents and Sett..." 在某些情況下,IE有可能沒把torrent文件存在臨時資料夾內.解決方法是在torrent文件下載位址上按右鍵,然後另存到硬碟的某處(這可是個好習慣,以後你求種子或者reseed的時候特別有用,建議大家都這麼干,利己利人),然後雙按這個torrent文件開始下載.如果出現這個問題,建議清楚你的IE緩衝,在文件中如果出現"["或者"]"也會出現這個問題. 個軟體,PTC,一個FLASHGET風格的BT下載,解決了當你同時下很多SEED時,工作管理欄上一堆視窗的問題,而且也可以搜尋種子的數量. 但是BT有他的缺點,不像E2K,無法控制沒有自覺的用戶,所以在有些發佈點上,要下就快下,否則種子在幾個小時後有可能就沒有了. http://itguysam.no-ip.com/PTC.html BitTorrent experimental v5.2 http://btfans3.3322.org/torrents/16287.torrent 這個很好可以設定占停顯示種子的ip設定連接阜