麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

多核網絡轉發限速的方法和裝置與流程

文檔序號:12492608閱讀:274來源:國知局
多核網絡轉發限速的方法和裝置與流程

本公開涉及網絡限速領域,具體地,涉及一種多核網絡轉發限速的方法和裝置。



背景技術:

對于網絡設備廠商而言,限速主要就是限制整體防火墻的網絡轉發速度。現有技術中,限速的方式主要有兩種,一種是當局域網共用一個網絡的時候,為了防止個別員工下載大型軟件或者游戲而影響整體的網絡速度;一種是限制某個接口的流量不能超過一定速度,上述兩種方式是基于內部接口和ip方面的網絡限速。

現有技術中的限速軟件功能如下。License是軟件使用范圍授權,換言之,License在防火墻的限速中起的作用就是授權買家可以體驗到網絡真實轉發性能速度最大值。對于網絡設備廠商出售的防火墻設備而言,License的限速不同,其轉發的吞吐性能不同。比如一個防火墻的轉發性能最大為160G/s,購買了120G/s的防火墻的License的用戶,其防火墻的轉發最大性能僅能為120G/s,過一段時間用戶覺得這種配置的防火墻性能不夠用,可以升級License為160G/s的防火墻,即在硬件的性能可以達到一定的最大值的情況下,可以通過license將其真正運行時的速度限制為想要的速度。

但是限速軟件的限速功能是十分耗費性能的,因為軟件限速幾乎都是將每個核收到報文的字節數每秒進行累加獲得總流量值,這會涉及到計算每個cpu從各個接口收到的報文的總流量值。而且限速是以秒為單位,也就是說每秒轉發流量值達到限速值后,要立刻停掉流量,不再進行轉發。這需要在收到每個報文后都要判斷每個核從各個接口的收到報文的字節總數和當前報文的字節數之和是否超過了License的限速值。

多核網絡下統計不同cpu的轉發報文的總流量值,會出現同一cpu訪問其他cpu的轉發報文的總流量值,同時還要包包計算所有核的總流量值,這是一個十分耗費性能的開銷。由于該計算過程是每核操作,且多核均需要統計總流量值,這就會涉及到資源競爭的問題。如果一個高性能吞吐可以做到160G/s的多核防火墻,增加了限速功能后,很有可能轉發的吞吐性能就變成了100G/s,甚至更少。

隨著科技的不斷發展,現在的防火墻已經是多核處理器的天下。既然是多核處理,必然涉及到資源的競爭和互斥。對于基于多核的網絡轉發設備,幾乎所有廠商都是使用加鎖的方式來避免競爭,使得限速必然會導致正常的網絡轉發性能大幅下降。如果這部分限速沒實現好,基本上就會做到高性能處理器變為低性能處理器,其限速功能淪為只能靠硬件配置(比如cpu由4核變為2核,來實現限速由20G/s變為10G/s)來實現,無法用軟件實現,極大的增加了成本。



技術實現要素:

本公開的目的是提供一種可以減少總流量值的計算量且優化性能的多核網絡轉發限速的方法和裝置。

為了實現上述目的,根據本公開的第一方面,提供一種多核網絡轉發限速的方法,所述方法應用于所述多核網絡中的任一核,所述方法包括:獲取初始時間閾值,其中,所述初始時間閾值為初始的多核網絡總流量值的檢測時間點;在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值,其中,所述目標時間閾值初始為所述初始時間閾值;在所述總流量值達到預設的所述多核網絡單位時間內的最大允許流量值時,丟棄后續接收到的報文。

可選地,當所述目標時間閾值為所述初始時間閾值時,所述在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值包括:在到達目標時間閾值時,通過硬件驅動獲取所述多核網絡中每個網卡在所述目標時間閾值內的流量值;對所述每個網卡在所述目標時間閾值內的流量值進行累加,獲得所述多核網絡在所述目標時間閾值內的總流量值。

可選地,所述方法還包括:在所述總流量值未達到所述最大允許流量值、并且所述總流量值與所述最大允許流量值之間的差值大于第一預設差值時,實時記錄自所述初始時間閾值后的自身流量值;根據當前的總流量值、所述最大允許流量值、單位時間內防火墻的最大轉發吞吐量、和當前的目標時間閾值,確定下一目標時間閾值;在所述下一目標時間閾值未到達時間收斂值時,重新執行所述在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值的步驟,其中,所述時間收斂值為所述多核網絡的總流量值最近N次達到所述最大允許流量值的時間點中的最小時間點,其中,N為大于或等于2的自然數。

可選地,當所述目標時間閾值不為所述初始時間閾值時,所述在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值包括:在到達目標時間閾值時,獲取所述多核網絡中其他各核記錄的自所述初始時間閾值后的流量值;將所記錄的自身流量值、獲取到的其他各核記錄的流量值、以及所述多核網絡在所述初始時間閾值內的總流量值進行累加,獲得所述多核網絡在所述目標時間閾值內的總流量值。

可選地,所述根據當前的總流量值、所述最大允許流量值、單位時間內防火墻的最大轉發吞吐量、和當前的目標時間閾值,確定下一目標時間閾值,包括:

通過以下公式確定下一目標時間閾值:

Time=Time_last+1/(Real/(Max-Cur)+1)

其中,Time是所述下一目標時間閾值;

Time_last是所述當前的目標時間閾值;

Real是所述最大轉發吞吐量;

Max是所述最大允許流量值;

Cur是所述當前的總流量值。

可選地,所述方法還包括:在所述總流量值未達到所述最大允許流量值且所述總流量值與所述最大允許流量值之間的差值小于或等于所述第一預設差值,或者所述下一目標時間閾值到達所述時間收斂值時,實時記錄自所述初始時間閾值后的自身流量值,并實時獲取所述多核網絡中其他各核記錄的自所述初始時間閾值后的流量值;將實時記錄的自身流量值、實時獲取到的其他各核記錄的流量值、以及所述多核網絡在所述初始時間閾值內的總流量值進行累加,獲得所述多核網絡的實時總流量值;在所述實時總流量值達到所述最大允許流量值時,丟棄后續接收到的報文。

可選地,所述多核網絡包括配置核和同步核;

在所述方法應用于配置核時,所述獲取初始時間閾值包括:

獲取所述多核網絡單位時間內的最大允許流量值以及單位時間內防火墻的最大轉發吞吐量;

根據以下公式計算所述初始時間閾值:

Time0=1/(Real/Max+1)

其中,Real是所述最大轉發吞吐量;

Max是所述最大允許流量值;

Time0是所述初始時間閾值;

在所述方法應用于同步核時,所述獲取初始時間閾值包括:

從所述配置核獲取所述初始時間閾值。

根據本公開的第二方面,提供一種多核網絡轉發限速的裝置,所述裝置應用于所述多核網絡中的任一核,所述裝置包括:第一獲取模塊,用于獲取初始時間閾值,其中,所述初始時間閾值為初始的多核網絡總流量值的檢測時間點;第二獲取模塊,用于在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值,其中,所述目標時間閾值初始為所述初始時間閾值;第一處理模塊,用于在所述第二獲取模塊獲取到的所述總流量值達到預設的所述多核網絡單位時間內的最大允許流量值時,丟棄后續接收到的報文。

可選地,所述第二獲取模塊包括:第一獲取子模塊,用于當所述目標時間閾值為所述初始時間閾值時,在到達目標時間閾值時,通過硬件驅動獲取所述多核網絡中每個網卡在所述目標時間閾值內的流量值;第一累加子模塊,用于對所述第一獲取子模塊獲取到的所述每個網卡在所述目標時間閾值內的流量值進行累加,獲得所述多核網絡在所述目標時間閾值內的總流量值。

可選地,所述裝置還包括:記錄模塊,用于在所述第二獲取模塊獲取到的所述總流量值未達到所述最大允許流量值、并且所述總流量值與所述最大允許流量值之間的差值大于第一預設差值時,實時記錄自所述初始時間閾值后的自身流量值;時間閾值確定模塊,用于根據當前的總流量值、所述最大允許流量值、單位時間內防火墻的最大轉發吞吐量、和當前的目標時間閾值,確定下一目標時間閾值;在所述下一目標時間閾值未到達時間收斂值時,重新觸發所述第二獲取模塊在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值,其中,所述時間收斂值為所述多核網絡的總流量值最近N次達到所述最大允許流量值的時間點中的最小時間點,其中,N為大于或等于2的自然數。

可選地,當所述目標時間閾值不為所述初始時間閾值時,所述第二獲取模塊包括:第二獲取子模塊,用于當所述目標時間閾值不為所述初始時間閾值時,在到達目標時間閾值時,獲取所述多核網絡中其他各核記錄的自所述初始時間閾值后的流量值;第二累加子模塊,用于將所述記錄模塊所記錄的自身流量值、所述第二獲取子模塊獲取到的其他各核記錄的流量值、以及所述多核網絡在所述初始時間閾值內的總流量值進行累加,獲得所述多核網絡在所述目標時間閾值內的總流量值。

可選地,所述時間閾值確定模塊用于通過以下公式確定所述下一目標時間閾值:

Time=Time_last+1/(Real/(Max-Cur)+1)

其中,Time是所述下一目標時間閾值;Time_last是所述當前的目標時間閾值;Real是所述最大轉發吞吐量;Max是所述最大允許流量值;Cur是所述當前的總流量值。

可選地,所述裝置還包括:第三獲取模塊,用于在所述第二獲取模塊獲取到的所述總流量值未達到所述最大允許流量值且所述總流量值與所述最大允許流量值之間的差值小于或等于所述第一預設差值,或者所述時間閾值確定模塊所確定的所述下一目標時間閾值到達所述時間收斂值時,實時記錄自所述初始時間閾值后的自身流量值,并實時獲取所述多核網絡中其他各核記錄的自所述初始時間閾值后的流量值;多核累加模塊,用于將所述第三獲取模塊實時記錄的自身流量值、所述第三獲取模塊實時獲取到的其他各核記錄的流量值、以及所述多核網絡在所述初始時間閾值內的總流量值進行累加,獲得所述多核網絡的實時總流量值;第二處理模塊,用于在所述多核累加模塊獲得的所述實時總流量值達到所述最大允許流量值時,丟棄后續接收到的報文。

可選地,所述多核網絡包括配置核和同步核;

在所述裝置應用于配置核時,所述第一獲取模塊用于獲取所述多核網絡單位時間內的最大允許流量值以及單位時間內防火墻的最大轉發吞吐量,并根據以下公式計算所述初始時間閾值:

Time0=1/(Real/Max+1)

其中,Real是所述最大轉發吞吐量;

Max是所述最大允許流量值;

Time0是所述初始時間閾值;

在所述裝置應用于同步核時,所述第一獲取模塊用于從所述配置核獲取所述初始時間閾值。

通過上述技術方案,在到達目標時間閾值時,獲取多核網絡在該目標時間閾值內的總流量值,對于網絡轉發流量值的計算非包包進行統計總流量值,而是基于時間點進行統計,由此,可以降低多核下統計功能對性能的影響。由此,上述方案可以最大化減少軟件計算量,降低計算的開銷,從而降低網絡轉發限速的性能開銷。

本公開的其他特征和優點將在隨后的具體實施方式部分予以詳細說明。

附圖說明

附圖是用來提供對本公開的進一步理解,并且構成說明書的一部分,與下面的具體實施方式一起用于解釋本公開,但并不構成對本公開的限制。在附圖中:

圖1是多核網絡的示意圖;

圖2是根據本公開的一種實施方式提供的多核網絡轉發限速的方法的流程圖;

圖3是根據本公開的另一種實施方式提供的多核網絡轉發限速的方法的流程圖;

圖4是根據本公開的一種實施方式提供的多核網絡轉發限速的裝置的框圖;

圖5是根據本公開的另一種實施方式提供的多核網絡轉發限速的裝置的框圖。

具體實施方式

以下結合附圖對本公開的具體實施方式進行詳細說明。應當理解的是,此處所描述的具體實施方式僅用于說明和解釋本公開,并不用于限制本公開。

根據本公開的第一方面,提供一種多核網絡轉發限速的方法。該多核網絡包括配置核和同步核。圖1所示,為多核網絡的示意圖。如圖1所示,在該多核網絡中,配置核只有一個,為所有同步核中的第一個同步核,主要負責初始時間閾值的初始化配置和多核網絡的總流量值最近N次達到多核網絡單位時間內的最大允許流量值Max的時間點中的最小時間點的統計更新。在本公開中,當提及總流量值達到最大允許流量值時,是指總流量值大于或等于該最大允許流量值。反之,當提及總流量值未達到最大允許流量值時,是指總流量值小于該最大允許流量值。

同步核為參與轉發的所有核,主要功能是在單位時間內(通常為1s)的實時總流量值達到該最大允許流量值Max時,停止每個同步核的流量轉發。其中,多核網絡單位時間內的最大允許流量值Max為License軟件授權用戶可以體驗到的多核網絡實際在單位時間內的最大轉發吞吐量。例如,以背景技術所舉示例為例,假設License軟件授權用戶可以體驗到的網絡實際轉發性能速度最大值為120G/s,并且以1s為單位時間,則有:Max=120G。

在多核網絡轉發系統中,每個網卡都有多個發送隊列和接收隊列,網卡與各個核建立的是全連接的隊列關系,每個核既可以從所有網卡接收數據包,也可以向所有網卡發送數據包。

圖2所示,為根據本公開的一種實施方式提供的多核網絡轉發限速的方法的流程圖。如圖2所示,所述方法應用于所述多核網絡中的任一核,該方法包括:

在步驟S21中,獲取初始時間閾值,其中,所述初始時間閾值為初始的多核網絡總流量值的檢測時間點。

如上所述,所述多核網絡可以包括配置核和同步核。在所述方法應用于配置核時,所述獲取初始時間閾值包括:

獲取多核網絡單位時間內的最大允許流量值Max以及單位時間內防火墻的最大轉發吞吐量Real。以背景技術所舉示例為例,假設防火墻的最大轉發速度為160G/s,并且以1s為單位時間,則有:單位時間內防火墻的最大轉發吞吐量Real=160G。

在獲得最大允許流量值Max和最大轉發吞吐量Real之后,根據以下公式計算初始時間閾值:

Time0=1/(Real/Max+1)

其中,Real是所述最大轉發吞吐量;Max是所述最大允許流量值;Time0是所述初始時間閾值。

在所述方法應用于同步核時,所述獲取初始時間閾值包括:從所述配置核獲取所述初始時間閾值。

假設Real=160G,Max=120G,則根據以上公式,可以計算出Time0=0.43s,該時間點即為初始的多核網絡總流量值的檢測時間點。

在步驟S22中,在到達目標時間閾值時,獲取多核網絡在目標時間閾值內的總流量值,其中,所述目標時間閾值初始為所述初始時間閾值Time0。

當目標時間閾值為初始時間閾值Time0時,所述在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值包括:在到達目標時間閾值時,通過硬件驅動獲取所述多核網絡中每個網卡在所述目標時間閾值內的流量值;對所述每個網卡在所述目標時間閾值內的流量值進行累加,獲得所述多核網絡在所述目標時間閾值內的總流量值。

示例地,所述每個網卡在所述目標時間閾值內的流量值的累加值Sum(即,多核網絡在初始時間閾值內的總流量值)的計算方式為:

其中,Sumi表示第i個網卡在所述目標時間閾值內的流量值;L表示網卡總數。

使用驅動接口獲取硬件網卡的收發吞吐來統計多核網絡轉發的總流量值,同每個核與每個網卡交互的所有報文都要做累加操作的軟件計算相比,極大的減少了計算量。

需要說明的是,在本公開中,通過硬件驅動獲得各網卡在目標時間閾值內的流量值,并對各網卡在該目標時間閾值內的流量值進行累加這樣的方式,得到多核網絡在目標時間閾值內的總流量值,僅限于在目標時間閾值為初始時間閾值Time0的情況。例如,假設Time0=0.43s,則在到達0.43s時,通過硬件驅動獲取各網卡在從0s~0.43s期間的流量值,并進行累加操作,以獲得多核網絡在0s~0.43s期間的總流量值。

在步驟S23中,在所述總流量值達到預設的所述多核網絡單位時間內的最大允許流量值(即,上述的Max)時,丟棄后續接收到的報文。示例地,在該總流量值達到最大允許流量值Max時,記錄當前時間,并將當前時間之后到1s結束時的報文直接丟棄。

通過上述技術方案,在到達目標時間閾值時,獲取多核網絡在該目標時間閾值內的總流量值,對于網絡轉發流量值的計算非包包進行統計總流量值,而是基于時間點進行統計,由此,可以降低多核下統計功能對性能的影響。由此,上述方案可以最大化減少軟件計算量,降低計算的開銷,從而降低網絡轉發限速的性能開銷。

圖3所示,為根據本公開的另一種實施方式提供的多核網絡轉發限速的方法的流程圖。如圖3所示,在圖2的基礎上,該方法還可以包括:

在步驟S31中,判斷所述總流量值是否小于最大允許流量值,在總流量值小于最大允許流量值時,轉入步驟S32,否則,在總流量值不小于最大允許流量值時,轉入步驟S23。

在步驟S32中,在總流量值與最大允許流量值之間的差值大于第一預設差值時,實時記錄自所述初始時間閾值后的自身流量值。其中,該第一預設差值可以為用戶按需設定的差值,或者為默認的經驗值。當總流量值與最大允許流量值之間的差值大于第一預設差值時,表示多核網絡當前時間段內的已轉發的總流量值與最大允許流量值之間還存在一定的差距,此時還可以計算下一個目標時間閾值以獲取在到達下一目標時間閾值時的總流量值。假設Real=160G,Max=120G,第一預設差值為40G,且通過硬件驅動獲取到的各網卡在0s~0.43s期間的流量值的累加值為40G,此時,多核網絡的總流量值與最大允許流量值Max之間的差值為80G,大于第一預設差值40G,因此,從0.43s開始,各同步核開始實時記錄自初始時間閾值Time0后的自身流量值。

在步驟S33中,根據當前的總流量值、所述最大允許流量值、單位時間內防火墻的最大轉發吞吐量、和當前的目標時間閾值,確定下一目標時間閾值。

其中,根據當前的總流量值、所述最大允許流量值、單位時間內防火墻的最大轉發吞吐量、和當前的目標時間閾值,確定下一目標時間閾值,包括:通過以下公式確定下一目標時間閾值:

Time=Time_last+1/(Real/(Max-Cur)+1)

其中,Time是所述下一目標時間閾值;Time_last是所述當前的目標時間閾值;Real是所述最大轉發吞吐量;Max是所述最大允許流量值;Cur是所述當前的總流量值。

示例地,假設Real=160G,Max=120G,在到達初始時間閾值0.43s時,通過硬件驅動獲取到的各網卡在0s~0.43s期間的流量值的累加值為40G,即Cur=40G,Time_last=Time0=0.43s,則根據以上公式,可以計算出Time=0.76s,該時間點即為下一目標時間閾值,也就是,下一個多核網絡總流量值的檢測時間點。

在步驟S34中,判斷下一目標時間閾值是否到達時間收斂值。在本公開中,當提及下一目標時間閾值到達時間收斂值時,是指該下一目標時間閾值大于或等于該時間收斂值。反之,當提及下一目標時間閾值未到達時間收斂值時,是指該下一目標時間閾值小于該時間收斂值。在下一目標時間閾值未到達時間收斂值時,轉入步驟S22,繼續執行在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值的步驟以及后續的步驟,其中,所述時間收斂值為所述多核網絡的總流量值最近N次達到所述最大允許流量值的時間點中的最小時間點,其中,N為大于或等于2的自然數。

示例地,N被設置為60,則時間收斂值為多核網絡的總流量值最近60次達到所述最大允許流量值的時間點中的最小時間點。例如,假設該時間收斂值為0.8s,由于計算得出的下一目標時間閾值為0.76s,尚未到達該時間收斂值0.8s,因此,在0.43s~0.76s內,各同步核要實時記錄自身的流量值。

通過上述技術方案,根據第一預設差值判斷是否要計算下一目標時間閾值,并以本秒內實際總流量值為基準計算下一目標時間閾值,可以提高目標時間閾值的計算的實時性和準確性。同時通過比較下一目標時間閾值與最近N次達到最大允許流量值的最小時間點的大小,可以將相近數秒的時間內達到最大允許流量值的時間點作為參考點,使得時間閾值的選取不僅僅是靠理論計算,還與實際網絡狀況相結合,增加了計算限速轉發網絡總流量值的準確性。

可選地,當所述目標時間閾值不為所述初始時間閾值時,所述在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值包括:在到達目標時間閾值時,獲取所述多核網絡中其他各核記錄的自所述初始時間閾值后的流量值;將所記錄的自身流量值、獲取到的其他各核記錄的流量值、以及所述多核網絡在所述初始時間閾值內的總流量值進行累加,獲得所述多核網絡在所述目標時間閾值內的總流量值。

示例地,在到達初始時間閾值Time0之后,每核開始記錄自身流量值。在當前時間為初始時間閾值Time0之后且尚未到達下一目標時間閾值時,每核實時記錄自身流量值,其中,每核所記錄的是從初始時間閾值Time0起自身的流量值。假設多核網絡包括同步核cpu1、cpu2和cpu3,同步核cpu1計算自身的流量值Sumcpu1,同步核cpu2、cpu3只能讀取Sumcpu1,不能更改;同步核cpu2計算自身的流量值Sumcpu2,同步核cpu1、cpu3只能讀取Sumcpu2,不能更改;同步核cpu3計算自身的流量值Sumcpu3,同步核cpu1、cpu2只能讀取Sumcpu3,不能更改。在同步核cpu1接收到數據包時,同步核cpu1更新自身的流量值Sumcpu1,即用當前自身的流量值與轉發的數據包的流量值之和作為新的自身流量值賦值。例如,假設同步核cpu1接收到數據包p1,該數據包p1的字節數為pkt,則有:

Sumcpu1=Sumcpu1+pkt

以上述示例為例,在0.43s~0.76s內,各同步核要實時記錄自身的流量值,直到到達0.76s時,以同步核cpu1為例,其獲取其他各核記錄的流量值,即,Sumcpu2和Sumcpu3,并與自身記錄的流量值Sumcpu1進行累加,可以得到多核網絡在自初始時間閾值Time0到本次目標時間閾值期間的總流量值。之后,再與多核網絡在初始時間閾值Time0內的總流量值Sum進行求和操作,獲得多核網絡在本次目標時間閾值內的總流量值。示例地,可以通過以下公式來計算多核網絡在本次目標時間閾值內的總流量值,即,當前的總流量值Cur:

其中,Sumcpui表示第i個同步核記錄的、在自初始時間閾值Time0至本次目標時間閾值期間的流量值;M表示多核網絡中的同步核總數。

可選地,該方法還可以包括:

在所述總流量值未達到所述最大允許流量值且所述總流量值與所述最大允許流量值之間的差值小于或等于所述第一預設差值,或者所述下一目標時間閾值到達所述時間收斂值時,實時記錄自所述初始時間閾值后的自身流量值,并實時獲取所述多核網絡中其他各核記錄的自所述初始時間閾值后的流量值;

將實時記錄的自身流量值、實時獲取到的其他各核記錄的流量值、以及所述多核網絡在所述初始時間閾值內的總流量值進行累加,獲得所述多核網絡的實時總流量值;

在所述實時總流量值達到最大允許流量值時,丟棄后續接收到的報文。

在該實施例中,當總流量值與最大允許流量值之間的差值小于或等于第一預設差值,表示當前網絡已轉發的流量已經比較接近最大允許流量值,需要實時監測網絡的轉發流量;或者,在下一目標時間閾值到達時間收斂值時,表示在下一目標時間閾值內,該網絡轉發的總流量值可能會達到該最大允許流量值,需要實時監測網絡的轉發流量。

示例的,假設在0s~0.76s內,多核網絡的總流量值Cur=75G,此時總流量值Cur與最大允許流量值Max之間的差值為45G,大于第一預設差值40G,根據上述計算下一目標時間閾值的公式,計算得出下一目標時間閾值為0.97s、大于時間收斂值0.8s。此時,從0.76s時刻開始,每個同步核在接收到數據包時,都要實時更新自身流量值,且在接收到數據包實時獲取其他同步核的流量值。將實時記錄的自身流量值、實時獲取到的其他各核記錄的流量值、以及多核網絡在初始時間閾值Time0內的總流量值Sum進行累加,可以獲得多核網絡的實時總流量值。在該實時總流量值達到最大允許流量值時,丟棄后續接收到的報文。

通過上述技術方案,在網絡當前已轉發的總流量值已經比較接近最大允許流量值或者是下一目標時間閾值大于時間收斂值時,對網絡轉發的流量進行包包統計。由于在該統計過程中,每核只累加自身的總流量值,不涉及到更改其他同步核的總流量值,幾乎無競爭資源,可以降低性能的消耗。同時通過分段執行不同的流量統計方法,更加準確地在達到最大允許流量值時停止流量,實現高精度的限速設置,使得多核網絡轉發限速的總流量值的統計更加準確,優化限速的性能。

本公開中,在最大允許流量值Max小于單位時間內防火墻的最大轉發吞吐量Real時,執行本公開提供的上述多核網絡轉發限速的方法。否則,在最大允許流量值Max大于或等于單位時間內防火墻的最大轉發吞吐量Real時,同步核和配置核每秒無需計算統計點,在配置核初始化的過程中就將同步核中的軟件調用限速函數的布爾變量設為false,從而設置同步核不進行限速計算,整體限速性能開銷為零。

對于大多數情況,如果多核網絡的單位時間內的最大允許流量值Max大于或等于單位時間內防火墻的最大轉發吞吐量Real時,在進行網絡轉發時,限速功能對防火墻的吞吐等性能無任何影響。在此種情況下,可以大大減少統計每核總流量的計算量,同時可以簡化限速的流程。

根據本公開的第二方面,提供一種多核網絡轉發限速的裝置。圖4所示,為根據本公開的一種實施方式提供的多核網絡轉發限速的裝置的框圖。如圖4所示,該裝置應用于所述多核網絡中的任一核,該裝置10包括:

第一獲取模塊101,用于獲取初始時間閾值,其中,所述初始時間閾值為初始的多核網絡總流量值的檢測時間點;

第二獲取模塊102,用于在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值,其中,所述目標時間閾值初始為所述初始時間閾值;

第一處理模塊103,用于在所述第二獲取模塊102獲取到的所述總流量值達到預設的所述多核網絡單位時間內的最大允許流量值時,丟棄后續接收到的報文。

可選地,所述第二獲取模塊102包括:

第一獲取子模塊,用于當所述目標時間閾值為所述初始時間閾值時,在到達目標時間閾值時,通過硬件驅動獲取所述多核網絡中每個網卡在所述目標時間閾值內的流量值;

第一累加子模塊,用于對所述第一獲取子模塊獲取到的所述每個網卡在所述目標時間閾值內的流量值進行累加,獲得所述多核網絡在所述目標時間閾值內的總流量值。

圖5所示,為根據本公開的另一種實施方式提供的多核網絡轉發限速的裝置的框圖。如圖5所示,在圖4的基礎上,該裝置10還可以包括:

記錄模塊201,用于在所述第二獲取模塊102獲取到的所述總流量值未達到所述最大允許流量值、并且所述總流量值與所述最大允許流量值之間的差值大于第一預設差值時,實時記錄自所述初始時間閾值后的自身流量值;

時間閾值確定模塊202,用于根據當前的總流量值、所述最大允許流量值、單位時間內防火墻的最大轉發吞吐量、和當前的目標時間閾值,確定下一目標時間閾值;在所述下一目標時間閾值未到達時間收斂值時,重新觸發所述第二獲取模塊102在到達目標時間閾值時,獲取所述多核網絡在所述目標時間閾值內的總流量值,其中,所述時間收斂值為所述多核網絡的總流量值最近N次達到所述最大允許流量值的時間點中的最小時間點,其中,N為大于或等于2的自然數。

可選地,所述第二獲取模塊102包括:

第二獲取子模塊,用于當所述目標時間閾值不為所述初始時間閾值時,在到達目標時間閾值時,獲取所述多核網絡中其他各核記錄的自所述初始時間閾值后的流量值;

第二累加子模塊,用于將所述記錄模塊201所記錄的自身流量值、所述第二獲取子模塊獲取到的其他各核記錄的流量值、以及所述多核網絡在所述初始時間閾值內的總流量值進行累加,獲得所述多核網絡在所述目標時間閾值內的總流量值。

可選地,所述時間閾值確定模塊202用于通過以下公式確定所述下一目標時間閾值:

Time=Time_last+1/(Real/(Max-Cur)+1)

其中,Time是所述下一目標時間閾值;

Time_last是所述當前的目標時間閾值;

Real是所述最大轉發吞吐量;

Max是所述最大允許流量值;

Cur是所述當前的總流量值。

可選地,該裝置10還可以包括:

第三獲取模塊,用于在所述第二獲取模塊102獲取到的所述總流量值未達到所述最大允許流量值且所述總流量值與所述最大允許流量值之間的差值小于或等于所述第一預設差值,或者所述時間閾值確定模塊202所確定的所述下一目標時間閾值到達所述時間收斂值時,實時記錄自所述初始時間閾值后的自身流量值,并實時獲取所述多核網絡中其他各核記錄的自所述初始時間閾值后的流量值;

多核累加模塊,用于將所述第三獲取模塊實時記錄的自身流量值、所述第三獲取模塊實時獲取到的其他各核記錄的流量值、以及所述多核網絡在所述初始時間閾值內的總流量值進行累加,獲得所述多核網絡的實時總流量值;

第二處理模塊,用于在所述多核累加模塊獲得的所述實時總流量值達到所述最大允許流量值時,丟棄后續接收到的報文。

可選地,該多核網絡包括配置核和同步核;

在所述裝置10應用于配置核時,所述第一獲取模塊101用于獲取所述多核網絡單位時間內的最大允許流量值以及單位時間內防火墻的最大轉發吞吐量,并根據以下公式計算所述初始時間閾值:

Time0=1/(Real/Max+1)

其中,Real是所述最大轉發吞吐量;

Max是所述最大允許流量值;

Time0是所述初始時間閾值;

在所述裝置10應用于同步核時,所述第一獲取模塊101用于從所述配置核獲取所述初始時間閾值。

關于上述實施例中的裝置,其中各個模塊執行操作的具體方式已經在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。

以上結合附圖詳細描述了本公開的優選實施方式,但是,本公開并不限于上述實施方式中的具體細節,在本公開的技術構思范圍內,可以對本公開的技術方案進行多種簡單變型,這些簡單變型均屬于本公開的保護范圍。

另外需要說明的是,在上述具體實施方式中所描述的各個具體技術特征,在不矛盾的情況下,可以通過任何合適的方式進行組合,為了避免不必要的重復,本公開對各種可能的組合方式不再另行說明。

此外,本公開的各種不同的實施方式之間也可以進行任意組合,只要其不違背本公開的思想,其同樣應當視為本公開所公開的內容。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 广南县| 武陟县| 绥中县| 临武县| 曲阜市| 青铜峡市| 城步| 乌鲁木齐市| 伊吾县| 怀远县| 尉犁县| 永新县| 正定县| 崇阳县| 南开区| 淮滨县| 威宁| 江达县| 海城市| 奉节县| 河间市| 新田县| 高州市| 临城县| 城固县| 辉南县| 恩施市| 竹山县| 开阳县| 武强县| 涟水县| 民权县| 广德县| 岳阳市| 雷波县| 甘谷县| 印江| 张掖市| 陆丰市| 沂源县| 竹溪县|