本技術(shù)涉及計(jì)算機(jī),尤其涉及一種用于流統(tǒng)計(jì)和限流統(tǒng)計(jì)的硬件卸載方法、設(shè)備及介質(zhì)。
背景技術(shù):
1、在云計(jì)算、數(shù)據(jù)中心、人工智能等技術(shù)領(lǐng)域,廣泛地應(yīng)用到流統(tǒng)計(jì)和限流統(tǒng)計(jì)。流統(tǒng)計(jì)用于監(jiān)控網(wǎng)絡(luò)中的數(shù)據(jù)流量情況,幫助網(wǎng)絡(luò)管理員了解網(wǎng)絡(luò)的使用情況和性能狀況。通過(guò)流統(tǒng)計(jì),可以收集和分析網(wǎng)絡(luò)中的數(shù)據(jù)傳輸量、數(shù)據(jù)包數(shù)量、流量模式等信息,從而識(shí)別網(wǎng)絡(luò)中的瓶頸、優(yōu)化網(wǎng)絡(luò)配置和規(guī)劃網(wǎng)絡(luò)擴(kuò)展。限流統(tǒng)計(jì)用于控制和管理網(wǎng)絡(luò)中的數(shù)據(jù)傳輸速率,以確保網(wǎng)絡(luò)資源的合理分配和避免網(wǎng)絡(luò)擁塞。通過(guò)限流統(tǒng)計(jì),可以設(shè)置數(shù)據(jù)傳輸速率的上限,防止某些應(yīng)用或用戶占用過(guò)多帶寬,保障其他重要應(yīng)用的正常運(yùn)行。同時(shí),限流統(tǒng)計(jì)還有助于遵守網(wǎng)絡(luò)服務(wù)提供商或組織設(shè)定的網(wǎng)絡(luò)使用政策。流統(tǒng)計(jì)和限流統(tǒng)計(jì)在網(wǎng)絡(luò)管理中起著互補(bǔ)的作用:流統(tǒng)計(jì)幫助監(jiān)控和優(yōu)化網(wǎng)絡(luò)性能,而限流統(tǒng)計(jì)則用于控制和管理網(wǎng)絡(luò)資源的分配。通過(guò)這兩種統(tǒng)計(jì)手段,網(wǎng)絡(luò)管理人員可以更好地了解和控制網(wǎng)絡(luò)流量,提高網(wǎng)絡(luò)的效率和可靠性。
2、現(xiàn)有技術(shù)中,流統(tǒng)計(jì)和限流統(tǒng)計(jì)的實(shí)現(xiàn)方案一般分成兩種,一種是在軟件層面執(zhí)行報(bào)文轉(zhuǎn)發(fā)也在軟件層面進(jìn)行流統(tǒng)計(jì)和限流統(tǒng)計(jì),但是這樣不利于提高報(bào)文轉(zhuǎn)發(fā)效率;另一種是通過(guò)網(wǎng)絡(luò)功能虛擬化和硬件卸載加速技術(shù),將流表配置卸載到了專門的硬件設(shè)備上,利用硬件設(shè)備進(jìn)行查表和報(bào)文轉(zhuǎn)發(fā),也將流統(tǒng)計(jì)和限流統(tǒng)計(jì)一并卸載到硬件設(shè)備上,再由軟件層面向硬件設(shè)備查詢統(tǒng)計(jì)數(shù)據(jù),但是,這樣會(huì)占據(jù)硬件設(shè)備上有限的物理資源,也不利于提高流表卸載效率和流量轉(zhuǎn)發(fā)效率。
3、為此,本發(fā)明提供了一種用于流統(tǒng)計(jì)和限流統(tǒng)計(jì)的硬件卸載方法、設(shè)備及介質(zhì),不僅可以保持較高的報(bào)文轉(zhuǎn)發(fā)效率和流表卸載效率,而且通過(guò)對(duì)統(tǒng)計(jì)過(guò)程的優(yōu)化和硬件設(shè)計(jì)上的優(yōu)化,簡(jiǎn)化了查詢復(fù)雜度和節(jié)約硬件資源。
技術(shù)實(shí)現(xiàn)思路
1、第一方面,本技術(shù)提供了一種用于流統(tǒng)計(jì)和限流統(tǒng)計(jì)的硬件卸載方法。所述硬件卸載方法包括:通過(guò)報(bào)文轉(zhuǎn)發(fā)硬件的轉(zhuǎn)發(fā)模塊,基于卸載到所述報(bào)文轉(zhuǎn)發(fā)硬件的轉(zhuǎn)發(fā)配置表,執(zhí)行報(bào)文硬轉(zhuǎn),以及,通過(guò)所述報(bào)文轉(zhuǎn)發(fā)硬件的與所述轉(zhuǎn)發(fā)模塊連接的限流模塊,基于卸載到所述限流模塊的限流配置,對(duì)從所述轉(zhuǎn)發(fā)模塊傳輸來(lái)的報(bào)文進(jìn)行限流操作從而丟棄達(dá)到限流閾值的報(bào)文;通過(guò)所述報(bào)文轉(zhuǎn)發(fā)硬件的與所述轉(zhuǎn)發(fā)模塊連接的報(bào)文統(tǒng)計(jì)寄存器,對(duì)經(jīng)過(guò)所述轉(zhuǎn)發(fā)模塊執(zhí)行報(bào)文硬轉(zhuǎn)的報(bào)文數(shù)和字節(jié)數(shù)進(jìn)行累加統(tǒng)計(jì)從而得到流統(tǒng)計(jì)結(jié)果,以及,通過(guò)所述報(bào)文轉(zhuǎn)發(fā)硬件的與所述限流模塊連接的限流丟棄統(tǒng)計(jì)寄存器,對(duì)被所述限流模塊丟棄的報(bào)文數(shù)和字節(jié)數(shù)進(jìn)行累加統(tǒng)計(jì)從而得到限流統(tǒng)計(jì)結(jié)果;通過(guò)與所述報(bào)文轉(zhuǎn)發(fā)硬件交互的軟件側(cè)的流表模塊,管理用于卸載到所述報(bào)文轉(zhuǎn)發(fā)硬件的所述轉(zhuǎn)發(fā)配置表,管理多個(gè)流標(biāo)識(shí)、多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)以及多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)之間的關(guān)系,以及,管理多個(gè)限流配置標(biāo)識(shí)、所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)以及多個(gè)限流策略之間的關(guān)系;通過(guò)所述軟件側(cè)的命令隊(duì)列,存儲(chǔ)和管理所述軟件側(cè)向所述報(bào)文轉(zhuǎn)發(fā)硬件的讀寫命令以及所述讀寫命令的返回結(jié)果;通過(guò)所述軟件側(cè)的統(tǒng)計(jì)模塊,周期性地通過(guò)所述命令隊(duì)列,查詢所述報(bào)文轉(zhuǎn)發(fā)硬件的所述報(bào)文統(tǒng)計(jì)寄存器和所述限流丟棄統(tǒng)計(jì)寄存器,從而生成所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)各自的報(bào)文數(shù)和字節(jié)數(shù),所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)各自的總報(bào)文數(shù)、總字節(jié)數(shù)、丟棄報(bào)文數(shù)和丟棄字節(jié)數(shù)。
2、通過(guò)本技術(shù)的第一方面,不僅可以保持較高的報(bào)文轉(zhuǎn)發(fā)效率和流表卸載效率,而且通過(guò)對(duì)統(tǒng)計(jì)過(guò)程的優(yōu)化和硬件設(shè)計(jì)上的優(yōu)化,簡(jiǎn)化了查詢復(fù)雜度和節(jié)約硬件資源。
3、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述報(bào)文統(tǒng)計(jì)寄存器所記錄的所述流統(tǒng)計(jì)結(jié)果包括所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)各自的報(bào)文數(shù)和字節(jié)數(shù),所述限流丟棄統(tǒng)計(jì)寄存器所記錄的所述限流統(tǒng)計(jì)結(jié)果包括所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)各自的丟棄報(bào)文數(shù)和丟棄字節(jié)數(shù)。
4、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述流表模塊所管理的所述多個(gè)流標(biāo)識(shí)、所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)以及所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)之間的關(guān)系包括:所述多個(gè)流標(biāo)識(shí)中的每一個(gè)流標(biāo)識(shí)對(duì)應(yīng)所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)中的一個(gè)有效流統(tǒng)計(jì)標(biāo)識(shí),以及,所述多個(gè)流標(biāo)識(shí)中的每一個(gè)流標(biāo)識(shí)是否存在所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)中的有效限流統(tǒng)計(jì)標(biāo)識(shí),其中,所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)中的每一個(gè)有效限流統(tǒng)計(jì)標(biāo)識(shí)對(duì)應(yīng)所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)中的一個(gè)或者多個(gè)有效流統(tǒng)計(jì)標(biāo)識(shí)。
5、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述統(tǒng)計(jì)模塊,基于所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)中的每一個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)所對(duì)應(yīng)的所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)中的有效流統(tǒng)計(jì)標(biāo)識(shí)各自的報(bào)文數(shù)和字節(jié)數(shù),計(jì)算得到所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)各自的總報(bào)文數(shù)和總字節(jié)數(shù)。
6、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,當(dāng)所述多個(gè)流標(biāo)識(shí)中的第一流標(biāo)識(shí)不存在所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)中的有效限流統(tǒng)計(jì)標(biāo)識(shí)時(shí),所述第一流標(biāo)識(shí)沒(méi)有限流策略,所述限流模塊對(duì)從所述轉(zhuǎn)發(fā)模塊傳輸來(lái)的匹配所述第一流標(biāo)識(shí)的報(bào)文不進(jìn)行限流操作。
7、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述流表模塊所管理的所述多個(gè)流標(biāo)識(shí)、所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)以及所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)之間的關(guān)系是以流標(biāo)識(shí)-流統(tǒng)計(jì)標(biāo)識(shí)-有效限流統(tǒng)計(jì)標(biāo)識(shí)/無(wú)效限流統(tǒng)計(jì)標(biāo)識(shí)的數(shù)據(jù)格式來(lái)表現(xiàn),所述流表模塊所管理的所述多個(gè)限流配置標(biāo)識(shí)、所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)以及所述多個(gè)限流策略之間的關(guān)系是以限流配置標(biāo)識(shí)-限流統(tǒng)計(jì)標(biāo)識(shí)-限流策略的數(shù)據(jù)格式來(lái)表現(xiàn)。
8、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述硬件卸載方法還包括:響應(yīng)于限流策略配置操作,通過(guò)所述流表模塊,為所述限流策略配置操作所指定的限流配置標(biāo)識(shí)和限流策略分配限流統(tǒng)計(jì)標(biāo)識(shí),然后,更新所述流表模塊所管理的所述多個(gè)限流配置標(biāo)識(shí)、所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)以及所述多個(gè)限流策略之間的關(guān)系,再然后,更新卸載到所述限流模塊的限流配置。
9、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述硬件卸載方法還包括:添加所述限流丟棄統(tǒng)計(jì)寄存器的初始化動(dòng)作命令到所述命令隊(duì)列,通過(guò)所述報(bào)文轉(zhuǎn)發(fā)硬件,從所述命令隊(duì)列獲取所述限流丟棄統(tǒng)計(jì)寄存器的初始化動(dòng)作命令,然后,對(duì)所述限流丟棄統(tǒng)計(jì)寄存器執(zhí)行初始化操作。
10、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述硬件卸載方法還包括:響應(yīng)于來(lái)自所述轉(zhuǎn)發(fā)模塊的報(bào)文首包上送操作,通過(guò)所述流表模塊,為所述報(bào)文首包上送操作所指定的報(bào)文首包分配流統(tǒng)計(jì)標(biāo)識(shí)和獲取所述報(bào)文首包相關(guān)聯(lián)的限流統(tǒng)計(jì)標(biāo)識(shí),然后,更新所述流表模塊所管理的所述多個(gè)流標(biāo)識(shí)、所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)以及所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)之間的關(guān)系。
11、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述硬件卸載方法還包括:添加所述報(bào)文統(tǒng)計(jì)寄存器的初始化動(dòng)作命令到所述命令隊(duì)列,通過(guò)所述報(bào)文轉(zhuǎn)發(fā)硬件,從所述命令隊(duì)列獲取所述報(bào)文統(tǒng)計(jì)寄存器的初始化動(dòng)作命令,然后,對(duì)所述報(bào)文統(tǒng)計(jì)寄存器執(zhí)行初始化操作。
12、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,通過(guò)所述軟件側(cè)的統(tǒng)計(jì)模塊,周期性地通過(guò)所述命令隊(duì)列,查詢所述報(bào)文轉(zhuǎn)發(fā)硬件的所述報(bào)文統(tǒng)計(jì)寄存器和所述限流丟棄統(tǒng)計(jì)寄存器,從而生成所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)各自的報(bào)文數(shù)和字節(jié)數(shù),所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)各自的總報(bào)文數(shù)、總字節(jié)數(shù)、丟棄報(bào)文數(shù)和丟棄字節(jié)數(shù),包括:通過(guò)所述統(tǒng)計(jì)模塊獲取所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí),然后,分批地通過(guò)所述命令隊(duì)列獲取所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)各自的報(bào)文數(shù)和字節(jié)數(shù),再然后,利用所獲取的所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)各自的報(bào)文數(shù)和字節(jié)數(shù)來(lái)更新所述統(tǒng)計(jì)模塊的內(nèi)部流統(tǒng)計(jì)結(jié)果,以及,基于所述流表模塊所管理的所述多個(gè)限流配置標(biāo)識(shí)、所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)以及所述多個(gè)限流策略之間的關(guān)系,更新所述統(tǒng)計(jì)模塊的內(nèi)部限流統(tǒng)計(jì)結(jié)果。
13、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,通過(guò)所述軟件側(cè)的統(tǒng)計(jì)模塊,周期性地通過(guò)所述命令隊(duì)列,查詢所述報(bào)文轉(zhuǎn)發(fā)硬件的所述報(bào)文統(tǒng)計(jì)寄存器和所述限流丟棄統(tǒng)計(jì)寄存器,從而生成所述多個(gè)流統(tǒng)計(jì)標(biāo)識(shí)各自的報(bào)文數(shù)和字節(jié)數(shù),所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)各自的總報(bào)文數(shù)、總字節(jié)數(shù)、丟棄報(bào)文數(shù)和丟棄字節(jié)數(shù),還包括:通過(guò)所述統(tǒng)計(jì)模塊獲取所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí),然后,分批地通過(guò)所述命令隊(duì)列獲取所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)各自的丟棄報(bào)文數(shù)和丟棄字節(jié)數(shù),再然后,利用所獲取的所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)各自的丟棄報(bào)文數(shù)和丟棄字節(jié)數(shù),基于所述流表模塊所管理的所述多個(gè)限流配置標(biāo)識(shí)、所述多個(gè)限流統(tǒng)計(jì)標(biāo)識(shí)以及所述多個(gè)限流策略之間的關(guān)系,更新所述統(tǒng)計(jì)模塊的內(nèi)部限流統(tǒng)計(jì)結(jié)果。
14、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述統(tǒng)計(jì)模塊用于提供查詢請(qǐng)求相關(guān)聯(lián)的統(tǒng)計(jì)值,包括:基于所述查詢請(qǐng)求所指示的流標(biāo)識(shí)來(lái)查詢所述流表模塊從而確定與所述查詢請(qǐng)求所指示的流標(biāo)識(shí)對(duì)應(yīng)的流統(tǒng)計(jì)標(biāo)識(shí),從而提供所述查詢請(qǐng)求相關(guān)聯(lián)的報(bào)文數(shù)和字節(jié)數(shù)。
15、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述統(tǒng)計(jì)模塊用于提供查詢請(qǐng)求相關(guān)聯(lián)的統(tǒng)計(jì)值,還包括:基于所述查詢請(qǐng)求所指示的限流配置標(biāo)識(shí)來(lái)查詢所述流表模塊從而確定與所述查詢請(qǐng)求所指示的限流配置標(biāo)識(shí)對(duì)應(yīng)的限流統(tǒng)計(jì)標(biāo)識(shí),從而提供所述查詢請(qǐng)求相關(guān)聯(lián)的總報(bào)文數(shù)、總字節(jié)數(shù)、丟棄報(bào)文數(shù)和丟棄字節(jié)數(shù)。
16、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述流統(tǒng)計(jì)結(jié)果指示了經(jīng)過(guò)所述轉(zhuǎn)發(fā)模塊的硬轉(zhuǎn)流表匹配的累加計(jì)數(shù),所述限流統(tǒng)計(jì)結(jié)果指示了丟棄報(bào)文累加計(jì)數(shù)。
17、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述限流配置是基于雙速三色桶算法。
18、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述報(bào)文轉(zhuǎn)發(fā)硬件是智能網(wǎng)絡(luò)接口卡。
19、在本技術(shù)的第一方面的一種可能的實(shí)現(xiàn)方式中,所述軟件側(cè)是虛擬交換機(jī)和數(shù)據(jù)平面開(kāi)發(fā)工具集。
20、第二方面,本技術(shù)實(shí)施例還提供了一種計(jì)算機(jī)設(shè)備,所述計(jì)算機(jī)設(shè)備包括存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)根據(jù)上述任一方面的任一種實(shí)現(xiàn)方式的方法。
21、第三方面,本技術(shù)實(shí)施例還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,當(dāng)所述計(jì)算機(jī)指令在計(jì)算機(jī)設(shè)備上運(yùn)行時(shí)使得所述計(jì)算機(jī)設(shè)備執(zhí)行根據(jù)上述任一方面的任一種實(shí)現(xiàn)方式的方法。
22、第四方面,本技術(shù)實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的指令,當(dāng)所述指令在計(jì)算機(jī)設(shè)備上運(yùn)行時(shí)使得所述計(jì)算機(jī)設(shè)備執(zhí)行根據(jù)上述任一方面的任一種實(shí)現(xiàn)方式的方法。