在线观看av毛片亚洲_伊人久久大香线蕉成人综合网_一级片黄色视频播放_日韩免费86av网址_亚洲av理论在线电影网_一区二区国产免费高清在线观看视频_亚洲国产精品久久99人人更爽_精品少妇人妻久久免费

首頁 > 文章中心 > 正文

深度學(xué)習(xí)下計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)包路由探析

前言:本站為你精心整理了深度學(xué)習(xí)下計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)包路由探析范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

深度學(xué)習(xí)下計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)包路由探析

摘要:隨著計(jì)算機(jī)網(wǎng)絡(luò)復(fù)雜性提高和流量的激增,網(wǎng)絡(luò)中采用常規(guī)路由方法的路由器會出現(xiàn)收斂緩慢甚至擁塞的問題。本文探索了深度學(xué)習(xí)在數(shù)據(jù)包路由中的新方法,將計(jì)算需求從基于規(guī)則的路由計(jì)算轉(zhuǎn)移到基于深度學(xué)習(xí)的高吞吐量數(shù)據(jù)包的路由路徑,提高了大流量下數(shù)據(jù)包的路由效率。本文設(shè)計(jì)了一個受監(jiān)督式的深度學(xué)習(xí)系統(tǒng)以構(gòu)建路由表,并以軟件定義路由器(SDR)作為數(shù)據(jù)包處理平臺展示了所提方法在使用CPU和GPU的可編程路由器運(yùn)行的有效性。

關(guān)鍵詞:數(shù)據(jù)包路由;計(jì)算機(jī)網(wǎng)絡(luò);深度學(xué)習(xí);深度置信網(wǎng)絡(luò)

1引言

計(jì)算機(jī)網(wǎng)絡(luò)中的路由器經(jīng)歷了幾代硬件上的更新升級,但由于構(gòu)建網(wǎng)絡(luò)核心和無線-有線異構(gòu)架構(gòu)的方式基本保持不變,其路由算法背后的主要思想也基本相似。為了適應(yīng)網(wǎng)絡(luò)流量的激增,網(wǎng)絡(luò)核心基礎(chǔ)結(jié)構(gòu)只是通過添加更多、更大的路由器和更多、更快的網(wǎng)絡(luò)連接的方式來繼續(xù)擴(kuò)大規(guī)模,越來越大的核心網(wǎng)絡(luò)導(dǎo)致網(wǎng)絡(luò)運(yùn)營商的投資收益正在下降。流量管理的軟件方面主要集中在新路由策略的應(yīng)用上,而新的路由策略的應(yīng)用可能要等到新一代功能強(qiáng)大的硬件體系結(jié)構(gòu)出現(xiàn)之后才能實(shí)現(xiàn),因此軟件驅(qū)動的路由策略的應(yīng)用總是落后于流行的路由策略。為了應(yīng)用針對由不同網(wǎng)絡(luò)服務(wù)開發(fā)的最新軟件驅(qū)動的路由算法,有必要提高核心路由器的可編程性。然而,由于其專有的硬件架構(gòu),設(shè)計(jì)可編程路由器是一個充滿挑戰(zhàn)的研究領(lǐng)域。因此,研究人員考慮使用軟件定義路由器,該軟件在商品硬件體系結(jié)構(gòu)上部署了可編程路由策略以執(zhí)行數(shù)據(jù)包的處理和傳輸。盡管多核中央處理器(CPU)主導(dǎo)了相關(guān)研究領(lǐng)域,但圖形處理器(GPU)同時運(yùn)行成千上萬的線程來有效地處理數(shù)據(jù)包的能力使得GPU加速的軟件定義路由器成為新的研究熱點(diǎn)。同時,GPU也可與多核CPU協(xié)作以同時執(zhí)行不同的指令,GPU和CPU的協(xié)作可以顯著提高定義路由器的數(shù)據(jù)包處理吞吐量。在本文中,我們專注于數(shù)據(jù)包路由策略的設(shè)計(jì)。傳統(tǒng)上,每個路由器都會定期將信號數(shù)據(jù)包轉(zhuǎn)發(fā)給其他路由器,以告知其到鄰居的鏈路的延遲值或其他度量參數(shù)。然后,每個路由器都可以利用該信息來計(jì)算下一個節(jié)點(diǎn),以將數(shù)據(jù)包發(fā)送到目標(biāo)路由器。由于每個路由器都可以根據(jù)所獲得的所有網(wǎng)絡(luò)鏈路信息做出最佳決策,因此該方法在大多數(shù)情況下效果很好。但是,當(dāng)網(wǎng)絡(luò)中的某些路由器由于流量需求旺盛而擁塞時,用于計(jì)算下一個節(jié)點(diǎn)的常規(guī)方法會出現(xiàn)收斂緩慢的問題。同時,周期性的信號數(shù)據(jù)包交換加劇了業(yè)務(wù)擁塞。此外,傳統(tǒng)的路由方法無法應(yīng)對網(wǎng)絡(luò)環(huán)境繼續(xù)變得更加復(fù)雜的情況。為了利用各種指標(biāo)之間的復(fù)雜關(guān)系來確定最佳路徑,基于機(jī)器學(xué)習(xí)的智能網(wǎng)絡(luò)流量控制系統(tǒng)已在網(wǎng)絡(luò)環(huán)境中引起了廣泛關(guān)注。但是,由于傳統(tǒng)的機(jī)器學(xué)習(xí)技術(shù)在處理多個網(wǎng)絡(luò)參數(shù)方面效率低下以及表征輸入和輸出的困難,這些智能策略仍基于傳統(tǒng)的基本規(guī)則的路由。深度學(xué)習(xí)方法已應(yīng)用于許多復(fù)雜的活動中,來自動探索各種輸入之間的關(guān)系,因此在本文的其余部分中,我們設(shè)計(jì)了一種基于深度學(xué)習(xí)的數(shù)據(jù)包路由策略。

2基于深度學(xué)習(xí)的數(shù)據(jù)包路由策略設(shè)計(jì)

本節(jié)介紹如何設(shè)計(jì)深度學(xué)習(xí)模型并在GPU加速的SDR上實(shí)現(xiàn)路由表的構(gòu)建。首先,我們介紹了深度學(xué)習(xí)模型輸入和輸出的詳細(xì)表征,然后描述所選擇的深度置信網(wǎng)絡(luò)架構(gòu),最后介紹所提出的數(shù)據(jù)包路由策略如何在GPU加速的SDR上工作。

2.1輸入/輸出設(shè)計(jì)。由于在每個路由器上檢測到的流量模式是該路由器流量狀況的直接指示,因此我們將流量模式用作深度學(xué)習(xí)模型的輸入。深度學(xué)習(xí)模型用于計(jì)算數(shù)據(jù)包的路由路徑,因此我們選擇路由路徑作為模型的輸出,如圖1所示。至此,本設(shè)計(jì)的挑戰(zhàn)在于如何量化表征深度學(xué)習(xí)模型的輸入和輸出。我們以每個路由器的流量模式來表征輸入,將其定義為每個時間間隔內(nèi)路由器入站數(shù)據(jù)包的數(shù)量。假設(shè)對入站數(shù)據(jù)包進(jìn)行計(jì)數(shù)的時間間隔為Δt秒,則對于每個路由器,可以采用最后一個αΔt(α為正整數(shù))秒內(nèi)每個時間間隔內(nèi)入站數(shù)據(jù)包的數(shù)量作為其流量模式。因此,假設(shè)整個網(wǎng)絡(luò)由N個路由器組成,則網(wǎng)絡(luò)中所有路由器的流量模式可以使用α行和N列的矩陣來表示,并將矩陣中的αN個元素的值輸入到深度學(xué)習(xí)網(wǎng)絡(luò)的輸入層。由于太長時間以前的流量模式對當(dāng)前網(wǎng)絡(luò)分析沒有影響,因此α的值不應(yīng)太大。另外,過大的α值將提高深度學(xué)習(xí)模型的復(fù)雜度,降低其運(yùn)行效率。結(jié)合深度學(xué)習(xí)模型仿真結(jié)果,可設(shè)置α=1。因此,深度學(xué)習(xí)模型的輸入可以看作是N維向量,其中第i個元素是最后Δt秒內(nèi)第i個路由器的流量模式。出于數(shù)據(jù)包路由的目的,深度學(xué)習(xí)模型需要輸出路由路徑。輸出的形式可以有兩種,一種是將輸出層設(shè)計(jì)為像集中式路由一樣提供整個路徑,另一種是像分布式路由策略一樣僅給出下一個節(jié)點(diǎn)。我們選擇后者,因?yàn)槠渚哂休^低的復(fù)雜性和較好的魯棒性。對于由N個路由器組成的網(wǎng)絡(luò),我們使用由N個二進(jìn)制元素(0或1)組成的向量表示模型的輸出。在輸出向量中,只有一個元素的值為1,其他為0。如果N維向量中的第i個元素為1,則將網(wǎng)絡(luò)中的第i個路由器選擇為下一個節(jié)點(diǎn)。綜上,我們可以使用兩個N維向量x和y來表示深度學(xué)習(xí)結(jié)構(gòu)的輸入和輸出,并且x和y的示例如下所示:x=(tp1,tp2,⋯,tpN)y=(0,1,⋯,0)

2.2深度學(xué)習(xí)結(jié)構(gòu)設(shè)計(jì)。為了完成計(jì)算具有流量模式的下一個路由器的任務(wù),選擇深度學(xué)習(xí)模型中最為常見和有效的深度置信網(wǎng)絡(luò)(DBA)來設(shè)計(jì)深度學(xué)習(xí)結(jié)構(gòu),所設(shè)計(jì)的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2a所示。假設(shè)深度置信網(wǎng)絡(luò)由L層構(gòu)成,包括輸入層x、輸出層y和(L-2)層隱藏層。其中(L-2)層隱藏層可看作是受限玻爾茲曼機(jī)(RBM)的堆棧,頂層是一個邏輯回歸層。每個RBM的結(jié)構(gòu)如圖2b所示,可以看出,每個RBM由兩層組成,即可見層v和隱藏層h。兩層中的單元通過加權(quán)相互連接,同一層中的單元不連接,在兩層中給每個單元分配一個加權(quán)偏差。其中,wij表示連接隱藏層中第j個單元和可見層中第i個單元之間的連接權(quán)重,ai和bj分別表示可見層中第i個單元和隱藏層中第j個單元的偏移量。隱藏層中學(xué)習(xí)到的單元激活值用作深度置信網(wǎng)絡(luò)中上層RBM可見層的輸入。深度學(xué)習(xí)訓(xùn)練過程包括兩個步驟:采用逐層貪婪訓(xùn)練法對模型進(jìn)行初始化結(jié)構(gòu),采用反向傳播算法對結(jié)構(gòu)進(jìn)行調(diào)優(yōu)。深度置信網(wǎng)絡(luò)的初始過程是對每個RBM進(jìn)行訓(xùn)練,這是一個無監(jiān)督的學(xué)習(xí)過程,因?yàn)镽BM是一種無向的圖形模型,其中可見層中的單元使用對稱加權(quán)連接到隨機(jī)隱藏單元。在訓(xùn)練RBM時,會將未標(biāo)記的數(shù)據(jù)集提供給可見層,并反復(fù)調(diào)整權(quán)重和偏差的值,直到隱藏層可以重建可見層為止。因此,訓(xùn)練后的隱藏層可以看作是可見層的抽象特征,訓(xùn)練RBM是使隱藏層的重建誤差最小化的過程。

2.3基于深度學(xué)習(xí)模型的路由器架構(gòu)設(shè)計(jì)。本節(jié)簡要介紹GPU體系結(jié)構(gòu)以及上述基于深度學(xué)習(xí)模型的數(shù)據(jù)包路由過程。GPU由全局內(nèi)存、二級緩存和幾個流多處理器(SM)組成,每個流多處理器由多個流處理器(SP)組成。由于GPU具有許多計(jì)算核心,因此它在接收工作負(fù)載時會同時啟動多個線程,每個線程在相同的程序上運(yùn)行不同的數(shù)據(jù)集。因此,GPU非常適合運(yùn)行深度學(xué)習(xí)的單指令多數(shù)據(jù)編程模型。運(yùn)行于普通PC上的GPU加速SDR的報告線速可高達(dá)40Gbps,可滿足常用需求,因此本文選擇基于PC的通用SDR來構(gòu)建路由表并執(zhí)行基于深度學(xué)習(xí)的路由算法。在轉(zhuǎn)發(fā)過程中,數(shù)據(jù)包會經(jīng)過SDR架構(gòu)中的四個相關(guān)部分,即GPU、CPU、網(wǎng)絡(luò)接口卡(NIC)和主存儲器。為了運(yùn)行基于深度學(xué)習(xí)的路由算法,需要在訓(xùn)練階段初始化每個SDR,在此期間,網(wǎng)絡(luò)中的SDR不需要處理任何數(shù)據(jù)包,只需利用其GPU訓(xùn)練其DBA并記錄其參數(shù)即可。在訓(xùn)練階段之后,網(wǎng)絡(luò)中的所有路由器都需要將其DBA的參數(shù)值發(fā)送給所有邊緣路由器。因此,每個邊緣路由器都可以使用這些參數(shù)來還原任何DBA,可以在運(yùn)行階段中成功構(gòu)建到任何目標(biāo)路由器的完整路徑,而內(nèi)部路由器只是根據(jù)路徑轉(zhuǎn)發(fā)數(shù)據(jù)包。數(shù)據(jù)包在SDR中傳輸?shù)倪^程可以描述如下:(1)進(jìn)入NIC的數(shù)據(jù)包通過直接內(nèi)存訪問(DMA)復(fù)制到主機(jī)內(nèi)存中;(2)在整個過程中,CPU從主內(nèi)存復(fù)制一些數(shù)據(jù)包以填充其緩沖區(qū);(3)運(yùn)行在CPU上的軟件會分析這些數(shù)據(jù)包并采取一些必要的處理,例如錯誤檢查,縮短生命周期等,而且,CPU對不同類型的數(shù)據(jù)包采取不同的處理;(4)CPU提取數(shù)據(jù)包的標(biāo)頭并將其發(fā)送到GPU的全局內(nèi)存,將整個數(shù)據(jù)包發(fā)送到GPU的內(nèi)存;(5)在從CPU獲取報頭和數(shù)據(jù)包后,在邊緣路由器的GPU上運(yùn)行的軟件使用數(shù)據(jù)包攜帶的流量模式作為已恢復(fù)DBA的輸入,DBA可以輸出下一個節(jié)點(diǎn),邊緣路由器的GPU可以利用這些節(jié)點(diǎn)構(gòu)建數(shù)據(jù)包的整個路徑,并將相應(yīng)的路徑附加到接收的標(biāo)頭;(6)CPU從GPU復(fù)制回已處理的數(shù)據(jù)包的標(biāo)頭,并且將數(shù)據(jù)包復(fù)制回主存儲器;(7)CPU指示NIC將批處理轉(zhuǎn)發(fā)到何處,NIC通過另一個DMA從主存儲器中獲取數(shù)據(jù)包。

3基于深度學(xué)習(xí)的路由策略的過程

本節(jié)重點(diǎn)討論利用DBA計(jì)算核心網(wǎng)絡(luò)中用于構(gòu)建下一個節(jié)點(diǎn)路由路徑的過程,該過程可以分為三個步驟,即初始化階段、訓(xùn)練階段和運(yùn)行階段。下面詳細(xì)介紹三個階段的具體過程。

3.1初始化階段。如第2.2節(jié)所述,我們采用監(jiān)督學(xué)習(xí)的方式來進(jìn)行訓(xùn)練所提出的DBA系統(tǒng),因此,初始化階段的目標(biāo)是獲得足夠的、由輸入向量和相應(yīng)的輸出向量組成的標(biāo)記數(shù)據(jù)。如2.1節(jié)所述,輸入向量為網(wǎng)絡(luò)中路由器的流量模式,輸出向量應(yīng)指示對應(yīng)于給定流量模式的下一個節(jié)點(diǎn)。為了獲得這種訓(xùn)練數(shù)據(jù),我們可以使用可用的數(shù)據(jù)集資源,例如應(yīng)用互聯(lián)網(wǎng)數(shù)據(jù)分析中心(CAIDA),并提取交通信息和相關(guān)的路由路徑。另外,我們也可以在網(wǎng)絡(luò)中運(yùn)行傳統(tǒng)的路由協(xié)議,并記錄每個路由器的入站數(shù)據(jù)包數(shù)量及其路由表。

3.2訓(xùn)練階段。在訓(xùn)練階段,我們使用獲得的數(shù)據(jù)來訓(xùn)練我們設(shè)計(jì)的DBA。訓(xùn)練過程包括兩個步驟:使用逐層貪婪訓(xùn)練方法初始化每個DBA;使用反向傳播方法微調(diào)參數(shù)θ(w,b)。訓(xùn)練階段完成之后,我們可以獲得θ(w,b)的值。DBA的輸出是代表下一個節(jié)點(diǎn)的向量,這意味著它需要多個DBA來構(gòu)建整個路徑。假設(shè)采用類似集中控制策略,即網(wǎng)絡(luò)中只有一個路由器訓(xùn)練和運(yùn)行所有DBA,并在網(wǎng)絡(luò)中生成所有路徑,路由器的計(jì)算量將非常高。而且中央路由器需要大量的時間和資源來計(jì)算所有路徑,從而導(dǎo)致延遲增加,準(zhǔn)確性下降。為了減少路由器的計(jì)算量并提高學(xué)習(xí)的準(zhǔn)確性,將訓(xùn)練任務(wù)分為幾個部分,并將它們分發(fā)到目標(biāo)核心網(wǎng)絡(luò)中的每個路由器,即網(wǎng)絡(luò)中的每個路由器都需要訓(xùn)練幾個DBA,每個DBA都會計(jì)算從其自身到目的路由器的下一個節(jié)點(diǎn),路由器需要訓(xùn)練的DBA數(shù)量取決于其目標(biāo)路由器的數(shù)量。令N和I分別表示路由器的總數(shù)和內(nèi)部路由器的數(shù)量,則每個內(nèi)部路由器的目標(biāo)節(jié)點(diǎn)數(shù)為(N-I),而每個邊緣路由器都有(N-I-1)個目標(biāo)節(jié)點(diǎn),因?yàn)樵绰酚善骱湍繕?biāo)路由器不能相同。因此,每個內(nèi)部路由器都需要訓(xùn)練(N-I)個DBA,而所有邊緣路由器都需要訓(xùn)練(N-I-1)個DBA。

3.3運(yùn)行階段。在運(yùn)行階段,網(wǎng)絡(luò)中的所有路由器都需要定期將其入站數(shù)據(jù)包的數(shù)量記錄為流量模式,并將其發(fā)送到邊緣路由器。然后,每個邊緣路由器都可以將流量模式輸入到其DBA,以獲取到其他邊緣路由器的下一個節(jié)點(diǎn)。另外,由于每個邊緣路由器都獲得其他路由器的DBA的參數(shù)θ,因此它可以在網(wǎng)絡(luò)中構(gòu)造任何DBA,并計(jì)算從任何路由器到任何目標(biāo)邊緣路由器的下一個節(jié)點(diǎn)。因此,每個邊緣路由器都可以利用下一個節(jié)點(diǎn)信息來構(gòu)建從其自身到所有其他邊緣路由器的完整路徑。使用N個元素組成的數(shù)組P[N]保存網(wǎng)絡(luò)中N個路由器的入站數(shù)據(jù)包數(shù)量,以表示流量模式,而θ[N-I][N-1]用以保存網(wǎng)絡(luò)中所有DBA的參數(shù)。另一個數(shù)組R[N-I]用于保存網(wǎng)絡(luò)中邊緣路由器的序列號。在實(shí)際網(wǎng)絡(luò)情況下,R[N-I]用于保存所有目標(biāo)路由器的IP地址。系統(tǒng)運(yùn)行后,每個邊緣路由器都可以獲取DBA的輸出,以構(gòu)造到(N-I-1)個邊緣路由器的路徑。我們可以使用矩陣NR[N][N-I-1]來保存這些DBA的結(jié)果,這些結(jié)果可用于構(gòu)建通往所有其他邊緣路由器的完整路徑。

4結(jié)論

為滿足不斷變化的網(wǎng)絡(luò)需求并應(yīng)對未來流量激增對路由的挑戰(zhàn),本文重新考慮核心網(wǎng)絡(luò)中數(shù)據(jù)包路由策略。本文首先探索當(dāng)前的SDR架構(gòu),并論證了深度學(xué)習(xí)可以用來代替?zhèn)鹘y(tǒng)的路由協(xié)議來計(jì)算路由路徑。考慮到當(dāng)前GPU加速的SDR支持大規(guī)模并行計(jì)算,不同于傳統(tǒng)的基于規(guī)則的路由方式,本文提出了一種受監(jiān)督的深度學(xué)習(xí)系統(tǒng),以利用流量模式直接計(jì)算路由路徑。模擬結(jié)果表明,從傳統(tǒng)的基于規(guī)則的策略到深度學(xué)習(xí)的轉(zhuǎn)變可以顯著提高網(wǎng)絡(luò)中數(shù)據(jù)包的路由效率。

作者:龔方生 單位:廣州涉外經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院

江津市| 正镶白旗| 舒兰市| 安国市| 云南省| 通州市| 壤塘县| 静安区| 宁远县| 阜阳市| 望都县| 长宁区| 和政县| 平山县| 娄烦县| 阿克陶县| 凉城县| 太湖县| 平阴县| 驻马店市| 肥城市| 灌云县| 青河县| 屯昌县| 莱西市| 连山| 木兰县| 馆陶县| 东源县| 庆云县| 巴马| 溧水县| 贵溪市| 湘西| 正定县| 河东区| 盈江县| 周宁县| 马公市| 北海市| 石河子市|