專利名稱:面向p2p應(yīng)用的互為服務(wù)器的設(shè)計方法以及網(wǎng)絡(luò)架構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明成果可用于全國各大中型媒體機(jī)構(gòu)的內(nèi)容管理平臺(也稱做媒體 資產(chǎn)管理系統(tǒng))以及其他媒體機(jī)構(gòu)的數(shù)字內(nèi)容和節(jié)目的交換、分發(fā),在資源分發(fā)時使用基于智能節(jié)點(diǎn)彈性重疊網(wǎng)的P2P網(wǎng)絡(luò),屬于計算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域。 .背景技術(shù)我國各大中型媒體機(jī)構(gòu)的內(nèi)容管理平臺(也稱做媒體資產(chǎn)管理系統(tǒng))以及 其他媒體機(jī)構(gòu)的內(nèi)容和節(jié)目的交換、分發(fā),在形式上較為落后,現(xiàn)階段主要 采取的是單純的C/S傳輸方式(FTP等),要求設(shè)置擁有強(qiáng)大處理能力和大帶寬 的高性能計算機(jī),配合高檔的服務(wù)器軟件,將大量的數(shù)據(jù)集中存放在服務(wù)器 上,而且還要安裝多樣化的服務(wù)軟件。這種方式比較適用于上傳節(jié)目源是電 視臺等固定用戶,客戶端部署簡單不要求高性能,但是缺點(diǎn)是FTP服務(wù)器壓 力較大,下載速度較慢,大文件下載時間較長,導(dǎo)致傳媒機(jī)構(gòu)工作效率低, 代價高,消耗時間巨大。
P2P網(wǎng)絡(luò)技術(shù)的應(yīng)用,使得更多的人可以通過Internet實(shí)現(xiàn)即時通訊、 文件共享、分布計算以及協(xié)同合作。P2P網(wǎng)絡(luò)是一種完全分散式的體系機(jī)構(gòu), 系統(tǒng)中的任何一個實(shí)體都處于同等的地位,它既可以請求得到服務(wù),同時又 可以提供服務(wù),功能與職責(zé)對等,P2P技術(shù)使得Internet上的任何計算機(jī)之 間都能夠直接交換信息。P2P技術(shù)的特征之一就是弱化服務(wù)器的作用,甚至取 消服務(wù)器,任意兩臺PC互為服務(wù)器,同時又是客戶端?,F(xiàn)在用于文件共享分發(fā)的主流P2P軟件有BT、電驢(eMule)、酷狗(KuGoo) 等。它們的應(yīng)用主要在Internet上,適合于大量用戶共享的情況。它們的缺 點(diǎn)是,在使用范圍較小或較固定的網(wǎng)絡(luò),如校園網(wǎng)、公司網(wǎng)、小區(qū)網(wǎng)等網(wǎng)絡(luò) 發(fā)布資源后,共享用戶數(shù)量較少,在線狀態(tài)不穩(wěn)定,極易造成資源下載不穩(wěn) 定,時快時慢,甚至無法下載完整的情況。這對于在一些有固定網(wǎng)絡(luò)業(yè)務(wù), 要求速度和穩(wěn)定并重的網(wǎng)絡(luò)中是極為不利的,例如本發(fā)明所應(yīng)用的傳媒機(jī)構(gòu) 網(wǎng)絡(luò),如果使用一些主流的P2P技術(shù),雖然可以減輕服務(wù)器負(fù)擔(dān),但是很可 能出現(xiàn)這樣的情況某個用戶購買了一個音像制品的播放權(quán),當(dāng)他下載的時 候,這個資源不是P2P網(wǎng)絡(luò)里的熱點(diǎn),因此沒有共享用戶,或者共享用戶數(shù) 量很少不穩(wěn)定。這就會造成該用戶雖然已經(jīng)付款,但是在獲得購買的音像產(chǎn) 品時消耗時間過長,甚至無法獲得完整的文件,造成無法使用。發(fā)明內(nèi)容如果使用當(dāng)前的主流P2P軟件作為傳媒機(jī)構(gòu)音像制品分發(fā)平臺,就無法 保證用戶下載時的穩(wěn)定性,甚至無法確保用戶最終可以得到完整的資源。因
此,本發(fā)明的目的是能夠在我國各傳媒機(jī)構(gòu)內(nèi)部和各傳媒機(jī)構(gòu)之間,利用P2P. 網(wǎng)絡(luò)的高度分布式結(jié)構(gòu),減輕C/S模式中的服務(wù)器壓力,提高傳輸速度,但同時基于P2FP的思想,構(gòu)建一個更加穩(wěn)定的分布式文件分發(fā)系統(tǒng)。本發(fā)明不 僅適用于傳媒機(jī)構(gòu)網(wǎng)絡(luò),同樣適用于用戶規(guī)模不大,P2P資源更新較快的網(wǎng)絡(luò), 例如校園網(wǎng),小區(qū)網(wǎng),公司網(wǎng)等。
本發(fā)明提出了一種將C/S傳輸方式(FTP)和P2P傳輸方式相結(jié)合的結(jié)構(gòu) (P2FP);充分利用FTP協(xié)議功能,使資源傳輸更加穩(wěn)定,確保用戶快捷方 便地獲取完整文件,充分保障了用戶的權(quán)益。
本發(fā)明提供了一種面向P2P應(yīng)用的互為服務(wù)器的設(shè)計方法,其特征在于, 包括以下步驟-1) 將FTP下載集成在P2P客戶端軟件中,作為P2P下載方式的補(bǔ)充,軟. 件在下載時優(yōu)先從P2P網(wǎng)絡(luò)中尋找資源進(jìn)行分片下載;2) 當(dāng)P2P網(wǎng)絡(luò)中的資源不足以提供完整的文件時,P2P客戶端軟件自動選 擇向FTP服務(wù)器申請下載該文件;3) FTP服務(wù)器從內(nèi)容管理服務(wù)器調(diào)度成功后,P2P客戶端軟件開始從FTP 服務(wù)器上下載尚未完成的文件片斷。最終保證下載到完整的資源文件。這樣使得無論P(yáng)2P網(wǎng)絡(luò)上是否存在資源,是否存在完整資源,都可以下 載完整。同時優(yōu)先從P2P網(wǎng)絡(luò)上下載存在的資源片斷,又最大程度地避免了 FTP服務(wù)器的壓力,充分利用了P2P網(wǎng)絡(luò)的分布性能。.本發(fā)明還提供了一種面向P2P應(yīng)用的互為服務(wù)器的網(wǎng)絡(luò)架構(gòu),其特征在 于,包括.FTP服務(wù)器用于資源的存儲;FTP服務(wù)器由內(nèi)容管理服務(wù)器管理調(diào)度。 使用標(biāo)準(zhǔn)FTP協(xié)議,并支持IPv6協(xié)議傳輸。內(nèi)容管理服務(wù)器進(jìn)行FTP目錄文件的調(diào)度,當(dāng)Peer端申請下載時,內(nèi) 容管理服務(wù)器自動生成FTP目錄和文件,并通知Peer端相應(yīng)的FTP下載URL 和用戶名密碼,然后Peer端與FTP服務(wù)器連接進(jìn)行下載;多個用戶節(jié)點(diǎn)既是上傳文件的服務(wù)器端,又是下載文件的客戶端;集 成了FTP客戶端下載功能;用戶FTP和服務(wù)器FTP之間要傳送文件,需要有兩個連接命令通道和 數(shù)據(jù)連接。命令通道是傳送命令的,數(shù)據(jù)通道是用于傳送文件。在命令通道 中主要用到的命令有USER, PASS, TYPE, SIZE, REST, CWD, PWD, RETR, PASV, PORT, QUIT等。其中REST命令表示由特定偏移量重啟文件傳遞,后面' 接的參數(shù)代表服務(wù)器要開始傳輸?shù)哪且稽c(diǎn),此命令并不傳送文件,此命令后
跟其它要求文件傳輸?shù)腇TP命令。RETR命令表示開始傳送指定的文件(從REST 參數(shù)指定的偏移量開始傳送)。由此可見,F(xiàn)TP本身就提供了從服務(wù)器上按指 定偏移量下載一定大小文件數(shù)據(jù)的功能。所以本發(fā)明中就是利用這個特性和 P2P傳輸進(jìn)行了結(jié)合。 本發(fā)明的原理如下P2FP結(jié)構(gòu)中,對文件進(jìn)行分片傳輸是使這種結(jié)構(gòu)能夠運(yùn)行的基礎(chǔ)。也就 是說,P2P要求文件分片,同時從FTP服務(wù)器上也可以利用文件的偏移量來進(jìn) 行某些片斷的下載。P2FP中具體的分片大小可以在配置文件中進(jìn)行更改。一 般分片大小為512K字節(jié)或1M字節(jié)。在本發(fā)朋中的P2P傳輸協(xié)議中,兩個Peer端交互消息,消息中包含文件 片斷的索引值。索引的總個數(shù)是按照文件大小與分片大小的比求出。除了最 后一片大小不定,其余片斷大小均為固定的分片大小。因此在交互信息時, 根據(jù)文件大小和要傳輸片斷的索引號,就可以算出該片斷在文件中的偏移量 和長度(即當(dāng)前片斷的長度)。本發(fā)明從FTP和P2P兩種分片傳輸?shù)臋C(jī)制中找到共同點(diǎn),就是它們的本 質(zhì)都是從服務(wù)器文件上找到要傳輸?shù)钠屏亢蛡鬏旈L度,然后服務(wù)器將相應(yīng) 的數(shù)據(jù)發(fā)送到客戶端。本發(fā)明本著"P2P優(yōu)先,確保完整"的原則,當(dāng)P2P網(wǎng) 絡(luò)中存在資源文件的X個片斷時,優(yōu)先從P2P網(wǎng)絡(luò)中下載這X個片斷。剩余 的片斷再向FTP服務(wù)器提出申請下載。它們在Peer下載端本地都是操作的同 一個文件,所以最終達(dá)到下載完整的目的。由于在傳媒機(jī)構(gòu),分發(fā)的資源大多屬于版權(quán)保護(hù),由集中的內(nèi)容提供商 發(fā)布。使用P2P網(wǎng)絡(luò)和FTP方式結(jié)合,可以充分利用分布式網(wǎng)絡(luò)的優(yōu)勢,避 免集中式網(wǎng)絡(luò)瓶頸對傳輸造成的影響,同時集成的FTP方式也保證了資源的 完整下載和縮短用戶的下載等待時間,避免了傳統(tǒng)P2P網(wǎng)絡(luò)中沒有"種子" 下載無法完成的局面。本發(fā)明提出了P2FP的思想,其中F即指FTP服務(wù),是將原本孤立的P2P 資源和FTP資源整合到一起,也就是說用戶得到的資源可能一部分來自于P2P 網(wǎng)絡(luò),其余部分來于FTP服務(wù)器。這樣,在下載的穩(wěn)定性上和速度上,都比 傳統(tǒng)中單獨(dú)的FTP或P2P方式有了非常大的提高。
圖l本發(fā)明的應(yīng)用網(wǎng)絡(luò)結(jié)構(gòu),. 圖2本發(fā)明的下載的流程圖具體實(shí)施方式
本實(shí)施例中幵發(fā)計算機(jī)為"DELL微機(jī),Intel (R) Pentium(R) 4 CPU 3. 00GHz, 1GB內(nèi)存,80G硬盤"。采用VisualStudio2003開發(fā)環(huán)境,編程語言為C#。 Peer端運(yùn)行環(huán)境為WindowsXP以上版本的操作系統(tǒng)+. NetFrameworkl. 1。由于 運(yùn)行網(wǎng)絡(luò)為IPv6網(wǎng)絡(luò),因此FTP服務(wù)器采用Xlight FTP服務(wù)器(可支持IPv4 和IPv6)。本發(fā)明運(yùn)行在CNGI IPv6網(wǎng)絡(luò)上,部署20個智能節(jié)點(diǎn)和200個Peer 客戶端,我們設(shè)計了多個專門的針對性測試,用以測試本發(fā)明的穩(wěn)定性和性 能,例如P2P網(wǎng)絡(luò)上沒有共享或P2P網(wǎng)絡(luò)上只存在一部分文件的情況,測試 表明,本發(fā)明可以實(shí)現(xiàn)單純的P2P下載或FTP下載,或組合型從P2P和FTP 上下載同一個文件的不同部分。但是對于使用者是沒有任何區(qū)別的,使用者 不需要對下載方式進(jìn)行選擇,本發(fā)明自動選擇最優(yōu)化的方式,確保最快、最 穩(wěn)定的下載到完整的文件。最慢下載平均速度達(dá)到1.7MB/s (P2P網(wǎng)絡(luò)沒有文 件共享,單純使用FTP),最快下載平均速度達(dá)到8.1MB/s (P2P網(wǎng)絡(luò)中存在 完整的文件),完全符合實(shí)際使用要求。 具體實(shí)施方案為l.總體網(wǎng)絡(luò)結(jié)構(gòu) 本發(fā)明是基于網(wǎng)絡(luò)的內(nèi)容分發(fā)P2P軟件,運(yùn)行時會有多個Peer端,既 是上傳文件的服務(wù)器端,又是下載文件的客戶端。同時,集成了FTP客戶端 下載功能,所以在網(wǎng)絡(luò)結(jié)構(gòu)中就需要架設(shè)FTP服務(wù)器。在本發(fā)明的總體網(wǎng)絡(luò) 結(jié)構(gòu)中,還包括內(nèi)容管理服務(wù)器,Peer端和它進(jìn)行交互,提出FTP下載申請, 由內(nèi)容管理服務(wù)器進(jìn)行文件的調(diào)度,然后通知Peer端FTP下載的URL和用戶 名密碼。只會Peer端與FTP服務(wù)器連接進(jìn)行下載。附圖1展示了本發(fā)明的應(yīng)用網(wǎng)絡(luò)結(jié)構(gòu),其中CNGI是中國下一代互聯(lián)網(wǎng), 網(wǎng)絡(luò)協(xié)議使用IPv6協(xié)議。內(nèi)容管理服務(wù)器和FTP服務(wù)器可以架設(shè)在同一個物 理計算機(jī)上,其中內(nèi)容管理服務(wù)器的文件調(diào)度技術(shù)不屬于本發(fā)明范疇,不再 詳細(xì)敘述。附圖中的虛線表示,某個Peer端在下載時,P2FP結(jié)構(gòu)中傳輸?shù)姆?式,即由Peer端和FTP傳輸共同組成。 2.模塊化面向?qū)ο箝_發(fā)。本發(fā)明中的Peer端軟件開發(fā)采用模塊化面向?qū)ο蟮拈_發(fā)方式,將軟件分 為網(wǎng)絡(luò)通信模塊、人機(jī)交互模塊、業(yè)務(wù)流程模塊、對象原型模塊、接口模塊 等模塊,層次清晰,結(jié)構(gòu)合理,便于團(tuán)隊合作共同開發(fā),并且對軟件升級, 增加新功能提供了良好的擴(kuò)充性。本發(fā)明中使用到的FTP參數(shù)(用戶名、密碼、IP地址等)、FTP操作都 相應(yīng)封裝在自定義類FTPHelper中。主要操作如下描述> Public FTPFactory(string remoteHost,string
remotePath, stringremoteUser, stringremotePass, IPAddress ipaddr, int remotePort, bool debug, bool logined) 功能:FTPHelper類的構(gòu)造函數(shù)。輸入FTP服務(wù)器的主機(jī)名,地址,文件路徑,用戶名,密碼,端口號等。輸出無> private void readR印ly()功能讀取FTP服務(wù)器消息,解析消息碼,識別消息類型。輸入無 .輸出無> private void sendCoramand(string command) 功能向FTP服務(wù)器發(fā)送消息。輸入i消息文本輸出無>'public void close0 功能發(fā)送QUIT消息,關(guān)閉Socket連接。 輸入無輸出無> public void login()功能根據(jù)本對象的用戶名密碼等屬性,連接登錄FTP服務(wù)器 .輸入無 輸出無> public long getFileSize(string fileName)功能登錄FTP后,獲取某個文件的大小 輸入文件在FTP服務(wù)器上的路徑 輸出:文件大小字節(jié)數(shù)> public string[] getFileList(string mask)功能獲取FTP服務(wù)器上某個目錄下的文件列表輸入目錄名輸出文件名稱列表> public void download(string remFileName,string locFileName, long FileOffset, int downLength)功能按偏移量進(jìn)行下載輸入文件名,在本地客戶端保存的文件名,文件偏移量,要下載的大 小(單位字節(jié))' 輸出無
本發(fā)明在實(shí)現(xiàn)中為結(jié)合P2P和FTP,將每個下載任務(wù)抽象為類 'ClientFile,該類包含了該文件的ID,所擁有的下載連接等屬性。它所具 有的主要操作如下>.public. void CreateConnection(string cnodeIP , string丄] IpString, string FileID, string FileName, string PeerUs6rName, string localName, int currentUserID)功能:為當(dāng)前下載任務(wù)創(chuàng)建下載連接,包括P2P連接和FTP連接。 輸入智能節(jié)點(diǎn)IP,提供共享的Peer端IP列表,文件ID,文件名,Peer 端用戶名,本地文件名,用戶ID . 輸出無3.附圖2是P2FP下載過程中分配連接進(jìn)行下載的流程圖用戶在搜索到需要的文件后,點(diǎn)擊下載保存,Peer端會預(yù)先為該文件 分配空間。然后與智能節(jié)點(diǎn)交互,得到正在共享此文件的Peer端的列表,并 且智能節(jié)點(diǎn)對這些Peer端進(jìn)行了 QoS計算,得出每個Peer的消耗值(COST)。 下載Peer端對列表進(jìn)行排序,將評價最優(yōu)的Peer排在列表前。下載之前,首先Peer端查詢該文件配置表,獲取所有狀態(tài)為"未下載" 的片斷索引數(shù)組。如果是新文件首次下載,則所有片斷都被加入到數(shù)組中。接著,與列表中的第一個Peer進(jìn)行連接,交互消息,查詢對方擁有的 該文件片斷索引列表,與本地進(jìn)行比較,將匹配上的片斷置為"已分配"狀 態(tài)。使用異步與這個Peer連接,下載匹配到的所有片斷。同時從Peer列表 中刪除這個Peer端,再取出第一個Peer連接,如此循環(huán),直到未下載片斷 個數(shù)為0,或Peer列表中個數(shù)為O。.如果仍有未下載片斷,而Peer列表中個數(shù)已為O,則表示P2P網(wǎng)絡(luò)中 已經(jīng)沒有可用的Peer端提供共享了 。此時向內(nèi)容管理服務(wù)器申請下載該文件, 獲取相應(yīng)的FTP URL以及用戶名密碼。連接FTP服務(wù)器,按剩余的未下載片 斷索引計算偏移量和長度,依次下載文件的剩余部分。最終得以快速穩(wěn)定地 下載到完整的文件。
權(quán)利要求
1、面向P2P應(yīng)用的互為服務(wù)器的設(shè)計方法,其特征在于,包括以下步驟1)將FTP下載集成在P2P客戶端軟件中,作為P2P下載方式的補(bǔ)充,軟件在下載時優(yōu)先從P2P網(wǎng)絡(luò)中尋找資源進(jìn)行分片下載;2)當(dāng)P2P網(wǎng)絡(luò)中的資源不足以提供完整的文件時,P2P客戶端軟件自動選擇向FTP服務(wù)器申請下載該文件;3)FTP服務(wù)器從內(nèi)容管理服務(wù)器調(diào)度成功后,P2P客戶端軟件開始從FTP服務(wù)器上下載尚未完成的文件片斷;最終保證下載到完整的資源文件。
2、 面向P2P應(yīng)用的互為服務(wù)器的網(wǎng)絡(luò)架構(gòu),其特征在于,包括 FTP服務(wù)器用于資源的存儲;FTP服務(wù)器由內(nèi)容管理服務(wù)器管理調(diào)度;使用標(biāo)準(zhǔn)FTP協(xié)議,并支持IPv6協(xié)議傳輸;內(nèi)容管理服務(wù)器進(jìn)行FTP目錄文件的調(diào)度,當(dāng)Peer端申請下載時,內(nèi) 容管理服務(wù)器自動生成FTP目錄和文件,并通知Peer端相應(yīng)的FTP下載URL 和用戶名密碼,然后Peer端與FTP服務(wù)器連接進(jìn)行下載;多個用戶節(jié)點(diǎn)既是上傳文件的服務(wù)器端,又是下載文件的客戶端;集 成了FTP客戶端下載功能;用戶FTP和FTP服務(wù)器之間要傳送文件,需要有兩個連接命令通道和 數(shù)據(jù)通道;命令通道用于傳送命令的,數(shù)據(jù)通道用于傳送文件。
3、 根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)架構(gòu),其特征在于,內(nèi)容管理服務(wù)器和FTP 服務(wù)器架設(shè)在同一個物理計算機(jī)上。
全文摘要
本發(fā)明屬于計算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域。設(shè)計方法步驟將FTP下載集成在P2P客戶端軟件中,作為P2P下載方式的補(bǔ)充,軟件在下載時優(yōu)先從P2P網(wǎng)絡(luò)中尋找資源進(jìn)行分片下載;當(dāng)P2P網(wǎng)絡(luò)中的資源不足以提供完整的文件時,P2P客戶端軟件自動選擇向FTP服務(wù)器申請下載該文件;FTP服務(wù)器從內(nèi)容管理服務(wù)器調(diào)度成功后,P2P客戶端軟件開始從FTP服務(wù)器上下載尚未完成的文件片斷;最終保證下載到完整的資源文件。該網(wǎng)絡(luò)架構(gòu)包括FTP服務(wù)器、內(nèi)容管理服務(wù)器、多個用戶節(jié)點(diǎn)及用戶FTP和FTP服務(wù)器之間的命令通道和數(shù)據(jù)通道。本發(fā)明充分利用FTP協(xié)議功能,使資源傳輸更加穩(wěn)定,確保用戶快捷方便地獲取完整文件,充分保障了用戶的權(quán)益。
文檔編號H04L12/28GK101159645SQ20071017696
公開日2008年4月9日 申請日期2007年11月8日 優(yōu)先權(quán)日2007年11月8日
發(fā)明者伏文龍, 爽 馮, 銳 呂, 曹軼臻, 王永濱, 隋愛娜 申請人:中國傳媒大學(xué)