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

基于P2P的數據共享平臺設計與實現

2014-04-29 00:44:03胡杰
計算機時代 2014年11期

胡杰

摘 要: 通過對大型分布式系統在數據傳輸與共享中所遇到的問題的討論,提出一個新的數據共享平臺設計方案。該方案基于當前Internet廣泛運用的P2P技術,結合文件壓縮、數據加密、斷點續傳等相關技術手段,實現了分布式系統中網絡間數據的高性能、高可靠傳輸與共享。

關鍵詞: 文件壓縮; 數據加密; 斷點續傳; P2P

中圖分類號:TP393.08 文獻標志碼:A 文章編號:1006-8228(2014)11-07-03

Design and implementation of data share platform based on P2P technology

Hu Jie

(The 28th Institute of China Electronics Technology Group Corporation, Nanjing, Jiangsu 210007, China)

Abstract: Through the discussion on the problems happened in data transmission and share of the distributed system, a new data share platform solution is introduced. Based on the popular P2P technology on the Internet, several relevant technologies such file compression, data encryption and breakpoint transmission are adopted. Data transmission and share with high efficiency and reliability are realized.

Key words: file compression; data encryption; breakpoint transmission; P2P

0 引言

隨著網絡技術的快速發展,分布式技術在軍事、金融、電信等各個領域得到越來越廣泛的應用,當前許多大型信息系統都采用了分布式架構。隨著系統的不斷升級擴張,分布式系統部署的子節點越來越多,系統存儲的數據規模也隨之不斷膨脹,且這些子節點與數據常常分布在不同的物理地域。當系統一些子節點數據發生更新時,需要與系統中其他子節點進行數據同步以保證數據的一致性。

目前通常的做法是:當分布式系統需要進行數據同步時,由發生數據變更的節點通知其他子節點,其他子節點向該節點發送數據更新請求,該節點作為數據發布服務器向其他節點傳輸最新數據,從而實現整個分布式系統的數據一致。然而,這種數據同步模式存在以下幾個問題:首先,當分布式系統子節點大于一定規模時,作為數據發布服務器的子節點將存在嚴重的性能與網絡傳輸瓶頸;其次,針對一些特殊行業的系統如銀行、金融領域,遠距離數據傳輸需要考慮數據的安全性問題;最后,如果分布式系統采用低速的傳輸線路,那么傳輸一個大的文件可能需要很長的時間,在長時間的數據同步過程中,一旦發生任何錯誤將導致整個數據同步工作必須重頭開始。

針對以上問題,本文提出了一個基于P2P技術的分布式系統數據共享平臺設計方案。

1 總體設計思路

分布式系統數據共享平臺的設計目標是在各種速率的通信網絡上實現數據的高效傳輸,同時為了保證數據的安全性,需要對數據進行加密處理。在具體的實施過程中,從以下幾個方面進行設計。

⑴ 傳輸數據/文件的壓縮,數據/文件的壓縮是為了減少傳輸線路上數據的冗余,最大限度地利用傳輸線路的帶寬。

⑵ 傳輸數據的加密,由于系統分布在不同的物理地域,數據傳輸過程中需要在節點間進行遠距離數據傳輸,這存在被非法截取而導致內容外泄的風險。對數據進行加密后,即使在傳輸過程中被非法截取,對方也無法獲得原始的數據內容。

⑶ 文件的斷點續傳處理,斷點續傳功能在低速率的通信網絡尤為重要,當數據傳輸過程中發生錯誤后,文件可以接續之前已接收的數據繼續傳輸,提高數據傳輸的成功率。

⑷ 基于P2P(點到點)傳輸技術的運用,如果采用傳統C/S(客戶端/服務器)模式,選取某個系統的節點作為數據發布服務器,隨著系統的規模擴大,大量的客戶端節點同時向服務器節點申請數據傳輸,服務器節點的應用負載和網絡帶寬必然不堪重負。采用P2P技術可以降低數據同步時對服務器節點的依賴,實現“下載客戶端越多,下載速度越快”。

結合上述幾項技術,下面給出分布式系統數據共享平臺的總體設計思路。

發生數據變更的節點可視為服務器端子節點,而其他需要數據同步的子節點可視為客戶端子節點。

對于服務器端,首先對需要同步的數據/文件進行預處理,包括數據/文件的壓縮和加密,形成壓縮加密后的中間文件。然后根據斷點續傳和P2P的思想,將文件分割為固定大小的文件塊,并創建文件塊索引表,該索引表記錄了每個文件塊以及目前網絡中擁有該文件塊的客戶端節點。接下來,服務器端處于下載服務等待狀態,當收到客戶端的下載請求后,服務器端創建線程進行P2P的數據傳輸處理。在P2P數據傳輸處理線程中,服務器通過查找文件塊索引表,找到每個文件塊對應的第一個節點,并通知客戶端和該節點直接進行數據傳輸。原則上服務器不發送任何文件塊到客戶端,只有當網絡中所有客戶端節點都沒有某文件塊時,服務器才發送該文件塊到客戶端,詳細內容見后續P2P技術實現的描述,服務器端主流程圖如圖1所示。

[開始][數據/文件的壓縮加密][形成壓縮加密后的中間文件][文件分割并創建文件塊索引][等待客戶端下載請求][\&收到下載請求,創建線

程進行P2P的數據傳輸\&\&][結束]

圖1 服務器主流程圖

對于客戶端,當開始下載時,首先檢查是否存在已下載的內容,如果存在則接續已有的內容繼續下載,否則從頭開始下載。在下載過程中,需要實時更新當前已下載文件塊的記錄信息,同時為了應對斷電、死機等意外情況,應保證每個文件塊接收成功后再更新對應的記錄信息,防止出現記錄信息已更新但文件塊尚未接收完畢的問題。當收到停止或結束的命令時,首先判斷文件下載是否已經完成,如果已完成則進行文件的解密和解壓以獲取原始文件,否則記錄當前的下載狀態用來實現斷點續傳,客戶端主流程圖如圖2所示。

[開始][收到停止或者結束命令][文件解密][文件解壓][\&接續下載\&\&][結束][已有下載內容?] [下載完成?] [\&全新下載\&\&] [是][否] [是] [否]

圖2 客戶端主流程圖

以上主要介紹了分布式系統數據共享平臺的總體設計方案,下面就方案中涉及的文件壓縮、文件加密、P2P數據傳輸處理等問題分別展開論述。

2 文件壓縮的設計實現

文件壓縮是數據壓縮技術的一部分,所謂數據壓縮是指通過各種算法減少數據的冗余,并盡可能地減少失真,從而提高傳輸效率和節約存儲空間。數據壓縮技術分為無損壓縮和有損壓縮兩種:無損壓縮在重構壓縮數據后,其重構數據與原始數據是完全一致的;而有損壓縮的重構數據與原始數據有所不同,但不影響原始數據的信息表達,壓縮比高,一般適用于語音、圖像、視頻等多媒體領域。數據共享平臺的文件壓縮要求重構數據和原始數據一致,因此必須采用無損壓縮,常見的無損壓縮算法有:Huffman(哈夫曼)編碼、游程編碼、算術編碼等[1]。這里我們采用Huffman編碼完成文件的壓縮。

Huffman編碼是一種基于統計的變長編碼,它通過將出現頻率較高的信源符號用較短的碼字來編碼,而出現頻率較低的信源符號用較長的碼字來編碼,從而使平均碼長最短,達到最佳編碼的目的。Huffman編碼效率高,運算速度快,當前流行的壓縮軟件如WinRAR、WinZip都采用了Huffman算法[2]。

以下詳細介紹采用Huffman編碼實現文件壓縮的步驟。

首先將文件看作一個個字節編碼的組合,由于每個字節的內容最多有256(28)種可能,所以每個文件都是由不超過256種的字符組成。掃描原始文件,統計文件中出現的字符及其概率,將字符按概率從高到低排序。

由于Huffman編碼是不等長編碼,為了避免二義性,要求任何一個字符的編碼都不能是另一個字符編碼的前綴,又稱為前綴編碼。Huffman編碼就是以字符出現的頻率作為權值,通過構造Huffman樹,生成碼長最短的二進制前綴編碼:

⑴ 假定某個文件中包含n種字符S1,S2,…,Sn,以字符出現的頻率作為權值,得到權值的集合W={w1,w2,…,wn},定義n棵二叉樹的集合F={T1,T2,…,Tn},其中每棵二叉樹Ti中只有一個帶權為wi的根結點,其左右子樹均為空;

⑵ 在F中選取兩棵根結點的權值最小的樹作為左右子樹構造一棵新的二叉樹,且置新的二叉樹的根結點的權值為其左右子樹上根結點的權值之和;

⑶ 從F中刪除這兩棵樹,同時將新得到的二叉樹加入到F中;

⑷ 重復⑵和⑶,直到F只含有一棵樹為止,這棵樹就是Huffman樹;

⑸ 約定樹的左分支表示字符‘0,右分支表示字符‘1,則從根結點到葉子結點的路徑上分支字符組成的字符串就是碼長最短的二進制前綴編碼,即Huffman編碼[3]。

以英文的文本文檔為例,通常情況下文件中的每個字符占用8個二進制位,使用Huffman編碼后,英文中e、a等出現頻率最高的字母只占用了1到2個二進制位,盡管頻率最低的字母z需要占用更多的位數(25個二進制位),但由于其出現的比例很低,通常不到1%,因此對于整個文件而言,每個字符平均占用的位數一般不超過4個二進制位,壓縮后文件的大小不超過原始文件的一半。

3 文件加密的設計實現

文件加密可用的成熟算法有很多,主要分為對稱算法和非對稱算法。非對稱算法都是基于復雜的數學難題。這些算法被公認為安全和有效的有三類:大整數分解問題類、離散對數問題類和橢圓曲線類。

這里選取RSA算法作為文件加密的算法,RSA算法是大數分解問題類的典型,其安全性基于整數因子分解問題的困難性,公鑰和私鑰是一對大素數的函數,從一個公開密鑰和密文中恢復出明文的難度等價于分解兩個大素數之積。

首先選取兩個長度相等的大素數p和q,計算乘積[4]:

n=pq

然后隨機選取加密密鑰e,使e和(p-1)(q-1)互素,常用的e值是3,17和65537(216+1)。之后找出d,滿足:

ed≡1 mod(p-1)(q-1)

d=e-1 mod((p-1)(q-1))

則d和n也互素。其中e和n是公用密鑰,d是私用密鑰,mod是求余運算。加密消息m時,將其看成是一個大整數,把它分成比n小的數據分組。按下面公式加密:

ci=mie(mod n)

解密消息時,取每一個加密后的分組ci并計算:

mi=cid(mod n)

結合分布式系統數據共享平臺的設計思路,數據/文件傳輸前首先通過公鑰對原始數據/文件文件進行加密得到密文,密文通過傳輸線路發送出去,其計算方法如下:

傳輸密文=RSAEncrypt公鑰(原始文件)

接收方收到密文后,通過對方提供的私鑰對密文進行解密得到原始文件,其計算方法如下:

原始文件=RSADecrypt私鑰(傳輸密文)

因此,數據共享平臺的加/解密步驟為:首先由分布式系統的服務器端生成一對公鑰和私鑰,服務器端使用公鑰統一對原始文件進行加密,加密完成后將密文發送給客戶端;各個客戶端收到密文后,在本地使用由服務器端生成的私鑰進行解密,從而得到原始文件。

此外,為了保證文件加密的安全,實際應用還需要注意兩個問題:首先,RSA的安全性依賴于大數分解的困難,為了防止破解者利用大規模高性能計算機進行大數分解的暴力破解,應確保RSA密鑰不小于1024位;其次,不允許通過發送密文的同一個線路傳輸私鑰,應采用其他方式送達接收端。

4 斷點續傳和P2P技術的設計實現

斷點續傳技術的核心思想就是“化整為零”:將文件分割為一定大小的文件塊,數據傳輸時以每個小的文件塊為單位,如果傳輸過程中出現錯誤,下次重新開始時只需發送未接收的文件塊,之前已經正確接收的文件塊不必再次發送。

P2P又稱為對等網絡,是基于TCP/IP協議的一種新的網絡技術,在P2P模型中,網絡中每個節點是平等的,都同時兼有服務器和客戶端的功能,節點之間可以直接互連進行數據的交互,從而消除了傳統C/S架構中服務器端的瓶頸問題。利用P2P技術能夠充分挖掘網絡邊緣節點的能力,降低數據傳輸對中心服務器的依賴[5]。當前,P2P技術在Internet網絡中發展十分迅速,我們熟悉的即時通訊、BT下載、網絡電視等應用都采用了該技術。

下面介紹在分布式系統數據共享平臺設計中,如何將斷點續傳和P2P這兩種技術相結合,實現數據傳輸的高可靠性和高效率。

正如之前所約定的,分布式系統中擁有最新的數據某個節點定義為服務器端節點。在P2P模型中,該服務器端節點不再作為數據內容的提供者,而是作為一個索引服務器。索引服務器記錄了數據內容的索引和節點信息,輔助其他節點之間建立連接,數據的傳輸只在節點之間進行,不通過索引服務器。只有其他所有節點都沒有對應的數據內容時,索引服務器才將內容直接發給數據申請者[6]。

首先,服務器端節點將文件分割為固定大小的文件塊,文件塊的大小應根據傳輸協議數據包的大小而定。因為當數據傳輸時,每一幀數據都會加上傳輸協議的報文頭,如果文件塊太大則會削弱斷點續傳的效果,而如果太小則會因為加了太多的報文頭而造成線路帶寬的浪費。假定該文件被分割成n塊,分別為f1,f2,…,fn,該分布式系統一共有m個節點P1,P2,…,Pm,建立文件塊和節點的索引表,表示該文件塊已存在于系統中哪些節點,索引表的格式如表1所示。

表1 文件塊索引表

[文件塊\&存儲節點鏈表\&f1\&P3\&P5\&P6\&\&\&f2\&P2\&P7\&P9\&P16\&\&f3\&P9\&P1\&\&\&\&…\&\&\&\&\&\&fn\&P8\&\&\&\&\&]

索引表在初始創建時,每個文件塊的存儲節點鏈表為空,隨著其他節點下載文件塊成功,對應的節點信息將被填入動態的存儲節點鏈表。數據同步開始時,由某個需要數據同步的節點Pi向索引服務器發送同步請求,索引服務器收到請求后查詢文件塊索引表,找到每個文件塊對應的存儲節點鏈表,按如下步驟進行處理:

⑴ 如果文件塊f1對應的存儲節點鏈表為空,則由索引服務器直接發送數據給節點Pi,數據傳輸完成后,將節點Pi插入文件塊f1的存儲節點鏈表中;

⑵ 如果文件塊f1對應的存儲節點鏈表不為空(假設鏈表內容如表1所示),則通知申請節點Pi與f1存儲節點鏈表的第一個節點(即節點P3)建立連接,由節點P3發送數據給節點Pi,數據傳輸完成后,將節點Pi插入到存儲節點鏈表的頭部;

⑶ 如果申請節點Pi與鏈表的第一個節點建立連接失敗或者數據傳輸失敗,即節點P3與Pi建鏈失敗或數據傳輸失敗,那么從f1存儲節點鏈表中刪除第一個節點P3,通知Pi與下一個節點(即P5)建立連接并傳輸數據,重復該步驟直到數據傳輸成功為止;

⑷ 如果執行步驟⑶始終未實現數據的成功傳輸,最終使得f1存儲節點鏈表為空,則重復步驟⑴;

⑸ 對其他的文件塊f2,f3,…,fn按照步驟⑴到⑷進行同樣的處理。

在上述處理中,當發現存儲節點鏈表中的節點無法正常建立連接或進行數據傳輸時,索引服務器將刪除該失效節點以提高節點的查找效率。同時,新增加的有效節點插入鏈表的頭部,也是為了提高存儲節點鏈表的實時有效性[7]。

通過真實環境試驗后發現:如果采用傳統的C/S架構進行數據同步,當客戶端逐步增加時,下載的速度逐步下降,當客戶端數目增長到一定數目時,受到帶寬和性能的限制,服務器甚至將無法響應客戶端的更新請求;而采用P2P技術后,隨著客戶端數目的增加,下載的速度逐步提高,當客戶端的數目增長達到文件塊的數目時,下載速度達到頂峰,并且隨著客戶端的數目繼續增加,下載的速度基本保持在頂峰值,沒有出現明顯的下降。

5 結束語

分布式系統數據共享多數采用了單服務器共享、多客戶端訪問的模式,存在著數據發布服務器負載有限以及網絡傳輸瓶頸的問題。本文提出的方案通過P2P技術降低對數據發布服務器的依賴,并結合文件壓縮、數據加密、斷點續傳等技術手段實現數據共享的可靠性和傳輸效率,有效的節省了數據同步時的服務器開銷與網絡帶寬。隨著綜合電子信息系統的網絡朝著扁平化發展,如何合理地利用P2P技術,在大規模分布式系統中實現全部信息的全網絡共享,還需要進一步探討。同時,在采用P2P技術后,如何對網絡進行管理、規劃以及數據流量的監控,避免出現網絡風暴或堵塞,這些問題還需要后續更加深入的研究。

參考文獻:

[1] 李瑋,林明.基于自適應算術編碼的字符型報文壓縮技術[J].科學技

術與工程,2013.13(10):2836-2837

[2] 張鳳林,劉思峰.Huffman*:一個改進的Huffman數據壓縮算法[J].計

算機工程與應用,2007.43(2):73-74

[3] 嚴蔚敏,吳偉民.數據結構(C語言版)[M].清華大學出版社,2006.

[4] 陳傳波,祝中濤.RSA算法應用及實現細節[J].計算機工程與科學,

2006.28(9):13-14

[5] 鄭真,曹寶香.基于P2P的分布式軟件構件庫檢索機制[J]. 計算機工

程,2010.36(2):48-50

[6] 周文莉,吳曉非.P2P技術綜述[J].計算機工程與設計,2006.27(1):

76-79

[7] 張明軍,彭婭等.P2P流媒體服務方案及其關鍵技術研究[J].計算機工

程,2013.39(1):126-127

主站蜘蛛池模板: 色综合五月婷婷| 欧美三级视频网站| 大香网伊人久久综合网2020| 亚洲国产中文欧美在线人成大黄瓜| 日韩在线欧美在线| 亚洲日本中文字幕天堂网| www.日韩三级| 亚洲成人网在线播放| 视频二区亚洲精品| 国产亚洲精品自在久久不卡| 亚洲日韩国产精品无码专区| 高潮毛片免费观看| 无码丝袜人妻| 国产午夜在线观看视频| 国内黄色精品| 日韩天堂网| 国产激爽大片高清在线观看| 青青草久久伊人| 亚洲成A人V欧美综合天堂| 天堂va亚洲va欧美va国产| 国产毛片高清一级国语 | 日韩精品亚洲一区中文字幕| 亚洲人成影院午夜网站| yjizz国产在线视频网| 国产成人夜色91| 欧美高清视频一区二区三区| 乱人伦99久久| 扒开粉嫩的小缝隙喷白浆视频| 午夜国产大片免费观看| 正在播放久久| 四虎亚洲精品| 国产黑人在线| 日韩欧美中文| 狠狠亚洲五月天| 精品人妻一区二区三区蜜桃AⅤ| 日本人又色又爽的视频| 亚洲日本中文字幕天堂网| 91丝袜乱伦| 日本一本在线视频| 亚国产欧美在线人成| 999国产精品永久免费视频精品久久| 青青草国产一区二区三区| 91精品人妻互换| 91小视频在线观看免费版高清| 丁香婷婷激情网| 国内精品视频在线| 国产自产视频一区二区三区| 国产精品开放后亚洲| а∨天堂一区中文字幕| 看国产毛片| 国产黑丝视频在线观看| 久久综合婷婷| 福利视频一区| 在线高清亚洲精品二区| 九月婷婷亚洲综合在线| 九色视频一区| 欧美性精品| 麻豆精品在线| 免费一级毛片在线观看| 国产在线欧美| 乱人伦99久久| 五月丁香伊人啪啪手机免费观看| 国产成人麻豆精品| 国产精品成人啪精品视频| 中文字幕精品一区二区三区视频 | 国产精品原创不卡在线| 日韩精品一区二区三区免费在线观看| 黄色网在线| 欧美成人a∨视频免费观看| 亚洲愉拍一区二区精品| 自偷自拍三级全三级视频| 在线综合亚洲欧美网站| 欧美日韩中文国产va另类| 91精品国产福利| 白浆免费视频国产精品视频 | 国产欧美在线| 奇米影视狠狠精品7777| 广东一级毛片| 香蕉视频在线观看www| 99视频在线免费看| 亚洲手机在线| 伊人久久婷婷|