最近中文字幕2018免费版2019,久久国产劲暴∨内射新川,久久久午夜精品福利内容,日韩视频 中文字幕 视频一区

首頁 > 文章中心 > 正文

深度學習下計算機網(wǎng)絡數(shù)據(jù)包路由探析

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

深度學習下計算機網(wǎng)絡數(shù)據(jù)包路由探析

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

關鍵詞:數(shù)據(jù)包路由;計算機網(wǎng)絡;深度學習;深度置信網(wǎng)絡

1引言

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

2基于深度學習的數(shù)據(jù)包路由策略設計

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

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

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

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

3基于深度學習的路由策略的過程

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

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

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

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

4結(jié)論

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

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

主站蜘蛛池模板: 公主岭市| 滕州市| 南漳县| 乌审旗| 兴安盟| 宁化县| 洛宁县| 上林县| 莫力| 莒南县| 普宁市| 西林县| 讷河市| 西城区| 永清县| 临汾市| 开原市| 陈巴尔虎旗| 正蓝旗| 霍山县| 清原| 嘉鱼县| 嘉禾县| 峨边| 吐鲁番市| 和田县| 剑河县| 临澧县| 万年县| 开化县| 繁峙县| 东乡| 剑阁县| 石景山区| 东海县| 阳曲县| 阿尔山市| 吐鲁番市| 莱阳市| 台江县| 新民市|