趙昊,林偉,劉勝利
?
P2P網絡頑健性增強的方法
趙昊,林偉,劉勝利
(信息工程大學數學工程與先進計算國家重點實驗室,河南 鄭州 450000)
隨著互聯網的廣泛應用,網絡通信管理架構和服務提供的穩定性愈發重要。構建一種基于鄰居-鄰居列表的P2P網絡模型,針對性地提出網絡修復和修剪兩種算法以提高網絡結構的可靠性和頑健性。仿真實驗表明,在給定的威脅條件下,提出的模型和算法可以有效提高P2P網絡的自修復性。
P2P網絡;鄰居-鄰居列表;頑健性
近年來,網絡技術發展迅速,特別是進入“互聯網+”[1]時代以后,日常生活的方方面面幾乎都離不開網絡。然而,由于TCP/IP本身的不完善和網絡設備不可控等主客觀條件所限,網絡服務的穩定性一直有待加強?;ヂ摼W上的設備分布在各個地理位置,通過特定的通信管理架構連接在一起,保證其網絡的連通性是確保網絡服務穩定運行的前提條件。
中心結構的網絡架構具有“單點失效”的固有脆弱性,盡管Domain-Flux[2]和Fast-fluxing[3]等技術可以起到保護中心服務器的作用,但并沒有從根本上改變其集中式的本質。P2P網絡架構因此成為學術界和工業界的研究熱點,其分布式的拓撲結構以及對等節點的特性很好地規避了單一中心服務器的缺陷。
頑健性是評價網絡性能的一個重要的指標。大量相關的論文從不同的方面對網絡結構的頑健性進行了闡述和分析。因為網絡中的節點分布在不同物理位置,它們可能是普通機器也可能是服務器,因此它們的在線時間存在不確定性,有些節點可能頻繁地加入或者退出網絡,而有些節點可能白天在線,夜晚下線。無論是節點臨時退出還是永久下線,在網絡管理者看來都是離線。在P2P網絡中,頑健性可等同于失去部分節點后,最大限度地減小離線節點對整個網絡的影響。
現有的P2P結構網絡一般直接采用已知的網絡協議,這種方法具有實現相對簡單的優點。然而,提供穩定服務的P2P網絡管理結構相比普通P2P網絡在功能上有更高的要求。普通的P2P網絡不需要全局信息,如所有節點的數量,而這對P2P管理網絡來說十分重要。另外,P2P管理網絡的協議需要更加健壯,因為所有網絡節點可能隨時被移除?;谝陨嫌^點,本文提出一種改進的P2P網絡拓撲結構,具有自我修復的特性,相對于普通P2P結構,增強了自愈性和頑健性,同時針對性地提出修復和修剪算法,有效提高網絡的連通性和防御能力。
純中心的網絡結構雖具備實現簡單、高效、協同性好等優勢,但其控制流程存在中心節點失效問題(single of failure) ,一旦攻擊人員關閉中心服務器,網絡節點將無法繼續獲取命令,管理者也將失去對節點主機的控制權。為了提升網絡的健壯性、對抗攻擊人員的關停,網絡管理者使用非中心的P2P(peer-to-peer)模式作為其信道拓撲結構[4],如圖1所示,網絡中每個節點主機既充當客戶端又充當服務端,通信過程不依賴公網可達服務器資源。不同于傳統中心結構網絡在域名或服務器被奪取控制權時表現出的脆弱,P2P網絡會建立一個相對分散的網絡環境,所有的節點主機都互相連接并且進行通信。雖然P2P網絡數據發送延遲高于中心結構,但不依賴脆弱中心節點[5]的特性使其難以被整體劫持、測量和關閉。

圖1 P2P網絡結構
現有的P2P架構和協議雖然一定程度上緩解了中心架構的固有脆弱性,但在設計之初并沒有考慮到現在復雜多變的網絡環境,不能很好地抵抗當前嚴重的網絡安全威脅。一般的P2P應用如文件共享、數據下載等,雖然某些節點被移除,對網絡提供服務的影響不大,然而一旦失效節點數量不斷增加,就會導致整個網絡崩潰。另外,某些對網絡穩定性具有更高要求的應用,如集群控制、通信管理等,這些網絡中的個別節點由于故障或者受到攻擊而失效時,可能會影響網絡連通性從而導致網絡管理者的控制力度不足,無法實現預期的功能。因此,提高P2P網絡的頑健性,使網絡在失去部分節點后仍然能夠實現較高的連通性并且盡量減少其他負面影響,具有十分重要的研究價值和現實意義。
P2P網絡通過其對等節點的結構,能夠更好地提供網絡通信、文件下載和數據傳輸等服務,提高傳送速度和效率。P2P網絡最重要的特性即節點間互為客戶端和服務端,因此普通的P2P網絡在個別節點失效的情況下不影響其功能。然而,在需要提供更穩定持續服務的P2P網絡中,節點失效造成的影響不容忽視。大規模的P2P管理網絡中的節點在線率通常只有10%左右[6],因此每個在線節點都顯得很重要。另外,直接與網絡管理者相連的節點稱為二級管理節點,在網絡中起重要作用,直接接收網絡管理者的命令并下發指令。
總體來說,影響網絡健壯性的因素主要有以下3點。
1) 節點的自然關閉失效,如有的主機只在白天上線晚上會被切斷電源。
2) 節點被人為攻擊移除,網絡中的主機很多處于無人維護狀態,容易受到攻擊。
3) 普通節點失效造成的影響只是局部的,一旦二級管理節點被移除,對整個網絡的破壞是巨大的。
綜上,普通P2P網絡缺乏對網絡服務提供健壯性的屬性。本文的研究思路是通過連接方式的變化來提高P2P網絡的頑健性。需要指出的是,無論是人為攻擊還是自然關閉,本文只關注節點失效這一現象,不考慮節點被接管或污染等情況,將攻擊威脅限定在節點被移除網絡這一范圍內。
P2P網絡通常采用的bootstrap機制主要有隨機掃描方式和節點列表(peer-list)方式?;陔S機掃描方式的P2P網絡存在流量異常的固有脆弱點;采用基于peer-list交換方式進行通信,每臺網絡主機需要維護一份包含節點信息的列表,即節點列表并定期隨機挑選其中的部分節點進行通信,獲取管理者指令和更新節點信息,這類P2P網絡具有較好的靈活性、可擴展性、健壯性, 在許多流行的P2P僵尸網絡中使用[7]。
圖2是一個基于節點列表構建的P2P網絡,共有12個網絡節點。每個節點維護的節點列表信息如圖3所示,如節點1存有節點2、3、7的地址,因此在P2P網絡構建初始階段就與這3個節點建立通信連接,接收管理者的命令和動態更新網絡節點信息。

圖2 P2P網絡節點連接示意

圖3 節點列表
實際運行中,網絡節點存在被污染劫持而失效的可能性,而由于P2P網絡中節點間的對等性,節點數量的損失很容易造成整個網絡服務癱瘓。因此,如何在損失部分網絡節點的情況下盡可能保證網絡的有效性是值得研究的問題。一方面,需要使剩余節點建立通信連接,最大限度保證網絡服務運行;另一方面,當節點數量減少后,主機節點間通信更為頻繁,較容易被流量分析發現而被黑客攻擊。
針對以上現實情況及理論分析,本文提出一種分布式動態自修復的網絡拓撲結構。文獻[8]研究了P2P網絡中的NoN貪婪路由,可減少路由長度,并且被證明是漸近最優的。本文討論如何使用NoN的概念來創建一個自愈網絡。
定義1 鄰居?鄰居圖:考慮具有個節點的圖,節點集合記為,節點記為u(0)。u的鄰節點集合記為(u),且u知道(u)包含的節點信息,即每個節點均掌握其鄰居的鄰居節點身份及地址(如IP)。
仍以圖2中的網絡連接圖為例,圖3中節點1的節點列表在鄰居?鄰居圖中的形態如圖4所示。節點1的鄰居節點為節點2、3和7,其中節點2的鄰居節點為1、10和11,節點3的鄰居節點為1、4和6……以此類推,即鄰居節點相應的鄰居節點信息均存在與節點1的節點列表中,這就是鄰居?鄰居圖的設計思想,是本文所提出的分布式自修復拓撲結構的構建基礎。接下來重點討論在鄰居?鄰居圖模型上實現自修復拓撲結構的具體算法。

圖4 鄰居?鄰居節點列表示意
第3.2節指出提升P2P網絡頑健性的兩個要點,下面就解決這兩方面問題,在鄰居?鄰居圖模型下提出針對性的兩個算法。
首先要考慮當有節點被移除時,余下節點如何自發形成新的通信連接從而繼續發揮網絡服務的效能。在P2P網絡中,每個節點既是客戶端也是服務端,因此一旦失效,尤其是關鍵節點的失效,對網絡的連通性會造成毀滅性打擊。本文在鄰居?鄰居圖的基礎上提出網絡修復算法,利用鄰居列表中鄰居節點的信息,使被移除節點的鄰居節點間形成新的連接,“代替”被移除節點的中繼作用,盡可能維持整個網絡的連通性。修復的具體操作為:當一個節點u被刪除時,判斷其鄰節點u和u是否可達,若否,則將u、u形成的邊(u,u)加入現有邊集合。算法的流程描述如下。
算法1 網絡修復算法
1) for 每個被刪除的節點u
2) foru的鄰節點u,u
3) ifu和u不可達
4) 生成邊(u,u);
5) 更新節點列表;
6) end for
7) end for
8) 完成修復過程
網絡修復的具體過程如圖5所示。節點7的鄰居節點為0、1、4,當節點7被移除時,節點0、1、4遍歷自身的鄰居列表判斷互相之間是否連接,然后形成新的邊(0、1)、(1、4)和(0、4)。之后,當節點6被移除時,重復相同的過程,形成了新邊(0、3)、(3、8)和(8、0)。
接下來考慮另一方面的問題。對于圖,當節點u被刪除時,其每一個節點開始如上所述的修復過程。然而,這會導致u鄰節點的度數(可以簡單理解為節點的鄰節點數量)在步之后顯著增加,如圖6中的節點0,在經歷節點6和7被移除的修復過程后,其度數從3增加為5。這會顯著增加節點0被檢測的可能性。因此,確定一個節點度數的最大值max,使節點u的每個鄰節點刪除節點列表中度數最低的節點(即斷開與其的通信連接) ,直到該鄰節點的度數范圍符合條件。節點修剪算法描述如下。
算法2 節點修剪算法
1) for每個現有的節點u
2) if鄰節點數量≥max
3) 刪除節點列表中鄰節點最少的節點u
4) 去除邊(u,u);

圖5 修復過程

圖6 修剪過程
5) 更新節點列表;
6) end for
7) 完成修剪過程
本文取max=5說明修剪算法的具體過程。如圖6所示,經過如上所述修復過程后,節點0的度數為5,觸發了修剪過程的執行。此時,節點0的鄰節點1、3、4、5和8的度數分別為4、4、4、3和4。因此,節點度數最低的5被刪除。移除度數最低的節點是為了最大限度地保持剩余節點間的通信,在一定程度上緩解節點數量減少的影響。
在對現有網絡架構的頑健性進行研究時,通常是通過模擬刪除一定數量的節點后,觀察連接率的變化。連接率的影響越少,說明網絡中刪除的節點對余下的節點影響不大,因此頑健性越好。然而對于真實的網絡環境,通過刪除一定的節點來研究其頑健性是不可能的。事實上,分布式P2P網絡本質上可看作復雜網絡,而對于復雜網絡的研究,通常運用圖論的相關知識[9]。因此,本文選取圖論的屬性和指標對P2P網絡頑健性進行評估。然而,圖論中現有的屬性如度數、最大距離等并不能直接作為P2P網絡性能的指標。
為了對提出的鄰居網絡模型及兩個算法的有效性進行測試,評估其提高P2P網絡結構頑健性的能力,本文提出中心度和連接度兩個屬性作為評估指標。
定義2 中心度:節點到所有1個其他節點之間的最短路徑之和的倒數。
中心度主要反映網絡中消息從節點擴散傳播至所有其他節點的速度,因此是路徑距離之和的倒數。考慮到距離總和取決于節點的數量,所以計算時需要歸一化處理,計算公式如式(1)所示,其中,是節點的數量,(,)是節點和之間的最短路徑。

實驗中,單個節點的中心度反映不了整個網絡的情況,因此在測試時采取整個網絡的平均中心度,由式(2)計算得到。

定義3 連接度:節點的度數與最大可能度數的比值。
連接度表示網絡中傳播的消息流經節點的可能性,實際上反映了網絡通信流量的密集性。連接度計算公式如式(3)所示,其中,()表示節點的度數,表示網絡節點最大度數。

在實驗中,所有節點的平均連接度可作為測試指標,平均連接度可由式(4)計算得到。

雖然理論分析和驗證更為嚴謹,但難度更大。因此本文采用仿真實驗來評估基于鄰居列表的P2P網絡特性。實驗在500個節點的正則圖(5、10、15)中模擬節點刪除過程,最多有30%(150)個節點被刪除。
圖7顯示了修剪(如圖7(a) 所示)和不修剪(如圖7(b)所示)時網絡中節點的平均中心度隨刪除節點數量的變化。正如圖7所反映,節點中心度是穩定的,并且即使節點刪除后它也不會減少。另外,未修剪時,由于剩余節點間修復過程的作用未被抵消,因此平均中心度顯著上升。實際上,中心度反映消息傳播速度,只要滿足基本要求,大于或等于初始速率即可。實驗結果表明,本文提出的網絡模型對網絡中心度無負面影響。
圖8反映了修剪(如圖8(a)所示)和不修剪(如圖8(b)所示)時網絡中節點的平均連接度隨刪除節點數量的變化。顯而易見,若在修復過程后不增加修剪過程,節點的連接度會大幅增加,這說明整個網絡的消息傳播率顯著提升。然而,網絡的通信頻率大幅增加會導致節點間的通信流量明顯增多,造成的后果是容易被檢測和針對,使網絡暴露,最終被攻擊而損毀。

圖7 中心度變化

圖8 連接度變化
互聯網已成為人們工作和生活中不可或缺的一部分。如何提高網絡服務的穩定性已成為亟待解決的問題。本文研究了網絡拓撲的改進,提出了一種分布式、自愈合的P2P網絡體系結構。通過網絡修復和修剪算法,增強了網絡的健壯性和頑健性,可以有效抵抗節點刪除的影響。下一步是將此模型應用于真實環境P2P網絡服務,以驗證其在實際條件下的可靠性。
[1] 周錫冰. 互聯網+服務[M]. 北京: 人民郵電出版社, 2016. ZHOU X B. Internet + Service[M]. Beijing: Posts and Telecommunications Press, 2016.
[2] ALMOMANI A. Fast-flux hunter: a system for filtering online fast-flux botnet[J]. Neural Computing & Applications, 2016: 1-11.
[3] SOLTANAGHAEI E, KHARRAZI M. Detection of fast-flux botnets through DNS traffic analysis[J]. Scientia Iranica, 2015, 22(6).
[4] GRIZZARD J B, SHARMA V, NUNNERY C, et al. Peer-to-peer botnets: overview and case study[C]//USENIX Workshop on Hot Topics in Understanding Botnets (HotBots’07). 2007:1.
[5] FEILY M, SHAHRESTANI A, RAMADASS S. A survey of botnet and botnet detection[C]// International Conference on Emerging Security Information. 2009:268-273.
[6] LI H, HU G, YANG Y. Research on P2P botnet network behaviors and modeling[C]//International Conference on Information Computing and Applications. 2012:82-89.
[7] YIN J, CUI X, LI K. A reputation-based resilient and recoverable P2P botnet[C]//IEEE Second International Conference on Data Science in Cyberspace. 2017:275-282.
[8] MANKU G S, NAOR M, WIEDER U. Know thy neighbor's neighbor: the power of lookahead in randomized P2P networks[C]// The 36th Annual ACM Symposium on Theory of Computing. 2004: 54-63.
[9] MACARTHUR B D, SáNCHEZ-GARCíA R J, ANDERSON J W. Symmetry in complex networks[J]. Discrete Applied Mathematics, 2008, 156(18):3525-3531.
Method for robust enhancement of P2P network
ZHAO Hao, LIN Wei, LIU Shengli
State Key Laboratory of Mathematical Engineering and Advanced Computing, Information Engineering University, Zhengzhou 450000, China
With the widespread use of the Internet, the stability of network communication management architecture and service provision has become increasingly important. A P2P network model based on neighbor-neighbor lists was constructed, and two algorithms(network repairing and pruning) were proposed to improve the reliability and robustness of the network structure. Simulation experiments show that the proposed model and algorithm can effectively improve the self-healing of P2P networks under given threat conditions.
P2P network, neighbor-neighbor lists, robustness
The National Key R&D Plan Program of China (No.2016YFB0801505, No.2016YFB0801601)
TP311
A
10.11959/j.issn.2096?109x.2019020
趙昊(1993? ),男,浙江諸暨人,信息工程大學碩士生,主要研究方向為網絡與信息安全、大數據分析。

林偉(1986? ),男,湖南常德人,博士,信息工程大學講師,主要研究方向為軟件保護與分析、網絡安全。
劉勝利(1973? ),男,河南鄭州人,博士,信息工程大學教授,主要研究方向為機器學習、網絡安全。
2018?11?10;
2018?12?20
趙昊,754094629@qq.com
國家重點研發計劃基金資助項目(No.2016YFB0801505, No.2016YFB0801601)
趙昊, 林偉, 劉勝利. P2P網絡頑健性增強的方法[J]. 網絡與信息安全學報, 2019, 5(2): 88-94.
ZHAO H, LIN W, LIU S L. Method for robust enhancement of P2P network[J]. Chinese Journal of Network and Information Security, 2019, 5(2): 88-94.