TW201737664A - 集群精確限速方法和裝置 - Google Patents

集群精確限速方法和裝置 Download PDF

Info

Publication number
TW201737664A
TW201737664A TW106105141A TW106105141A TW201737664A TW 201737664 A TW201737664 A TW 201737664A TW 106105141 A TW106105141 A TW 106105141A TW 106105141 A TW106105141 A TW 106105141A TW 201737664 A TW201737664 A TW 201737664A
Authority
TW
Taiwan
Prior art keywords
data packet
packet
data
header
identity information
Prior art date
Application number
TW106105141A
Other languages
English (en)
Other versions
TWI721103B (zh
Inventor
bang-jie Jiang
shun-min Zhu
Rong Wen
cheng-hao Sun
Original Assignee
Alibaba Group Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Services Ltd filed Critical Alibaba Group Services Ltd
Publication of TW201737664A publication Critical patent/TW201737664A/zh
Application granted granted Critical
Publication of TWI721103B publication Critical patent/TWI721103B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本發明實施例提供了一種集群精確限速方法和裝置,涉及電腦技術領域。本發明的方法包括:接收資料包;判斷所述資料包是否為由自身負責應對的客戶端的資料包;如果所述資料包不是由自身負責應對的客戶端的資料包,則將所述資料包轉發給負責應對所述資料包所屬客戶端的服務實體;如果所述資料包是由自身負責應對的客戶端的資料包,則基於所述資料包的身份資訊,對所述資料包進行限速處理。本發明不用單獨在集群內設置一個流控實體對整個集群內的服務實體進行限速,不會因為該流控實體的故障而影響整個集群的正常工作,適用性強。而且僅僅是服務實體之間的資料包的簡單轉發,複雜度低。

Description

集群精確限速方法和裝置
本發明係有關電腦技術領域,尤其是一種集群精確限速方法和一種集群精確限速裝置。
隨著網路的普及,網路的應用環境也越來越多樣化,例如利用由一組協同工作的服務實體構成的集群對多客戶端或者多用戶提供服務。在此類應用環境中,為了防止某一客戶端的流量過大而影響其它客戶端或者基於某一客戶端所購買的寬帶流量的需求,需要針對每個客戶端或者用戶的流量進行限速。由於集群中包含多個服務實體,例如伺服器等。每個服務實體都同時提供服務,進而會造成同一客戶端的流量會落到集群的多個服務實體上。這樣如果每個服務實體單獨限速,那麼隨著集群規模的擴大,每個客戶端總的限速帶寬也在擴大,因此需要提供一種精確的針對集群的全域的限速方案。
為了實現達到針對集群的精確限速的目的,目前主要存在如下三類方案:
第一類:集群內使用專門的流控實體,例如流控伺服 器等,用於控制每台服務實體的限速。流控實體負責監控服務實體上的每個限速單元的流量速率,並動態分配限速帶寬大小。
第二類:集群內每個服務實體平均分配客戶端或者用戶購買的帶寬,假設集群有N台服務實體,用戶購買帶寬大小為B,那麼每台服務實體的限速大小就是B/N。
第三類:在客戶端和集群之間提供專門的由具有限速功能的裝置構成的限速結點。
但是對於上述的三類方法,均存在不同的缺點:
對於第一類方案,首先需要在集群內提供一個流控實體來控制限速,該流控實體如果故障,會影響集群的正常工作,適用性不強。其次,由於流控實體需要監控服務實體的流量速率,因此其需要與服務實體進行大量的通訊來決策給每個服務實體下發的限速大小,複雜度較高。
對於第二類方案,首先很難保證每個客戶端的流量均勻落到每個服務實體上,可操作性較低。其次如果客戶端的流量不均勻,那麼就會存在部分服務實體上針對某些客戶端的流量大於具體的限速值,從而丟包,造成用戶的實際帶寬達不到其購買的帶寬大小,精確性較低。
對於第三類方案,增加專門的限速結點,增加成本,對於小型集群不適用。
鑒於上述問題,提出了本發明實施例以便提供一種克 服上述問題或者至少部分地解決上述問題的一種集群精確限速方法和相應的一種集群精確限速裝置。
為了解決上述問題,本發明揭露了一種集群精確限速方法,包括:接收資料包;判斷所述資料包是否為由自身負責應對的客戶端的資料包;如果所述資料包不是由自身負責應對的客戶端的資料包,則將所述資料包轉發給負責應對所述資料包所屬客戶端的服務實體;如果所述資料包是由自身負責應對的客戶端的資料包,則基於所述資料包的身份資訊,對所述資料包進行限速處理。
較佳地,所述將所述資料包轉發給負責應對所述資料包所屬客戶端的服務實體的步驟,包括:基於所述資料包的身份資訊,在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部;將封裝了協議頭部的資料包通過交換機轉發給負責應對所述資料包所屬客戶端的服務實體。
較佳地,基於所述資料包的身份資訊,在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部的步驟,包括:基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文 頭,或者基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
較佳地,所述基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭,或者基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭的步驟,包括:獲取所述資料包對應的身份資訊;根據所述身份資訊,選擇同一個五元組;所述五元組包括:源IP位址,目的IP位址,源端口,目的端口,傳輸協議類型;所述目的IP位址為服務實體對應的IP位址;基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭;或者,基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
較佳地,當所述身份資訊為IP位址時,所述獲取所述資料包對應的身份資訊的步驟包括:在網路層解析所述資料包的IP報文頭,以獲取IP位址。
較佳地,當所述身份資訊為用戶ID時,所述獲取所述資料包對應的身份資訊的步驟包括:將所述資料包暫存在網路層,同時將所述資料包向上 發送至應用層;在應用層解析所述資料包的資料區,以獲取所述資料包的用戶ID。
較佳地,所述根據所述身份資訊,選擇同一個五元組的步驟,包括:在應用層根據所述身份資訊,選擇同一個五元組;則在根據所述身份資訊,選擇同一個五元組的步驟之後,還包括:將在應用層獲得的五元組發送至網路層。
較佳地,所述基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭的步驟,包括:將所述五元組中的源端口、目的端口封裝到所述資料包之外的UDP報文頭中;將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
較佳地,所述基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭的步驟,包括:將所述五元組中的源端口、目的端口封裝到所述資料包之外的TCP報文頭中;將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
較佳地,所述判斷所述資料包是否為由自身負責應對 的客戶端的資料包的步驟,包括:判斷所述資料包是由服務實體轉發的資料包還是由客戶端發送的資料包;如果所述資料包是由服務實體轉發的資料包,則確認所述資料包是自身負責應對的客戶端的資料包;如果所述資料包是由客戶端發送的資料包,則確認所述資料包不是由自身負責應對的客戶端的資料包。
較佳地,上述判斷所述資料包是由服務實體轉發的資料包還是由客戶端發送的資料包的步驟,包括:針對任一資料包,判斷在所述資料包之外是否存在按照網路傳輸協議的規則封裝的協議頭部;如果在所述資料包之外存在按照網路傳輸協議的規則封裝的協議頭部,則確認所述資料包是自身負責應對的客戶端的資料包;如果在所述資料包之外不存在按照網路傳輸協議的規則封裝的協議頭部,則確認所述資料包不是由自身負責應對的客戶端的資料包。
較佳地,所述基於所述資料包的身份資訊,對所述資料包進行限速處理的步驟,包括:解除所述資料包之外按照網路傳輸協議的規則封裝的協議頭部;獲取所述資料包的身份資訊;判斷所述身份資訊對應的流量是否超過到流量閾值;如果所述身份資訊對應的流量超過流量閾值,則丟棄 所述資料包。
較佳地,當所述身份資訊為IP位址時,所述判斷所述身份資訊對應的流量是否達到閾值的步驟,包括:查找所述IP位址對應的用戶ID;根據所述用戶ID查找對應的流量閾值;計算所述IP位址對應的流量是否超過所述流量閾值;如果所述IP位址對應的流量超過所述流量閾值,則丟棄所述資料包。
相應地,本發明還揭露了一種集群精確限速裝置,包括:接收模組,適於接收資料包;判斷模組,適於判斷所述資料包是否為由自身負責應對的客戶端的資料包;如果所述資料包不是由自身負責應對的客戶端的資料包,則進入轉發模組;如果所述資料包是由自身負責應對的客戶端的資料包,則進入限速模組;轉發模組,適於將所述資料包轉發給負責應對所述資料包所屬客戶端的服務實體;限速模組,適於基於所述資料包的身份資訊,對所述資料包進行限速處理。
較佳地,所述轉發模組,包括:封裝子模組,適於基於所述資料包的身份資訊,在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部;轉發子模組,適於將封裝了協議頭部的資料包通過交 換機轉發給負責應對所述資料包所屬客戶端的服務實體。
較佳地,所述封裝子模組,包括:第一封裝子模組,適於基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭;或者,第二封裝子模組,適於基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
較佳地,所述第一封裝子模組,或者,第二封裝子模組,包括:身份資訊獲取子模組,適於獲取所述資料包對應的身份資訊;五元組選擇子模組,適於根據所述身份資訊,選擇同一個五元組;所述五元組包括:源IP位址,目的IP位址,源端口,目的端口,傳輸協議類型;所述目的IP位址為服務實體對應的IP位址;第一報文頭封裝子模組,適於基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭;或者,第二報文頭封裝子模組,適於基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
較佳地,其中,當所述身份資訊為IP位址時,所述身份資訊獲取子模組包括:第一身份資訊獲取子模組,適於在網路層解析所述資 料包的IP報文頭,以獲取IP位址。
較佳地,當所述身份資訊為用戶ID時,所述身份資訊獲取子模組包括:向上發送子模組,適於將所述資料包暫存在網路層,同時將所述資料包向上發送至應用層;第二身份資訊獲取子模組,適於在應用層解析所述資料包的資料區,以獲取所述資料包的用戶ID。
較佳地,所述五元組選擇子模組,包括:應用層五元組選擇子模組,適於在應用層根據所述身份資訊,選擇同一個五元組;則在五元組選擇子模組之後,還包括:發送子模組,適於將在應用層獲得的五元組發送至網路層;較佳地,所述第一報文頭封裝子模組,包括:第一端口封裝子模組,適於將所述五元組中的源端口、目的端口封裝到所述資料包之外的UDP報文頭中;IP位址封裝子模組,適於將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
較佳地,所述第二報文頭封裝子模組,包括:第二端口封裝子模組,適於將所述五元組中的源端口、目的端口封裝到所述資料包之外的TCP報文頭中;IP位址封裝子模組,適於將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外 的IP報文頭中。
較佳地,所述判斷模組,包括:判斷子模組,適於判斷所述資料包是由服務實體轉發的資料包還是由客戶端發送的資料包;如果所述資料包是由服務實體轉發的資料包,則確認所述資料包是自身負責應對的客戶端的資料包;如果所述資料包是由客戶端發送的資料包,則確認所述資料包不是由自身負責應對的客戶端的資料包。
較佳地,所述判斷子模組,包括:協議頭部判斷子模組,適於針對任一資料包,判斷在所述資料包之外是否存在按照網路傳輸協議的規則封裝的協議頭部;如果在所述資料包之外存在按照網路傳輸協議的規則封裝的協議頭部,則進入第一確認子模組;如果在所述資料包之外不存在按照網路傳輸協議的規則封裝的協議頭部,則進入第二確認子模組。
較佳地,所述限速模組,包括:解除子模組,適於解除所述資料包之外按照網路傳輸協議的規則封裝的協議頭部;資料包身份資訊獲取子模組,適於獲取所述資料包的身份資訊;流量判斷子模組,適於判斷所述身份資訊對應的流量是否超過到流量閾值;如果所述身份資訊對應的流量超過流量閾值,則進入丟棄子模組;丟棄子模組,適於丟棄所述資料包。
較佳地,當所述身份資訊為IP位址時,所述流量判斷子模組,包括:用戶ID查找子模組,適於查找所述IP位址對應的用戶ID;流量閾值查找子模組,適於根據所述用戶ID查找對應的流量閾值;第一流量判斷子模組,適於計算所述IP位址對應的流量是否超過所述流量閾值;如果所述IP位址對應的流量超過所述流量閾值,則進入丟棄子模組。
本發明實施例包括以下優點:本發明實施例,可以在不需要增加系統複雜度的情況下,通過將不是由自身負責應對的客戶端的資料包,轉發給同一集群中負責應對該資料包所屬客戶端的服務實體,從而保證同一客戶端的流量落到同一台服務實體上,然後在該服務實體上,基於對應資料包的身份資訊,對該客戶端的資料包進行限速處理。首先,相對背景技術的第一類方案,本發明實施例不用單獨在集群內設置一個流控實體對整個集群內的服務實體進行限速,不會應為該流控實體的故障而影響整個集群的正常工作,適用性強。而且,也不存在流控實體與服務實體之間大量的通訊以決策給每個服務實體下發的限速大小,僅僅是服務實體之間的資料包的簡單轉發,複雜度低。
其次,相對背景技術的第二類方案,本發明實施例由於同一個客戶端的資料包由同一個服務實體負責對其進行 具體的業務邏輯處理,決定對其進行下一步處理還是丟棄,因此,可以精確控制每個客戶端的流量,可操作性高。
再次,相對背景技術的第三類方案,本發明實施例在集群的原有架構下,對資料包的處理流程做了改進,將各個服務實體接收到的同一客戶端的資料包,轉發到了同一個服務實體進行限速處理,未增加系統複雜度,也沒有採用額外的硬體設施,沒有增加硬體成本。並且,本發明實施例僅利用集群自身的計算功能,即實現了對同一客戶端的流量的限速處理,可以適用於任意規模的集群,適用性更廣。
總之,相對於背景技術,本發明實施例在不增加系統複雜度以及成本的同時,提高了集群限速的適用性、可操作性,以及精確性。
110‧‧‧步驟
120‧‧‧步驟
130‧‧‧步驟
140‧‧‧步驟
210‧‧‧步驟
220‧‧‧步驟
230‧‧‧步驟
240‧‧‧步驟
250‧‧‧步驟
310‧‧‧步驟
320‧‧‧步驟
330‧‧‧步驟
340‧‧‧步驟
350‧‧‧步驟
360‧‧‧步驟
370‧‧‧步驟
380‧‧‧步驟
410‧‧‧交換機
420‧‧‧服務實體
421‧‧‧接收模組
422‧‧‧判斷模組
423‧‧‧轉發模組
424‧‧‧限速模組
510‧‧‧交換機
520‧‧‧服務實體
521‧‧‧接收模組
522‧‧‧判斷模組
523‧‧‧轉發模組
5231‧‧‧封裝子模組
52311‧‧‧第二封裝子模組
5232‧‧‧轉發子模組
524‧‧‧限速模組
610‧‧‧交換機
620‧‧‧服務實體
621‧‧‧接收模組
622‧‧‧判斷模組
6221‧‧‧判斷子模組
623‧‧‧轉發模組
6231‧‧‧封裝子模組
62311‧‧‧第一封裝子模組
6232‧‧‧轉發子模組
624‧‧‧限速模組
6241‧‧‧解除子模組
6242‧‧‧資料包身份資訊獲取子模組
6243‧‧‧流量判斷子模組
6244‧‧‧丟棄子模組
圖1是本發明的一種集群精確限速方法實施例的步驟流程圖;圖1A是本發明的一個應用場景示意圖;圖2是本發明的另一種集群精確限速方法實施例的步驟流程圖;圖3是本發明的另一種集群精確限速方法實施例的步驟流程圖;圖4是本發明的一種集群精確限速裝置實施例的結構 方塊圖;圖5是本發明的另一種集群精確限速裝置實施例的結構方塊圖;圖6是本發明的另一種集群精確限速裝置實施例的結構方塊圖。
為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合圖式和具體實施方式對本發明作進一步詳細的說明。
本發明實施例的核心構思之一在於,本發明提出的一種集群精確限速方法和裝置,可以在不需要增加系統複雜度的情況下,通過將不是由自身負責應對的客戶端的資料包,轉發給同一集群中負責應對該資料包所屬客戶端的服務實體,從而保證同一客戶端的流量落到同一台服務實體上,然後在該服務實體上,基於對應資料包的身份資訊,對該客戶端的資料包進行限速處理。從而相對於背景技術,在不增加系統複雜度以及成本的同時,提高了集群限速的適用性、可操作性,以及精確性。
實施例一
參照圖1,示出了本發明的一種集群精確限速方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟110,接收資料包。
如圖1A為本發明的一個應用場景示意圖。可以看出,在集群內部存在4台服務實體,服務實體通過各個交換機與外部,例如客戶端,進行通訊,客戶端發送的資料包先經過交換機,然後由交換機再分發到至少一台服務實體上來處理。
其中,集群是指一組協同工作的服務實體,用以提供比單一服務實體更具擴展性與可用性的服務平臺。主要包括高可用集群(High Availability Cluster),負載均衡集群(Load Balance Cluster),科學計算集群(High Performance Computing Cluster),本發明主要針對高可用集群和負載均衡集群。服務實體是可以提供某些服務的裝置,例如伺服器等,在本發明實施例中可以接收資料包並進行限速操作。
在網際網路中,客戶端與伺服器交互,是先將其請求等資訊以資料包的形式向伺服器發送。而且在本發明中,由於集群中包含多個服務實體可以同時提供服務,進而造成同一客戶端發送的資料包可能會落到集群中的多個服務實體上。
以現今的網際網路為例,基本上採用的TCP/IP協議等網際網路協議,那麼TCP/IP協議的資料包(Data Packet)是TCP/IP(Transmission Control Protocol/Internet Protocol)協議通訊傳輸中的資料單位,一般也稱為“包”(Packet),在網路資訊傳遞過程中,單個消息被劃分為多個資料塊,這些資料塊就稱為資料 包,它包含發送者和接收者的位址資訊。這些資料包然後沿著不同的路徑在一個或多個網路中傳輸,並且在目的地重新組合。在實際應用中,資料包主要由報文頭和資料兩部分組成。
在實際應用中,TCP/IP協議是一個協議族,其包括TCP((Transmission Control Protocol,傳輸控制協議)、IP(Internet Protocol,網間網協議)、UDP(User Datagram Protocol,用戶資料包協議)、ICMP(Internet Control Message Protocol,網際網路控制資訊協議)、RIP(Routing Information Protocol,路由資訊協議)、SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議)、SNMP(Simple Network manage Protocol,簡單網路管理協議)、ARP(Address Resolution Protocol,位址解析協議)、FTP(File Transfer Protocol,文件傳輸協議)等許多協議。TCP/IP協議採用分層結構,其分層模型及協議如下表(1):
不同的協議層對資料包有不同的稱謂,在傳輸層叫做段(segment),在網路層叫做資料報(datagram),在鏈路層叫做幀(frame)。
本發明的一種集群精確限速方法,就是針對資訊傳輸 中的資料包進行限速,所以首先需要接收資料包。
步驟120,判斷所述資料包是否為由自身負責應對的客戶端的資料包;如果所述資料包不是由自身負責應對的客戶端的資料包,則進入步驟130;如果所述資料包是由自身負責應對的客戶端的資料包,則進入步驟140。
在本發明實施例中,對於集群中各服務實體,可以由交換機根據一定算法確定集群中各服務實體自身負責應對的客戶端,即集群中某一服務實體可以只對由該算法確定由自身負責應對的客戶端發送的資料包進行限速,在本發明實施例中,此特定的客戶端可以稱為資料包自身負責應對的客戶端。
所以,在接收到客戶端的資料包後,需要進一步判斷所述資料包是否為由自身負責應對的客戶端的資料包,如果所述資料包不是由自身負責應對的客戶端的資料包,考慮到服務實體只對由自己負責應對的客戶端發送的資料包進行限速,所以此時需要將所述資料包轉發至負責應對所述資料包所述客戶端的服務實體;而如果所述資料包是由自身負責應對的客戶端的資料包,則可以直接基於所述資料包的身份資訊,對所述資料包進行限速處理。
步驟130,將所述資料包轉發給負責應對所述資料包所屬客戶端的服務實體。
如圖1A所示的場景圖示例,服務實體接收到客戶端發送的資料包後,可以經過交換機,將接收到的不是由自身負責應對的資料包轉發給負責應對所述資料包所屬客戶 端的服務實體。例如,服務實體1接收到一資料包,該資料包所屬的客戶端是由服務實體3負責應對的,則在服務實體接收到該資料包後,會將該資料包再次發送至交換機1,然後交換機1再將該資料包發送至服務實體3。
在本發明另一較佳的實施例中,步驟130包括:
子步驟131,基於所述資料包的身份資訊,在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部。
在本發明實施例中,可以基於資料包的身份資訊,在資料包之外封裝協議頭部,且該協議頭部是按照網路傳輸協議的規則封裝在資料包之外的。
其中,資料包的身份資訊可以包括用戶ID,及/或客戶端的IP位址等;網路傳輸協議(Communications Protocol)一般是指網路層協議和傳輸層協議,例如,表(1)中所示的IP(Internet Protocol,網路協議)協議、TCP協議、UDP協議等。實際應用中,TCP協議和UDP協議同一個資料包只會使用一種。
其中TCP協議和UDP協議的區別主要為以下幾點:1、TCP協議需要存在通訊關係的對象之間進行連接,UDP協議不需要存在通訊關係的對象之間進行連接;2、TCP協議的傳輸速度較慢,UDP協議的傳輸速度較快;3、TCP協議可以保證資料順序,UDP協議不可以保證資料順序;4、TCP協議可以保證資料正確性,UDP協議則可能 丟包;5、TCP協議對系統資源要求多,UDP協議系統資源要求少。
因此,可以理解,本發明在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部,可以按照IP協議+TCP協議或者IP協議+UDP協議的規則封裝協議頭部。
在實際應用中,在本發明封裝上述協議頭部時,會在協議頭部中封裝指示資料包所屬客戶端的身份資訊等第一資料。對同一客戶端來說,在其任意資料包的協議頭部中封裝的上述第一資料是唯一的,可以跟其他客戶端區別開來。
子步驟132,將封裝了協議頭部的資料包通過交換機轉發給負責應對所述資料包所屬客戶端的服務實體。
在本發明實施例中,需要將同一客戶端發送的資料包歸併到預設的與該客戶端對應的服務實體中,然後進行精確地限速,對於封裝了協議頭部的資料包,則可以根據協議頭部的內容,利用交換機,將封裝了協議頭部的資料包轉發給負責應對該資料包所屬客戶端的服務實體。
在實際應用中,可以利用交換機的HASH(哈希/散列)策略,將封裝了協議頭部的資料包準確地轉發至負責對應該資料包所屬客戶端的服務實體。
在實際應用中,集群的交換機是對資料包的協議頭部中的上述第一資料進行哈希,然後根據哈希結果,將資料包分發至相應的服務實體中。比如計算第一資料的哈希 值,然後將該哈希值對服務實體的總個數取餘數,然後根據餘數與服務實體的對應關係,將該資料包發送至於該餘數對應的服務實體中。
步驟140,基於所述資料包的身份資訊,對所述資料包進行限速處理。
在實際應用中,集群需要對多個客戶端提供服務,為了防止某一客戶端的流量過大而影響其它客戶端或者是導致該客戶端的帶寬收費較高等原因,需要針對每個客戶端進行限速。在本發明實施例中,將各客戶端的資料包全部歸併到對該客戶端對應的服務實體後,即可以利用一個服務實體實現對某客戶端進行限速。
在實際應用中,可以首先根據不同的客戶端預置不同的流量閾值,然後判斷服務實體所對應接收的客戶端的各資料包的流量是否超出該客戶端對應的流量閾值的範圍,若某一資料包的流量超出該客戶端對應的流量閾值的範圍,則可以將該資料包丟棄,而若資料包的流量未超出該客戶端對應的流量閾值的範圍,則保留該資料包。
在本發明實施例中,在不需要增加系統複雜度的情況下,通過將不是由自身負責應對的客戶端的資料包,轉發給同一集群中負責應對該資料包所屬客戶端的服務實體,從而保證同一客戶端的流量落到同一台服務實體上,然後在該服務實體上,基於對應資料包的身份資訊,對該客戶端的資料包進行限速處理,因此本發明具備以下優點:首先,相對背景技術的第一類方案,本發明實施例不 用單獨在集群內設置一個流控實體對整個集群內的服務實體進行限速,不會應為該流控實體的故障而影響整個集群的正常工作,適用性強。而且,也不存在流控實體與服務實體之間大量的通訊以決策給每個服務實體下發的限速大小,僅僅是服務實體之間的資料包的簡單轉發,複雜度低。
其次,相對背景技術的第二類方案,本發明實施例由於同一個客戶端的資料包由同一個服務實體負責對其進行具體的業務邏輯處理,決定對其進行下一步處理還是丟棄,因此,可以精確控制每個客戶端的流量,可操作性高。
再次,相對背景技術的第三類方案,本發明實施例在集群的原有架構下,對資料包的處理流程做了改進,將各個服務實體接收到的同一客戶端的資料包,轉發到了同一個服務實體進行限速處理,未增加系統複雜度,也沒有採用額外的硬體設施,沒有增加硬體成本。並且,本發明實施例僅利用集群自身的計算功能,即實現了對同一客戶端的流量的限速處理,可以適用於任意規模的集群,適用性更廣。
總之,相對於背景技術的集群限速三類方案,在不增加系統複雜度以及成本的同時,提高了集群限速的適用性、可操作性,以及精確性。
實施例二
參照圖2,示出了本發明的一種集群精確限速方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟210,接收資料包。
步驟220,判斷所述資料包是否為由自身負責應對的客戶端的資料包;如果所述資料包不是由自身負責應對的客戶端的資料包,則進入步驟230;如果所述資料包是由自身負責應對的客戶端的資料包,則進入步驟250。
步驟230,基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
基於前述的TCP的優點,為了保證資料包在轉發過程中資料的正確性,在本發明實施例中,可以基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。按照TCP協議封裝一層TCP報文頭,再按照IP協議封裝一層IP報文頭。
其中,TCP是面向連接的傳輸協議,需要在需要通訊的客戶端和服務實體之間以及不同的服務實體之間建立連接關係。TCP採用“三次握手”的方式建立連接,以客戶端和服務實體為例,具體步驟如下:第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務實體,並進入SYN_SEND狀態,等待服務實體確認;第二次握手:服務實體收到syn包,必須確認客戶的 SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務實體進入SYN_RECV狀態;第三次握手:客戶端收到服務實體的SYN+ACK包,向服務實體發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務實體進入ESTABLISHED狀態,完成三次握手。
完成三次握手後,客戶端與服務實體可以開始傳送資料。
TCP報文頭的資料格式如表(2)所示:
其中,序列號:TCP序號,即本報文段所發送的資料的第一個字節的序號。
確認號:即希望下次收到對方傳送的資料的第一個字節的序號。
資料偏移:指出TCP報文段的資料起始處距離TCP報文段的距離,實際就是TCP頭部長度。注意,資料偏移的單位不是字節而是32bit,即4字節。TVP首部最大長度為(2^4-1)*4=60字節。
保留:保留為今後使用,目前統一置為0.
代碼位:
1、URG:緊急比特。當URG=1時,表明緊急指針字段有效。該報文應儘快傳送。而不要按原來的隊列順序來傳送。
2、ACK:確認比特。當ACK=1時確認號字段才有效,ACK=0時,表明確認號無效。
3、PSH:推送比特:按對隊傳輸到對方,不用待緩存填滿後再提交給上層,而是立即提交。
4、RST:複位比特。TCP連接中出現嚴重差錯,必須立即釋放並重新建立連接。也用於拒絕一個非法的報文段或拒絕打開一個連接。
5、SYN:同步比特。在連接建立時用來同步序號。當SYN=1而ACK=0時,表明這是一個連接請求報文段。對方若同意建立連接,則應在響應的報文段中使用SYN=1和ACK=1。因此,SYN=1時,就表明這是一個連接請求或連接接受。
6、FIN:終止比特。用來釋放一個連接。當FIN=1時,表明資料發送完畢,要求釋放連接。
窗口:接收端告知自己的接收能力,即自己接收窗口的大小,發送方將按這個大小發送資料。
校驗和:檢驗的範圍包括首部和資料這兩部分。在計算檢驗和時,要在TCP報文段的前面加上12字節的偽首部。
緊急指針:當緊急指針代碼位被設置時為有效字段。如果有效,這個值指明了當前序列號的八位組的偏移值,即第一個非緊急資料的起始位置。
在本發明另一較佳的實施例中,步驟230,包括:子步驟231,獲取所述資料包對應的身份資訊;子步驟232,根據所述身份資訊,選擇同一個五元組;所述五元組包括:源IP位址,目的IP位址,源端口,目的端口,傳輸協議類型;所述目的IP位址為服務實體對應的IP位址;子步驟233,基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
若要在資料包之外再封裝一層IP報文頭和TCP報文頭,則此時五元組中的傳輸協議類型為TCP協議,即在資料包之外是按照TCP協議的規則再封裝一層IP報文頭和TCP報文頭。根據表(2)和表(4)分別所示的IP報文頭結構和TCP報文頭結構可知,在實際應用中,五元組中的源IP位址、目的IP位址、傳輸協議類型分別與IP報文頭中的源位址、目的位址、協議一一對應,五元組中的源端口、目的端口分別與TCP報文頭中的源端口號、目的端口號一一對應。對於IP報文頭和TCP報文頭中其他部分的內容,本發明實施例也不加以限定。
在本發明另一較佳的實施例中,步驟233,包括:
子步驟2331,將所述五元組中的源端口、目的端口 封裝到所述資料包之外的TCP報文頭中。
具體而言,是將五元組中的源端口、目的端口分別封裝到資料包之外的TCP報文頭中的源端口號、目的端口號中。對於TCP報文頭中的其他部分的資料內容,可以採用任意一種TCP報文頭適用的資料,對此本發明實施例不加以限定。
子步驟2332,將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
步驟240,將封裝了協議頭部的資料包通過交換機轉發給負責應對所述資料包所屬客戶端的服務實體。
步驟250,基於所述資料包的身份資訊,對所述資料包進行限速處理。
在本發明實施例中,同樣在不需要增加系統複雜度的情況下,通過將不是由自身負責應對的客戶端的資料包,轉發給同一集群中負責應對該資料包所屬客戶端的服務實體,從而保證同一客戶端的流量落到同一台服務實體上,然後在該服務實體上,基於對應資料包的身份資訊,對該客戶端的資料包進行限速處理。相對於現有的集群限速三類方案,在不增加系統複雜度以及成本的同時,提高了集群限速的適用性、可操作性,以及精確性。
另外,在本發明實施例中,通過在服務實體接收到的由客戶端發送的資料包之外封裝一層IP報文頭和TCP報文頭,然後再將封裝後的資料包轉發至負責應對該資料包 所屬的客戶端的服務實體中,相對於UDP而言,本發明實施例需要在實體之間建立連接,可以進一步保證資料包中資料的準確性,將資料包準確地轉發至相應地服務實體中,進一步提高了集群限速的精確性。
實施例三
參照圖3,示出了本發明的另一種集群精確限速方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟310,接收資料包。
步驟320,判斷所述資料包是由服務實體轉發的資料包還是由客戶端發送的資料包;如果所述資料包是由服務實體轉發的資料包,則確認所述資料包不是由自身負責應對的客戶端的資料包,然後進入步驟330;如果所述資料包是由客戶端發送的資料包,則確認所述資料包是自身負責應對的客戶端的資料包,然後進入步驟350。
由實施例一所述可知,在實際應用中,若服務實體接收到的資料包是由客戶端的資料包,則會將該資料包轉發至負責應對所述資料包所屬客戶端的服務實體,而且在轉發之前,服務實體並不能確認其所接收的客戶端發送的是資料包是否為自身負責應對的客戶端發送的資料包。另外,一般而言,只需一次轉發過程,即可以將該資料包轉發至負責應對所述資料包所屬客戶端的服務實體。
在本發明實施例中,確認某一資料包不是由接收到該資料包的某服務實體自身應對的客戶端的資料包,則表明 該服務實體需要將接收到的該資料包進行轉發操作,以將該資料包轉發至負責應對該資料包所屬的客戶端的服務實體中。
在本發明實施例中,確認某一資料包是由某服務實體自身應對的客戶端的資料包,則表明該服務實體不需要將該資料包進行再次轉發操。
所以在本發明實施例中,若服務實體所接收的資料包是由服務實體轉發的資料包,則可以確認該資料包是由自身負責應對的客戶端的資料包;而若服務實體所接收的資料包是由客戶端發送的資料包,則可以先默認該資料包不是由該服務實體自身負責應對的客戶端的資料包。該步驟是實施例一中步驟120的較佳方案。需要說明的是,在本發明實施例中,服務實體所接收到的資料包可能是由其自身轉發的資料包。
例如,對於服務實體A,其接收到兩個資料包分別為:資料包a、資料包b,其中資料包a是由服務實體B轉發的,資料包b是由客戶端C發送的。則經過上述步驟,可以直接確認資料包a是由服務實體A負責應對的客戶端的資料包,資料包b則不是由服務實體A負責應對的客戶端的資料包。而且,在服務實體A對資料包b進行轉發之前,並不能確認資料包b所屬的客戶端C是否為服務實體A負責應對的客戶端,另外,其中的服務實體A和服務實體B可能為同一服務實體。
在本發明另一較佳的實施例中,步驟320,包括:
子步驟321,針對任一資料包,判斷在所述資料包之外是否存在按照網路傳輸協議的規則封裝的協議頭部;如果在所述資料包之外存在按照網路傳輸協議的規則封裝的協議頭部,則確認所述資料包是自身負責應對的客戶端的資料包,然後進入步驟350;如果在所述資料包之外不存在按照網路傳輸協議的規則封裝的協議頭部,則確認所述資料包不是由自身負責應對的客戶端的資料包,然後進入步驟330。
根據實施例一所述的內容,在本發明實施例中,若服務實體要對所接收到的資料包進行轉發,則需要先在該資料包之外再按照網路傳輸協議的規則封裝協議頭部;若服務實體不對所接收到的資料包進行轉發,則不需要在該資料包之外再按照網路傳輸協議的規則封裝協議頭部。
所以,在本發明實施例中,針對服務實體接收到的任一資料包,判斷在所述資料包之外是否存在按照網路傳輸協議的規則封裝的協議頭部。如果在所述資料包之外存在按照網路傳輸協議的規則封裝的協議頭部,則說明該服務實體接收到的該資料包是由服務實體轉發的資料包,從而可以確認該資料包是由該服務實體自身負責應對的客戶端的資料包;如果在資料包之外不存在按照網路傳輸協議的規則封裝的協議頭部,則說明該服務實體接收到的該資料包是由客戶端發送的資料包,從而可以確認該資料包不是由自身負責應對的客戶端的資料包。
步驟330,基於所述資料包的身份資訊,在所述資料 包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭。
如前述,若要對接收到的資料包進行轉發,則需要先基於所述資料包的身份資訊,在資料包之外按照網路傳輸協議的規則再封裝協議頭部。
其中,UDP是一種無連接的資料報服務。源服務實體在傳送資料前不需要和目標服務實體建立連接。資料被冠以源、目標端口號等UDP報頭字段後直接發往目的服務實體。這時,每個資料段的可靠性依靠上層協議來保證。在傳送資料較少、較小的情況下,UDP比TCP更加高效。考慮到UDP協議不需要在通訊的服務實體之間建立連接的特性,在本發明實施例中,基於資料包的身份資訊,在資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭,從而可以避免在各服務實體之間建立連接的過程。在本發明實施例中,在資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭的過程並不會影響到資料包本身。
在實際應用中,IP報文頭格式如表(3)所示:
其中,版本(Version)字段:占4比特。用來表明IP協議實現的版本號,當前一般為IPv4,即0100。
報頭長度(Internet Header Length,IHL)字段:占4比特。是頭部占32比特的數字,包括可選項。普通IP資料報(沒有任何選項),該字段的值是5,即160比特=20字節。此字段最大值為60字節。
服務類型(Type of Service,TOS)字段:占8比特。其中前3比特為優先權子字段(Precedence,現已被忽略)。第8比特保留未用。第4至第7比特分別代表延遲、吞吐量、可靠性和花費。當它們取值為1時分別代表要求最小時延、最大吞吐量、最高可靠性和最小費用。這4比特的服務類型中只能置其中1比特為1。可以全為0,若全為0則表示一般服務。服務類型字段聲明了資料報被網路系統傳輸時可以被怎樣處理。例如:TELNET協議可能要求有最小的延遲,FTP協議(資料)可能要求有最大吞吐量,SNMP協議可能要求有最高可靠性,NNTP(Network News Transfer Protocol,網路新聞傳輸協議)可能要求最小費用,而ICMP協議可能無特殊要求(4比特全為0)。實際上,大部分主機會忽略這個字段,但一些動態路由協議如OSPF(Open Shortest Path First Protocol)、IS-IS(Intermediate System to Intermediate System Protocol)可以根據這些字段的值進行路由決策。
總長度字段:占16比特。指明整個資料報的長度(以字節為單位)。最大長度為65535字節。
標誌字段:占16比特。用來唯一地標識主機發送的每一份資料報。通常每發一份報文,它的值會加1。
標誌位字段:占3比特。標誌一份資料報是否要求分段。
段偏移字段:占13比特。如果一份資料報要求分段的話,此字段指明該段偏移距原始資料報開始的位置。
生存期(TTL:Time to Live)字段:占8比特。用來設置資料報最多可以經過的路由器數。由發送資料的源主機設置,通常為32、64、128等。每經過一個路由器,其值減1,直到0時該資料報被丟棄。
協議字段:占8比特。指明IP層所封裝的上層協議類型,如ICMP(1)、IGMP(2)、TCP(6)、UDP(17)等。
頭部校驗和字段:占16比特。內容是根據IP頭部計算得到的校驗和碼。計算方法是:對頭部中每個16比特進行二進制反碼求和。(和ICMP、IGMP、TCP、UDP不同,IP不對頭部後的資料進行校驗)。
源IP位址、目標IP位址字段:各占32比特。用來標明發送IP資料報文的源主機位址和接收IP報文的目標主機位址。
可選項字段:占32比特。用來定義一些任選項:如記錄路徑、時間戳等。這些選項很少被使用,同時並不是所有主機和路由器都支持這些選項。可選項字段的長度必須是32比特的整數倍,如果不足,必須填充0以達到此 長度要求。
UDP報頭文格式如表(4)所示:
其中,源、目標端口號字段:占16比特。用來標識源端和目標端的應用進程。
長度:占16比特,標明UDP報頭和UDP資料的長度。
校驗和:占16比特,用來對UDP報頭和UDP資料進行校驗。
在本發明另一較佳的實施例中,步驟330包括:
子步驟331,獲取所述資料包對應的身份資訊。
如步驟330所述,在對資料包進行封裝之前,首先需要獲取資料包對應的身份資訊。一般而言,資料包對應的身份資訊可以為IP位址,如發送該資料包的客戶端的IP位址,也可以為用戶ID,如發送該資料包的用戶ID。當然,用戶身份也可以為其他可用的資訊,對此本發明實施例不加以限定。
在本發明另一較佳的實施例中,當所述身份資訊為IP位址時,子步驟351,包括:
子步驟3311,在網路層解析所述資料包的IP報文頭,以獲取IP位址。
如果要獲取的身份資訊為IP位址,例如發送該資料 包的客戶端的IP位址。如表(1)所示,在TCP/IP協議的網路層支持IP協議,所以,在本發明實施例中,在網路層解析資料包的IP報文頭,從中獲取所需的IP位址。資料包的IP報文頭是資料包本身的IP報文頭,與在資料包之外再封裝的IP報文頭不相關,但是資料包本身的IP報文頭的結構也如表(3)所示,其中的源位址即為本發明實施例所要獲取的IP位址。對於具體的解析過程,可以採用現有技術中的任何一種可用的解析方法,對此本發明實施例不加以限定。
在本發明另一較佳的實施例中,當所述身份資訊為用戶ID時,子步驟331,包括:
子步驟3312,將所述資料包暫存在網路層,同時將所述資料包向上發送至應用層。
而如果要獲取的身份資訊為用戶ID時,例如發送該資料包的用戶ID,此時需要在應用層才可以獲取到用戶ID等資訊,所以在本發明實施例中會將資料包暫存在網路層的記憶體中,同時將資料包向上發送至應用層。在本發明實施例中網路層的IP資料包上傳至傳輸層,傳輸層解析TCP報文頭或者UDP報文頭後,將資料區的內容上傳至應用層。應用層對資料區的內容進行解析。
子步驟3313,在應用層解析所述資料包的資料區,以獲取所述資料包的用戶ID。
在實際應用中,用戶ID等資訊被存放於資料包的資料區,將資料包發送至應用層後,則可以在應用層解析資 料包的資料區,獲取其中資料包的用戶ID。同樣對於具體的解析過程,可以採用現有技術中的任何一種可用的解析方法,對此本發明實施例也不加以限定。
子步驟332,根據所述身份資訊,選擇同一個五元組;所述五元組包括:源IP位址,目的IP位址,源端口,目的端口,傳輸協議類型;所述目的IP位址為服務實體對應的IP位址。
在實際應用中,五元組能夠區分不同的通訊,並且對應的通訊是唯一的。所以在本發明實施例中,會根據身份資訊,選擇同一個五元組與該身份資訊對應,則利用五元組,可以將不同的身份資訊對應的用戶終端完全區分開來。
在本發明實施例中,五元組包括的源IP位址是指用戶端的IP位址,目的IP位址為服務實體對應的IP位址,源端口為用戶終端發送資料包的端口,目的端口為服務實體接收資料包的端口,傳輸協議類型為發送資料包的具體的協議類型。
源端口可以採用客戶端的端口的唯一標識ID,另外因為客戶端的IP位址唯一,可以使用客戶端IP位址的後2個字節作為源端口,當然也可以採用其他可利用的方式用以標識源端口,對此本發明實施例不加以限定。對於目的端口,使用固定的端口以唯一標記針對同一集群的資料包的目的端口。在本發明實施例中,傳輸協議類型和在資料包之外再封裝的頭部類型有關,例如,若傳輸協議類型 為UDP協議,則在資料包外再封裝一層IP報文頭和UDP報文頭;若傳輸協議類型為TCP協議,則在資料包外再封裝一層IP報文頭和TCP報文頭。
需要說明的是,在本發明實施例中,所針對的是由一組協同工作的服務實體組成的集群,而且在實際應用中,集群服務實體對外提供的統一的服務位址,是虛擬IP位址,也稱為集群VIP(Virtual IP,虛擬IP)位址,客戶端通過存取集群VIP位址獲取集群內部各服務實體的功能。所以上述的目的IP位址即為集群VIP位址,針對同一集群中的服務實體,五元組中的目的IP位址是一致的。
子步驟333,基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭。
若要在資料包之外再封裝一層IP報文頭和UDP報文頭,則此時五元組中的傳輸協議類型為UDP協議,即在資料包之外是按照UDP協議的規則再封裝一層IP報文頭和UDP報文頭。根據表(3)和表(4)分別所示的IP報文頭結構和UDP報文頭結構可知,在實際應用中,五元組中的源IP位址、目的IP位址、傳輸協議類型分別與IP報文頭中的源位址、目的位址、協議一一對應,五元組中的源端口、目的端口分別與UDP報文頭中的源端口號、目的端口號一一對應。對於IP報文頭和UDP報文頭中其他部分的內容,本發明實施例不加以限定。
在本發明另一較佳的實施例中,步驟333包括:
子步驟A3331,將在應用層獲得的五元組發送至網路層。
由於對資料包進行封裝的操作需要在網路層進行,所以在本發明實施例中需要將在應用層獲得的五元組發送至網路層。如前述,若是根據用戶ID資訊獲取的五元組資訊,則可以是在應用層獲取的五元組,此時需要將在應用層獲得的五元組發送至網路層,而若是根據IP位址獲取的五元組,則可以是在網路層獲取的五元組,此時不需要本步驟的發送過程。當然,不管是根據何種類型的用戶資訊獲取的五元組,只要所獲得的五元組不在網路層,都需要將獲取的五元組發送至網路層。
子步驟A3332,在網路層基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭。
在本發明實施例中,具體而言,是由網路層基於五元組,在資料包之外按照UDP協議的規則再封裝一層UDP報文頭,再按照UDP協議封裝一層IP報文頭。
當然,對於本發明實施例也可以在,在網路層基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭,其原理基本類似。
在本發明另一較佳的實施例中,步驟333包括:
子步驟B3331,將所述五元組中的源端口、目的端口封裝到所述資料包之外的UDP報文頭中。
具體而言,是將五元組中的源端口、目的端口分別封裝到資料包之外的UDP報文頭中的源端口號、目的端口號中。對於UDP報文頭中的其他部分的資料內容,可以採用任意一種UDP報文頭適用的資料,對此本發明實施例不加以限定。
子步驟B3332,將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
具體而言,是將五元組中的源IP位址、目的IP位址、傳輸協議類型分別封裝到資料包之外的IP報文頭中的源端口號、目的端口號、協議中。對於IP報文頭中的其他部分的資料,可以採用可任意一種IP報文頭可適用的資料,對此本發明實施例也不加以限定。
在本發明的另一較佳的實施例中,所述子步驟332包括:
子步驟3321,在應用層根據所述身份資訊,選擇同一個五元組。
在實際應用中,五元組所包含的資訊存在於應用層中,所以可以在應用層根據所述身份資訊,選擇同一個五元組。
則在子步驟332之後,還包括:
子步驟334,將在應用層獲得的五元組發送至網路層。
因為具體的根據五元組對資料包進行封裝的過程在網 路層執行,所以需要將在應用層獲得的五元組發送至網路層。本步驟在子步驟353之前執行。
步驟340,將封裝了協議頭部的資料包通過交換機轉發給負責應對所述資料包所屬客戶端的服務實體。
經過前述步驟可知,在本發明實施例中,針對同一客戶端的資料包的五元組是一致的,另外,因為同一客戶端的IP位址是唯一的,不同客戶端的IP位址是不同的,所以針對不同客戶端的資料包的五元組是不一致的。
在本發明實施例中,可以根據五元組,預先設定負責應對不同客戶端的服務實體。在實際應用中,可以利用交換機的HASH策略保證將同一五元組的資料包發送到與該五元組對應的服務實體上。
步驟350,解除所述資料包之外按照網路傳輸協議的規則封裝的協議頭部。
在本發明實施例中,即解除資料包之外封裝的IP報文頭和UDP報文頭,當然,若是在資料包之外封裝的協議頭部為IP報文頭和TCP報文頭,則此時是解除資料包之外封裝的協議頭部為IP報文頭和TCP報文頭。
另外,在本發明實施例中,可以採用現有的任何一種解封裝方法,解除資料包之外按照網路傳輸協議的規則封裝的協議頭部,對此本發明不加以限定。
步驟360,獲取所述資料包的身份資訊。
該步驟與前述的子步驟331類似,在此不再贅述。
步驟370,判斷所述身份資訊對應的流量是否超過到流量閾值;如果所述身份資訊對應的流量超過流量閾值,則進入步驟380;而若所述身份資訊對應的流量超過流量閾值,則保留該身份資訊對應的資料包。
其中的流量閾值是可以根據實際情況預先設置,對此本發明實施例不加以限定。身份資訊對應的流量是指該身份資訊對應的資料包的流量,也即身份資訊對應的客戶端的資料包的流量。若身份資訊對應的流量超過流量閾值,則將身份資訊對應的資料包丟棄,若身份資訊對應的流量未超過流量閾值,則保留身份資訊對應的資料包。
例如,若用戶A購買的帶寬是50M/s,即流量閾值為50M/s。在用戶A對應的終端設備收到當前資料包後,根據當前時刻到之前的1秒內收到的資料包記錄,計算該用戶A的流量速度是否大於50M/s,如果大於,則丟棄該資料包,如果不大於,則保留該資料包。
在本發明另一較佳的實施例中,當所述身份資訊為IP位址時,步驟370包括:
子步驟371,查找所述IP位址對應的用戶ID。
在實際應用中,流量閾值一般是和用戶ID對應的,所以在本發明實施例中,根據IP位址查找與之對應的用戶ID。其中,IP位址與用戶ID的對應關係是預置的,可以預先放置在一配置文件中,或者是通過其他方式儲存,對此本發明實施例不加以限定。
子步驟372,根據所述用戶ID查找對應的流量閾 值。
用戶ID與流量閾值的對應關係是預置的,可以預先儲存於一配置文件中,或者是通過其他方式儲存,對此本發明實施例不加以限定。
另外,在本發明實施例中,可以將用戶與流量閾值的對應關係和上述的IP位址與用戶ID的對應關係儲存於同一配置文件中,也可以儲存與不同的配置文件中,或者是利用不同的儲存方式,對此本發明實施例也不加以限制。
子步驟373,計算所述IP位址對應的流量是否超過所述流量閾值;如果所述IP位址對應的流量超過所述流量閾值,則進入步驟3110。
此時,IP位址對應的流量是指IP位址對應的資料包的流量,也即IP位址對應的客戶端的資料包的流量。
步驟380,丟棄所述資料包。
若資料包的流量超過對應的流量閾值,則會將該資料包從客戶端的流量中刪除,以保證客戶端的網路速度在瀏覽閾值之內。
在本發明實施例中,同樣在不需要增加系統複雜度的情況下,通過將不是由自身負責應對的客戶端的資料包,轉發給同一集群中負責應對該資料包所屬客戶端的服務實體,從而保證同一客戶端的流量落到同一台服務實體上,然後在該服務實體上,基於對應資料包的身份資訊,對該客戶端的資料包進行限速處理。相對於現有的集群限速三類方案,在不增加系統複雜度以及成本的同時,提高了集 群限速的適用性、可操作性,以及精確性。
另外,在本發明實施例中,通過在服務實體接收到的由客戶端發送的資料包之外封裝一層IP報文頭和UDP報文頭,然後再將封裝後的資料包轉發至負責應對該資料包所屬的客戶端的服務實體中,從而可以在不需要建立連接的情況下,將資料包轉發至相應地服務實體中,進一步提高了集群限速的適用性、可操作性以及精確性。而且對於封裝了IP報文頭和TCP報文頭的資料包,則需要先在接收的服務實體以及轉發的服務實體之間建立連接,才可以在其兩者之間轉發,所以相對於實施例二中在資料包外封裝IP報文頭和TCP報文頭的方式,本發明實施例所述的在資料包之外封裝IP報文頭和UDP報文頭的方式適應性、可操作性以及效率都更高。
需要說明的是,對於方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明實施例並不受所描述的動作順序的限制,因為依據本發明實施例,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬□較佳實施例,所涉及的動作並不一定是本發明實施例所必須的。
實施例四
參照圖4,示出了本發明的一種集群精確限速裝置實施例的結構方塊圖,該集群包括至少一個交換機410和多 個服務實體420,每個服務實體具體可以包括如下模組:接收模組421,適於接收資料包。
判斷模組422,適於判斷所述資料包是否為由自身負責應對的客戶端的資料包。如果所述資料包不是由自身負責應對的客戶端的資料包,則進入轉發模組423;如果所述資料包是由自身負責應對的客戶端的資料包,則進入限速模組424。
轉發模組423,適於將所述資料包轉發給負責應對所述資料包所屬客戶端的服務實體。
在本發明另一較佳的實施例中,所述轉發模組,包括:封裝子模組,適於基於所述資料包的身份資訊,在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部。
轉發子模組,適於將封裝了協議頭部的資料包通過交換機轉發給負責應對所述資料包所屬客戶端的服務實體。
限速模組424,適於基於所述資料包的身份資訊,對所述資料包進行限速處理。
在本發明實施例中,在不需要增加系統複雜度的情況下,通過將不是由自身負責應對的客戶端的資料包,轉發給同一集群中負責應對該資料包所屬客戶端的服務實體,從而保證同一客戶端的流量落到同一台服務實體上,然後在該服務實體上,基於對應資料包的身份資訊,對該客戶端的資料包進行限速處理,因此本發明具備以下優點:首先,相對背景技術的第一類方案,本發明實施例不 用單獨在集群內設置一個流控實體對整個集群內的服務實體進行限速,不會應為該流控實體的故障而影響整個集群的正常工作,適用性強。而且,也不存在流控實體與服務實體之間大量的通訊以決策給每個服務實體下發的限速大小,僅僅是服務實體之間的資料包的簡單轉發,複雜度低。
其次,相對背景技術的第二類方案,本發明實施例由於同一個客戶端的資料包由同一個服務實體負責對其進行具體的業務邏輯處理,決定對其進行下一步處理還是丟棄,因此,可以精確控制每個客戶端的流量,可操作性高。
再次,相對背景技術的第三類方案,本發明實施例在集群的原有架構下,對資料包的處理流程做了改進,將各個服務實體接收到的同一客戶端的資料包,轉發到了同一個服務實體進行限速處理,未增加系統複雜度,也沒有採用額外的硬體設施,沒有增加硬體成本。並且,本發明實施例僅利用集群自身的計算功能,即實現了對同一客戶端的流量的限速處理,可以適用於任意規模的集群,適用性更廣。
總之,相對於背景技術的集群限速三類方案,在不增加系統複雜度以及成本的同時,提高了集群限速的適用性、可操作性,以及精確性。
實施例五
參照圖5,示出了本發明的一種集群精確限速裝置實施例的結構方塊圖,該集群包括至少一個交換機510和多個服務實體520,每個服務實體具體可以包括如下模組:接收模組521,適於接收資料包。
判斷模組522,適於判斷所述資料包是否為由自身負責應對的客戶端的資料包;如果所述資料包不是由自身負責應對的客戶端的資料包,則進入轉發模組523;如果所述資料包是由自身負責應對的客戶端的資料包,則進入限速模組524。
轉發模組523,適於將所述資料包轉發給負責應對所述資料包所屬客戶端的服務實體,具體包括:封裝子模組5231,適於基於所述資料包的身份資訊,在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部,具體包括:第二封裝子模組52311,適於基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
在本發明另一較佳的實施例中,第二封裝子模組52311,包括:身份資訊獲取子模組,適於獲取所述資料包對應的身份資訊。
五元組選擇子模組,適於根據所述身份資訊,選擇同一個五元組;所述五元組包括:源IP位址,目的IP位址,源端口,目的端口,傳輸協議類型;所述目的IP位 址為服務實體對應的IP位址。
第二報文頭封裝子模組,適於基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
在本發明另一較佳的實施例中,所述第二報文頭封裝子模組,包括:第二端口封裝子模組,適於將所述五元組中的源端口、目的端口封裝到所述資料包之外的TCP報文頭中。
IP位址封裝子模組,適於將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
轉發子模組5232,適於將封裝了協議頭部的資料包通過交換機轉發給負責應對所述資料包所屬客戶端的服務實體。
限速模組524,適於基於所述資料包的身份資訊,對所述資料包進行限速處理。
在本發明實施例中,同樣在不需要增加系統複雜度的情況下,通過將不是由自身負責應對的客戶端的資料包,轉發給同一集群中負責應對該資料包所屬客戶端的服務實體,從而保證同一客戶端的流量落到同一台服務實體上,然後在該服務實體上,基於對應資料包的身份資訊,對該客戶端的資料包進行限速處理。相對於現有的集群限速三類方案,在不增加系統複雜度以及成本的同時,提高了集群限速的適用性、可操作性,以及精確性。
另外,在本發明實施例中,通過在服務實體接收到的由客戶端發送的資料包之外封裝一層IP報文頭和TCP報文頭,然後再將封裝後的資料包轉發至負責應對該資料包所屬的客戶端的服務實體中,相對於UDP而言,本發明實施例需要在實體之間建立連接,可以進一步保證資料包中資料的準確性,將資料包準確地轉發至相應地服務實體中,進一步提高了集群限速的精確性。
實施例六
參照圖6,示出了本發明的一種集群精確限速裝置實施例的結構方塊圖,該集群包括至少一個交換機610和多個服務實體620,每個服務實體具體可以包括如下模組:接收模組621,適於接收資料包。
判斷模組622,適於判斷所述資料包是否為由自身負責應對的客戶端的資料包;如果所述資料包不是由自身負責應對的客戶端的資料包,則進入轉發模組623;如果所述資料包是由自身負責應對的客戶端的資料包,則進入限速模組624。具體包括:判斷子模組6221,適於判斷所述資料包是由服務實體轉發的資料包還是由客戶端發送的資料包;如果所述資料包是由服務實體轉發的資料包,則確認所述資料包是自身負責應對的客戶端的資料包,然後進入限速模組624;如果所述資料包是由客戶端發送的資料包,則確認所述資料包不是由自身負責應對的客戶端的資料包,然後進入轉 發模組623。
在本發明另一較佳的實施例中,判斷子模組6221,包括:協議頭部判斷子模組,適於針對任一資料包,判斷在所述資料包之外是否存在按照網路傳輸協議的規則封裝的協議頭部;如果在所述資料包之外存在按照網路傳輸協議的規則封裝的協議頭部,則確認所述資料包是自身負責應對的客戶端的資料包,然後進入限速模組624;如果在所述資料包之外不存在按照網路傳輸協議的規則封裝的協議頭部,則確認所述資料包不是由自身負責應對的客戶端的資料包,然後進入轉發模組623。
轉發模組623,適於將所述資料包轉發給負責應對所述資料包所屬客戶端的服務實體,具體包括:封裝子模組6231,適於基於所述資料包的身份資訊,在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部,具體包括:第一封裝子模組62311,適於基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭。
轉發子模組6232,適於將封裝了協議頭部的資料包通過交換機轉發給負責應對所述資料包所屬客戶端的服務實體。
在本發明另一較佳的實施例中,第一封裝子模組62311,包括: 身份資訊獲取子模組,適於獲取所述資料包對應的身份資訊。
在本發明另一較佳的實施例中,當所述身份資訊為IP位址時,所述身份資訊獲取子模組包括:第一身份資訊獲取子模組,適於在網路層解析所述資料包的IP報文頭,以獲取IP位址。
當所述身份資訊為用戶ID時,所述身份資訊獲取子模組包括:向上發送子模組,適於將所述資料包暫存在網路層,同時將所述資料包向上發送至應用層。
第二身份資訊獲取子模組,適於在應用層解析所述資料包的資料區,以獲取所述資料包的用戶ID。
五元組選擇子模組,適於根據所述身份資訊,選擇同一個五元組;所述五元組包括:源IP位址,目的IP位址,源端口,目的端口,傳輸協議類型;所述目的IP位址為服務實體對應的IP位址。
第一報文頭封裝子模組,適於基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭。
在本發明另一個在本發明另一較佳的實施例中實施例中,所述五元組選擇子模組,包括:應用層五元組選擇子模組,適於在應用層根據所述身份資訊,選擇同一個五元組。
則在應用層五元組選擇子模組之後,還包括: 發送子模組,適於將在應用層獲得的五元組發送至網路層。
在本發明另一個在本發明另一較佳的實施例中實施例中,所述第一報文頭封裝子模組,包括:第一端口封裝子模組,適於將所述五元組中的源端口、目的端口封裝到所述資料包之外的UDP報文頭中。
IP位址封裝子模組,適於將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
限速模組624,適於基於所述資料包的身份資訊,對所述資料包進行限速處理。具體包括:解除子模組6241,適於解除所述資料包之外按照網路傳輸協議的規則封裝的協議頭部。
資料包身份資訊獲取子模組6242,適於獲取所述資料包的身份資訊。
流量判斷子模組6243,適於判斷所述身份資訊對應的流量是否超過到流量閾值;如果所述身份資訊對應的流量超過流量閾值,則進入丟棄子模組6244。
在本發明另一較佳的實施例中,當所述身份資訊為IP位址時,所述流量判斷子模組,包括:用戶ID查找子模組,適於查找所述IP位址對應的用戶ID。
流量閾值查找子模組,適於根據所述用戶ID查找對應的流量閾值。
第一流量判斷子模組,適於計算所述IP位址對應的流量是否超過所述流量閾值。如果所述IP位址對應的流量超過所述流量閾值,則進入丟棄子模組6244。
丟棄子模組6244,適於丟棄所述資料包。
在本發明實施例中,同樣在不需要增加系統複雜度的情況下,通過將不是由自身負責應對的客戶端的資料包,轉發給同一集群中負責應對該資料包所屬客戶端的服務實體,從而保證同一客戶端的流量落到同一台服務實體上,然後在該服務實體上,基於對應資料包的身份資訊,對該客戶端的資料包進行限速處理。相對於現有的集群限速三類方案,在不增加系統複雜度以及成本的同時,提高了集群限速的適用性、可操作性,以及精確性。
另外,在本發明實施例中,通過在服務實體接收到的由客戶端發送的資料包之外封裝一層IP報文頭和UDP報文頭,然後再將封裝後的資料包轉發至負責應對該資料包所屬的客戶端的服務實體中,從而可以在不需要建立連接的情況下,將資料包轉發至相應地服務實體中,進一步提高了集群限速的適用性、可操作性以及精確性。而且對於封裝了IP報文頭和TCP報文頭的資料包,則需要先在接收的服務實體以及轉發的服務實體之間建立連接,才可以在其兩者之間轉發,所以相對於實施例二中在資料包外封裝IP報文頭和TCP報文頭的方式,本發明實施例所述的在資料包之外封裝IP報文頭和UDP報文頭的方式適應性、可操作性以及效率都更高。
對於裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本發明實施例的實施例可提供為方法、裝置、或電腦程式產品。因此,本發明實施例可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明實施例可採用在一個或多個其中包含有電腦可用程式代碼的電腦可用儲存媒介(包括但不限於磁盤儲存器、CD-ROM、光學儲存器等)上實施的電腦程式產品的形式。
在一個典型的配置中,所述電腦設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。記憶體可能包括電腦可讀媒介中的非永久性儲存器,隨機存取儲存器(RAM)及/或非易失性記憶體等形式,如只讀儲存器(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒介的示例。電腦可讀媒介包括永久性和非永久性、可行動和非可行動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒介的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取儲存器(SRAM)、動態隨機存取儲存器(DRAM)、其他類型的隨機存取儲存器 (RAM)、只讀儲存器(ROM)、電可抹除可編程只讀儲存器(EEPROM)、快閃記憶體或其他記憶體技術、只讀光碟只讀儲存器(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、卡式磁帶,磁帶磁磁盤儲存或其他磁性儲存設備或任何其他非傳輸媒介,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒介不包括非持續性的電腦可讀媒體(transitory media),如調變的資料信號和載波。
本發明實施例是參照根據本發明實施例的方法、終端設備(系統)、和電腦程式產品的流程圖及/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖及/或方塊圖中的每一流程及/或方塊、以及流程圖及/或方塊圖中的流程及/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可編程資料處理終端設備的處理器以產生一個機器,使得通過電腦或其他可編程資料處理終端設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可編程資料處理終端設備以特定方式工作的電腦可讀儲存器中,使得儲存在該電腦可讀儲存器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可編程資料 處理終端設備上,使得在電腦或其他可編程終端設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可編程終端設備上執行的指令提供用於實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
儘管已描述了本發明實施例的較佳實施例,但本領域內的技術人員一旦得知了基本進步性概念,則可對這些實施例做出另外的變更和修改。所以,所附申請專利範圍意欲解釋為包括較佳實施例以及落入本發明實施例範圍的所有變更和修改。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,並不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本發明所提供的一種集群精確限速方法和一種集群精確限速裝置,進行了詳細介紹,本文中應用了具體 個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。

Claims (26)

  1. 一種集群精確限速方法,包括:接收資料包;判斷所述資料包是否為由自身負責應對的客戶端的資料包;如果所述資料包不是由自身負責應對的客戶端的資料包,則將所述資料包轉發給負責應對所述資料包所屬客戶端的服務實體;如果所述資料包是由自身負責應對的客戶端的資料包,則基於所述資料包的身份資訊,對所述資料包進行限速處理。
  2. 根據申請專利範圍第1項所述的方法,其中,所述將所述資料包轉發給負責應對所述資料包所屬客戶端的服務實體的步驟,包括:基於所述資料包的身份資訊,在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部;將封裝了協議頭部的資料包通過交換機轉發給負責應對所述資料包所屬客戶端的服務實體。
  3. 根據申請專利範圍第2項所述的方法,其中,基於所述資料包的身份資訊,在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部的步驟,包括:基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭,或者基於所述資料包的身份資訊,在所述資料包之外 按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
  4. 根據申請專利範圍第3項所述的方法,其中,所述基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭,或者基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭的步驟,包括:獲取所述資料包對應的身份資訊;根據所述身份資訊,選擇同一個五元組;所述五元組包括:源IP位址,目的IP位址,源端口,目的端口,傳輸協議類型;所述目的IP位址為服務實體對應的IP位址;基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭;或者,基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
  5. 根據申請專利範圍第4項所述的方法,其中,當所述身份資訊為IP位址時,所述獲取所述資料包對應的身份資訊的步驟包括:在網路層解析所述資料包的IP報文頭,以獲取IP位址。
  6. 根據申請專利範圍第4項所述的方法,其中,當所述身份資訊為用戶ID時,所述獲取所述資料包 對應的身份資訊的步驟包括:將所述資料包暫存在網路層,同時將所述資料包向上發送至應用層;在應用層解析所述資料包的資料區,以獲取所述資料包的用戶ID。
  7. 根據申請專利範圍第6項所述的方法,其中,所述根據所述身份資訊,選擇同一個五元組的步驟,包括:在應用層根據所述身份資訊,選擇同一個五元組;則在根據所述身份資訊,選擇同一個五元組的步驟之後,還包括:將在應用層獲得的五元組發送至網路層。
  8. 根據申請專利範圍第4項所述的方法,其中,所述基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭的步驟,包括:將所述五元組中的源端口、目的端口封裝到所述資料包之外的UDP報文頭中;將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
  9. 根據申請專利範圍第4項所述的方法,其中,所述基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭的步驟,包括:將所述五元組中的源端口、目的端口封裝到所述資料 包之外的TCP報文頭中;將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
  10. 根據申請專利範圍第2至8項中任一項所述的方法,其中,所述判斷所述資料包是否為由自身負責應對的客戶端的資料包的步驟,包括:判斷所述資料包是由服務實體轉發的資料包還是由客戶端發送的資料包;如果所述資料包是由服務實體轉發的資料包,則確認所述資料包是自身負責應對的客戶端的資料包;如果所述資料包是由客戶端發送的資料包,則確認所述資料包不是由自身負責應對的客戶端的資料包。
  11. 根據申請專利範圍第10項所述的方法,其中,上述判斷所述資料包是由服務實體轉發的資料包還是由客戶端發送的資料包的步驟,包括:針對任一資料包,判斷在所述資料包之外是否存在按照網路傳輸協議的規則封裝的協議頭部;如果在所述資料包之外存在按照網路傳輸協議的規則封裝的協議頭部,則確認所述資料包是自身負責應對的客戶端的資料包;如果在所述資料包之外不存在按照網路傳輸協議的規則封裝的協議頭部,則確認所述資料包不是由自身負責應對的客戶端的資料包。
  12. 根據申請專利範圍第2至8項中任一項的方法, 其中,所述基於所述資料包的身份資訊,對所述資料包進行限速處理的步驟,包括:解除所述資料包之外按照網路傳輸協議的規則封裝的協議頭部;獲取所述資料包的身份資訊;判斷所述身份資訊對應的流量是否超過到流量閾值;如果所述身份資訊對應的流量超過流量閾值,則丟棄所述資料包。
  13. 根據申請專利範圍第12項所述的方法,其中,當所述身份資訊為IP位址時,所述判斷所述身份資訊對應的流量是否達到閾值的步驟,包括:查找所述IP位址對應的用戶ID;根據所述用戶ID查找對應的流量閾值;計算所述IP位址對應的流量是否超過所述流量閾值;如果所述IP位址對應的流量超過所述流量閾值,則丟棄所述資料包。
  14. 一種集群精確限速裝置,包括:接收模組,適於接收資料包;判斷模組,適於判斷所述資料包是否為由自身負責應對的客戶端的資料包;如果所述資料包不是由自身負責應對的客戶端的資料包,則進入轉發模組;如果所述資料包是由自身負責應對的客戶端的資料包,則進入限速模組;轉發模組,適於將所述資料包轉發給負責應對所述資 料包所屬客戶端的服務實體;限速模組,適於基於所述資料包的身份資訊,對所述資料包進行限速處理。
  15. 根據申請專利範圍第14項所述的裝置,其中,所述轉發模組,包括:封裝子模組,適於基於所述資料包的身份資訊,在所述資料包之外再按照網路傳輸協議的規則封裝協議頭部;轉發子模組,適於將封裝了協議頭部的資料包通過交換機轉發給負責應對所述資料包所屬客戶端的服務實體。
  16. 根據申請專利範圍第15項所述的裝置,其中,所述封裝子模組,包括:第一封裝子模組,適於基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭;或者,第二封裝子模組,適於基於所述資料包的身份資訊,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
  17. 根據申請專利範圍第16項所述的裝置,其中,所述第一封裝子模組,或者,第二封裝子模組,包括:身份資訊獲取子模組,適於獲取所述資料包對應的身份資訊;五元組選擇子模組,適於根據所述身份資訊,選擇同一個五元組;所述五元組包括:源IP位址,目的IP位址,源端口,目的端口,傳輸協議類型;所述目的IP位 址為服務實體對應的IP位址;第一報文頭封裝子模組,適於基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和UDP報文頭;或者,第二報文頭封裝子模組,適於基於所述五元組,在所述資料包之外按照網路傳輸協議的規則再封裝一層IP報文頭和TCP報文頭。
  18. 根據申請專利範圍第14項所述的裝置,其中,當所述身份資訊為IP位址時,所述身份資訊獲取子模組包括:第一身份資訊獲取子模組,適於在網路層解析所述資料包的IP報文頭,以獲取IP位址。
  19. 根據申請專利範圍第14項所述的裝置,其中,當所述身份資訊為用戶ID時,所述身份資訊獲取子模組包括:向上發送子模組,適於將所述資料包暫存在網路層,同時將所述資料包向上發送至應用層;第二身份資訊獲取子模組,適於在應用層解析所述資料包的資料區,以獲取所述資料包的用戶ID。
  20. 根據申請專利範圍第19項所述的裝置,其中,所述五元組選擇子模組,包括:應用層五元組選擇子模組,適於在應用層根據所述身份資訊,選擇同一個五元組;則在五元組選擇子模組之後,還包括:發送子模組,適於將在應用層獲得的五元組發送至網 路層。
  21. 根據申請專利範圍第17項所述的裝置,其中,所述第一報文頭封裝子模組,包括:第一端口封裝子模組,適於將所述五元組中的源端口、目的端口封裝到所述資料包之外的UDP報文頭中;IP位址封裝子模組,適於將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
  22. 根據申請專利範圍第17項所述的裝置,其中,所述第二報文頭封裝子模組,包括:第二端口封裝子模組,適於將所述五元組中的源端口、目的端口封裝到所述資料包之外的TCP報文頭中;IP位址封裝子模組,適於將所述五元組中的源IP位址、目的IP位址和傳輸協議類型封裝到所述資料包之外的IP報文頭中。
  23. 根據申請專利範圍第15至21項中任一項所述的裝置,其中,所述判斷模組,包括:判斷子模組,適於判斷所述資料包是由服務實體轉發的資料包還是由客戶端發送的資料包;如果所述資料包是由服務實體轉發的資料包,則確認所述資料包是自身負責應對的客戶端的資料包;如果所述資料包是由客戶端發送的資料包,則確認所述資料包不是由自身負責應對的客戶端的資料包。
  24. 根據申請專利範圍第23項所述的裝置,其中, 所述判斷子模組,包括:協議頭部判斷子模組,適於針對任一資料包,判斷在所述資料包之外是否存在按照網路傳輸協議的規則封裝的協議頭部;如果在所述資料包之外存在按照網路傳輸協議的規則封裝的協議頭部,則進入第一確認子模組;如果在所述資料包之外不存在按照網路傳輸協議的規則封裝的協議頭部,則進入第二確認子模組。
  25. 根據申請專利範圍第15至21項中任一項的裝置,其中,所述限速模組,包括:解除子模組,適於解除所述資料包之外按照網路傳輸協議的規則封裝的協議頭部;資料包身份資訊獲取子模組,適於獲取所述資料包的身份資訊;流量判斷子模組,適於判斷所述身份資訊對應的流量是否超過到流量閾值;如果所述身份資訊對應的流量超過流量閾值,則進入丟棄子模組;丟棄子模組,適於丟棄所述資料包。
  26. 根據申請專利範圍第25項所述的裝置,其中,當所述身份資訊為IP位址時,所述流量判斷子模組,包括:用戶ID查找子模組,適於查找所述IP位址對應的用戶ID;流量閾值查找子模組,適於根據所述用戶ID查找對應的流量閾值; 第一流量判斷子模組,適於計算所述IP位址對應的流量是否超過所述流量閾值;如果所述IP位址對應的流量超過所述流量閾值,則進入丟棄子模組。
TW106105141A 2016-03-25 2017-02-16 集群精確限速方法和裝置 TWI721103B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610179863.9 2016-03-25
CN201610179863.9A CN107231269B (zh) 2016-03-25 2016-03-25 一种集群精确限速方法和装置

Publications (2)

Publication Number Publication Date
TW201737664A true TW201737664A (zh) 2017-10-16
TWI721103B TWI721103B (zh) 2021-03-11

Family

ID=59899247

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106105141A TWI721103B (zh) 2016-03-25 2017-02-16 集群精確限速方法和裝置

Country Status (3)

Country Link
CN (1) CN107231269B (zh)
TW (1) TWI721103B (zh)
WO (1) WO2017162117A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174482B (zh) * 2019-05-21 2023-06-02 超聚变数字技术有限公司 网络设备的报文分流方法和装置
CN115211089B (zh) * 2020-06-04 2023-09-19 深圳市欢太科技有限公司 限速带宽调整方法及装置
CN112039796B (zh) * 2020-08-28 2023-04-18 北京字节跳动网络技术有限公司 数据包传输方法和装置、存储介质和电子设备
CN114301960B (zh) * 2021-12-15 2024-03-15 山石网科通信技术股份有限公司 集群非对称流量的处理方法及装置、电子设备及存储介质
CN114338543B (zh) * 2022-03-14 2022-06-21 北京指掌易科技有限公司 一种网络访问限速方法、装置、设备及存储介质
CN117255058B (zh) * 2023-11-17 2024-02-23 深圳万物安全科技有限公司 网络限速方法、终端设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938502B (zh) * 2009-07-14 2013-03-27 北京邮电大学 一种服务器集群***及负载均衡方法
CN102385804A (zh) * 2010-08-30 2012-03-21 谈宇清 一种智能交通***及其导航方法
CN102025640A (zh) * 2010-12-24 2011-04-20 北京星网锐捷网络技术有限公司 流量控制方法、装置及网络设备
US9866475B2 (en) * 2012-06-15 2018-01-09 Citrix Systems, Inc. Systems and methods for forwarding traffic in a cluster network
US20150236959A1 (en) * 2012-07-23 2015-08-20 F5 Networks, Inc. Autonomously adaptive flow acceleration based on load feedback
CN102882799B (zh) * 2012-09-13 2017-09-01 曙光信息产业(北京)有限公司 流量可控的集群部署配置***与方法
CN105359575A (zh) * 2013-09-24 2016-02-24 华为技术有限公司 一种接入点配置方法和控制器
CN103581036B (zh) * 2013-10-31 2017-05-24 华为技术有限公司 一种虚拟机网络流量的控制方法、装置和***
CN105227488B (zh) * 2015-08-25 2018-05-08 上海交通大学 一种用于分布式计算机平台的网络流组调度方法

Also Published As

Publication number Publication date
CN107231269B (zh) 2020-04-07
TWI721103B (zh) 2021-03-11
CN107231269A (zh) 2017-10-03
WO2017162117A1 (zh) 2017-09-28

Similar Documents

Publication Publication Date Title
TWI721103B (zh) 集群精確限速方法和裝置
CN111654447B (zh) 一种报文传输的方法及装置
US10574763B2 (en) Session-identifer based TWAMP data session provisioning in computer networks
US11979322B2 (en) Method and apparatus for providing service for traffic flow
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
WO2019134383A1 (zh) 控制网络拥塞的方法、接入设备和计算机可读存储介质
WO2021073565A1 (zh) 业务服务提供方法及***
WO2021047515A1 (zh) 一种服务路由方法及装置
US11314417B2 (en) Methods and systems for NVMe target load balancing based on real time metrics
CN113228571B (zh) 用于从驻地网络访问云服务的网络优化的方法和设备
US10009282B2 (en) Self-protecting computer network router with queue resource manager
US11632443B2 (en) Providing multiple TCP connections between a client and server
WO2022001287A1 (zh) 一种报文处理的方法及设备
US10701189B2 (en) Data transmission method and apparatus
WO2020249128A1 (zh) 一种服务路由方法及装置
CN113965518A (zh) 一种报文处理的方法及设备
US10374944B2 (en) Quality of service for data transmission
US11606273B1 (en) Monitoring server performance using server processing time
US10917502B2 (en) Method for using metadata in internet protocol packets
WO2023174170A1 (zh) 报文处理方法、报文校验方法和装置
Shah Comparing TCP-IPv4/TCP-IPv6 Network Performance
WO2023040782A1 (zh) 处理报文的方法、***、设备和存储介质
CN113691410B (zh) 网络性能数据的获取方法、装置和服务器
WO2023005723A1 (zh) 一种报文传输方法以及通信装置
WO2023244872A2 (en) A transport protocol for in-network computing in support of rpc-based applications