首頁 > 文章中心 > 正文

      深度學習下計算機網絡數據包路由探析

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

      深度學習下計算機網絡數據包路由探析

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

      關鍵詞:數據包路由;計算機網絡;深度學習;深度置信網絡

      1引言

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

      2基于深度學習的數據包路由策略設計

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

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

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

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

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

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

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

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

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

      4結論

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

      作者:龔方生 單位:廣州涉外經濟職業技術學院

      亚洲性猛交xx乱| 亚洲AV无码乱码精品国产| 亚洲欧洲日产国码一级毛片| 亚洲欧美日韩国产精品一区| 亚洲情A成黄在线观看动漫软件| 亚洲欧洲日产国产综合网| 亚洲国产精彩中文乱码AV| 国产亚洲精久久久久久无码AV| AV在线播放日韩亚洲欧| 亚洲欧洲精品成人久久奇米网| 亚洲精品国产电影| 国产精品亚洲综合专区片高清久久久| 亚洲精品国产精品乱码不卡| 亚洲国产精品一区二区第四页| 亚洲国产成人久久综合野外| 亚洲精品和日本精品| 久久久亚洲精品蜜桃臀| 亚洲欧洲日产国码无码久久99| 亚洲国产精彩中文乱码AV| 亚洲五月激情综合图片区| 亚洲视频日韩视频| 91亚洲精品自在在线观看| 国产精品久久亚洲不卡动漫| 亚洲熟妇av午夜无码不卡| 亚洲AV永久无码精品一福利| 国产大陆亚洲精品国产| 国产国拍亚洲精品福利| 国产v亚洲v天堂无码网站| 亚洲一区二区成人| 亚洲一级毛片在线播放| 亚洲人片在线观看天堂无码| 国产产在线精品亚洲AAVV| 久久久久亚洲?V成人无码| 国产亚洲高清不卡在线观看| 亚洲色欲色欲综合网站| 91亚洲国产成人久久精品| 亚洲高清国产拍精品熟女| 亚洲日韩国产一区二区三区| 亚洲va无码手机在线电影| 亚洲精品欧洲精品| 亚洲性色AV日韩在线观看|