本申請涉及網絡通信
技術領域:
,尤其涉及一種報文限速方法及裝置。
背景技術:
:在目前的網絡應用中,網絡設備通常需要對請求報文進行限速處理。在相關技術中,網絡設備通過令牌桶實現對web應用的限速處理,即當網絡設備接收到攜帶有HTTP(HyperTextTransferProtocol,超文本傳輸協議)協議的請求報文時,利用請求報文的源IP地址與預先配置的用戶組表進行匹配,若匹配成功,則判斷距離上次向令牌桶回填令牌的時間是否大于1秒,如果大于1秒,則重新將令牌桶回填滿,獲取令牌桶的桶深(令牌桶填滿后的令牌數),并從令牌桶中減去請求報文長度對應的令牌數,并轉發請求報文,如果小于1秒,則讀取令牌桶中的令牌數,如果讀取到的令牌數小于請求報文長度,則丟棄請求報文,如果讀取到的令牌數大于請求報文長度,則從令牌桶中減去請求報文長度對應的令牌數,并轉發請求報文。然而,現有限速操作是針對請求報文長度,即是對請求報文上傳或下載流量大小的限制,但是對WEB應用的URL(UniformResoureLocator,統一資源定位符)地址的請求速率無法進行精準限制,例如,對www.dptechnology.net請求進行100次/秒的限制。技術實現要素:有鑒于此,本申請提供一種報文限速方法及裝置,以解決現有限速方式對WEB應用的URL地址的請求速率無法進行精準限制的問題。根據本申請實施例的第一方面,提供一種報文限速方法,所述方法包括:接收請求報文,根據所述請求報文攜帶的統一資源定位符URL地址確定對應的限速速率;根據所述請求報文的源網際協議IP地址確定對應的令牌桶;判斷所述令牌桶的填充令牌時間是否大于預設時間;若是,則根據所述限速速率回填令牌到所述令牌桶之后,轉發所述請求報文,并將所述令牌桶中的令牌減1,否則,判斷所述令牌桶中是否有令牌;若有,則確定未超過所述限速速率,轉發所述請求報文,并將所述令牌桶中的令牌減1;若沒有,則確定超過所述限速速率,丟棄所述請求報文。根據本申請實施例的第二方面,提供一種報文限速裝置,所述裝置包括:接收單元,用于接收請求報文;確定單元,用于根據所述請求報文攜帶的URL地址確定對應的限速速率,并根據所述請求報文的源IP地址確定對應的令牌桶;第一判斷單元,用于判斷所述令牌桶的填充令牌時間是否大于預設時間;填充單元,用于當判斷結果為是時,根據所述限速速率回填令牌到所述令牌桶之后,轉發所述請求報文,并將所述令牌桶中的令牌減1;第二判斷單元,用于當判斷結果為否時,判斷所述令牌桶中是否有令牌;未超過處理單元,用于當判斷結果為有時,確定未超過所述限速速率,轉發所述請求報文,并將所述令牌桶中的令牌減1;超過處理單元,用于當判斷結果為沒有時,確定超過所述限速速率,丟棄所述請求報文。應用本申請實施例,網絡設備在接收到請求報文之后,可以根據該請求報文攜帶的URL地址確定對應的限速速率,并根據該請求報文的源IP地址確定對應的令牌桶;然后再判斷該令牌桶的填充令牌時間是否大于預設時間,若是,則根據該限速速率回填令牌到該令牌桶之后,轉發該請求報文,并將該令牌桶中的令牌減1,否則,判斷該令牌桶中是否有令牌;如果有,則確定未超過該限速速率,轉發該請求報文,并將該令牌桶中的令牌減1;若果沒有,則確定超過該限速速率,丟棄該請求報文。基于上述實現方式,網絡設備通過請求報文的URL地址確定限速速率,源IP地址確定令牌桶,并且回填令牌到令牌桶是根據限速速率填充,在轉發請求報文之后,是將令牌桶中的令牌減1,而不是減去請求報文長度,因此限速操作是針對請求報文的請求次數,限速速率是真正的請求報文速率,由此可知,本申請可以對WEB應用的URL地址的請求速率進行精準限制。附圖說明圖1A為本申請根據一示例性實施例示出的一種報文限速方法的實施例流程圖;圖1B為本申請根據圖1A實施例示出的一種請求報文解析結構圖;圖2為本申請根據一示例性實施例示出的一種網絡設備的硬件結構圖;圖3為本申請根據一示例性實施例示出的一種報文限速裝置的實施例結構圖。具體實施方式這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。在本申請使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權利要求書中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指并包含一個或多個相關聯的列出項目的任何或所有可能組合。應當理解,盡管在本申請可能采用術語第一、第二、第三等來描述各種信息,但這些信息不應限于這些術語。這些術語僅用來將同一類型的信息彼此區分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應于確定”。圖1A為本申請根據一示例性實施例示出的一種報文限速方法的實施例流程圖;圖1B為本申請根據圖1A實施例示出的一種請求報文解析結構圖,該實施例可以應用于網絡設備,該網絡設備可以是防火墻,或者也可以是網關設備,并且該網絡設備既可以對局域網內部的報文進行限速處理,也可以對外部網絡訪問局域網內部的報文進行限速處理。如圖1A所示,該報文限速方法包括以下步驟:步驟101:接收請求報文。網絡設備在接收到請求報文時,可以先獲取請求報文中的協議特征,并判斷該協議特征是否為HTTP協議,如果是,則表示該請求報文屬于WEB應用,執行步驟102,否則,表示該請求報文不屬于WEB應用,可以直接轉發該請求報文。步驟102:根據該請求報文攜帶的URL地址確定對應的限速速率。在一實施例中,網絡設備可以獲取該請求報文攜帶的URL地址,并根據該URL地址與預先配置的URL地址進行匹配,若匹配到該URL地址,則獲取該URL地址對應的限速速率。其中,網絡設備可以根據用戶實際需求,預先配置需要限速的URL地址,例如,配置的需要限速的URL地址有“www.baidu.com”、“www.sina.com.cn”、“www.qq.com”、“www.163.com”、“www.wangyi.com”。在一實施例中,網絡設備還可以將預先配置的URL地址設置為全URL匹配方式,或者每URL匹配方式,其中,全URL匹配方式指的是對配置的所有URL地址的速率之和進行限速,即配置的所有URL地址對應一個限速速率;每URL匹配方式指的是對配置的每個URL地址的速率進行限速,即配置的每個URL地址獨自對應一個限速速率。在一示例性的場景中,假設預先配置的URL地址包括“www.baidu.com”、“www.sina.com.cn”、“www.qq.com”、“www.163.com”、“www.wangyi.com”,其中,“www.baidu.com”、“www.sina.com.cn”、“www.qq.com”為全URL匹配方式,這三個URL地址對應的限速速率為100次/秒,“www.163.com”、“www.wangyi.com”為每URL匹配方式,每個URL地址對應的限速速率為100次/秒。如圖1B所示,網絡設備根據請求報文的解析結果,可以獲取到Host字段攜帶的“www.sina.com.cn”和GET字段攜帶的“/”(GET字段攜帶的HTTP/1.1為協議版本號,可以忽略),將“www.sina.com.cn”和“/”組合可以得到URL地址為“www.sina.com.cn/”,與預先配置的URL地址匹配之后,可以匹配到URL地址“www.sina.com.cn”,由于“www.sina.com.cn”的匹配方式為全URL匹配方式,因此獲取到的對應的限速速率為100次/秒。基于步驟102的描述可知,網絡設備通過全URL匹配方式可以實現對配置的所有URL地址的速率之和進行限速,通過每URL匹配方式可以實現對配置的每個URL地址的速率進行限速,因此對WEB應用的URL地址的請求速率能夠實現很精準的限制,并且通過對URL地址的請求速率的限制還可以防護URL惡意攻擊。步驟103:根據該請求報文的源IP地址確定對應的令牌桶。網絡設備可以先獲取該請求報文攜帶的源IP地址,并根據預先配置的用戶組表判斷該源IP地址是否有屬于的用戶組,若有,則獲取該源IP地址屬于的用戶組,并獲取該用戶組對應的統計方式,最后根據該統計方式確定對應的令牌桶。其中,網路設備預先配置的用戶組表中記錄有用戶組的IP地址段與統計方式的對應關系,具體地,網絡設備可以先判斷源IP地址是否有位于的IP地址段,如果有,則獲取源IP地址位于的IP地址段對應的用戶組,并獲取該用戶組對應的統計方式,并根據該統計方式確定對應的令牌桶。。如表1所示,為一種示例性的預先配置的用戶組表,例如,請求報文攜帶的源IP地址為IP16,可以得到IP16位于IP11~IP20地址段中,對應用戶組2,因此該源IP地址屬于用戶組2,從而,可得到用戶組2對應的統計方式為所有用戶統計方式。IP地址段用戶組統計方式IP1~IP10用戶組1每用戶IP11~IP20用戶組2所有用戶IP21~IP30用戶組3特定用戶表1針對根據該統計方式確定對應的令牌桶的過程,統計方式可以包括每用戶統計方式、所有用戶統計方式以及特定用戶統計方式,當統計方式為每用戶統計方式時,判斷該源IP地址是否有對應的令牌桶,若有,則獲取對應的令牌桶,若沒有,則為該源IP地址創建一個令牌桶,并向該令牌桶填充限速速率對應的令牌數;當統計方法為所有用戶統計方式時,判斷該用戶組是否有對應的令牌桶,若有,則獲取對應的令牌桶,若沒有,則為該用戶組創建一個令牌桶,并向該令牌桶填充限速速率對應的令牌數。當統計方式為特定用戶統計方式時,將該請求報文攜帶的用戶標識符與預先配置的用戶標識符進行匹配,若匹配到該用戶標識符,則執行判斷該源IP地址是否有對應的令牌桶的過程。其中,每用戶統計方式指的是該用戶組中每個源IP地址對應的用戶都有一個令牌桶,該令牌桶的容量為限速速率的大小,因此,網絡設備在確定該源IP地址沒有對應的令牌桶之后,需要為該源IP地址新創建一個令牌桶,并向該令牌桶填充限速速率對應的令牌數,即將該令牌桶填滿。所有用戶統計方式指的是該用戶組中所有源IP地址對應的用戶只有一個令牌桶,所有用戶的請求報文都通過這個令牌桶進行限速,并且該令牌桶的容量也為限速速率的大小,在確定該用戶組沒有對應的令牌桶之后,需要為該用戶組新創建一個令牌桶,并向該令牌桶填充限速速率對應的令牌數,即將該令牌桶填滿。特定用戶統計方式指的是對攜帶有預先配置的用戶標識符的請求報文進行限速,其限速處理過程與每用戶統計方式相同,其中,該用戶標識符可以是用戶根據實際需求自定義的標識,以與其他用戶區別,例如,攜帶有用戶標識符的用戶可以表示是不需要通過認證便可上網的用戶。該用戶標識符可以在請求報文的cookie字段中攜帶,例如,在cookie字段中可以通過“BAIDUPSID=用戶標識符”的形式攜帶,也可以通過“UOR=用戶標識符”的形式攜帶。本領域技術人員可以理解的是,用戶標識符可以是數字或者字符,也可以是數字和字符的組合,在本申請中并不做限制。需要說明的是,在本申請中,步驟102與步驟103的先后執行順序不做限制。基于步驟102與步驟103的描述可知,網絡設備可以通過步驟102中的兩種匹配方式與步驟103中的三種統計方式的兩兩結合,可以實現6種不同的限速方式,這樣能夠更加精準的對WEB應用的URL地址的請求速率進行限制,提高了速率限制的靈活性。步驟104:判斷令牌桶的填充令牌時間是否大于預設時間,若是,則執行步驟105,否則,執行步驟106。其中,該預設時間可以根據限速速率的單位進行設置,例如,如果限速速率的單位為次/秒,則預設時間可以設置為1秒,如果限速速率的單位次/1.2秒,則預設時間可以設置為1.2秒。令牌桶的填充令牌時間可以將網絡設備當前的系統時間與上一次填充令牌的系統時間相減得到。步驟105:根據限速速率回填令牌到令牌桶之后,轉發請求報文,并將令牌桶中的令牌減1。如果令牌桶的填充令牌時間大于預設時間,表示網絡設備需要更新一次令牌桶,由于令牌桶的容量即為限速速率,因此,網絡設備向令牌桶回填令牌,直至令牌桶中的令牌溢出即可。在轉發請求報文之后,表示已經允許請求報文通過一次,可以對令牌桶進行減桶操作,即將令牌桶中的令牌去掉1個。步驟106:判斷令牌桶中是否有令牌,若有,則執行步驟107,若沒有,則執行步驟108。如果令牌桶的填充令牌時間不大于預設時間,表示網絡設備不需要更新令牌桶,可以直接讀取令牌桶中的令牌數,并判斷令牌數是否為零,如果不為零,則執行步驟107,如果為零,則執行步驟108。步驟107:確定未超過該限速速率,轉發請求報文,并將令牌桶中的令牌減1。如果令牌桶中還有令牌,則表示該URL地址的請求還未超過限速速率,可以允許請求報文通過,并且網絡設備在將請求報文轉發出去之后,需要對令牌桶進行減桶操作,即將令牌桶中的令牌去掉1個。步驟108:確定超過該限速速率,丟棄請求報文。如果令牌桶中已經沒有令牌,則表示該URL地址的請求已經超過限速速率,不能允許請求報文通過,因此網絡設備可以將該請求報文丟棄。此外,網絡設備也可以對該請求報文進行重定向,例如,網絡設備可以將超過限速速率的請求報文重定向到廣告頁面,以向用戶進行廣告宣傳。由上述實施例可知,網絡設備在接收到請求報文之后,可以根據該請求報文攜帶的URL地址確定對應的限速速率,并根據該請求報文的源IP地址確定對應的令牌桶;然后再判斷該令牌桶的填充令牌時間是否大于預設時間,若是,則根據該限速速率回填令牌到該令牌桶之后,轉發該請求報文,并將該令牌桶中的令牌減1,否則,判斷該令牌桶中是否有令牌;如果有,則確定未超過該限速速率,轉發該請求報文,并將該令牌桶中的令牌減1;若果沒有,則確定超過該限速速率,丟棄該請求報文。基于上述實現方式,網絡設備通過請求報文的URL地址確定限速速率,源IP地址確定令牌桶,并且回填令牌到令牌桶是根據限速速率填充,在轉發請求報文之后,是將令牌桶中的令牌減1,而不是減去請求報文長度,因此限速操作是針對請求報文的請求次數,限速速率是真正的請求報文速率,由此可知,本申請可以對WEB應用的URL地址的請求速率進行精準限制。與前述報文限速方法的實施例相對應,本申請還提供了報文限速裝置的實施例。本申請報文限速裝置的實施例可以應用在網絡設備上。裝置實施例可以通過軟件實現,也可以通過硬件或者軟硬件結合的方式實現。以軟件實現為例,作為一個邏輯意義上的裝置,是通過其所在設備的處理器將非易失性存儲器中對應的計算機程序指令讀取到內存中運行形成的。從硬件層面而言,如圖2所示,為本申請根據一示例性實施例示出的一種網絡設備的硬件結構圖,除了圖2所示的處理器、內存、網絡接口、以及非易失性存儲器之外,實施例中裝置所在的設備通常根據該設備的實際功能,還可以包括其他硬件,對此不再贅述。圖3為本申請根據一示例性實施例示出的一種報文限速裝置的實施例結構圖,該實施例可以應用于網絡設備,如圖3所示,該裝置包括:接收單元310、確定單元320、第一判斷單元330、填充單元340、第二判斷單元350、未超過處理單元360、超過處理單元370。接收單元310,用于接收請求報文;確定單元320,用于根據所述請求報文攜帶的URL地址確定對應的限速速率,并根據所述請求報文的源IP地址確定對應的令牌桶;第一判斷單元330,用于判斷所述令牌桶的填充令牌時間是否大于預設時間;填充單元340,用于當判斷結果為是時,根據所述限速速率回填令牌到所述令牌桶之后,轉發所述請求報文,并將所述令牌桶中的令牌減1;第二判斷單元350,用于當判斷結果為否時,判斷所述令牌桶中是否有令牌;未超過處理單元360,用于當判斷結果為有時,確定未超過所述限速速率,轉發所述請求報文,并將所述令牌桶中的令牌減1;超過處理單元370,用于當判斷結果為沒有時,確定超過所述限速速率,丟棄所述請求報文。在一個可選的實現方式中,所述確定單元320,具體用于在根據所述請求報文攜帶的URL地址確定對應的限速速率的過程中,獲取所述請求報文攜帶的URL地址;根據所述URL地址與預先配置的URL地址進行匹配;若匹配到所述URL地址,則獲取所述URL地址對應的限速速率。在另一個可選的實現方式中,所述確定單元320,具體用于在根據所述請求報文的源IP地址確定對應的令牌桶的過程中,獲取所述請求報文攜帶的源IP地址;根據預先配置的用戶組表判斷所述源IP地址是否有屬于的用戶組;其中,所述用戶組表中記錄有用戶組的IP地址段與統計方式的對應關系;若有,則獲取所述源IP地址屬于的用戶組,并獲取所述用戶組對應的統計方式;根據所述統計方式確定對應的令牌桶。在另一個可選的實現方式中,所述確定單元320,具體用于在根據所述統計方式確定對應的令牌桶的過程中,當所述統計方式為每用戶統計方式時,判斷所述源IP地址是否有對應的令牌桶,若有,則獲取對應的令牌桶,若沒有,則為所述源IP地址創建一個令牌桶,并向所述令牌桶填充所述限速速率對應的令牌數;當所述統計方法為所有用戶統計方式時,判斷所述用戶組是否有對應的令牌桶,若有,則獲取對應的令牌桶,若沒有,則為所述用戶組創建一個令牌桶,并向所述令牌桶填充所述限速速率對應的令牌數;當所述統計方式為特定用戶統計方式時,將所述請求報文攜帶的用戶標識符與預先配置的用戶標識符進行匹配,若匹配到所述用戶標識符,則執行判斷所述源IP地址是否有對應的令牌桶的過程。在另一個可選的實現方式中,所述限速速率的大小為所述令牌桶的容量。上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。對于裝置實施例而言,由于其基本對應于方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本申請方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解并實施。由上述實施例可知,網絡設備在接收到請求報文之后,可以根據該請求報文攜帶的URL地址確定對應的限速速率,并根據該請求報文的源IP地址確定對應的令牌桶;然后再判斷該令牌桶的填充令牌時間是否大于預設時間,若是,則根據該限速速率回填令牌到該令牌桶之后,轉發該請求報文,并將該令牌桶中的令牌減1,否則,判斷該令牌桶中是否有令牌;如果有,則確定未超過該限速速率,轉發該請求報文,并將該令牌桶中的令牌減1;若果沒有,則確定超過該限速速率,丟棄該請求報文。基于上述實現方式,網絡設備通過請求報文的URL地址確定限速速率,源IP地址確定令牌桶,并且回填令牌到令牌桶是根據限速速率填充,在轉發請求報文之后,是將令牌桶中的令牌減1,而不是減去請求報文長度,因此限速操作是針對請求報文的請求次數,限速速率是真正的請求報文速率,由此可知,本申請可以對WEB應用的URL地址的請求速率進行精準限制。以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本申請保護的范圍之內。當前第1頁1 2 3