專利名稱:用于對異常分組的慢路徑處理進(jìn)行動態(tài)速率限制的方法、系統(tǒng)和計算機可讀介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本申請描述的主題涉及在層2和層3分組轉(zhuǎn)發(fā)設(shè)備中處理異常分組。更具體地, 本申請描述的主題涉及用于對分組轉(zhuǎn)發(fā)設(shè)備中異常分組的慢路徑處理進(jìn)行動態(tài)速率限制 的方法、系統(tǒng)和計算機可讀介質(zhì)。
背景技術(shù):
層2和層3分組轉(zhuǎn)發(fā)設(shè)備(例如以太網(wǎng)交換機和IP路由器)使用專用硬件轉(zhuǎn)發(fā) 設(shè)備和通用處理資源的組合來處理分組。舉例來說,硬件轉(zhuǎn)發(fā)設(shè)備可以包括專用集成電路 (ASIC)、現(xiàn)場可編程門陣列(FPGA)、網(wǎng)絡(luò)處理單元(NPU)或者上述的組合,用于對層2和/ 或?qū)?分組執(zhí)行高密度、高速(即,線路速度)的處理。然而,使用硬件轉(zhuǎn)發(fā)設(shè)備的一個缺 點是其實現(xiàn)起來代價昂貴并且可能不能處理(例如,由于缺少對接收到的分組進(jìn)行硬件編 程的轉(zhuǎn)發(fā)的原因)分組轉(zhuǎn)發(fā)設(shè)備接收到的所有分組。因此,除了包括分組轉(zhuǎn)發(fā)硬件以外,層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備可以包括多用途中央 處理單元(CPU)或一組CPU,以用于執(zhí)行不能使用分組轉(zhuǎn)發(fā)硬件進(jìn)行的各種任務(wù)。例如,CPU 可以用于執(zhí)行用于以下操作的軟件接受用戶配置信息、管理交換機、對分組轉(zhuǎn)發(fā)硬件進(jìn)行 編程、以及處理轉(zhuǎn)發(fā)硬件不能處理的任何分組。轉(zhuǎn)發(fā)硬件不能處理的分組稱作異常分組,由 CPU對異常分組進(jìn)行的處理稱作慢路徑處理(slowpath processing)。因為對這些分組進(jìn) 行CPU處理要慢于使用硬件轉(zhuǎn)發(fā)對分組進(jìn)行處理,所以異常分組的慢路徑處理一般是不希 望的。為了獲得在市場上有競爭力的價格,傳統(tǒng)的層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備通常包括的CPU 除了它們的其它應(yīng)有的任務(wù)以外不能支持高分組轉(zhuǎn)發(fā)速率。因此,層2或?qū)?交換機中用 于對異常分組的慢路徑轉(zhuǎn)發(fā)的處理資源可能是有限的。對層2和層3分組轉(zhuǎn)發(fā)設(shè)備中異常分組進(jìn)行慢路徑處理的傳統(tǒng)方法中的一個問題 在于異常分組的提高的速率可能會使CPU的利用率升高,因此,CPU執(zhí)行的其它重要功能 的性能可能受到影響。雖然異常分組的速率的提高通常是臨時的情況,但是如果CPU利用 率過高,則分組轉(zhuǎn)發(fā)設(shè)備可能容易受到安全威脅并出現(xiàn)軟件崩潰。例如,轉(zhuǎn)發(fā)設(shè)備接收到的異常分組的數(shù)量在拒絕服務(wù)(DoS)攻擊期間可能顯著增 力口。在DoS攻擊期間,受攻擊的計算機或設(shè)備可能會被轉(zhuǎn)發(fā)硬件不能處理的大量分組淹沒。 因此,交換機可能被迫消耗其CPU資源來處理這些異常分組,直到其無法提供如用戶配置 或管理之類的其它服務(wù)為止。在另一實例中,可能因網(wǎng)絡(luò)拓?fù)涠皇菒阂庑袨槎a(chǎn)生異常分組。例如,層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備可以通過基于各種路由協(xié)議來交換包含網(wǎng)絡(luò)路由信息的消息的方式將網(wǎng)絡(luò) 路由信息傳輸給其它網(wǎng)絡(luò)節(jié)點。示例性的路由協(xié)議可以包括地址解析協(xié)議(ARP)、路由信息 協(xié)議(RIP)、邊界網(wǎng)關(guān)協(xié)議(BGP)、以及開放式最短路徑優(yōu)先協(xié)議(OSPF)路由協(xié)議。在大量 網(wǎng)絡(luò)設(shè)備同時連接到單個分組轉(zhuǎn)發(fā)設(shè)備的情形下,為了確定網(wǎng)絡(luò)拓?fù)涞募?xì)節(jié),通過這些協(xié) 議發(fā)送給分組轉(zhuǎn)發(fā)設(shè)備的路由協(xié)議消息數(shù)量可能會出現(xiàn)大的尖峰。該網(wǎng)絡(luò)行為是臨時且預(yù) 期的(即,非惡意攻擊),但可能仍然會對CPU的完整性和服務(wù)造成損害。防止與處理異常分組相關(guān)聯(lián)的層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備中的CPU過載的一種傳統(tǒng) 辦法是對CPU在給定期間內(nèi)處理的異常分組的數(shù)量設(shè)置靜態(tài)的速率限制。對異常分組的靜 態(tài)速率限制處理包括一直限制CPU可以處理的異常分組的數(shù)量,而不論CPU使用情況以 及處理能力如何。從而,在異常分組增加期間,CPU受到保護(hù)而不過載。雖然靜態(tài)的速率限 制可以防止CPU過載,但是因為其人為地減少了處理異常分組的速率,所以它同時也使CPU 資源在較輕負(fù)載期間未得到充分利用。對異常分組的處理進(jìn)行靜態(tài)速率限制的結(jié)果可以包 括減慢的層2媒體訪問控制(MAC)地址學(xué)習(xí)、減慢的對異常分組的慢路徑轉(zhuǎn)發(fā)、以及意外 的協(xié)議分組丟棄。對異常分組的傳統(tǒng)處理的另一缺陷是在速度更快的CPU可用時,這種處理的擴(kuò) 展性不佳。例如,層2或?qū)?轉(zhuǎn)發(fā)設(shè)備中的CPU可能能夠每秒處理一定數(shù)量的異常分組。 如果CPU被升級從而使得可以處理更多的分組,則傳統(tǒng)的靜態(tài)速率限制或者忽略該額外的 處理能力,或者需要手動調(diào)至更高以實現(xiàn)增加的處理能力。在前一情形下,可能浪費CPU資 源。在后一情形下,可能浪費人力管理資源來手動調(diào)整速率限制。對異常分組的傳統(tǒng)處理的又一缺陷是無法針對每個分組分類對靜態(tài)速率限制進(jìn) 行定制。例如,廣播分組和層2MAC地址學(xué)習(xí)分組可以包括由分組轉(zhuǎn)發(fā)設(shè)備處理的兩個不同 的分組分類。相互區(qū)別地對分組分類進(jìn)行速率限制是所希望的。因此,需要對分組轉(zhuǎn)發(fā)設(shè)備中異常分組的慢路徑處理進(jìn)行動態(tài)速率限制的改進(jìn)的 方法和系統(tǒng)。
發(fā)明內(nèi)容
本申請描述的主題包括對異常分組的慢路徑處理進(jìn)行動態(tài)速率限制的方法和系 統(tǒng)。根據(jù)一個實施例,一種方法包括在分組轉(zhuǎn)發(fā)設(shè)備處監(jiān)測所述分組轉(zhuǎn)發(fā)設(shè)備中用于執(zhí)行 異常分組的慢路徑處理的處理資源。確定對用于慢路徑處理的所述處理資源的使用是否超 過第一閾值,以及,響應(yīng)于確定所述處理資源超過所述第一閾值,對所述異常分組的慢路徑 處理進(jìn)行速率限制。根據(jù)另一方面,所述方法包括確定對用于慢路徑處理的所述處理資源的使用是否 小于第二閾值,以及,響應(yīng)于確定對所述處理資源的使用小于所述第二閾值,停止對所述異 常分組進(jìn)行速率限制。 根據(jù)另一方面,用于對異常分組的慢路徑處理進(jìn)行動態(tài)速率限制的系統(tǒng)包括分組 轉(zhuǎn)發(fā)設(shè)備。所述分組轉(zhuǎn)發(fā)設(shè)備包括至少一個處理器,所述至少一個處理器用于處理異常分 組,所述至少一個處理器與用于對所述異常分組進(jìn)行慢路徑轉(zhuǎn)發(fā)的處理資源相關(guān)聯(lián)。動態(tài) 速率限制模塊監(jiān)測用于由所述至少一個處理器執(zhí)行異常分組的慢路徑處理的處理資源,確 定對用于慢路徑處理的所述處理資源的使用是否超過第一閾值。響應(yīng)于確定所述處理資源超過所述第一閾值,所述動態(tài)速率限制模塊對所述異常分組的慢路徑處理進(jìn)行速率限制。 本申請描述的用于對異常分組的慢路徑處理進(jìn)行動態(tài)速率限制的主題可以使用 計算機程序產(chǎn)品來實現(xiàn),該計算機程序產(chǎn)品包括包含在有形的計算機可讀介質(zhì)中的由計算 機處理器執(zhí)行的計算機可執(zhí)行指令。適合于實現(xiàn)本申請所描述主題的示例性計算機可讀介 質(zhì)包括磁盤存儲設(shè)備、可編程邏輯器件和專用集成電路。在一個實現(xiàn)方式中,計算機可讀介 質(zhì)可以包括可由處理器訪問的存儲器。存儲器可以包括可由處理器執(zhí)行的指令,這些指令 用于實現(xiàn)本申請描述的對呼叫進(jìn)行路由的任何方法。另外,實現(xiàn)本申請所描述主題的計算 機可讀介質(zhì)可以在多個物理設(shè)備和/或計算平臺上分布。
圖1是根據(jù)本申請所描述主題的實施例的、對異常分組的慢路徑處理進(jìn)行動態(tài)速 率限制的示例性層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備的框圖;圖2是根據(jù)本申請所描述主題的實施例的、對異常分組的慢路徑處理進(jìn)行動態(tài)速 率限制的示例性層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備的框圖;圖3是根據(jù)本申請所描述主題的實施例的、對異常分組的慢路徑處理進(jìn)行動態(tài)速 率限制的示例性過程的流程圖;以及圖4是根據(jù)本申請所描述主題的實施例的、對異常分組的慢路徑處理進(jìn)行動態(tài)速 率限制的示例性過程的詳細(xì)流程圖。
具體實施例方式圖1是根據(jù)本申請所描述主題的實施例的、對異常分組的慢路徑處理進(jìn)行動態(tài)速 率限制的示例性層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備的圖。本發(fā)明實施例適用的、可從商業(yè)渠道購 買的層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備的一個實例是可從加利福尼亞州圣克拉拉的極進(jìn)網(wǎng)絡(luò)公司 (Extreme Networks)購買的 BlackDiamQnd 8800 系列交換機。Black0JamoncJ 8800
系列分組轉(zhuǎn)發(fā)設(shè)備是多刀片(multi-blade)的層2交換機設(shè)備,其具有用于執(zhí)行慢路徑處 理和管理的集中式管理模塊,以及針對每個I/O模塊的單獨的CPU。下面將更詳細(xì)地描述單 個CPU執(zhí)行所有管理功能的另外的平臺。參照圖1,分組轉(zhuǎn)發(fā)設(shè)備100包括多個輸入/輸出(I/O)模塊101-106,I/O模塊 101-106用于通過網(wǎng)絡(luò)來發(fā)送和接收分組。輸入/輸出模塊101-106每個都可以實現(xiàn)為插 在分組轉(zhuǎn)發(fā)設(shè)備100的槽中的印刷電路板。交換結(jié)構(gòu)107將輸入/輸出模塊相互連接起來, 并連接到主交換機管理模塊108和從交換機管理模塊109。在圖1中,為了簡明,示出了集 中式交換結(jié)構(gòu)。然而,在一個實現(xiàn)方式中,I/O模塊106、管理模塊108和管理模塊109每個 都可以包括其自己的、用于將其連接到分組轉(zhuǎn)發(fā)設(shè)備100內(nèi)的所有其它模塊的交換結(jié)構(gòu)。主交換機管理服務(wù)模塊(MSM) 108和從交換機管理服務(wù)模塊109每個都包括用于 管理I/O模塊101-106以及實現(xiàn)對異常分組的慢路徑處理的動態(tài)速率限制的硬件和軟件。 在示出的實例中,主交換機管理模塊108和從交換機管理模塊109分別包括CPU 118和120 以及動態(tài)速率限制模塊128和130。動態(tài)速率限制模塊128和130可以是設(shè)計用來對異常 分組的慢路徑處理進(jìn)行動態(tài)速率限制的任何適當(dāng)?shù)挠布蜍浖崿F(xiàn)。例如,動態(tài)速率限制 模塊128和130可以包括用于實行動態(tài)速率限制的軟件指令。
主交換機管理模塊108和從交換機管理模塊109可以通過適當(dāng)?shù)目煽客ㄐ艡C制相 互通信。在一個實例中,可靠的通信機制可以是在共享存儲器中實現(xiàn)的循環(huán)緩沖器。例如, 主交換機管理模塊108可以向循環(huán)緩沖器寫入,并在信息寫入緩沖器之后使緩沖器中的末 端指針前進(jìn)。從交換機管理模塊109可以從循環(huán)緩沖器中讀取信息,這種讀取從開始指針 開始一直到 末端指針,并且交換機管理模塊109使開始指針前進(jìn),以指示信息已經(jīng)被讀取。主交換機管理模塊108可以包括軟件轉(zhuǎn)發(fā)表和相應(yīng)的協(xié)議狀態(tài)信息,該協(xié)議狀態(tài) 信息優(yōu)選地通過參與網(wǎng)絡(luò)協(xié)議的方式來構(gòu)建。主交換機管理模塊108可以參與的示例性網(wǎng) 絡(luò)協(xié)議包括例如BGP、OSPF, IS-IS等的任何IP路由協(xié)議。另外,交換機管理模塊108可以 參與例如生成樹協(xié)議(STP)的層2協(xié)議。獲取最新的軟件轉(zhuǎn)發(fā)表和相應(yīng)的協(xié)議狀態(tài)信息能 夠使得從交換機管理模塊109在主交換機管理模塊108最近正確操作的狀態(tài)中接管主交換 機管理模塊108的網(wǎng)絡(luò)協(xié)議操作。從交換機管理模塊109可以包括以下的副本主MSM 108維持的路由表、轉(zhuǎn)發(fā)表、 協(xié)議狀態(tài)信息和配置信息。在示出的實例中,當(dāng)交換機管理模塊109在從模式下操作時,可 以通過從主交換機管理模塊108接收到的消息來周期性地更新這些副本。然而,當(dāng)交換機 管理模塊109切換到在主模式下操作時,可由CPU 120訪問副本,并且這些副本可以用來執(zhí) 行主交換機管理模塊功能。I/O模塊101-106每個分別包括CPU111-116和異步工作隊列121-126。CPU 111-116可以被配置為執(zhí)行軟件,以接受用戶配置信息、管理I/O模塊101-106、對分組轉(zhuǎn)發(fā) 硬件(未示出)進(jìn)行編程以及處理轉(zhuǎn)發(fā)硬件不能處理的分組(未示出)。應(yīng)當(dāng)理解的是,不 同的CPU可以具有不同的處理能力。如本申請中所使用,術(shù)語“處理資源”是指計算機系統(tǒng) 內(nèi)可用性有限的任何物理或虛擬組件。處理資源可以被直接或間接地測量,并可以被用于 執(zhí)行特定的任務(wù)(例如執(zhí)行異常分組的慢路徑處理)。因此,本申請中所使用的“處理資源” 可以包括但不限于處理器執(zhí)行的多個計算、處理異常分組所產(chǎn)生的多個工作項目以及存儲 器使用。異步工作隊列121-126可以包括等待CPU 111-116處理的數(shù)據(jù)序列,等待CPU 111-116處理的數(shù)據(jù)序列例如是等待慢路徑轉(zhuǎn)發(fā)的異常分組。在一個實施例中,異步工作隊 列121-126的主要用途可以是執(zhí)行由層2MAC地址學(xué)習(xí)操作而產(chǎn)生的轉(zhuǎn)發(fā)數(shù)據(jù)庫(FDB)表 的增加和/或刪除。例如,F(xiàn)DB表可以由層2分組轉(zhuǎn)發(fā)設(shè)備(即,交換機和/或橋接器)用 來存儲學(xué)習(xí)的MAC地址以及被學(xué)習(xí)的每個MAC地址的端口。例如,當(dāng)以太網(wǎng)幀到達(dá)層2分 組轉(zhuǎn)發(fā)設(shè)備時,層2設(shè)備可以檢查幀的源MAC地址并確定源MAC地址的FDB表的條目是否 存在。如果FDB表不包含源MAC地址的任何信息,則將源MAC地址以及相關(guān)聯(lián)的端口存儲 在FDB中。FDB中最近未使用的較舊的條目可以由每個I/O模塊上的CPU來去除。要求進(jìn) 行慢路徑處理的分組可以由CPUl 11-116轉(zhuǎn)發(fā)給主MSM 108,其中CPU 118在軟件實現(xiàn)的轉(zhuǎn) 發(fā)數(shù)據(jù)庫中執(zhí)行分組轉(zhuǎn)發(fā)查找。異步工作隊列121-126還可以存儲等待由CPU 111-116處理的其它管理或用戶配 置消息。應(yīng)當(dāng)理解的是,由于工作隊列121-126異步地操作,故而對工作隊列中的異常分組 或其它的項的處理可以獨立于其它分組和/或隊列來進(jìn)行。工作隊列121-126可以是對與 CPU 111-116相關(guān)聯(lián)的處理負(fù)擔(dān)進(jìn)行的間接測量。例如,CPU 111-116中的每一個可以具有 與每秒處理來自工作隊列的一定數(shù)量的分組(例如,異常分組)的能力相關(guān)聯(lián)的有限處理能力。如果新的項加入到工作隊列的速率小于CPU的能力,則該項可以被立即處理。然而, 如果新的項加入到工作隊列的速率超過CPU的能力,則可能增加工作隊列的大小。因此,大 的工作隊列可以指示要求CPU處理的工作要多于CPU在持續(xù)的期間內(nèi)能夠執(zhí)行的工作。一 種減少CPU處理負(fù)擔(dān)的方法是限制加入到其工作隊列的新的項的數(shù)量。在另一 實施例中,替代如前面所述的監(jiān)測異步工作隊列121-126的做法,或者,除 了這種監(jiān)測異步工作隊列121-126的做法以外,可以通過檢查CPU利用率或其它度量的方 式來測量與異常分組的慢路徑處理相關(guān)聯(lián)的處理資源,而這不會脫離本申請描述的主題的 范圍。例如,可以以在任何給定時刻都可用的CPU周期的百分比的形式來直接測量處理器 111-116的利用率。在圖1示出的包括單獨的I/O模塊101-106和MSM 108-109的分組轉(zhuǎn)發(fā)設(shè)備100 中,CPU 111-116可以負(fù)責(zé)監(jiān)測工作隊列121-126并通知動態(tài)速率限制模塊128何時超過預(yù) 定的閾值。例如,如果I/O模塊121-126中的一個I/O模塊的異步工作隊列超過第一閾值 50,000條目,則I/O模塊的CPU可以向MSM 108發(fā)送指示由于異常分組的慢路徑處理而使 處理器資源過載的信號。第一閾值的選擇可以使得在正常的負(fù)載情況下(即在不受到DoS 攻擊期間),工作隊列大小永遠(yuǎn)不應(yīng)該超過該第一閾值。在一種情形中,CPU 116可以監(jiān)測異步工作隊列126并確定已經(jīng)超過了第一閾值。 然后,CPU 116可以將該情況通知給動態(tài)速率限制模塊128。響應(yīng)于接收到該通知,動態(tài)速 率限制模塊128可以對分配給工作隊列126的新的分組數(shù)量施加速率限制。然后,動態(tài)速 率限制模塊128可以指示CPU116來執(zhí)行速率限制,直到另有不同指示為止。通過限制增加 到隊列126的新的工作數(shù)量,可以對CPU 116的完整性和服務(wù)進(jìn)行保護(hù),并且可以允許CPU 116處理隊列126中已有的項并返回正常工作情況。根據(jù)另一方面,CPU 116可以繼續(xù)監(jiān)測工作隊列126,以確定工作隊列126的大小 是否下降到低于第二閾值。第二閾值可以比第一閾值小得多,(即,500相對于50,000),從 而小于第二閾值的工作隊列指示正常處理負(fù)載情況。響應(yīng)于確定工作隊列121-126小于第 二閾值,可以去除速率限制,并且CPU 116可以以全速來對異常分組進(jìn)行慢路徑處理。例 如,CPU116可以向動態(tài)速率限制功能體128發(fā)送指示工作隊列126的大小低于第二閾值的 信號,并且作為響應(yīng),動態(tài)速率限制功能體128可以解除先前施加的速率限制。動態(tài)啟用和解除對異常分組的慢路徑處理的速率限制的一個益處是實現(xiàn)本申請 描述的主題的層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備可以在受到攻擊或者經(jīng)受持續(xù)的異?;顒訒r保護(hù)重 要的CPU資源,而同時仍允許正常使用情況下的最大慢路徑轉(zhuǎn)發(fā)和異常分組處理。進(jìn)一步 地,通過將速率限制解除閾值規(guī)定為小于速率限制啟用閾值,容許在將CPU處理資源恢復(fù) 至正常狀態(tài)過程中的滯后現(xiàn)象。圖2是根據(jù)本申請所描述主題的實施例的、對異常分組的慢路徑處理進(jìn)行動態(tài)速 率限制的示例性層2或?qū)?轉(zhuǎn)發(fā)設(shè)備的圖。參照圖2,與層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備100相 反,分組轉(zhuǎn)發(fā)設(shè)備200可以是具有單個CPU 202的集成設(shè)備,CPU 202通過交換結(jié)構(gòu)208連 接到異步工作隊列204和動態(tài)速率限制模塊206。因此,與具有單獨的、每個都包括獨立的 CPU和工作隊列的MSM和I/O模塊不同的是,分組轉(zhuǎn)發(fā)設(shè)備200可以將該功能合并到較少的 組件。本發(fā)明實施例適用的可從商業(yè)渠道購買的層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備的實例是可從加 利福尼亞州圣克拉拉的極進(jìn)網(wǎng)絡(luò)公司購買的Summit X450系列交換機。
CPU 202可以負(fù)責(zé)監(jiān)測異步工作隊列204并通知動態(tài)速率限制模塊206何時超過 預(yù)定的閾值。例如,如果異步工作隊列204超過50,000條目,則CPU 202可以向動態(tài)速率 限制模塊206發(fā)送指示CPU 202由于異常分組處理而過載的信號。響應(yīng)于接收到該通知, 動態(tài)速率限制模塊206可以對分配給工作隊列204的新的工作數(shù)量施加速率限制。然后, 動態(tài)速率限制模塊206可以指示CPU 202對異常分組進(jìn)行速率限制處理,直到另有不同指 示為止。通過限制增加到隊列204的工作數(shù)量,CPU 202可以處理隊列204中已有的項并 返回正常負(fù)載情況。CPU 202可以繼續(xù)監(jiān)測工作隊列204,以確定工作隊列204的大小是否下降到低于 第二閾值。第二閾值可以比第一閾值小得多(即,500相對于50,000),從而小于第二閾值的 工作隊列204指示正常處理負(fù)載情況。響應(yīng)于確定工作隊列204小于第二閾值,可以去除 速率限制,并且CPU 202可以以其最大處理能力來對異常分組進(jìn)行慢路徑處理。例如,CPU 202可以向動態(tài)速率限制功能體206發(fā)送指示工作隊列204的大小低于第二閾值的信號,并 且,作為響應(yīng),動態(tài)速率限制功能體206可以解除先前施加的速率限制。圖3是根據(jù)本申請所描述主題的實施例的、對異常分組的慢路徑處理進(jìn)行動態(tài)速 率限制的示例性過程的流程圖。參照圖3,在方框300,對用于執(zhí)行異常分組的慢路徑處理 的處理資源進(jìn)行監(jiān)測。例如,監(jiān)測所述處理資源可以包括監(jiān)測異步工作隊列的大小或者處 理器利用率。在方框302,在層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備中,確定對用于慢路徑處理的處理資源的 使用是否超過第一閾值。例如,第一閾值的選擇可以使得在正常的負(fù)載情況下(即,工作隊 列大小為50,000)其永遠(yuǎn)不會被超過。在方框304,響應(yīng)于確定處理資源超過第一閾值,對異常分組的處理施加速率限 制??梢栽谟布型ㄟ^速率整形或者管制能力來實施慢路徑速率限制,或者在限制遞送給 上層軟件處理的分組數(shù)量的低層軟件驅(qū)動程序中實施慢路徑速率限制。速率限制可以針對 業(yè)務(wù)類型、優(yōu)先級或者針對所有慢路徑業(yè)務(wù)。下面將詳細(xì)描述限制遞送給上層軟件處理的 分組數(shù)量的示例性實現(xiàn)。圖4是根據(jù)本申請所描述主題的實施例的、對異常分組的慢路徑處理進(jìn)行動態(tài)速 率限制的示例性過程的流程圖。參照圖4,在步驟400,在層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備中對處 理異常分組的動態(tài)速率限制的過程開始。例如,可以在層2交換機剛開機時執(zhí)行步驟400。 然后,控制可以立即轉(zhuǎn)到方框402。在方框402,可以監(jiān)測工作隊列以確定工作隊列大小是否超過第一閾值。第一工作 隊列大小閾值可以足夠地大,以使得如果其被超過則指示處理資源的過度利用。如前面所 述,工作隊列大小可以是處理資源利用率的間接測量,并且還可以監(jiān)測其它值以確定處理 資源利用率,而這不會脫離本申請所描述主題的范圍。繼續(xù)圖4中示出的例子,第一閾值可 以設(shè)置為50,000條目。在正常負(fù)載情況下,工作隊列大小應(yīng)該永遠(yuǎn)不超過該閾值。相應(yīng)地, 可以對處理資源的使用持續(xù)地進(jìn)行監(jiān)測,直到步驟402的結(jié)果指示已經(jīng)超過了第一閾值為 止,之后控制轉(zhuǎn)到步驟404。 在方框404,可以將速率限制施加到異常分組的慢路徑處理。例如,可以在硬件中 通過速率整形或者管制能力來實施慢路徑速率限制,或者在限制遞送給上層軟件處理的分 組數(shù)量的低層軟件驅(qū)動中實施慢路徑速率限制。
對隊列所消耗的帶寬進(jìn)行測量的一種方法是使用令牌桶。令牌桶是硬件或軟件實 現(xiàn)的算法,其允許基于令牌桶中可用的令牌數(shù)量來對分組進(jìn)行調(diào)度??梢砸灶A(yù)定的速率刷 新令牌桶中的令牌。只要令牌桶中可用的令牌足夠,就可以發(fā)送分組。如果令牌桶為空,或 者包含的令牌數(shù)量不夠,則等待發(fā)送的分組可以進(jìn)行排隊,直到令牌桶中有足夠的令牌來 發(fā)送分組為 止。在令牌桶的一個實例中,令牌桶可以存儲被稱作令牌計數(shù)的令牌數(shù)量??梢砸运?新速率R來填充令牌桶。大于最大分組大小的開始閾值T與令牌桶相關(guān)聯(lián)。對于要發(fā)送的 分組而言,令牌數(shù)量應(yīng)該大于或等于T??梢曰谄谕姆纸M突發(fā)閾值來將令牌桶的大小設(shè) 置為預(yù)定的值。當(dāng)排隊的分組到達(dá)令牌桶時,如果令牌桶中的令牌計數(shù)大于T則可以發(fā)送 排隊的分組。在該實例中,假定一個令牌對應(yīng)于一個字節(jié)的發(fā)送數(shù)據(jù)。假定T等于1500字 節(jié),如果排隊的分組包含64字節(jié)的數(shù)據(jù),并且令牌桶中至少有1500個令牌,則將發(fā)送排隊 的分組,并且令牌計數(shù)將減少64個令牌。在一些網(wǎng)絡(luò)交換機的實現(xiàn)方式中,令牌桶可以與隊列相關(guān)聯(lián),其中隊列與輸出端 口相關(guān)聯(lián)。在一個實現(xiàn)方式中,每個隊列可以具有最小令牌桶和最大令牌桶。最小令牌桶 可以包含用于保證最小帶寬值的令牌。最大令牌桶可以包含用于提供不應(yīng)該超過的最大帶 寬值的令牌。在方框406,確定工作隊列大小是否已降低到低于第二閾值。第二閾值可以小于 第一閾值,以允許系統(tǒng)中的滯后現(xiàn)象。通過將第一閾值和第二閾值分開,可以減少或消除快 速地啟用和解除對慢路徑處理的速率限制。一旦確定工作隊列大小已經(jīng)下降到低于第二閾 值,控制就可以轉(zhuǎn)到方框408。在方框408,可以解除對異常分組的慢路徑處理的速率限制,并且可以以全速來處 理異常分組。通過動態(tài)地啟用和解除對異常分組的慢路徑處理的速率限制,實現(xiàn)本申請所 描述主題的層2或?qū)?分組轉(zhuǎn)發(fā)設(shè)備可以在受到攻擊或者經(jīng)受持續(xù)的異常活動時保護(hù)重要 的CPU資源,而同時仍允許正常使用情況下的最大慢路徑轉(zhuǎn)發(fā)和異常分組處理。應(yīng)該理解的是,可以改變所公開主題的各種細(xì)節(jié),而不脫離所公開主題的范圍。進(jìn) 一步地,前面的描述僅僅是為了說明而不是進(jìn)行限制。
權(quán)利要求
1.一種用于對分組轉(zhuǎn)發(fā)設(shè)備中異常分組的慢路徑處理進(jìn)行動態(tài)速率限制的方法,所述 方法包括監(jiān)測分組轉(zhuǎn)發(fā)設(shè)備中用于執(zhí)行異常分組的慢路徑處理的處理資源;確定所述分組轉(zhuǎn)發(fā)設(shè)備中對用于慢路徑處理的所述處理資源的使用是否超過第一閾 值;以及響應(yīng)于確定對所述處理資源的使用超過所述第一閾值,對所述異常分組的慢路徑處理 進(jìn)行速率限制。
2.根據(jù)權(quán)利要求1所述的方法,包括確定對用于慢路徑處理的所述處理資源的使用 是否小于第二閾值,以及,響應(yīng)于確定對所述處理資源的使用小于所述第二閾值,停止對所 述異常分組進(jìn)行速率限制。
3.根據(jù)權(quán)利要求1所述的方法,其中,監(jiān)測所述處理資源包括監(jiān)測下述至少之一所述 分組轉(zhuǎn)發(fā)設(shè)備中的工作隊列、所述分組轉(zhuǎn)發(fā)設(shè)備中用于進(jìn)行異常分組的慢路徑處理的至少 一個處理器的處理器利用率。
4.根據(jù)權(quán)利要求1所述的方法,其中,對所述異常分組的慢路徑處理進(jìn)行速率限制包 括使用令牌桶來對所述異常分組進(jìn)行速率限制。
5.根據(jù)權(quán)利要求1所述的方法,其中,對所述異常分組的慢路徑處理進(jìn)行速率限制包 括通過限制遞送給上層軟件處理的分組數(shù)量來對所述異常分組進(jìn)行速率限制。
6.根據(jù)權(quán)利要求1所述的方法,其中,對所述異常分組的慢路徑處理進(jìn)行速率限制包 括使用速率整形和管制中的至少一個來對所述異常分組進(jìn)行速率限制。
7.根據(jù)權(quán)利要求1所述的方法,其中,基于用戶輸入的值靜態(tài)地確定所述第一閾值。
8.根據(jù)權(quán)利要求1所述的方法,其中,基于所述分組轉(zhuǎn)發(fā)設(shè)備的處理能力動態(tài)地確定所述第一閾值。
9.根據(jù)權(quán)利要求1所述的方法,其中,所述異常分組的慢路徑處理包括使用中央處理 單元和相關(guān)聯(lián)的軟件來處理所述分組。
10.根據(jù)權(quán)利要求1所述的方法,其中,對所述異常分組的慢路徑處理進(jìn)行速率限制包 括針對每個分組分類來對所述處理進(jìn)行速率限制。
11.一種分組轉(zhuǎn)發(fā)設(shè)備,用于對異常分組的慢路徑處理進(jìn)行動態(tài)速率限制,所述分組轉(zhuǎn) 發(fā)設(shè)備包括至少一個處理器,用于處理異常分組,所述至少一個處理器與用于對所述異常分組進(jìn) 行慢路徑轉(zhuǎn)發(fā)的處理資源相關(guān)聯(lián);以及動態(tài)速率限制模塊,用于監(jiān)測用于由所述至少一個處理器執(zhí)行異常分組的慢路徑處理 的處理資源,確定對用于慢路徑處理的所述處理資源的使用是否超過第一閾值,以及,響應(yīng) 于確定所述處理資源超過所述第一閾值,對所述異常分組的慢路徑處理進(jìn)行速率限制。
12.根據(jù)權(quán)利要求11所述的分組轉(zhuǎn)發(fā)設(shè)備,其中,所述動態(tài)速率限制模塊被配置為確 定對用于慢路徑轉(zhuǎn)發(fā)的所述處理資源的使用是否小于第二閾值,以及,響應(yīng)于確定對所述 處理資源的使用小于所述第二閾值,停止對所述異常分組進(jìn)行速率限制。
13.根據(jù)權(quán)利要求11所述的分組轉(zhuǎn)發(fā)設(shè)備,其中,所述動態(tài)速率限制功能體被配置為 在確定對所述處理資源的使用是否超過所述第一閾值過程中監(jiān)測以下中的一個至少一個 工作隊列、所述至少一個處理器的利用率。
14.根據(jù)權(quán)利要求11所述的分組轉(zhuǎn)發(fā)設(shè)備,其中,所述動態(tài)速率限制模塊被配置為使 用令牌桶來對所述異常分組的慢路徑處理進(jìn)行速率限制。
15.根據(jù)權(quán)利要求11所述的分組轉(zhuǎn)發(fā)設(shè)備,其中,所述動態(tài)速率限制模塊被配置為通 過限制遞送給上層軟件處理的分組數(shù)量來對所述異常分組的慢路徑處理進(jìn)行速率限制。
16.根據(jù)權(quán)利要求11所述的分組轉(zhuǎn)發(fā)設(shè)備,其中,所述動態(tài)速率限制模塊被配置為使 用速率整形和管制中的至少一個來為對所述異常分組的慢路徑處理進(jìn)行速率限制。
17.根據(jù)權(quán)利要求11所述的分組轉(zhuǎn)發(fā)設(shè)備,其中,所述動態(tài)速率限制模塊被配置為從 所述用戶接收所述第一閾值,以及靜態(tài)地維持所述第一閾值。
18.根據(jù)權(quán)利要求11所述的分組轉(zhuǎn)發(fā)設(shè)備,其中,所述動態(tài)速率限制模塊被配置為基 于所述至少一個處理器的所述處理能力動態(tài)地確定所述第一閾值。
19.根據(jù)權(quán)利要求11所述的分組轉(zhuǎn)發(fā)設(shè)備,其中,所述動態(tài)速率限制模塊被配置為使 用中央處理單元和相關(guān)聯(lián)的軟件來對所述異常分組進(jìn)行慢路徑處理。
20.根據(jù)權(quán)利要求1所述的方法,其中,動態(tài)速率限制模塊被配置為通過針對每個分 組分類來對所述處理進(jìn)行速率限制來對所述異常分組的慢路徑處理進(jìn)行速率限制。
21.一種計算機可讀介質(zhì),其包含計算機程序,所述計算機程序包括計算機可執(zhí)行指 令,所述計算機可執(zhí)行指令當(dāng)被計算機的處理器執(zhí)行時執(zhí)行的步驟包括監(jiān)測分組轉(zhuǎn)發(fā)設(shè)備中用于執(zhí)行異常分組的慢路徑處理的處理資源;確定所述分組轉(zhuǎn)發(fā)設(shè)備中對用于慢路徑處理的所述處理資源的使用是否超過第一閾 值;以及響應(yīng)于確定所述處理資源超過所述第一閾值,對所述異常分組的慢路徑處理進(jìn)行速率 限制。
22.根據(jù)權(quán)利要求21所述的計算機可讀介質(zhì),其中,所述異常分組的慢路徑處理包括 使用中央處理單元和相關(guān)聯(lián)的軟件來處理所述分組。
23.根據(jù)權(quán)利要求21所述的計算機可讀介質(zhì),其中,對所述異常分組的慢路徑處理進(jìn) 行速率限制包括針對每個分組分類來對所述處理進(jìn)行速率限制。
全文摘要
本申請描述的主題包括用于對異常分組的慢路徑處理進(jìn)行動態(tài)速率限制的方法和系統(tǒng)。根據(jù)一個實施例,該方法包括在分組轉(zhuǎn)發(fā)設(shè)備處監(jiān)測所述分組轉(zhuǎn)發(fā)設(shè)備中用于執(zhí)行異常分組的慢路徑處理的處理資源。確定對用于慢路徑處理的所述處理資源的使用是否超過第一閾值,以及,響應(yīng)于確定所述處理資源超過所述第一閾值,對所述異常分組的慢路徑處理進(jìn)行速率限制。
文檔編號H04L12/56GK102047619SQ200980119500
公開日2011年5月4日 申請日期2009年3月17日 優(yōu)先權(quán)日2008年3月28日
發(fā)明者D·B·格羅賽爾, J·A·福特 申請人:極進(jìn)網(wǎng)絡(luò)公司