最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種基于Hadoop平臺(tái)和分布式處理編程模型的TCP流重組方法

文檔序號(hào):7814302閱讀:366來源:國(guó)知局
一種基于Hadoop平臺(tái)和分布式處理編程模型的TCP流重組方法【專利摘要】本發(fā)明公開了一種基于Hadoop平臺(tái)和分布式處理編程模型的TCP流重組方法,Map的輸入鍵值對(duì)為<偏移量,二進(jìn)制數(shù)據(jù)包>,輸出鍵值對(duì)為<五元組,時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷>。“+”操作表示將時(shí)間戳、序列號(hào),數(shù)據(jù)包有效凈荷部分拼成一個(gè)大的字節(jié)數(shù)組,并最終將“時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷”保存為Hadoop自帶的BytesWritable數(shù)據(jù)類型。Map的輸出經(jīng)過Shuffle中間過程,完成對(duì)輸出鍵值對(duì)的分區(qū)、排序、合并等過程。將Map輸出中相同五元組的“時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷”聚集在一起形成鍵值對(duì)<五元組,list(時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷)>作為Reduce的輸入。最終Reduce的輸出鍵值對(duì)為<五元組,重組數(shù)據(jù)>。本發(fā)明提高了運(yùn)行效率,減少了開銷?!緦@f明】—種基于Hadoop平臺(tái)和分布式處理編程模型的TCP流重組方法【
技術(shù)領(lǐng)域
】[0001]本發(fā)明涉及網(wǎng)絡(luò)大數(shù)據(jù)流量分析領(lǐng)域。具體在于一種基于Hadoop平臺(tái)和分布式處理編程模型的TCP流重組方法?!?br>背景技術(shù)
】[0002]TCP是面向連接的、可靠的傳輸層協(xié)議,在互聯(lián)網(wǎng)以及對(duì)傳輸可靠性要求較高的網(wǎng)絡(luò)中得到了廣泛的應(yīng)用。由于互聯(lián)網(wǎng)協(xié)議棧層次復(fù)雜、單個(gè)數(shù)據(jù)包的長(zhǎng)度有限,應(yīng)用層數(shù)據(jù)很有可能被切分為多個(gè)片段,由多個(gè)數(shù)據(jù)包負(fù)責(zé)傳輸。因此在對(duì)應(yīng)用層的數(shù)據(jù)進(jìn)行分析之前,重組TCP會(huì)話是必要的前提。[0003]傳統(tǒng)的TCP重組技術(shù)應(yīng)用鏈表、哈希表等數(shù)據(jù)結(jié)構(gòu),結(jié)合TCP的五元組、確認(rèn)號(hào)、序列號(hào)、各個(gè)標(biāo)識(shí)位(SYN,ACK,RST,F(xiàn)IN)等信息經(jīng)過相關(guān)的運(yùn)算來實(shí)現(xiàn)。[0004]隨著大數(shù)據(jù)時(shí)代的到來,帶來了一系列的現(xiàn)實(shí)問題,如存儲(chǔ)成本高、分析難度大、處理效率低等。有相關(guān)研究表明,2012年,全球互聯(lián)網(wǎng)用戶約為23億,截至2013年全球有一萬億臺(tái)設(shè)備接入互聯(lián)網(wǎng),整個(gè)互聯(lián)網(wǎng)流量為56EB(1EB=10億GB),更有甚者預(yù)計(jì)2020年全球互聯(lián)網(wǎng)流量將達(dá)到驚人的350億TB(1TB=1024GB),這一數(shù)字已經(jīng)完全超越了傳統(tǒng)TCP會(huì)話重組方法的承載能力。目前還缺乏在Hadoop平臺(tái)實(shí)現(xiàn)TCP流重組的算法。[0005]基于以上問題本發(fā)明提出了一種基于Hadoop的重組TCP流的MapReduce設(shè)計(jì),Hadoop是目前應(yīng)用最為廣泛的分布式平臺(tái),尤其適合大數(shù)據(jù)的處理任務(wù),由于開源、穩(wěn)定、容錯(cuò)性高、可擴(kuò)展等特性,深受各大企業(yè)的歡迎。HDFS(分布式存儲(chǔ)系統(tǒng))和MapReduce(分布式處理編程模型)是它最為關(guān)鍵的技術(shù)。Hadoop的優(yōu)勢(shì)在于可以利用HDFS,穩(wěn)定、可靠、均勻且低成本的將數(shù)據(jù)復(fù)制到集群中的各個(gè)節(jié)點(diǎn),根據(jù)項(xiàng)目需要靈活的編寫MapReduce程序,以鍵值對(duì)的形式對(duì)數(shù)據(jù)進(jìn)行并行處理,通過增加結(jié)點(diǎn)來滿足更高要求的任務(wù)。與此同時(shí),Hadoop還支持對(duì)數(shù)據(jù)的壓縮、排序、聚合、銜接傳統(tǒng)關(guān)系數(shù)據(jù)庫等功能?!?br/>發(fā)明內(nèi)容】[0006]針對(duì)以上現(xiàn)有技術(shù)中的不足,本發(fā)明的目的在于提供一種提高運(yùn)行效率,減少開銷的基于Hadoop平臺(tái)和分布式處理編程模型的TCP流重組方法。本發(fā)明的技術(shù)方案如下:一種基于Hadoop平臺(tái)和分布式處理編程模型的TCP流重組方法,將分布式處理編程模型MapReduce分為Map階段和Reduce階段,其中數(shù)據(jù)以block的形式存儲(chǔ)在分布式存儲(chǔ)系統(tǒng)HDFS中,Map階段的步驟為:[0007]步驟Al、將數(shù)據(jù)包映射到鍵值對(duì),形成輸入鍵值對(duì)〈偏移量,二進(jìn)制數(shù)據(jù)包>;[0008]步驟A2、提取數(shù)據(jù)包的五元組,包括源IP,目的IP,源端口,目的端口,傳輸層協(xié)議類型;[0009]步驟A3、判斷傳輸層協(xié)議是否為TCP協(xié)議,若該傳輸層協(xié)議不是TCP協(xié)議,則讀取下一個(gè)鍵值對(duì);若該傳輸層協(xié)議是TCP協(xié)議,則提取數(shù)據(jù)包的序列號(hào)、時(shí)間戳,有效凈荷,并判斷該有效凈荷的長(zhǎng)度,若有效凈荷長(zhǎng)度為零,則忽略該數(shù)據(jù)包,讀取下一個(gè)鍵值對(duì),否則跳轉(zhuǎn)到步驟A4;[0010]步驟A4、輸出鍵值對(duì)〈五元組,時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷>,“+”操作表示將時(shí)間戳、序列號(hào),數(shù)據(jù)包有效凈荷部分拼成一個(gè)大的字節(jié)數(shù)組,并最終將“時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷”保存;[0011]Reduce階段的步驟為:[0012]步驟B1、Reduce之前平臺(tái)Hadoop將Map階段輸出中相同五元組的“時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷”聚集在一起形成鍵值對(duì)〈五元組,list(時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷)>作為Reduce的輸入;[0013]步驟B2、依據(jù)時(shí)間戳,按照時(shí)間先后的順序?qū)ist進(jìn)行排序,所述list包括時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷;[0014]步驟B3、刪除經(jīng)過排序后的list中TCP序列號(hào)相同的多余記錄;[0015]步驟B4、將經(jīng)過排序后list中每個(gè)記錄的時(shí)間戳、序列號(hào)去掉,形成只包含數(shù)據(jù)包有效凈荷的list;[0016]步驟B5:按照順序合并只包含數(shù)據(jù)包有效凈荷的list中的每個(gè)記錄,完成重組;[0017]步驟B6:輸出鍵值對(duì)〈五元組,重組數(shù)據(jù)>,完成TCP流的重組。[0018]進(jìn)一步的,Map階段的步驟中Al步驟中通過修改InputFormat完成分片到鍵值對(duì)的映射。[0019]進(jìn)一步的,步驟A4中的輸出鍵值對(duì)〈五元組,時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷>保存為Hadoop自帶的BytesWritable數(shù)據(jù)類型。[0020]本發(fā)明的優(yōu)點(diǎn)及有益效果如下:[0021]本發(fā)明利用Hadoop并行處理大數(shù)據(jù)的的優(yōu)勢(shì)和Reduce的數(shù)據(jù)匯總功能,將同一個(gè)TCP流的所有數(shù)據(jù)包的有效凈荷匯總到一起排序、去重,合并來達(dá)到重組目的,無需鏈表或者哈希表之類的復(fù)雜數(shù)據(jù)結(jié)構(gòu),提高運(yùn)行效率,減少開銷?!緦@綀D】【附圖說明】[0022]圖1所示為本發(fā)明優(yōu)選實(shí)施例的MapReduce流程圖;[0023]圖2=Map階段流程圖;[0024]圖3:Reduce階段流程圖。【具體實(shí)施方式】[0025]下面結(jié)合附圖給出一個(gè)非限定的實(shí)施例對(duì)本發(fā)明作進(jìn)一步的闡述。但是應(yīng)該理解,這些描述只是示例的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對(duì)公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。[0026]如圖1所示,本發(fā)明需要一個(gè)MapReduce任務(wù),海量數(shù)據(jù)全部以block(默認(rèn)64MB)的形式存儲(chǔ)在HDFS中,修改InputFormat完成分片到鍵值對(duì)的映射,Map的輸入鍵值對(duì)為<偏移量,二進(jìn)制數(shù)據(jù)包>,輸出鍵值對(duì)為〈五元組,時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷>。Map的輸出經(jīng)過Shuffle中間過程,完成對(duì)輸出鍵值對(duì)的分區(qū)、排序、合并等過程。將Map輸出中相同五元組的“時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷”聚集在一起形成鍵值對(duì)〈五元組,list(時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷)>作為Reduce的輸入。最終Reduce的輸出鍵值對(duì)為〈五元組,重組數(shù)據(jù)〉。[0027]如圖2所示,Map階段具體過程如下:[0028]步驟1:完成數(shù)據(jù)包到鍵值對(duì)的映射,形成輸入鍵值對(duì)〈偏移量,二進(jìn)制數(shù)據(jù)包>。[0029]步驟2:提取數(shù)據(jù)包的五元組(源IP,目的IP,源端口,目的端口,傳輸層協(xié)議類型)。[0030]步驟3:判斷傳輸層協(xié)議是否為TCP協(xié)議,若是則提取數(shù)據(jù)包的序列號(hào)、時(shí)間戳,有效凈荷,若有效凈荷長(zhǎng)度為零,則忽略該數(shù)據(jù)包。[0031]步驟4:輸出鍵值對(duì)〈五元組,時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷>?!?”操作表示將時(shí)間戳、序列號(hào),數(shù)據(jù)包有效凈荷部分拼成一個(gè)大的字節(jié)數(shù)組,并最終將“時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷”保存為Hadoop自帶的BytesWritable數(shù)據(jù)類型。[0032]如圖3所示,Reduce階段具體過程如下:[0033]步驟1:ReduCe之前Hadoop將Map輸出中相同五元組的“時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷”聚集在一起形成鍵值對(duì)〈五元組,list(時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷)>作為Reduce的輸入。[0034]步驟2:依據(jù)時(shí)間戳,按照時(shí)間先后的順序?qū)ist(時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷)進(jìn)行排序。[0035]步驟3:刪除經(jīng)過排序后的list(時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷)中TCP序列號(hào)相同的多余記錄。[0036]步驟4:將經(jīng)過排序后list(時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷)中每個(gè)記錄的時(shí)間戳、序列號(hào)去掉,形成list(數(shù)據(jù)包有效凈荷)。[0037]步驟5:按照順序合并list(數(shù)據(jù)包有效凈荷)中的每個(gè)記錄,完成重組。[0038]步驟6:輸出鍵值對(duì)〈五元組,重組數(shù)據(jù)>。[0039]本發(fā)明利用Hadoop并行處理大數(shù)據(jù)的的優(yōu)勢(shì)和Reduce的數(shù)據(jù)匯總功能,將同一個(gè)TCP流的所有數(shù)據(jù)包的有效凈荷匯總到一起排序、去重,合并來達(dá)到重組目的,無需鏈表或者哈希表之類的復(fù)雜數(shù)據(jù)結(jié)構(gòu),提高運(yùn)行效率,減少開銷。[0040]以上這些實(shí)施例應(yīng)理解為僅用于說明本發(fā)明而不用于限制本發(fā)明的保護(hù)范圍。在閱讀了本發(fā)明的記載的內(nèi)容之后,技術(shù)人員可以對(duì)本發(fā)明作各種改動(dòng)或修改,這些等效變化和修飾同樣落入本發(fā)明方法權(quán)利要求所限定的范圍?!緳?quán)利要求】1.一種基于Hadoop平臺(tái)和分布式處理編程模型的TCP流重組方法,其特征在于:分布式處理編程模型MapReduce分為Map階段和Reduce階段,其中數(shù)據(jù)以block的形式存儲(chǔ)在分布式存儲(chǔ)系統(tǒng)HDFS中,Map階段的步驟為:步驟Al、將數(shù)據(jù)包映射到鍵值對(duì),形成輸入鍵值對(duì)〈偏移量,二進(jìn)制數(shù)據(jù)包>;步驟A2、提取數(shù)據(jù)包的五元組,包括源IP,目的IP,源端口,目的端口,傳輸層協(xié)議類型;步驟A3、判斷傳輸層協(xié)議是否為TCP協(xié)議,若該傳輸層協(xié)議不是TCP協(xié)議,則讀取下一個(gè)鍵值對(duì);若該傳輸層協(xié)議是TCP協(xié)議,則提取數(shù)據(jù)包的序列號(hào)、時(shí)間戳,有效凈荷,并判斷該有效凈荷的長(zhǎng)度,若有效凈荷長(zhǎng)度為零,則忽略該數(shù)據(jù)包,讀取下一個(gè)鍵值對(duì),否則跳轉(zhuǎn)到步驟A4;步驟A4、輸出鍵值對(duì)〈五元組,時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷>,“+”操作表示將時(shí)間戳、序列號(hào),數(shù)據(jù)包有效凈荷部分拼成一個(gè)大的字節(jié)數(shù)組,并最終將“時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷”保存;Reduce階段的步驟為:步驟BUReduce之前平臺(tái)Hadoop將Map階段輸出中相同五元組的“時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷”聚集在一起形成鍵值對(duì)〈五元組,list(時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷)>作為Reduce的輸入;步驟B2、依據(jù)時(shí)間戳,按照時(shí)間先后的順序?qū)ist進(jìn)行排序,所述list包括時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷;步驟B3、刪除經(jīng)過排序后的list中TCP序列號(hào)相同的多余記錄;步驟B4、將經(jīng)過排序后list中每個(gè)記錄的時(shí)間戳、序列號(hào)去掉,形成只包含數(shù)據(jù)包有效凈荷的list;步驟B5:按照順序合并只包含數(shù)據(jù)包有效凈荷的list中的每個(gè)記錄,完成重組;步驟B6:輸出鍵值對(duì)〈五元組,重組數(shù)據(jù)>,完成TCP流的重組。2.根據(jù)權(quán)利要求1所述的基于Hadoop平臺(tái)和分布式處理編程模型的TCP流重組方法,其特征在于:Map階段的步驟中Al步驟中通過修改InputFormat完成分片到鍵值對(duì)的映射。3.根據(jù)權(quán)利要求1所述的基于Hadoop平臺(tái)和分布式處理編程模型的TCP流重組方法,其特征在于:步驟A4中的輸出鍵值對(duì)〈五元組,時(shí)間戳+序列號(hào)+數(shù)據(jù)包有效凈荷>保存為Hadoop自帶的BytesWritable數(shù)據(jù)類型?!疚臋n編號(hào)】H04L1/16GK104253863SQ201410468903【公開日】2014年12月31日申請(qǐng)日期:2014年9月15日優(yōu)先權(quán)日:2014年9月15日【發(fā)明者】雒江濤,高偉,楊軍超,王小平,鄧生雄,申健,劉勇申請(qǐng)人:重慶郵電大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1