張雪松 薄雯
摘 ? 要:基于IPv6網(wǎng)絡(luò)BT數(shù)據(jù)流識別與統(tǒng)計系統(tǒng)應(yīng)用于下一代互聯(lián)網(wǎng)的網(wǎng)絡(luò)關(guān)鍵節(jié)點上,可實現(xiàn)對IPv6流量的實時監(jiān)測與分析,對于掌握IPv6網(wǎng)絡(luò)的實時運行狀態(tài)具有至關(guān)重要的作用。實現(xiàn)有效控制IPv6網(wǎng)絡(luò)環(huán)境下的BT應(yīng)用流量,要首先掌握IPv6網(wǎng)絡(luò)中BT數(shù)據(jù)流行為特征,這也需要網(wǎng)絡(luò)包捕獲系統(tǒng)能夠捕獲分析高層的P2P協(xié)議。文章對此進(jìn)行了分析。
關(guān)鍵詞:Linux內(nèi)核;互聯(lián)網(wǎng)協(xié)議第6版;比特數(shù)據(jù)流;下一代互聯(lián)網(wǎng)
至今,移動通信技術(shù)已經(jīng)發(fā)展到5代,5G是為了滿足智能終端的快速普及和移動互聯(lián)網(wǎng)的高速發(fā)展,為滿足未來萬物互聯(lián)的應(yīng)用需求而產(chǎn)生的。由于物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)等領(lǐng)域的快速發(fā)展,原來的互聯(lián)網(wǎng)通信協(xié)議第4版(Internet Protocol version 4,IPv4)已無法滿足海量的5G設(shè)備,需要新一代的互聯(lián)網(wǎng)協(xié)議第6版(Internet Protocol version 6,IPv6)來支持[1],IPv6在設(shè)計之初就充分考慮了移動設(shè)備的需求,還考慮了網(wǎng)絡(luò)側(cè)和應(yīng)用側(cè)的需求,可以保證物聯(lián)網(wǎng)的安全性、可靠性和服務(wù)質(zhì)量。但I(xiàn)Pv4網(wǎng)絡(luò)中各類應(yīng)用帶來帶寬管理的難題必然會也延伸到IPv6網(wǎng)絡(luò)中。基于IPv6網(wǎng)絡(luò)的比特流(Bit Torrent,BT)數(shù)據(jù)流量識別統(tǒng)計系統(tǒng)應(yīng)用于下一代互聯(lián)網(wǎng)的網(wǎng)絡(luò)關(guān)鍵節(jié)點上,可實現(xiàn)對IPv6網(wǎng)絡(luò)中BT流量的實時監(jiān)測與分析,對于掌握IPv6網(wǎng)絡(luò)的實時運行狀態(tài)具有至關(guān)重要的作用。
1 ? ?系統(tǒng)總體設(shè)計方案
在Linux系統(tǒng)下運用libpcap函數(shù)捕獲數(shù)據(jù)包,根據(jù)傳輸控制協(xié)議/互聯(lián)協(xié)議(Transmission Control Protocol/Internet Protocol,TCP/IP)對數(shù)據(jù)包解析,再通過BM算法匹配BT協(xié)議的中的特征值,從而來實現(xiàn)對BT協(xié)議的識別,進(jìn)行識別的同時提取數(shù)據(jù)包的五元組來作為BT流的唯一標(biāo)識,建立新的記錄,并插入到由五元組對應(yīng)的哈希表相應(yīng)的節(jié)點中[2]。之后獲取到的所有相同五元組的數(shù)據(jù)包都更新到該數(shù)據(jù)流中,最終形成BT數(shù)據(jù)流信息的記錄表。
1.1 ?系統(tǒng)架構(gòu)
BT數(shù)據(jù)流識別與統(tǒng)計系統(tǒng)由3個模塊構(gòu)成:(1)數(shù)據(jù)包解析模塊。(2)BT識別模塊。(3)統(tǒng)計分析模塊。系統(tǒng)架構(gòu)如圖1所示。
1.2 ?數(shù)據(jù)識別過程
利用Libpcap函數(shù)庫中的函數(shù)捕獲數(shù)據(jù)包,然后對該數(shù)據(jù)包進(jìn)行解包處理,獲取到應(yīng)用層的數(shù)據(jù)。之后將該數(shù)據(jù)交給應(yīng)用層BT識別模塊進(jìn)行解析,BT識別模塊通過調(diào)用BM匹配算法識別是否為BT數(shù)據(jù)包。最后將該數(shù)據(jù)包信息交給統(tǒng)計分析模塊進(jìn)行統(tǒng)計分析。
2 ? ?BT流量識別統(tǒng)計系統(tǒng)設(shè)計
2.1 ?數(shù)據(jù)包解析模塊
在linux系統(tǒng)下,運用網(wǎng)絡(luò)捕獲數(shù)據(jù)包函數(shù)-Libpcap,將原始數(shù)據(jù)包內(nèi)容復(fù)制給數(shù)據(jù)包解析模塊。IPv6數(shù)據(jù)包解析工作開始由鏈路層進(jìn)行解析,再到網(wǎng)絡(luò)層和傳輸層,最后到應(yīng)用層完成整個解析過程,以上便是根據(jù)TCP/IP協(xié)議棧[3]中數(shù)據(jù)包的分層封裝原理執(zhí)行的。按照原始網(wǎng)絡(luò)數(shù)據(jù)包各層協(xié)議的頭部定義以及數(shù)據(jù)實際載荷內(nèi)容,分層逐個Bit的進(jìn)行數(shù)據(jù)包的解析工作[4-5]。分別截取各協(xié)議層的頭部數(shù)據(jù)流,分析各頭部字段內(nèi)容,通過每層協(xié)議中的類型字段值來確定上層的協(xié)議類型,根據(jù)頭部字段來觸發(fā)相應(yīng)的分層解析模塊,并對特殊內(nèi)容進(jìn)行處理。
鏈路層判斷網(wǎng)絡(luò)層協(xié)議類型基于TYPE字段信息,當(dāng)且僅當(dāng)其值等于0x86dd(IPv6協(xié)議),鏈路層解析模塊才會觸發(fā)IP層解析模塊,其結(jié)構(gòu)如圖2所示。
IP層解析工作根據(jù)其頭部的協(xié)議類型,提取protocol字段,根據(jù)不同的協(xié)議類型,觸發(fā)TCP或UDP解析模塊,其結(jié)構(gòu)如圖3所示,同時提取源和目的IP,作為會話跟蹤的重依據(jù)。
傳輸層解析是針對TCP,UDP協(xié)議進(jìn)行提取源端口、目的端口、首部長度和標(biāo)識字段的值,其結(jié)構(gòu)如圖4所示。為查詢、插入、更新HASH表提供重要依據(jù),并觸發(fā)應(yīng)用層解析模塊。
2.2 ?識別模塊
本模塊是BT流量統(tǒng)計分析系統(tǒng)的核心模塊,通過傳輸層解析的數(shù)據(jù)作為識別模塊的輸入,首先,查找該五元組對應(yīng)的會話在HASH表中是否存在,若不存在則調(diào)用匹配模塊標(biāo)識為“BT”或“other”,若存在則先判斷該會話流類型是否為“BT流”,若為“BT流”則直接更新該會話信息;若為“other”則調(diào)用匹配模塊,匹配成功則更新會話類型和信息,匹配失敗則只更新會話信息。其次,通過以上的第二步可實現(xiàn)會話跟蹤,盡管數(shù)據(jù)不具備特征碼,也能實現(xiàn)識別[6],其中匹配模塊主要應(yīng)用BM模式匹配算法來實現(xiàn)。
2.3 ?統(tǒng)計分析模塊
本系統(tǒng)的統(tǒng)計分析模塊,是通過維護一張HASH表,統(tǒng)計記錄所有捕獲到的傳輸會話信息,本模塊由程序設(shè)定的定時器觸發(fā),當(dāng)測量時間到達(dá)初始設(shè)定的時間后,統(tǒng)計分析模塊將對哈希表[7]中的所有數(shù)據(jù)節(jié)點信息進(jìn)行遍歷讀取并輸出。
3 ? ?結(jié)語
本文對IPv6下P2P技術(shù)的發(fā)展和研究現(xiàn)狀進(jìn)行了闡述,結(jié)合BT數(shù)據(jù)包特征和工作原理,提出了BitTorrent流量分析統(tǒng)計技術(shù),即特征碼匹配技術(shù)和會話跟蹤技術(shù),并提出了解決方案。
由于客觀因素,測試規(guī)模與實際使用有差距,而且測試時間并不夠長。BT數(shù)據(jù)流識別與統(tǒng)計系統(tǒng)有待繼續(xù)改進(jìn)和完善,還有可以擴展的空間。
[參考文獻(xiàn)]
[1]李淼,楊家海,王會.IPv6過渡技術(shù)分析與評述[J].廣西大學(xué)學(xué)報(自然科學(xué)版),2011(S1):55-56.
[2]巫喜紅,凌捷.BM模式匹配算法剖析[J].計算機工程與設(shè)計,2007(1):29-31.
[3]CHUANXIONG G,SHAOREN Z.Analysis and evaluation of the TCP/IP protocol stack[C].Beijing:International Conference on Communication Technology Proceedings,2000.
[4]小高知宏,葉明.TCP/IP數(shù)據(jù)包分析程序篇[M].北京:科學(xué)出版社,2003.
[5]劉朝輝,張磊,白宗元,等.一種基于IP報文五元組過濾策略的系統(tǒng)和方法.中國:CN 102387160A[P].2012.
[6]李明偉,張大方,曾彬,等.基于有效載荷分析的BT流量識別技術(shù)[J].計算機應(yīng)用,2007(9):2230-2232.
[7]馬如林,蔣華,張慶霞.一種哈希表快速查找的改進(jìn)方法[J].計算機工程與科學(xué),2008(9):66-68.