李濤 丁杰 張晨 張鈺雯
【摘要】 ? ?CCN網(wǎng)絡(luò)在數(shù)據(jù)內(nèi)容回復(fù)過程中依據(jù)興趣包生成的PIT表項進行轉(zhuǎn)發(fā),但是在設(shè)備長期運行過程中,節(jié)點的故障不可避免,在不重要的節(jié)點故障尚可以忍受,但是在核心節(jié)點上的故障,必然導(dǎo)致CCN網(wǎng)絡(luò)大面積癱瘓,因此需要針對該節(jié)點進行網(wǎng)絡(luò)保護;同時CCN網(wǎng)絡(luò)存在多設(shè)備的升級或者多設(shè)備的掉線,通過簡單的節(jié)點保護并不能解決該問題,需要對整個鏈路進行端到端的保護;本文基于SDN場景下研究并實現(xiàn)了一種針對CCN網(wǎng)絡(luò)單設(shè)備故障的節(jié)點保護和針對多設(shè)備升級的鏈路保護機制。基于節(jié)點保護完成對于CCN關(guān)鍵核心設(shè)備的主備備份和保護,基于鏈路保護完成對于CCN網(wǎng)絡(luò)關(guān)鍵核心路徑的主備備份和保護。
【關(guān)鍵詞】 ? ?路由保護 ? ?節(jié)點保護 ? ?鏈路保護 ? ?路由切換
引言:
互聯(lián)網(wǎng)業(yè)務(wù)的蓬勃發(fā)展,用戶關(guān)心的重心從信息的存儲位置轉(zhuǎn)向信息本身,施樂公司的帕洛阿托研究中心(PARC)的Van Jacobson等提出的內(nèi)容中心網(wǎng)絡(luò)簡稱CCN,成為備受關(guān)注的焦點[1-4]。CCN的核心思想是采用以信息命名的方式取代傳統(tǒng)以IP地址為中心的網(wǎng)絡(luò)通信模型,從而方便用戶進行內(nèi)容搜索和內(nèi)容獲取,實現(xiàn)從以IP地址為中心的轉(zhuǎn)發(fā)向以內(nèi)容為中心的轉(zhuǎn)發(fā)的演進[5-6]。
CCN采用命名路由,通過路由器來緩存內(nèi)容網(wǎng)絡(luò)體系結(jié)構(gòu),能夠使數(shù)據(jù)傳輸更快,并能提高內(nèi)容的檢索效率。其重要的數(shù)據(jù)結(jié)構(gòu)分別是轉(zhuǎn)發(fā)信息庫FIB、待定興趣表PIT和內(nèi)容緩存庫CS。FIB記錄當前節(jié)點到達內(nèi)容提供節(jié)點的下一跳接口,相當于IP網(wǎng)中的FIB,是轉(zhuǎn)發(fā)興趣包的依據(jù);PIT用于記錄已經(jīng)轉(zhuǎn)發(fā)但未響應(yīng)興趣包的內(nèi)容名及其來源接口,目的是使相應(yīng)的數(shù)據(jù)包能夠準確到達請求者。CS用于保存路由節(jié)點的緩存內(nèi)容,類似于IP路由器中的緩存,但采用了不同于IP的緩存替換策略,路由器會定期更新CS緩存的信息,對于熱點請求的數(shù)據(jù)路由器進行持續(xù)的緩存,而對于超時的數(shù)據(jù)路由器則將其從緩存中刪除[7]。
對于傳統(tǒng)的CCN網(wǎng)絡(luò),當客戶端請求者請求內(nèi)容時,首先廣播興趣包,興趣包到達路由節(jié)點后,執(zhí)行以下步驟:
1.路由器根據(jù)興趣包中的內(nèi)容名,查詢CS,如果CS中包含所請求的數(shù)據(jù)包,則直接向興趣包的來源接口返回數(shù)據(jù)包的副本,并丟棄這個已經(jīng)被滿足的興趣包;
2.否則在PIT中繼續(xù)查詢,如果PIT中有該內(nèi)容名條目,則說明之前已經(jīng)收到過相同的興趣包且已經(jīng)轉(zhuǎn)發(fā),但是沒有獲得返回結(jié)果,需要把該興趣包的來源接口接入PIT對應(yīng)的接口列表中,同時將該興趣包丟棄。當對應(yīng)數(shù)據(jù)包返回時,根據(jù)接口列表向?qū)?yīng)接口回復(fù)數(shù)據(jù)的副本,并將該數(shù)據(jù)包存儲在CS中以滿足未來潛在的請求;
3.如果CS和PIT中都沒有結(jié)果,則查找FIB,如果在FIB中發(fā)現(xiàn)有對應(yīng)內(nèi)容名條目,則說明該節(jié)點第一次收到該興趣包,這時根據(jù)FIB的接口列表(不包含興趣包進來的接口)轉(zhuǎn)發(fā)該興趣包,并在PIT中增加新的條目;
4.如果在CS、PIT和FIB三個結(jié)構(gòu)中都沒有結(jié)果,則說明不存在相關(guān)的匹配路由,該節(jié)點無法處理這個興趣包,于是將其丟棄或者泛洪。
路由器對于數(shù)據(jù)包的處理則相對簡單,當數(shù)據(jù)包到達路由節(jié)點時,根據(jù)數(shù)據(jù)包的內(nèi)容名字段,先在CS中查找。如果CS中存在,則丟棄該數(shù)據(jù)包;如果CS中沒有,則在PIT中查找。如果PIT中存在對應(yīng)條目,將數(shù)據(jù)轉(zhuǎn)發(fā)給該PIT匹配條目的所有接口,并緩存該內(nèi)容到CS中;如果PIT中沒有匹配條目,則丟棄該數(shù)據(jù)包。
上述現(xiàn)有CCN技術(shù)缺少容錯場景下的處理:
1.接口故障導(dǎo)致內(nèi)容報文丟失:在CCN中,數(shù)據(jù)內(nèi)容是按照PIT路由的請求入接口轉(zhuǎn)發(fā)。但是如果PIT請求入接口在轉(zhuǎn)發(fā)過程中發(fā)生了設(shè)備故障導(dǎo)致接口掉線,必然引起數(shù)據(jù)包在沿途的丟失,特別是數(shù)據(jù)包到達靠近用戶側(cè)的情況下,整個網(wǎng)絡(luò)資源已經(jīng)基本傳輸完成,但是無法有效送達,需要等待協(xié)議路由的重新收斂后,用戶再次發(fā)送興趣路由,必然帶來用戶體驗問題。
2.無法不斷流在線升級:現(xiàn)有的CCN網(wǎng)絡(luò)是基于無保護鏈路通道進行的設(shè)計,因此整個CCN設(shè)備無法在線不斷流升級,升級過程中需要SDN/FIB的重新收斂后,用戶重新發(fā)起PIT請求來完成路由收斂后的二次請求。
針對如上缺點研究了CCN路由的節(jié)點、鏈路的保護機制,針對FIB路由根據(jù)用戶的需求情況,根據(jù)網(wǎng)絡(luò)規(guī)劃部署在SDN上配置CCN的鏈路保護或者節(jié)點保護,然后在PIT請求中,基于PIT的請求通道,在鏈路保護的情況下建立PIT的主路徑和備選路徑,在節(jié)點保護的情況下建立節(jié)點保護路徑,然后下發(fā)PIT請求表主備接口,主請求接口作為數(shù)據(jù)包轉(zhuǎn)發(fā)的接口,在主請求接口故障后,備請求接口快速切換到主請求接口,實現(xiàn)數(shù)據(jù)流量的不丟包和在線不斷流升級。
一、CCN路由保護機制研究與實現(xiàn)
1.1模塊設(shè)計
如圖1所示,傳統(tǒng)CCN設(shè)備包括路由管理模塊和CCN轉(zhuǎn)發(fā)模塊,其中CCN路由管理模塊負責(zé)CCN的PIT路由、FIB路由、CS路由的管理,CCN轉(zhuǎn)發(fā)模塊負責(zé)根據(jù)CCN路由管理模塊下發(fā)的路由進行CCN興趣包轉(zhuǎn)發(fā)和數(shù)據(jù)內(nèi)容的回復(fù)。因此基于CCN傳統(tǒng)路由設(shè)計,設(shè)計了路由切換模塊,位于CCN路由管理模塊和CCN轉(zhuǎn)發(fā)模塊之間,其基本功能為存儲PIT備份路由,感知轉(zhuǎn)發(fā)鏈路故障后快速切換備份路由實現(xiàn)轉(zhuǎn)發(fā)不丟包,然后異步通知CCN路由管理模塊觸發(fā)路由的收斂;基本步驟如下:
第一,CCN設(shè)備感知鄰居節(jié)點故障,告知CCN路由切換模塊;CCN路由切換模塊快速將提前存好的備用PIT路由下發(fā)至CCN轉(zhuǎn)發(fā)模塊,保證實時設(shè)備數(shù)據(jù)轉(zhuǎn)發(fā)的不斷流傳輸。
第二,CCN設(shè)備將路徑異常信息告知CCN路由管理模塊,CCN路由管理模塊完成新的主備路由的計算和整合,然后將新的主備PIT路由下發(fā)給CCN路由切換模塊;
第三,CCN路由管理模塊如果查找不到新的主備PIT路由,就將最新的節(jié)點故障上報控制器,觸發(fā)控制器的重新FIB路由收斂,然后將主備PIT路由下發(fā)至CCN路由管理模塊。
1.2節(jié)點保護
節(jié)點保護即為對整個CCN網(wǎng)絡(luò)某臺核心設(shè)備節(jié)點的網(wǎng)絡(luò)保護。如圖2所示,假設(shè)網(wǎng)管認為CCN路由器2需要節(jié)點保護,網(wǎng)管會將配置下發(fā)至SDN控制器,SDN控制器根據(jù)鏈路拓撲情況,查找拓撲中CCN路由器2的前一個路由器CCN路由器1和最優(yōu)下一跳CCN路由器3;下發(fā)FIB主路由和備用路由給CCN路由器1,路由形式如下,
興趣路由生成過程:SDN形成針對Prefix的主備路由,對于PIT請求來說,需要按照主備路由進行請求,沿途生成如圖2所示的PIT路由表,其中CCN1-CCN2-CCN3主路由正常下發(fā)CCN路由器的轉(zhuǎn)發(fā)面,CCN1-CCN4-CCN3備用路由不形成轉(zhuǎn)發(fā)路由,而是放在CCN設(shè)備的新開發(fā)的路由切換模塊中;對于CCN3設(shè)備來說,其形成的請求接口有兩個,分別是Requesting Faces和Requesting Back Faces,控制器告知5號接口為備用接口,CCN3路由器就將該接口對應(yīng)的PIT路由存儲在路由切換模塊中。
節(jié)點保護過程:CCN路由器2發(fā)生故障,CCN路由器3感知到4號鄰居接口Down掉,然后告知本設(shè)備的路由切換模塊,路由切換模塊觸發(fā)快速PIT路由切換,將PIT請求路由的請求接口切換到5號接口,同時刪除已經(jīng)Down掉的4號接口,將新的PIT路由表下發(fā)轉(zhuǎn)發(fā)面,使得整個轉(zhuǎn)發(fā)不斷流;然后路由切換模塊通過路由管理模塊告知SDN控制器設(shè)備異常情況,觸發(fā)路由的慢收斂,隨后數(shù)據(jù)流量通過CCN3路由器的5號接口接入CCN路由器4,正式進入備用路徑,在備用路徑路由器4由流量激活路由切換模塊快速下發(fā)PIT轉(zhuǎn)發(fā)路由,最后路由切換模塊告知SDN鏈路切換情況,控制器綜合計算后,新的主備路由會重新下發(fā)至路由切換模塊,等待下一次故障的再次快速切換保護。
1.3鏈路保護
鏈路保護即為對某條端到端的網(wǎng)絡(luò)路徑進行保護的功能。因此在網(wǎng)絡(luò)部署規(guī)劃中進行保護鏈路的部署。如圖3所示,以用戶到服務(wù)器端到端通信為例,CCN1---CCN2---CCN3為主路徑,CCN4---CCN5為備選路徑。其沿途形成的PIT路由表、FIB路由表與正常路由表一樣。與主路徑PIT和FIB路由表下發(fā)轉(zhuǎn)發(fā)面不同的是,在備選路徑上PIT和FIB路由表存儲在新開發(fā)的路由切換模塊不下發(fā)至轉(zhuǎn)發(fā)面。鏈路保護各個設(shè)備形成的主備路由表、興趣路由表與節(jié)點保護章節(jié)類似,不再詳細描述?,F(xiàn)在重點研究鏈路保護的功能。假設(shè)用戶向服務(wù)器發(fā)起Prefix資源請求,數(shù)據(jù)在回復(fù)過程中會發(fā)生了多設(shè)備的升級,鏈路保護過程如下:
假設(shè)CCN1路由器、CCN2路由器、CCN3路由器同時斷電升級;其將設(shè)備斷電信息上報SDN控制器后然后斷電升級;
SDN控制器出發(fā)現(xiàn)主鏈路斷鏈,需要將流量往備用鏈路進行切換,通過計算發(fā)現(xiàn)CCN4---CCN5為用戶到服務(wù)器Prefix資源的備用路徑,即下發(fā)切換指令給CCN4和CCN5;
CCN4、CCN5路由切換模塊接收到切換指令后,觸發(fā)路由的切換,將存儲在路由切換模塊中的PIT路由表下發(fā)至轉(zhuǎn)發(fā)面;
服務(wù)器數(shù)據(jù)包回復(fù)過程中,因為CCN3路由器斷電,由交換機等設(shè)備自動切換到CCN5路由器上,按照已經(jīng)下發(fā)的PIT新的路由轉(zhuǎn)發(fā)即可;
升級完成后,CCN1路由器、CCN2路由器、CCN3路由器通告SDN控制器設(shè)備狀態(tài),觸發(fā)SDN控制器重新算路;
SDN控制器在CCN1、CCN2、CCN3路由器上根據(jù)需求重新建立PIT路由表,同步將CCN4、CCN5的PIT轉(zhuǎn)發(fā)路由刪除,CCN4、CCN5將相應(yīng)的PIT路由存儲在路由切換模塊中,從而完成了升級過程中端到端鏈路流量不斷流。
二、結(jié)束語
本文根據(jù)CCN設(shè)備運行過程中可能出現(xiàn)的異常場景進行了總結(jié),針對設(shè)備單節(jié)點故障、接口故障等場景提出了節(jié)點保護機制,針對整個鏈路故障、鏈路多設(shè)備升級等場景提出了鏈路保護機制。針對節(jié)點保護機制和鏈路保護機制在CCN設(shè)備的路由管理模塊和轉(zhuǎn)發(fā)模塊之間設(shè)計了路由切換模塊,該模塊用來存儲備份PIT路由和備份FIB路由,在設(shè)備或者鏈路故障后由路由切換模塊快速將備份路由下發(fā)至路由轉(zhuǎn)發(fā)模塊,從而保證數(shù)據(jù)轉(zhuǎn)發(fā)的不斷流,提高了CCN的容錯性,提升了用戶體驗,實現(xiàn)節(jié)點保護和鏈路保護的功能。
參 ?考 ?文 ?獻
[1] ZHANG L,ESTRIN D, BURKE J. Named data networking (ndn) project[R]. Technical Report NDN-0001, 2010.
[2] CHOI J,HAN J,CHO E ,et al. A survey on content-oriented networking for efficient content delivery[J]. IEEE Communications Magazine, 2011, 3(49): 121-127.
[3] JACOBSON V, SMETTERS D K, THORNTON J D, et al. Networking named content[C]//ACM CoNEXT ’09. 2009: 1-12.
[4] Ahlgren B,Dannewitz C,Imbrenda C,et al.A survey of information-centric networking[J].Communications Magazine,IEEE,2012,50(7):26-36.
[5] 陳震,曹軍威,尹浩.內(nèi)容中心網(wǎng)絡(luò)體系架構(gòu)[M].北京:清華大學(xué) 出版社,2014:13-45.
[6] syrivelis D,Parisis G,Trossen D,et al.Pursuing a software defined inforrnation-centric network[C]//Proc of European workshop on Software Defined Networking.Washington DC:IEEE Computer Society,2012:103-108.
[7] 謝人超 黃韜 徐京薇 劉江 劉韻潔. 一種興趣包轉(zhuǎn)發(fā)方
法及裝置:中國,CN105704032B[P].2016-6-22.
[8] 李濤 張晨 黃韜. 基于CCN網(wǎng)絡(luò)的路由保護方法,路由器及互聯(lián)網(wǎng)[P].專利國別:中國.專利號:202110374904.發(fā)布日期:2021.05.14
基金項目:2019 年工業(yè)互聯(lián)網(wǎng)創(chuàng)新發(fā)展工程《分布式標識解析方法研究項目》
李濤(1983-),男,漢族,江蘇連云港,碩士研究生,中級職稱,研究方向:CCN網(wǎng)絡(luò)、工業(yè)互聯(lián)網(wǎng)、服務(wù)定制網(wǎng)絡(luò)等;
丁杰(1986-),男,漢族,安徽合肥,碩士研究生,中級職稱,研究方向:CCN網(wǎng)絡(luò)、工業(yè)互聯(lián)網(wǎng)、服務(wù)定制網(wǎng)絡(luò)等;
張晨(1992-),男,漢族,遼寧錦州,博士研究生,中級職稱,研究方向:CCN網(wǎng)絡(luò)、服務(wù)定制網(wǎng)絡(luò)等;
張鈺雯(1988-),女,漢族,河北廊坊,碩士研究生,中級職稱,研究方向:CCN網(wǎng)絡(luò)、工業(yè)互聯(lián)網(wǎng)標識、區(qū)塊鏈等。