国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于深度學(xué)習(xí)的計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)包路由策略

2021-07-26 01:19:24龔方生
關(guān)鍵詞:路由器數(shù)據(jù)包路由

◆龔方生

(廣州涉外經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 廣東 510540)

1 引言

計(jì)算機(jī)網(wǎng)絡(luò)中的路由器經(jīng)歷了幾代硬件上的更新升級(jí),但由于構(gòu)建網(wǎng)絡(luò)核心和無(wú)線-有線異構(gòu)架構(gòu)的方式基本保持不變,其路由算法背后的主要思想也基本相似。為了適應(yīng)網(wǎng)絡(luò)流量的激增,網(wǎng)絡(luò)核心基礎(chǔ)結(jié)構(gòu)只是通過(guò)添加更多、更大的路由器和更多、更快的網(wǎng)絡(luò)連接的方式來(lái)繼續(xù)擴(kuò)大規(guī)模,越來(lái)越大的核心網(wǎng)絡(luò)導(dǎo)致網(wǎng)絡(luò)運(yùn)營(yíng)商的投資收益正在下降。流量管理的軟件方面主要集中在新路由策略的應(yīng)用上,而新的路由策略的應(yīng)用可能要等到新一代功能強(qiáng)大的硬件體系結(jié)構(gòu)出現(xiàn)之后才能實(shí)現(xiàn),因此軟件驅(qū)動(dòng)的路由策略的應(yīng)用總是落后于流行的路由策略。為了應(yīng)用針對(duì)由不同網(wǎng)絡(luò)服務(wù)開發(fā)的最新軟件驅(qū)動(dòng)的路由算法,有必要提高核心路由器的可編程性。然而,由于其專有的硬件架構(gòu),設(shè)計(jì)可編程路由器是一個(gè)充滿挑戰(zhàn)的研究領(lǐng)域。因此,研究人員考慮使用軟件定義路由器,該軟件在商品硬件體系結(jié)構(gòu)上部署了可編程路由策略以執(zhí)行數(shù)據(jù)包的處理和傳輸。

盡管多核中央處理器(CPU)主導(dǎo)了相關(guān)研究領(lǐng)域,但圖形處理器(GPU)同時(shí)運(yùn)行成千上萬(wàn)的線程來(lái)有效地處理數(shù)據(jù)包的能力使得GPU 加速的軟件定義路由器成為新的研究熱點(diǎn)。同時(shí),GPU 也可與多核CPU 協(xié)作以同時(shí)執(zhí)行不同的指令,GPU 和CPU 的協(xié)作可以顯著提高定義路由器的數(shù)據(jù)包處理吞吐量。在本文中,我們專注于數(shù)據(jù)包路由策略的設(shè)計(jì)。傳統(tǒng)上,每個(gè)路由器都會(huì)定期將信號(hào)數(shù)據(jù)包轉(zhuǎn)發(fā)給其他路由器,以告知其到鄰居的鏈路的延遲值或其他度量參數(shù)。然后,每個(gè)路由器都可以利用該信息來(lái)計(jì)算下一個(gè)節(jié)點(diǎn),以將數(shù)據(jù)包發(fā)送到目標(biāo)路由器。由于每個(gè)路由器都可以根據(jù)所獲得的所有網(wǎng)絡(luò)鏈路信息做出最佳決策,因此該方法在大多數(shù)情況下效果很好。但是,當(dāng)網(wǎng)絡(luò)中的某些路由器由于流量需求旺盛而擁塞時(shí),用于計(jì)算下一個(gè)節(jié)點(diǎn)的常規(guī)方法會(huì)出現(xiàn)收斂緩慢的問題。同時(shí),周期性的信號(hào)數(shù)據(jù)包交換加劇了業(yè)務(wù)擁塞。此外,傳統(tǒng)的路由方法無(wú)法應(yīng)對(duì)網(wǎng)絡(luò)環(huán)境繼續(xù)變得更加復(fù)雜的情況。為了利用各種指標(biāo)之間的復(fù)雜關(guān)系來(lái)確定最佳路徑,基于機(jī)器學(xué)習(xí)的智能網(wǎng)絡(luò)流量控制系統(tǒng)已在網(wǎng)絡(luò)環(huán)境中引起了廣泛關(guān)注。但是,由于傳統(tǒng)的機(jī)器學(xué)習(xí)技術(shù)在處理多個(gè)網(wǎng)絡(luò)參數(shù)方面效率低下以及表征輸入和輸出的困難,這些智能策略仍基于傳統(tǒng)的基本規(guī)則的路由。深度學(xué)習(xí)方法已應(yīng)用于許多復(fù)雜的活動(dòng)中,來(lái)自動(dòng)探索各種輸入之間的關(guān)系,因此在本文的其余部分中,我們?cè)O(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ì)

由于在每個(gè)路由器上檢測(cè)到的流量模式是該路由器流量狀況的直接指示,因此我們將流量模式用作深度學(xué)習(xí)模型的輸入。深度學(xué)習(xí)模型用于計(jì)算數(shù)據(jù)包的路由路徑,因此我們選擇路由路徑作為模型的輸出,如圖1所示。

圖1 系統(tǒng)輸入與輸出表征

至此,本設(shè)計(jì)的挑戰(zhàn)在于如何量化表征深度學(xué)習(xí)模型的輸入和輸出。我們以每個(gè)路由器的流量模式來(lái)表征輸入,將其定義為每個(gè)時(shí)間間隔內(nèi)路由器入站數(shù)據(jù)包的數(shù)量。假設(shè)對(duì)入站數(shù)據(jù)包進(jìn)行計(jì)數(shù)的時(shí)間間隔為Δt 秒,則對(duì)于每個(gè)路由器,可以采用最后一個(gè)αΔt(α為正整數(shù))秒內(nèi)每個(gè)時(shí)間間隔內(nèi)入站數(shù)據(jù)包的數(shù)量作為其流量模式。因此,假設(shè)整個(gè)網(wǎng)絡(luò)由N 個(gè)路由器組成,則網(wǎng)絡(luò)中所有路由器的流量模式可以使用α行和N 列的矩陣來(lái)表示,并將矩陣中的αN 個(gè)元素的值輸入到深度學(xué)習(xí)網(wǎng)絡(luò)的輸入層。由于太長(zhǎng)時(shí)間以前的流量模式對(duì)當(dāng)前網(wǎng)絡(luò)分析沒有影響,因此α的值不應(yīng)太大。另外,過(guò)大的α值將提高深度學(xué)習(xí)模型的復(fù)雜度,降低其運(yùn)行效率。結(jié)合深度學(xué)習(xí)模型仿真結(jié)果,可設(shè)置α=1。因此,深度學(xué)習(xí)模型的輸入可以看作是N 維向量,其中第i 個(gè)元素是最后Δt 秒內(nèi)第i 個(gè)路由器的流量模式。

出于數(shù)據(jù)包路由的目的,深度學(xué)習(xí)模型需要輸出路由路徑。輸出的形式可以有兩種,一種是將輸出層設(shè)計(jì)為像集中式路由一樣提供整個(gè)路徑,另一種是像分布式路由策略一樣僅給出下一個(gè)節(jié)點(diǎn)。我們選擇后者,因?yàn)槠渚哂休^低的復(fù)雜性和較好的魯棒性。對(duì)于由N 個(gè)路由器組成的網(wǎng)絡(luò),我們使用由N 個(gè)二進(jìn)制元素(0 或1)組成的向量表示模型的輸出。在輸出向量中,只有一個(gè)元素的值為1,其他為0。如果N 維向量中的第i 個(gè)元素為1,則將網(wǎng)絡(luò)中的第i 個(gè)路由器選擇為下一個(gè)節(jié)點(diǎn)。綜上,我們可以使用兩個(gè)N 維向量x 和y 來(lái)表示深度學(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ì)算具有流量模式的下一個(gè)路由器的任務(wù),選擇深度學(xué)習(xí)模型中最為常見和有效的深度置信網(wǎng)絡(luò)(DBA)來(lái)設(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)的堆棧,頂層是一個(gè)邏輯回歸層。每個(gè)RBM 的結(jié)構(gòu)如圖2b所示,可以看出,每個(gè)RBM 由兩層組成,即可見層v 和隱藏層h。兩層中的單元通過(guò)加權(quán)相互連接,同一層中的單元不連接,在兩層中給每個(gè)單元分配一個(gè)加權(quán)偏差。其中,wij表示連接隱藏層中第j 個(gè)單元和可見層中第i 個(gè)單元之間的連接權(quán)重,ai和bj分別表示可見層中第i 個(gè)單元和隱藏層中第j 個(gè)單元的偏移量。隱藏層中學(xué)習(xí)到的單元激活值用作深度置信網(wǎng)絡(luò)中上層RBM 可見層的輸入。

圖2 所提出的深度學(xué)習(xí)模型

深度學(xué)習(xí)訓(xùn)練過(guò)程包括兩個(gè)步驟:采用逐層貪婪訓(xùn)練法對(duì)模型進(jìn)行初始化結(jié)構(gòu),采用反向傳播算法對(duì)結(jié)構(gòu)進(jìn)行調(diào)優(yōu)。深度置信網(wǎng)絡(luò)的初始過(guò)程是對(duì)每個(gè)RBM 進(jìn)行訓(xùn)練,這是一個(gè)無(wú)監(jiān)督的學(xué)習(xí)過(guò)程,因?yàn)镽BM 是一種無(wú)向的圖形模型,其中可見層中的單元使用對(duì)稱加權(quán)連接到隨機(jī)隱藏單元。在訓(xùn)練RBM 時(shí),會(huì)將未標(biāo)記的數(shù)據(jù)集提供給可見層,并反復(fù)調(diào)整權(quán)重和偏差的值,直到隱藏層可以重建可見層為止。因此,訓(xùn)練后的隱藏層可以看作是可見層的抽象特征,訓(xùn)練RBM是使隱藏層的重建誤差最小化的過(guò)程。

2.3 基于深度學(xué)習(xí)模型的路由器架構(gòu)設(shè)計(jì)

本節(jié)簡(jiǎn)要介紹GPU 體系結(jié)構(gòu)以及上述基于深度學(xué)習(xí)模型的數(shù)據(jù)包路由過(guò)程。GPU 由全局內(nèi)存、二級(jí)緩存和幾個(gè)流多處理器(SM)組成,每個(gè)流多處理器由多個(gè)流處理器(SP)組成。由于GPU 具有許多計(jì)算核心,因此它在接收工作負(fù)載時(shí)會(huì)同時(shí)啟動(dòng)多個(gè)線程,每個(gè)線程在相同的程序上運(yùn)行不同的數(shù)據(jù)集。因此,GPU 非常適合運(yùn)行深度學(xué)習(xí)的單指令多數(shù)據(jù)編程模型。

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

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

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

3.1 初始化階段

如第2.2 節(jié)所述,我們采用監(jiān)督學(xué)習(xí)的方式來(lái)進(jìn)行訓(xùn)練所提出的DBA 系統(tǒng),因此,初始化階段的目標(biāo)是獲得足夠的、由輸入向量和相應(yīng)的輸出向量組成的標(biāo)記數(shù)據(jù)。如2.1 節(jié)所述,輸入向量為網(wǎng)絡(luò)中路由器的流量模式,輸出向量應(yīng)指示對(duì)應(yīng)于給定流量模式的下一個(gè)節(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é)議,并記錄每個(gè)路由器的入站數(shù)據(jù)包數(shù)量及其路由表。

3.2 訓(xùn)練階段

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

3.3 運(yùn)行階段

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

4 結(jié)論

為滿足不斷變化的網(wǎng)絡(luò)需求并應(yīng)對(duì)未來(lái)流量激增對(duì)路由的挑戰(zhàn),本文重新考慮核心網(wǎng)絡(luò)中數(shù)據(jù)包路由策略。本文首先探索當(dāng)前的SDR 架構(gòu),并論證了深度學(xué)習(xí)可以用來(lái)代替?zhèn)鹘y(tǒng)的路由協(xié)議來(lái)計(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ù)包的路由效率。

猜你喜歡
路由器數(shù)據(jù)包路由
買千兆路由器看接口參數(shù)
SmartSniff
探究路由與環(huán)路的問題
你所不知道的WIFI路由器使用方法?
基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
PRIME和G3-PLC路由機(jī)制對(duì)比
WSN中基于等高度路由的源位置隱私保護(hù)
eNSP在路由交換課程教學(xué)改革中的應(yīng)用
河南科技(2014年5期)2014-02-27 14:08:56
視覺注意的數(shù)據(jù)包優(yōu)先級(jí)排序策略研究
無(wú)線路由器輻射可忽略
龙井市| 玛纳斯县| 万年县| 桂阳县| 枣庄市| 延津县| 边坝县| 太仓市| 蒙自县| 林口县| 渝中区| 大埔区| 怀安县| 集贤县| 利津县| 许昌县| 星子县| 瑞安市| 淮安市| 全椒县| 昌平区| 左权县| 九龙城区| 师宗县| 九江市| 玉屏| 东乌| 永顺县| 天津市| 社旗县| 江城| 安丘市| 大兴区| 苏尼特右旗| 沙雅县| 康定县| 阳泉市| 沧州市| 洛扎县| 六枝特区| 靖远县|