麻樸方,王勁林,尤佳莉
(1.中國科學院聲學研究所國家網(wǎng)絡新媒體工程技術研究中心,北京100190; 2.中國科學院大學,北京 100049)
5G網(wǎng)絡將會在2020年前后大規(guī)模商用,5G的3大特性分別是超高帶寬、超低時延和超高密度連接,因此它將會推動新的應用(比如AR/VR、物聯(lián)網(wǎng))的快速發(fā)展。傳統(tǒng)IP網(wǎng)絡主要解決端到端的通信,而現(xiàn)在的應用需求逐漸從端到端通信轉移到用戶到內(nèi)容的獲取,也即用戶更在意如何快速獲取內(nèi)容而不是從何處獲取內(nèi)容。在此背景下,ICN(Information-Centric Networking)[1-2]被提出來。ICN放棄了原有的IP協(xié)議棧的細腰模型,使用內(nèi)容名字作為協(xié)議棧的核心結構。ICN名字的命名規(guī)則主要分為層次化命名方式和扁平化命名方式。層次化命名方式,比如NDN(Named Data Networking)[3]和TRIAD[4],由于名字具有聚合性,可以使用名字作為路由標識,在名字解析的過程中實現(xiàn)路由,也即耦合了名字解析和路由;而扁平化的命名方式,比如MobilityFirst[5]和DONA[6],由于名字不可聚合,無法使用名字作為路由,所以還需要類似于IP地址的可聚合的網(wǎng)絡地址進行路由,名字和網(wǎng)絡地址通過解析系統(tǒng)實現(xiàn)映射。本文的研究內(nèi)容主要針對MobilityFirst這種標識和地址分離的設計架構展開。這種設計方式解耦了主機的標識和網(wǎng)絡地址,通過標識和地址解析系統(tǒng)能獲得主機標識對應的最新地址,能夠天然地支持移動性和多宿主。同時這種設計使得多宿主終端能夠擁有多個網(wǎng)絡地址,因此可以實現(xiàn)目的地址的“晚綁定”(late binding),也即先在數(shù)據(jù)包中插入多個地址,在轉發(fā)過程中根據(jù)網(wǎng)絡動態(tài)進行地址的選擇,從而提高傳輸?shù)男阅躘1]。
文獻[7]中介紹了多種基于IP的多宿主方案,主要集中在網(wǎng)絡層和傳輸層。網(wǎng)絡層實現(xiàn)多宿主主要通過位置和標識分離的方法或者核心與邊緣分離的方法來實現(xiàn),而傳輸層的方法主要通過建立多個TCP連接來實現(xiàn)。主要的網(wǎng)絡層的多宿主方案包括LISP(Locator/ID Seperation Protocol)[8]和HIP(Host Identity Protocol)[9]。HIP實現(xiàn)多宿主是通過在網(wǎng)絡層和傳輸層加入了新的協(xié)議層來標識主機,而網(wǎng)絡層用于路由。LISP使用2種新的標記RLOCs(Routing Locators)和EIDs (Endpoint Identifiers)取代IP地址。RLOCs按拓撲結構分配給接入點,地址是容易聚合的,用于路由和轉發(fā);EIDs獨立于網(wǎng)絡的拓撲結構,用來標識設備。EIDs主要用于邊緣網(wǎng)絡,而RLOCs用于核心網(wǎng)絡的路由。SCTP(Stream Control Transmission Protocol)[10]和MPTCP(Multi-Path TCP)[11]是基于TCP改進的傳輸層協(xié)議。SCTP建立多條路徑連接,一條作為主路徑,其余作為備用路徑;而MPTCP則同時利用多條路徑來提高傳輸速率。文獻[12-13]是對SCTP方案的改進,通過協(xié)同使用多個路徑提高傳輸?shù)姆€(wěn)定性;文獻[14-15]對MPTCP的默認路徑調(diào)度器進行改進來提高傳輸效率。以上提到的多宿主方法不能在轉發(fā)過程中根據(jù)網(wǎng)絡的動態(tài)進行路徑的調(diào)整,主要是在邊緣選擇地址,從而選擇轉發(fā)路徑。這是由于當轉發(fā)數(shù)據(jù)包時,路由器不能意識到只攜帶一個地址的數(shù)據(jù)包是發(fā)送給多宿主終端的,因此只能沿著路由表的最短路徑進行轉發(fā),即使有更好的選擇或者遇到鏈路擁塞,也不能提供更好的QoS。
基于此本文提出了ICN的多宿主場景下多地址路由方法,在該方法中,發(fā)往多宿主終端的數(shù)據(jù)包中攜帶多個目的地址,這樣數(shù)據(jù)包可以根據(jù)網(wǎng)絡的動態(tài)進行靈活的路徑選擇。該多宿主路由方法具體細節(jié)將在1.1節(jié)中介紹。由于數(shù)據(jù)包在每跳根據(jù)不同的目的地址進行轉發(fā),這就打破了根據(jù)路由表沿著最短路徑進行轉發(fā)的規(guī)則,帶來充分利用網(wǎng)絡的資源進行傳輸?shù)暮锰?,但也會增加?shù)據(jù)包的轉發(fā)跳數(shù),造成數(shù)據(jù)包為了獲得較好的傳輸性能而不能盡快地收斂到目的地。
目前有一些提高ICN路徑收斂性的方法。在文獻[16]中,研究者根據(jù)請求的需求和網(wǎng)絡的狀態(tài)使用動態(tài)規(guī)劃的方法來計算最適合請求的路徑。Vassilakis等人[17]根據(jù)網(wǎng)絡的緩存能力來設計一種高效的內(nèi)容分布方法,該內(nèi)容分布可以使得路由充分利用這些緩存信息來從較近的節(jié)點獲得內(nèi)容,從而減少路徑的跳數(shù)。目前的研究主要是通過路由轉發(fā)方法將請求內(nèi)容引導到最近的緩存節(jié)點,減少路徑的跳數(shù),進而提高路徑的收斂性,與多地址場景下的路徑收斂性有差異,因此需要針對多地址場景下的路徑收斂性差的問題進行方案設計。
本文分析ICN多宿主場景下路徑收斂慢的原因,并設計一種基于馬爾可夫模型的多地址裁剪方法,該方法根據(jù)地址裁剪的歷史信息和跳數(shù)來決策是否進行地址裁剪,從而能減少數(shù)據(jù)包的跳動,盡快收斂到目的地。實驗結果表明該方法在保證傳輸性能的同時能使數(shù)據(jù)包盡快收斂到目的地。
ICN多宿主網(wǎng)絡架構是基于協(xié)議無感知轉發(fā)技術(Protocol-Oblivious Forwarding, POF)[18-19],POF是SDN(Software-Defined Networking)[20]控制層和轉發(fā)層的接口協(xié)議,它通過定義一套協(xié)議無感知的指令集實現(xiàn)網(wǎng)絡的全可編程性,能夠?qū)崿F(xiàn)網(wǎng)絡的靈活管理和自定義的數(shù)據(jù)包轉發(fā)。文獻[21]利用POF的協(xié)議無感知轉發(fā)的特性來承載ICN,使得快速部署實現(xiàn)ICN變得可能。該架構基于ICN的標識和地址分離特性,通過解析系統(tǒng)獲得主機標識對應的所有地址,從而更好地支持多宿主。圖1描述的是基于協(xié)議無感知轉發(fā)技術的多宿主網(wǎng)絡架構,該架構中包括控制層和轉發(fā)層,控制層和轉發(fā)層通過POF協(xié)議通道進行通信,控制器通過制定轉發(fā)表來指導數(shù)據(jù)包的轉發(fā),POF交換機通過流表來處理數(shù)據(jù)包。其中終端標識ID與網(wǎng)絡地址NA(Network Address)解析在控制器上完成。發(fā)往多宿主終端的數(shù)據(jù)包攜帶多個目的地址,本文NA使用的是IPv4,其他的地址放入IPv4包頭的“選項”域中,“頭部長度”域可以標識含有的目的地址數(shù)目。
圖1 基于POF的ICN網(wǎng)絡多宿主場景架構
由于多目的地址的數(shù)據(jù)包在匹配轉發(fā)表后,每個地址會獲得一個對應的轉發(fā)端口,故可能有多個轉發(fā)端口供選擇。為了實現(xiàn)根據(jù)狀態(tài)選擇轉發(fā)端口,在除了擁有轉發(fā)表外,該架構下的交換機中還擁有狀態(tài)表,這個狀態(tài)表根據(jù)網(wǎng)絡的動態(tài)信息進行計算,以用于在多個轉發(fā)端口之間選擇滿足數(shù)據(jù)包性能需求的路徑。另外,數(shù)據(jù)包也需要在轉發(fā)的過程中裁剪掉無用的目的地址,保證數(shù)據(jù)包到達終端時只攜帶一個地址。在獲得多個轉發(fā)端口的時候,根據(jù)狀態(tài)表選擇狀態(tài)好的端口進行轉發(fā),狀態(tài)好的端口對應的地址稱為“優(yōu)先”地址,而其余地址則是優(yōu)先級低的地址,需要被裁剪掉。
數(shù)據(jù)包中攜帶多個目的地址是路徑收斂慢的主要因素,或者說數(shù)據(jù)包攜帶了優(yōu)先級低的地址,因為只攜帶一個地址的數(shù)據(jù)包將會沿著路由表的轉發(fā)規(guī)則沿著最短路徑進行轉發(fā),而多個目的地址使得在不同的跳根據(jù)不同的目的地址進行轉發(fā),從而打破了最短路徑轉發(fā)。這種打破最短路徑轉發(fā)的方法使得網(wǎng)絡中的流量能利用網(wǎng)絡中的空閑資源提高傳輸速率,但也帶來收斂慢的問題。比如圖2中,鏈路上標識的是路徑狀態(tài)值,值越大代表鏈路傳輸性能越好,多地址數(shù)據(jù)包從S1到H1,攜帶H1的地址IP1和IP2,從S1到IP1和IP2的最短路徑分別是S1-R1-R2-R4-H1和S1-R1-R3-R5-H1。為了追求較好的傳輸性能,多地址數(shù)據(jù)包可能沿著S1-R1-R2-R3-R4-R5-H1的路徑傳輸。這條路徑雖然傳輸性能最好,但是跳數(shù)較多,有可能還會跨多個自治域,這就增加了時延和傳輸?shù)拇鷥r。為了平衡這些利弊,需要適當?shù)姆椒▉韺?yōu)先級低的目的地址進行裁剪。比如在R2上刪除數(shù)據(jù)包中的地址IP2,從而避免將數(shù)據(jù)包轉發(fā)到R3。
圖2 路徑收斂性分析
攜帶多個地址能提高傳輸?shù)男阅?,因此地址裁剪的過程要能夠平衡傳輸性能和路徑收斂性?;诖颂岢鲆砸欢ǜ怕蕘磉M行地址裁剪,這個概率可以根據(jù)需要設定,這樣能夠在轉發(fā)過程中逐漸減少地址的數(shù)目,從而提高收斂性。在第2章中將介紹使用馬爾可夫模型來計算地址裁剪的概率。
攜帶多個目的地址的數(shù)據(jù)包的地址表示為IPs={IP1,IP2,…,IPn},匹配完轉發(fā)表后獲得對應轉發(fā)端口ports={port1,port2,…,portm},假定匹配狀態(tài)表之后選擇狀態(tài)值最好的端口portk轉發(fā),該最優(yōu)端口對應的目的地址組為addresses(portk)={IPk1,IPk2,…,IPkj},其余不是最優(yōu)端口對應的地址要被刪除。同時,為了減少地址的數(shù)目,從而減少不必要的跳動,需要對最優(yōu)端口對應的目的地址組addresses(portk)中的地址進行一定的裁剪。
地址裁剪要考慮前跳信息,根據(jù)前k跳的信息,以一定的概率刪除地址。使用馬爾可夫鏈模型來進行地址裁剪,Xk表示數(shù)據(jù)包在第k跳時連續(xù)未進行地址刪除的跳數(shù),則在第k+1跳數(shù)據(jù)包的狀態(tài)Xk+1只與第k跳的狀態(tài)Xk有關,如果在第k跳數(shù)據(jù)包進行地址刪除,則第k+1跳數(shù)據(jù)包的狀態(tài)Xk+1=0,如果第k跳數(shù)據(jù)包未進行地址刪除,則第k+1跳數(shù)據(jù)包的狀態(tài)Xk+1=Xk+1,因此狀態(tài)Xk+1只與第k跳的狀態(tài)Xk有關,故符合Markov過程的特性。又由于在m跳之內(nèi)必須進行地址裁剪,所以Xk狀態(tài)是有限的,而且是離散的,因此,問題可以描述為馬爾可夫鏈模型。上述狀態(tài)轉移的概率P(Xk+1=0|Xk)可描述為在第k跳使用前跳信息進行地址刪除的概率,與前跳狀態(tài)Xk有關,因此這個概率是有記憶的。該問題的狀態(tài)轉移圖如圖3所示,如果在第k跳裁剪地址,則狀態(tài)返回到0,否則轉移到Xk+1=Xk+1,其中到達狀態(tài)m時,意味著連續(xù)m跳未進行地址刪除,則強制進行地址刪除,也即狀態(tài)返回到0。根據(jù)狀態(tài)轉移圖可以獲得對應的一步狀態(tài)轉移概率矩陣P,路由器可以根據(jù)狀態(tài)轉移概率矩陣進行地址刪除決策。
圖3 Xk狀態(tài)轉移圖
在2.1節(jié)中介紹了使用馬爾可夫模型進行地址裁剪,其中狀態(tài)轉移概率矩陣將會決定地址裁剪的概率。根據(jù)圖3將會獲得對應的狀態(tài)轉移矩陣:
(1)
由圖3的狀態(tài)轉移圖可以獲得狀態(tài)轉移矩陣滿足以下特性:
pk,0>0
(2)
pk,k+1≥0, ?0km
(3)
即在路由器上未進行地址刪除時,狀態(tài)變化為Xk+1=Xk+1。
pk,0+pk,k+1=1, ?0k (4) 其中,pi,j=0對于j≠0或j≠i+1,因為在第k跳只會發(fā)生地址刪除或地址保留這2種情況。 狀態(tài)轉移矩陣的基本特性已經(jīng)獲得,接下來要設置對應的計算方法來合理地裁剪地址,從而提高路徑的收斂性。首先根據(jù)不同的狀態(tài)來設置地址刪除的概率,其中,狀態(tài)Xk=i值越大,則進行地址刪除的概率pi,0越高,即滿足如下特性: pi,0≥pi-1,0≥…≥p0,0 (5) Sigmoid函數(shù)y(x)=1/(1+e-x)滿足式(2)和式(5)的基本特性,并且該函數(shù)的導數(shù)在x<0時隨著x的增加而增加,意味著增長率逐漸增加。滿足多地址裁剪的需求,即地址裁剪概率要快速增加,可以快速減少不必要的地址。因此,對Sigmoid函數(shù)進行改進得到對應的馬爾可夫模型的地址裁剪概率函數(shù),具體如式(6)所示: (6) 式(6)描述的地址刪除概率在狀態(tài)值i<0.5×m時刪除概率增加較快,其中m為Xk最大值,也即允許的最大連續(xù)地址未刪除跳數(shù)。圖4描述了馬爾可夫模型地址裁剪函數(shù)的基本信息。 在式(6)中只考慮了前跳地址刪除的狀態(tài)作為地址刪除的依據(jù),但是隨著數(shù)據(jù)包跳數(shù)的增加,希望地址裁剪的概率增加,這樣裁剪的概率除了跟狀態(tài)有關,還與數(shù)據(jù)包經(jīng)過的路由器跳數(shù)有關。也即是狀態(tài)轉移矩陣P是與跳數(shù)有關的,可以表示為P(k),pi,0(k)是第k步從狀態(tài)i轉移到0的概率,也即是刪除地址的概率。其中pi,0(k)是隨著k遞增的,隨著跳數(shù)增長而增加地址刪除概率。也即滿足: pi,0(k+1)≥pi,0(k) (7) 圖4 地址裁剪概率計算函數(shù) 因此,對式(6)中的基于馬爾可夫模型的地址裁剪概率函數(shù)進行改進,加入跳數(shù)的影響因素。改進的函數(shù)如式(8): (8) 其中,加入了因子β(k),使得概率能在跳數(shù)增加的時候,對應的地址裁剪的概率也增加,為了滿足這些特性和計算的方便,因子β(k)可以設置為: (9) 因此,基于馬爾可夫模型的地址裁剪概率函數(shù)可以表示為: (10) 有了狀態(tài)轉移概率矩陣之后,路由器在收到多地址的數(shù)據(jù)包的時候,在選擇完轉發(fā)端口之后對地址進行裁剪,其中根據(jù)狀態(tài)i和跳數(shù)利用式(10)來計算地址刪除的概率,以此來對地址裁剪,從而保證在轉發(fā)的過程中,保持數(shù)據(jù)包中地址持續(xù)較少,從而較少數(shù)據(jù)包的跳動,提高路徑的收斂性。 根據(jù)2.2節(jié)獲得地址裁剪的概率,再根據(jù)概率來決策是否進行地址刪除,但是刪除哪些地址仍然是個問題。馬爾可夫模型使用歷史狀態(tài)信息來判斷是否進行地址裁剪,而裁剪哪些地址需要對未來狀態(tài)做個預測。由于選擇的最優(yōu)端口對應的地址組具有相同的轉發(fā)端口和狀態(tài)值,唯一可能不同的是地址匹配轉發(fā)表時的地址匹配長度。一般情況下,地址匹配長度越長,預示著距離目的地越近,這是因為IP地址具有聚合性,距離越遠由于聚合的地址越多,相應的匹配長度越短。因此可以使用地址匹配長度作為預測未來路徑跳數(shù)的依據(jù),在判斷需要進行地址裁剪的時候,從地址組中選擇匹配長度較短的地址進行裁剪,保留匹配長度較長的地址。 本章通過實驗來驗證基于馬爾可夫模型的地址裁剪方法的路徑收斂性。 使用的仿真平臺Mininet[22]是SDN場景下主流的仿真平臺,控制器和交換機是改進的POX控制器[23]和POFSwitch[24]交換機。為了模擬真實的網(wǎng)絡環(huán)境,仿真拓撲選取的是Rocketfuel[25]拓撲數(shù)據(jù)集中的AS5660自治域,該自治域包含22個路由器和26條鏈路。由于仿真路由器和鏈路較多,受限于服務器資源,為了防止發(fā)生丟包等現(xiàn)象,鏈路帶寬不宜設置過高,因此仿真鏈路帶寬設置為10 Mbps,同時不會影響實驗驗證結果。實驗指標是傳輸速率和跳數(shù),使用主流的流量測試工具IPerf來測試傳輸速率。首先分析狀態(tài)Xk最大值m對收斂性的影響,然后根據(jù)結果選取m,并與基準方法做對比,選擇的對比方法是隨跳數(shù)線性增加刪除概率的地址刪除方法。 圖5 狀態(tài)最大值設置對傳輸性能影響 在基于馬爾可夫模型的地址裁剪概率函數(shù)中,狀態(tài)Xk最大值m影響地址刪除的概率的計算,因此首先比較不同m值的選取對收斂性的影響。由于仿真拓撲節(jié)點之間最短距離小于等于8,故選取m的范圍為[1, 8],實驗結果比較了傳輸速率和數(shù)據(jù)包的平均跳數(shù)。從圖5中可以看到,隨著m的增加,傳輸速率增加,這是因為m越大,相對刪除地址概率越小,保留的地址越多,而多地址可以使得數(shù)據(jù)包具有更多的路徑選擇,提高傳輸效率。但是相對的平均跳數(shù)也會增加,即路徑收斂性也會變差,這是因為多地址會使得數(shù)據(jù)包不能盡快收斂到目的地。從圖5中發(fā)現(xiàn),在m=4附近時傳輸速率增加開始變緩,意味著m的增加對傳輸速率提升已不大,而相對應的跳數(shù)還在保持增加。可以設定m為4,此時傳輸速率和路徑收斂性相對來說是比較均衡的。 在3.2節(jié)中比較了狀態(tài)最大值m的設置對傳輸速率和路徑收斂性的影響,并選取合適的m值,在本節(jié)比較隨跳數(shù)線性增加刪除概率的地址刪除方法的性能和基于馬氏模型的地址刪除方法。 圖6 基于馬爾可夫模型地址裁剪方法性能 實驗中比較了隨跳數(shù)線性增加刪除概率的不同增加率,增加率從10%到30%。增加率表示逐跳增加刪除概率的速率,比如增長率為10%,起始第一跳地址刪除概率為10%,則第二跳增加到20%,以此類推。從圖6中可以看到,隨跳數(shù)線性增加刪除概率模型隨著增長率的增加,地址將會以較快的速度刪除,所以傳輸速率會下降,相應的平均跳數(shù)會減少,即路徑的收斂性會提高?;隈R爾可夫模型的地址裁剪方法在傳輸速率方面的表現(xiàn)與20%增長率的線性概率增加方法在傳輸速率方面的表現(xiàn)幾乎相同,相應的平均跳數(shù)減少約16%,也即在獲取較好的傳輸?shù)耐瑫r,路徑收斂性也得到了提升。而線性刪除增長率達到30%時,傳輸速率會比基于馬爾可夫模型表現(xiàn)差,而收斂性并沒有多大的提升,因此不是很有必要再比較大于30%的結果。從實驗結果說明,與線性地址刪除模型相比,基于馬爾科夫模型的地址裁剪方法在傳輸性能和收斂性的表現(xiàn)更均衡,這是因為除了考慮跳數(shù)因素,該方法還加入了地址刪除歷史信息來加快數(shù)據(jù)包收斂到目的地。 本文針對ICN多宿主網(wǎng)絡的路徑收斂性差的問題,提出了基于馬爾可夫模型的多地址裁剪方法,并設計了狀態(tài)轉移概率矩陣的計算方法,綜合考慮了地址刪除歷史信息和數(shù)據(jù)包的跳數(shù)來進行地址刪除,在保證傳輸性能的同時提高收斂性。實驗結果表明,該方法與基于跳數(shù)增加地址刪除概率的方法相比,能在保證傳輸速率的同時,減少平均跳數(shù)約16%,也即提高了路徑的收斂性。后續(xù)工作將會考慮通過轉發(fā)端口的選擇使得數(shù)據(jù)包能盡快地到達目的地,減少跳動。2.3 狀態(tài)轉移概率矩陣
3 實驗對比分析
3.1 實驗平臺介紹
3.2 狀態(tài)最大值設置對收斂性的影響
3.3 基于馬爾可夫模型地址裁剪對路徑收斂性的影響
4 結束語