999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于QT的BitTorrent客戶端下載工具設計與實現

2011-01-11 07:26:50武子英
長治學院學報 2011年5期
關鍵詞:信號系統

武子英

(太原大學外語師范學院,山西 太原 030012)

基于QT的BitTorrent客戶端下載工具設計與實現

武子英

(太原大學外語師范學院,山西 太原 030012)

BT協議基于先進的協議和方法,可極大地提高下載速度。而BT同QT的結合可以極大地發揮BT的優勢和作用。文章首先分析了QT的信號和槽機制,以及BT協議的關鍵學法和策略,最后就其系統的設計進行了闡述。

BT協議;QT平臺;信號與槽;torrent文件;Peer To Peer

1 引言

BT協議除了作為客戶端下載工具,也應用于在線直播、網絡電視中。但是由于忽視硬件問題,并使用較差的教學舉法,使得BT工作時,硬盤處于高速運轉狀態,并且影響其他網絡業務的開展。文章提出了基于QT的BT客戶端下載工具的設計思想,以有效規避其副作用。

2 基于QT的應用程序

2.1 QT

QT是諾基亞開發的一個跨平臺的C++圖形用戶界面應用程序框架。QT提供給應用程序開發者建立藝術級的圖形用戶界面所需的所有功能。QT是完全面向對象的,很容易擴展,并且允許真正地組件編程。

2.2 信號和槽機制

信號和槽機制是QT的核心機制。信號和槽是一種高級接口,應用于對象之間的通信,它是QT的核心特性,也是QT區別于其它工具包的重要地方,信號和槽能攜帶任意數量和任意類型的參數。

信號就像一個事件的出發,當某個信號由程序或者用戶點擊而觸發,這個信號就會被它的上一級的類的對象發射。信號在頭文件中進行聲明,QT規定用關鍵字signals來指示進入信號的聲明區,只有定義過這個信號的類及其派生類能夠發射這個信號,只有當所有的槽返回以后發射函數才返回。如果存在多個槽與某個信號相關聯,那么,當這個信號被發射時,這些槽將會一個接一個地執行,但是它們執行的順序將會是隨機的、不確定的,我們不能人為地指定哪個先執行、哪個后執行。

槽是普通的C++成員函數,可以被正常調用,其特殊性在于很多信號可以與其相關聯,即當與其關聯的信號被發射時,這個槽就會被調用。

3 關鍵算法和策略

3.1 片斷選擇算法

策略一:嚴格的優先級。一旦向某個peer發送對某個piece中的slice的請求后,則該piece中的其它slice也從該peer處下載。

策略二:最少優先,即某個piece在所有peer中的擁有率最低,則優先下載該piece。

策略三:隨機選擇第一個要下載的piece。開始下載時,不能采用最少優先策略。

策略四:最后階段模式。在最后階段,客戶端向所有peer發送對這個piece的某些slice的請求,一旦收到某個peer發來的slice,則向其他 peer發送cancel消息,只從當前這個peer處下載。

圖1 系統功能結構圖

3.2 阻塞算法

BT并不集中分配資源,每個peer有責任盡可能地提高自己的下載速度。peer從它可以連接的peer下載文件,并根據對方提供的下載速率給予同等的上傳回報。阻塞是一種臨時拒絕上傳的策略,雖然上傳停止了,但是下載仍然繼續。在解除阻塞時,連接并不需要重新建立。

每個客戶端一直與固定數量的peer保持疏通(通常是4個),嚴格地根據當前的下載速度來決定哪些peer應該保持疏通。通過計算最近10秒從每個peer處下載數據的速度來計算下載速度。

如果只是簡單地為提供最高下載速率的4個peer提供上載服務,那么就沒有辦法發現那些空閑的連接是否有更好的下載速度。為了解決這個問題,在任何時候,每個peer都擁有一個稱為“optimistic unchoking(優化非阻塞)”peer,這個連接總是保持疏通狀態,而不管它的下載速率是多少。每隔30秒,重新選擇一個peer作為優化非阻塞peer。30秒足以讓該peer的上載能力達到最大。

一旦某個peer完成了下載,它不能再通過下載速率(因為下載速率已經為0了)來決定為哪些peer提供上載了。目前采用的解決辦法是:優先選擇那些從它這里得到更好下載速率的peer,保持與它們疏通。這樣做的理由是盡可能的利用上載帶寬。一旦某個peer完成了下載,那么它也就成為了種子。種子擁有一份完整的文件拷貝,并提供給其它peer下載。為了整個系統的性能,每個peer在完成下載后應該作為種子存在一段時間,作為對整個系統的回報。原始種子,即最初提供文件進行共享、并制作生成了種子文件、并把種子文件發布到Web服務器的種子,至少應該存在到系統中生成另外一個種子時才能離開,否則當前參與下載的所有peer都不能獲得一份完整的文件拷貝。

3.3 BT協議的文件分發系統

基于BT協議的文件分發系統由以下幾個實體構成:一個Web服務器;一個種子文件;一個Tracker服務器;一個原始文件提供者;一個網絡瀏覽器;一個或多個下載者。

以(63,57)RS碼為例進行仿真,此時m0=log2(63+1)=6,選取本原多項式為p0(x)=x6+x+1,生成多項式為g0(x)=x6+α59x5+α48x4+α43x3+α55x2+α10x+α21.首先生成1000組碼字,將其轉化為二進制比特流形式,并加入誤比特率為ε=0.005的錯誤比特,然后按圖2所示的流程進行識別.對本原多項式p(x)進行遍歷,結果如表2所示.可以看出,當m=6,p(x)=x6+x+1時,所有y1,i值均大于門限T1.因此,選取這一組參數進行后續第二次判定.

Web服務器上保存著種子文件,下載者使用網絡瀏覽器從Web服務器上下載種子文件。Tracker服務器保存著當前下載某共享文件的所有下載者的IP和端口。原始文件提供者提供完整的共享文件供其他下載者下載,它也被稱為種子,種子文件就是提供者使用BT客戶端生成的。

BT客戶端下載一個共享文件的過程是:客戶端首先解析種子文件,獲取待下載的共享文件的一些信息,其中包括Tracker服務器的地址。然后客戶端連接Tracker獲取當前下載該文件的所有下載者的IP和端口。之后客戶端根據IP和端口連接其他下載者,從它們那里下載文件,同時把自己已下載的部分提供給其他下載者下載。

共享文件在邏輯上被劃分為大小相同的塊,稱為piece,每個piece的大小通常為256KB。種子文件中包含有每個piece的hash值。BT協議規定使用Sha1算法對每個piece生成20字節的hash值,作為每個piece的指紋。每當客戶端下載完一個piece時,即對該peice使用Sha1算法計算其hash值,并與種子文件中保存的該peice的hash值進行比較,如果一致即表明下載了一個完整而正確的piece。一旦某個piece被下載,該piece即提供給其他peer下載。

4 系統的實現

4.1 系統的模塊化

系統主要包括種子解析模塊、出錯處理模塊、Peer管理模塊、連接設置模塊、窗口界面模塊。詳細的模塊結構圖如圖1所示。各個模塊的功能如下。

(1)種子解析:負責解析種子文件,從中獲取Tracker服務器的地址、待下載文件的文件名和長度、piece長度、各個piece的hash值。

(2)連接Tracker:根據HTTP協議構造獲取Peer地址的請求,與Tracker建立連接,解析Tracker的回應消息,從而獲取各個peer的IP地址和端口號。

(3)與peer交換數據:根據peer的IP地址和端口號連接peer、從peer處下載數據并將已下載的數據上傳給peer。

4.2 交互問題

4.2.1 種子文件的結構

種子文件包含了提供共享的文件的一些信息,它以.torrent為后綴名,種子文件也被稱為元信息文件或metafile,它是經過B編碼的。種子文件事實上就是一個B編碼的字典。

4.2.2 與Tracker服務器交互

完成解析種子文件并從中獲取Tracker服務器的URL后,即可開始與Tracker進行交互。與Tracker進行交互主要有兩個目的:一是將自己的下載進度告知給Tracker以便Tracker進行一些相關的統計;二是獲取當前下載同一個共享文件的peer的IP地址和端口號。

本客戶端使用HTTP協議與Tracker進行通信。Tracker通過HTTPGET方法獲取請求,請求的構成為:Tracker的URL后面跟一個“?”以及參數和值對。例如:

其中peer id是每個客戶端在下載文件前以隨機的方式生成的20字節的標識符,用于標識自己,它的長度也是固定不變的;compact是用來指示服務器以何種方式進行返回的;port是用于監聽的端口號;uploaded是當前總的上傳量,以字節為單位,而對應的downloaded為當前總的下載量,以字節為單位;left指示還剩余多少字節需要下載,以字節為單位。

Tracker服務器的返回信息是一個經過B編碼的字典,以下是一個Tracker服務器回應的示例:

其中,“......”是一個長度為300的字符串,含有50個peer的IP地址和端口號。IP地址占4字節,端口號占2字節,即一個peer占6字節。

4.2.3 peer之間的通信協議

peer之間的通信協議又稱為peer wire protocal,即peer連線協議,它是一個基于TCP協議的應用層協議。

為了防止有的peer只下載不上傳,BT協議建議:客戶端只給那些向它提供最快下載速度的4個peer上傳數據。簡單地說就是誰向我提供下載,我就提供數據供它下載;誰不提供數據給我下載,我的數據也不會上傳給它。客戶端每隔一定時間,比如10秒,重新計算從各個peer處下載數據的速度,將下載速度最快的4個peer解除阻塞,允許這4個peer從客戶端下載數據,同時將其他peer阻塞。

4.3 系統的主界面

最終系統完成的主界面效果圖如圖2所示:

結束語

用戶通過網絡,利用搜索引擎搜索種子文件,獲得要下載文件的種子文件之后,交給客戶端軟件進行文件下載。最關鍵的是使用跨平臺的IDE平臺QT,使程序可以適應linux系統環境,在更加開放的環境下運行,甚至可以移植到嵌入式的開發板上試運行,并向移動BT下載的方向發展,使得BT下載的方式和適用范圍得以擴大。

圖2 系統主界面圖

[1]LEE H,Nam T.P2P honeypot to prevent illegal or harmful contents from spreading in P2P network[A]IEEE ICACT[C].2007:497-501.

[2]趙志偉,卓力,等.面向P2P的視頻流實時傳輸技術的研究與進展[J].測控技術,2008,23(5):1-3.

[3]劉峰,面向P2P流媒體服務的應用層組播技術研究[D].國防科技大學,2006.

[4]Alan Shalloway.設計模式精解[M].北京:機械工業出版社,2006.123-128.

[5]劉崢嶸,張智超,許振山,等.嵌入式應用開發詳解[M].北京:機械工業出版社,2004.89-123.

[6]王展明.BitTorrent原理與算法研究及其性能優化[D].南昌:南昌大學,2007.

[7]羅賢全,尚朝軒.定制嵌入式Linux系統的啟動程序[J].微計算機信息,2005,97(21):30-31.

[8]張曉林.嵌入式系統固件揭密[M].北京:電子工業出版社,2003.120-125.

[9]陳姝,方濱興,周勇林.P2P技術的研究與應用[J].計算機工程與應用,2002,38(13):20-23.

Design and Im p lementation of the BitTorrent Download Client Based on QT

WU Zi-ying
(Foreign Language Normal College of Taiyuan University,Taiyuan Shanxi 030012)

The use of an advanced agreement and algorithms,makes BT the user to experience faster than FTP and HTTP download speed.Coupled with the combination of BT and QT,QT platform makes use of BT in a broader space to play a great role and benefits of BT and adapted to contemporary embedded,the development of things.The paper amalyzed QT signals and slots system,keymetheds and measures of BT protocal and stated teh system design.

BT protocol;QT platform;signals and slots;torrent files;Peer To Peer

TP391

A

1673-2014(2011)05-0061-04

2011—05—15

武子英(1976— ),女,山西原平人,講師,碩士研究生,主要從事中文信息處理研究。

(責任編輯 單麥琴)

猜你喜歡
信號系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
完形填空二則
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
孩子停止長個的信號
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: 亚洲视频色图| 人妻无码中文字幕第一区| 无码一区二区三区视频在线播放| 69综合网| 久久精品波多野结衣| 又大又硬又爽免费视频| 中文字幕2区| 另类欧美日韩| 亚洲男人的天堂久久香蕉| 99久久精品国产综合婷婷| 污网站免费在线观看| 亚洲人成影视在线观看| 极品性荡少妇一区二区色欲| 亚洲免费福利视频| 国产网友愉拍精品| 色精品视频| 91精品久久久久久无码人妻| 特级做a爰片毛片免费69| 日本黄网在线观看| 国产欧美精品一区aⅴ影院| 72种姿势欧美久久久久大黄蕉| 日韩AV手机在线观看蜜芽| 国产精品第一区| 国内精品久久久久久久久久影视 | 在线观看免费人成视频色快速| 日韩国产 在线| 中文精品久久久久国产网址| 在线看AV天堂| 亚洲最大福利网站| 日韩毛片在线播放| 91久久性奴调教国产免费| 成人精品午夜福利在线播放| 欧美激情网址| 婷婷午夜影院| 日本高清免费一本在线观看| 国产日韩AV高潮在线| 18禁不卡免费网站| 毛片免费高清免费| 国产精品原创不卡在线| 91无码人妻精品一区| 亚洲精品视频免费看| 99精品国产高清一区二区| 真实国产乱子伦高清| 成年看免费观看视频拍拍| 亚洲天堂精品视频| 欧美日本在线| 国产美女精品一区二区| h网址在线观看| 永久免费无码日韩视频| 精品少妇人妻av无码久久| 热久久国产| 一本一本大道香蕉久在线播放| 亚洲国产中文欧美在线人成大黄瓜 | 国产女人在线| 青青操国产| 国产剧情国内精品原创| 精品天海翼一区二区| 久热精品免费| 亚洲国产一区在线观看| 免费jjzz在在线播放国产| 国产成人精品综合| 久久大香香蕉国产免费网站| 国产精品成人啪精品视频| 美女无遮挡被啪啪到高潮免费| 黄色网在线| 亚亚洲乱码一二三四区| 国内精品自在欧美一区| 91久久国产热精品免费| 国产主播一区二区三区| 99精品在线视频观看| 国产无码在线调教| 亚洲免费毛片| 亚洲欧美色中文字幕| 日本欧美午夜| 黑色丝袜高跟国产在线91| 亚洲综合婷婷激情| 久久婷婷五月综合色一区二区| 久久久国产精品免费视频| 999国产精品| 国产丝袜丝视频在线观看| 欧美精品影院| 国产99视频精品免费视频7|