郭霄杰
(國家管網北方管道公司,河北 廊坊 065000)
隨著國家能源戰略的發展,長輸油氣管道規模不斷擴大,里程數不斷增長,其光通信傳輸網絡建設規模也越來越大,全局網絡已經形成環狀網結構,同時,隨著長輸油氣管道自動化水平的不斷提升,以及光通信傳輸網絡承載的業務量增多,對網絡的安全性、靈活性、智慧化以及帶寬的動態分配要求也越來越高,傳統的管道光通信網絡已無法滿足長輸油氣管道業務的發展,因此在這種需求下,一種更加智慧化的新型網絡——基于聯盟區塊鏈架構的分布式傳輸網絡(DDTN)應運而生。
傳統管道光通信網絡的局限性如下:
1)服務器單點故障問題。當管道光通信網絡服務器出現故障時,會導致整個數據鏈路發生故障,進而發生數據采集與監視控制系統數據中斷等問題,影響長輸油氣管道的安全平穩運行。
2)節點擴展性差。隨著長輸油氣管網的建設,越來越多的新建管道以及站場的數據需要匯聚到光通信網絡進行傳輸,由于傳統的光通信網絡架構異常復雜,因此增加了管網的建設成本以及運營維護成本。
3)數據安全性差。光通信網絡中的中心服務器數據容易被非法窺探和篡改。
4)傳輸路由單一。當光通信網絡中的某一條通信鏈路發生故障時,由于無法動態地選擇路由,因此會導致故障鏈路兩側節點的數據無法正常傳輸。
DDTN的優勢如下:
1)無集中式服務器。DDTN無中心服務器,從而避免了因服務器故障所引起的通信中斷,同時也降低了網絡架構的復雜性以及節點的擴展成本。
2)更注重安全性和隱私性。通過區塊鏈技術保證了網絡中的數據無法被篡改和偽造。
3)動態路由。節點可以依據不同通信鏈路的質量動態地選擇傳輸路由,從而加強管道光通信網絡的魯棒性。
DDTN建立在如下的創新基礎組件之上:
1)數據傳輸網絡架構的區塊鏈化。DDTN利用分布式區塊鏈中大量的獨立中繼節點提升了網絡的連通性和數據傳輸性能[1-4]。
2)網絡層。DDTN是基于TCP/IP的覆蓋網絡,每個節點擁有唯一的節點地址,并利用改進型Chord環分布式哈希表DHT(distributed hash table)技術維護動態拓撲和路由,為節點提供加入和退出的服務。
3)共識層。由于DDTN中無可信的第三方記錄和維護數據[5-7],需要每個節點去維護區塊鏈上的數據[8-9],因此采用實用拜占庭容錯算法(PBFT)共識機制來支持區塊鏈系統中的數據節點達成快速共識。
DDTN是建立在區塊鏈技術之上,并利用DHT技術實現的一個分布式覆蓋網絡。DDTN利用大量的中繼節點提高網絡的連通性,各個中繼節點之間的協作是分布式的且無需信任任何第三方[10-11],節點之間的操作通過共識機制的協調和驗證[12-14],從而實現了數據通信的安全性。
與傳統的集中式網絡相比,DDTN各節點之間存在多條有效的路由,因此網絡的魯棒性得到了顯著的增強。通過DDTN技術,可以實現高度可靠、安全和可擴展的數據傳輸平臺。
DHT是一種分布式存儲方法,在無中心服務器的情況下,每個節點負責一個小范圍的路由,同時儲存一小部分數據,從而實現整個DHT網絡的尋址和存儲[15]。在DHT結構中,節點直接對所存儲的數據計算哈希值,然后用哈希值作為Key,數據本身即為Value[16]。
Chord算法[17]是MIT于2001年提出,提供了一種能在P2P網絡中快速定位資源的算法。DDTN使用基于Chord環的DHT結構以保證網絡的擴展性。每個節點在Chord環上被隨機分配一個m位的地址,并和一組具有特定距離的節點連通。在一個由N個節點組成的網絡中,任何節點對之間的平均路由為O(logN)跳,最大跳數為N。
基于Chord環的DDTN拓撲具有如下特點:
1)網絡保證連通性。
2)任何僅保存有鄰居節點信息的節點之間具有有效的路由算法。
3)在給定的均勻分布的源和目的節點的隨機流量的情況下,節點之間的負載是均衡的。
在DDTN中,每個節點都有一個0~2m-1的唯一m位隨機地址(m為0~256 bit),節點地址的隨機性保證了DDTN中不同節點之間負載的均衡性。為了保證節點的隨機性,節點地址=hash(節點的公共IP地址)。在DDTN中,任意2個節點之間的距離dist(x,y)=(y-x)mod2m,其中:x,y為節點地址且dist(x,y)≥0,當且僅當x=y時,dist(x,y)=0。
由此,本文將DDTN節點分為三類:
1)前任和后繼節點。假設A,B是兩個相鄰節點,且節點B與節點A按照順時針方向衡量距離最短,即稱節點A為節點B的前任節點,節點B即為節點A的后繼節點。
2)鄰居節點。每個節點最近的k個后繼節點稱為其鄰居節點。
3)轉發節點。將2i添加到每個節點的地址,然后距離其最近節點的地址即為轉發節點。轉發節點即Nearest[successor((x+2i)mod2m)], 0≤i DDTN采用基于“Finger Table”[18]的路由機制。Finger Table的路由查找算法如下: 1)每個網絡節點存儲一個前任節點、后繼節點和鄰居節點地址的列表。 2)開始尋址時,網絡中的某一節點會收到請求Key(內容特征值hash),如果該節點存儲有該Key,則返回Value(Key對應的數據內容)。 3)如果該節點不存在該Key,則從List中提取最大且不超過Key的hash值所對應的節點地址,然后將Key轉發給該地址所對應的節點。 4)繼續上述過程,直至找到Key對應的節點。 采用“Finger Table”的路由機制后,網絡收斂的時間復雜度可以優化為O(logN)。 1)客戶端加入和退出。客戶端是指僅發送和接收數據但不轉發數據的設備。當一個客戶端加入DDTN時,首先與DDTN中的至少一個節點取得聯系,并請求其前任節點以獲取其應該連接的節點,然后客服端連接到該節點的前任節點。當一個客服端退出DDTN時,直接通知其連接的節點將其從客服端列表中刪除。 2)節點加入和退出。節點是指參與數據接收、發送和轉發的設備。 a)當一個節點加入DDTN時,執行如下步驟: 步驟一: 任何一個新節點(假設為A)與DDTN中的任意節點(假設為B)建立連接。 步驟二: 根據最新的區塊hash產生一個哈希值作為節點A地址,對于足夠大的哈希值空間,節點地址相同的概率可忽略不計。 步驟三: 節點A通過節點B查詢以獲取其前任節點(假設為C)和后繼節點(假設為D)。 步驟四: 使用其前任節點的后繼節點鄰居List和后繼節點的前任節點鄰居List確認節點A的鄰居List。 步驟五: 更新節點A的前任節點C和后繼節點D的鄰居List。 b)當一個節點需要退出DDTN時,執行如下步驟: 步驟一: 通知退出節點的前任節點和后繼節點更新其鄰居List。 步驟二: 把退出節點的客服端列表移交其前任節點。 3)拓撲穩定。節點定期要求其前任節點、后繼節點和鄰居節點尋找其后繼節點的前任節點和前任節點的后繼節點,以保證DDTN拓撲結構的穩定性。 由于DDTN是采用基于區塊鏈架構的分布式傳輸網路,各節點分散且無中心化服務器,因此需要采用共識機制來保證區塊鏈架構在分布式網絡中數據的一致性和正確性。本文采用PBFT共識機制以滿足DDTN的高效性。 PBFT算法支持的容錯節點數量f≤(n-1)/3,算法的主要步驟如下: 1)客戶端向主節點發送請求調用服務操作。 2)主節點通過廣播將請求發送給其他節點,其他節點執行PBFT算法的三階段共識流程。 3)所有節點都執行請求并將結果返回給客戶端。 4)客戶端等待f+1個不同節點返回相同的結果,算法結束[19-20]。 定義DDTN中節點數N為50,節點地址數m為256位,鄰居節點和轉發節點數k分別為5,10,15。以下通過Mathematica軟件對DDTN進行可視化仿真實現。 轉發節點不參與數據傳輸時,DDTN不同節點間的鏈接圖和跳數直方圖如圖1所示。 圖1 轉發節點不參與數據傳輸時不同節點間的鏈接圖和跳數直方圖示意 轉發節點參與數據傳輸時,DDTN不同節點間的鏈接圖和跳數直方圖如圖2所示。 從仿真結果可知,轉發節點的設置顯著提升了DDTN的連通性,同時隨著轉發節點數量的增多,不同節點間網絡距離趨向正態分布。 目前,隨著長輸油氣管道光通信傳輸網絡的建設規模不斷擴大,以及光通信傳輸網絡所承載業務的數量、種類和需求不斷增多,傳統的管道光通信網絡由于存在服務器單點故障、節點擴展性差、數據安全性差、傳輸路由單一等問題,因此需要引入一種能改進傳統管道光網絡性能的新型網絡技術。本文所提出的DDTN技術提供了一種傳統管道光網絡性能優化的可行性研究,構建了DDTN的網絡架構和拓撲結構,設計了路由機制和共識機制,同時對DDTN網絡性能做了可視化仿真實現。 圖2 轉發節點參與數據傳輸時不同節點間的鏈接圖和跳數直方圖示意 DDTN的目標是在無需開發和維護任何中心化服務器的前提下,將任何數據傳輸到任何節點。DDTN能夠根據網絡實時性能進行動態路由,從而降低數據傳輸的成本和提高網絡的整體效率。DDTN由大量的對等節點組成,任何節點可以隨時加入和退出DDTN而不會導致網絡故障。長輸油氣管道光通信網絡引入DDTN,可以構建一張智慧化管道光通信網絡,提升管道光通信網絡的發展水平,從而更好地實現為油氣生產服務的目標。4.3 路由機制
4.4 節點的加入和退出
5 實用拜占庭容錯算法共識機制
6 分布式傳輸網絡可視化仿真


7 結束語