專利名稱:一種服務(wù)器瞬間擁塞控制方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及 網(wǎng)絡(luò)安全檢測(cè)和控制領(lǐng)域,更具體地,涉及對(duì)服務(wù)器瞬間擁塞(Flash crowd)的控制。
背景技術(shù):
Web服務(wù)器是互聯(lián)網(wǎng)重要的組成部分,對(duì)服務(wù)器的過載控制一直是眾多網(wǎng)站關(guān)注的問題。瞬間擁塞是指大量用戶同時(shí)訪問服務(wù)器,導(dǎo)致訪問請(qǐng)求超過服務(wù)器處理能力,用戶提交的請(qǐng)求無法順利完成,服務(wù)器性能大幅度下降甚至崩潰的現(xiàn)象。瞬間擁塞往往伴隨著自然災(zāi)害(如地震)或突發(fā)事件(如恐怖襲擊)發(fā)生,無法準(zhǔn)確地預(yù)測(cè)發(fā)生時(shí)間。另一方面,瞬間擁塞具有突發(fā)流量大的特點(diǎn),當(dāng)其發(fā)生時(shí),訪問請(qǐng)求量往往達(dá)到正常情況下的數(shù)十倍甚至數(shù)百倍。目前,對(duì)瞬間擁塞的控制方法主要包括請(qǐng)求(request)級(jí)別的控制策略、基于PID方法的會(huì)話(session)級(jí)別的控制策略、基于資源消耗預(yù)測(cè)的控制策略等3類方法。(1)請(qǐng)求級(jí)別的控制策略,其主要利用返回會(huì)話的返回速率作為檢測(cè)和控制的參數(shù),進(jìn)行請(qǐng)求級(jí)別的控制。該類方法的缺點(diǎn)是忽略了對(duì)用戶會(huì)話完整性的保護(hù),導(dǎo)致大量的會(huì)話半途而廢。(2)基于PID方法的會(huì)話級(jí)別的控制策略,其基于經(jīng)典反饋控制策略PID方法,利用請(qǐng)求返回時(shí)延作為檢測(cè)和控制的參數(shù),采取一旦開始服務(wù)就完成的策略,進(jìn)行會(huì)話的準(zhǔn)入控制。該類方法的缺點(diǎn)是容易導(dǎo)致服務(wù)器負(fù)載振蕩,造成大量數(shù)據(jù)包重傳。(3)基于資源消耗預(yù)測(cè)的控制策略,其根據(jù)服務(wù)器的處理能力,采取了基于測(cè)量 (measurement-based)的準(zhǔn)入控制,根據(jù)請(qǐng)求的執(zhí)行情況,在線估計(jì)請(qǐng)求的資源消耗,來決定一個(gè)請(qǐng)求或者會(huì)話是否準(zhǔn)入。該類方法的缺點(diǎn)是需要對(duì)資源消耗進(jìn)行長(zhǎng)時(shí)間學(xué)習(xí),預(yù)測(cè)通常不夠準(zhǔn)確,同時(shí)需要部署在服務(wù)器內(nèi)部,在過載時(shí)極大地消耗了服務(wù)器的計(jì)算能力,進(jìn)一步加重了服務(wù)器的處理負(fù)擔(dān)。
發(fā)明內(nèi)容
為解決上述技術(shù)問題,本發(fā)明的目的在于提供一種服務(wù)器瞬間擁塞控制方法,其能夠保護(hù)會(huì)話完整性,避免因服務(wù)器負(fù)載振蕩而導(dǎo)致的大量數(shù)據(jù)包重傳,同時(shí)無需學(xué)習(xí)或訓(xùn)練,且計(jì)算開銷小。根據(jù)本發(fā)明一個(gè)方面,提供了一種服務(wù)器瞬間擁塞控制方法,其中的控制狀態(tài)包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),其中所述第一狀態(tài)中,根據(jù)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延以及是否來自未開始服務(wù)的會(huì)話來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;所述第二狀態(tài)中,根據(jù)當(dāng)前時(shí)隙是否已滿、當(dāng)前時(shí)隙內(nèi)請(qǐng)求轉(zhuǎn)發(fā)數(shù)、數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延和是否來自未開始服務(wù)的會(huì)話來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;所述第三狀態(tài)中,根據(jù)是否來自未開始服務(wù)的會(huì)話、當(dāng)前時(shí)間距上一個(gè)會(huì)話開始時(shí)間間隔、當(dāng)前時(shí)隙是否已滿和數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;
其中初始狀態(tài)為第一狀態(tài),所述方法包括 1)接收數(shù)據(jù)包,根據(jù)當(dāng)前控制狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā);其中初始狀態(tài)為第一狀態(tài)2)比較數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延與檢測(cè)閾值,根據(jù)比較的結(jié)果進(jìn)行控制狀態(tài)轉(zhuǎn)變或者保持原有狀態(tài),其中當(dāng)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延大于或等于檢測(cè)閾值時(shí),從所述第一狀態(tài)轉(zhuǎn)為第二狀態(tài)或從所述第二狀態(tài)轉(zhuǎn)為第三狀態(tài),當(dāng)當(dāng)前時(shí)間與上一個(gè)會(huì)話之間的時(shí)間間隔大于會(huì)話準(zhǔn)入時(shí)間間隔、數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延小于或等于檢測(cè)閾值且當(dāng)前請(qǐng)求到達(dá)數(shù)小于請(qǐng)求轉(zhuǎn)發(fā)上限時(shí),所述第三狀態(tài)轉(zhuǎn)為第一狀態(tài)。上述方法中,所述第一狀態(tài)中的數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延是數(shù)據(jù)包在滑動(dòng)窗口內(nèi)的平均請(qǐng)求返回時(shí)延。上述方法中,根據(jù)所述第一狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā)進(jìn)一步包括10)對(duì)于當(dāng)前滑動(dòng)窗口未滿的情況,轉(zhuǎn)發(fā)數(shù)據(jù)包;11)對(duì)于當(dāng)前滑動(dòng)窗口已滿的情況,計(jì)算當(dāng)前滑動(dòng)窗口內(nèi)的平均請(qǐng)求返回時(shí)延;12)對(duì)于平均請(qǐng)求返回時(shí)延小于檢測(cè)閾值的情況,移動(dòng)當(dāng)前滑動(dòng)窗口,記錄請(qǐng)求到達(dá)時(shí)間,轉(zhuǎn)發(fā)請(qǐng)求;13)對(duì)于平均請(qǐng)求返回時(shí)延大于或等于檢測(cè)閾值的情況,轉(zhuǎn)發(fā)來自已開始服務(wù)的數(shù)據(jù)包,丟棄來自未開始服務(wù)的會(huì)話的數(shù)據(jù)包。上述方法中,根據(jù)所述第二狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā)進(jìn)一步包括20)判斷當(dāng)前時(shí)隙是否已滿,對(duì)于未滿的情況,轉(zhuǎn)步驟21),否則轉(zhuǎn)步驟22);21)如果當(dāng)前時(shí)隙內(nèi)請(qǐng)求轉(zhuǎn)發(fā)數(shù)小于請(qǐng)求轉(zhuǎn)發(fā)上限,則轉(zhuǎn)發(fā)來自已開始服務(wù)的數(shù)據(jù)包,否則丟棄數(shù)據(jù)包;22)判斷當(dāng)前時(shí)隙內(nèi)平均請(qǐng)求返回時(shí)延是否小于檢測(cè)閾值;23)對(duì)于小于檢測(cè)閾值的情況,如果當(dāng)前時(shí)隙內(nèi)請(qǐng)求轉(zhuǎn)發(fā)數(shù)小于請(qǐng)求轉(zhuǎn)發(fā)上限,則轉(zhuǎn)發(fā)來自已開始服務(wù)的數(shù)據(jù)包,否則丟棄數(shù)據(jù)包;24)對(duì)于大于或等于檢測(cè)閾值的情況,轉(zhuǎn)發(fā)來自已開始服務(wù)的數(shù)據(jù)包,丟棄來自未開始服務(wù)的會(huì)話的數(shù)據(jù)包。上述方法中,根據(jù)所述第三狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā)進(jìn)一步包括30)判斷所接收的數(shù)據(jù)包是否來自已開始服務(wù),如果是,則轉(zhuǎn)發(fā),否則轉(zhuǎn)入步驟 31);31)判斷當(dāng)前時(shí)間距上一個(gè)會(huì)話開始時(shí)間間隔是否小于會(huì)話準(zhǔn)入時(shí)間間隔,如果小于或等于,則丟棄該數(shù)據(jù)包;否則,轉(zhuǎn)發(fā)該數(shù)據(jù)包,并且對(duì)于當(dāng)前時(shí)隙已滿且當(dāng)前時(shí)隙內(nèi)的平均請(qǐng)求返回時(shí)延大于或等于檢測(cè)閾值的情況,增加會(huì)話準(zhǔn)入時(shí)間間隔。根據(jù)本發(fā)明的另一方面,還提供了一種服務(wù)器瞬間擁塞控制系統(tǒng),所述系統(tǒng)的控制狀態(tài)包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),其中所述第一狀態(tài)中,根據(jù)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延以及是否來自未開始服務(wù)的會(huì)話來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;
所述第二狀態(tài)中,根據(jù)當(dāng)前時(shí)隙是否已滿、當(dāng)前時(shí)隙內(nèi)請(qǐng)求轉(zhuǎn)發(fā)數(shù)、數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延和是否來自未開始服務(wù)的會(huì)話來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;所述第三狀態(tài)中,根據(jù)是否來自未開始服務(wù)的會(huì)話、當(dāng)前時(shí)間距上一個(gè)會(huì)話開始時(shí)間間隔、當(dāng)前時(shí)隙是否已滿和數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;其中初始狀態(tài)為第一狀態(tài),所述系統(tǒng)包括數(shù)據(jù)包處理模塊,用于接收數(shù)據(jù)包,根據(jù)當(dāng)前控制狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā);控制狀態(tài)確定模塊,用于比較數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延與檢測(cè)閾值,根據(jù)比較的結(jié)果進(jìn)行控制狀態(tài)轉(zhuǎn)變或者保持原有狀態(tài),其中當(dāng)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延大于或等于檢測(cè)閾值時(shí),從所述第一狀態(tài)轉(zhuǎn)為第二狀態(tài)或從所述第二狀態(tài)轉(zhuǎn)為第三狀態(tài),當(dāng)當(dāng)前時(shí)間與上一個(gè)會(huì)話之間的時(shí)間間隔大于會(huì)話準(zhǔn)入時(shí)間間隔、數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延小于檢測(cè)閾值且當(dāng)前請(qǐng)求到達(dá)數(shù)小于請(qǐng)求轉(zhuǎn)發(fā)上限時(shí),所述第三狀態(tài)轉(zhuǎn)為第一狀態(tài)。上述服務(wù)器瞬間擁塞控制方法及系統(tǒng),可有效緩解大規(guī)模用戶同時(shí)訪問造成的服務(wù)器過載。其能夠保護(hù)會(huì)話完整性和能保護(hù)有價(jià)值的交易會(huì)話,提高服務(wù)器的利用率;在對(duì)服務(wù)器過載控制的同時(shí),有效降低數(shù)據(jù)包到達(dá)邊界路由器的速率,有效降低邊界路由器的計(jì)算開銷;無需建立復(fù)雜的輸入輸出函數(shù),可以避免繁瑣的函數(shù)系數(shù)確定過程,能夠避免服務(wù)器使用率的震蕩;而且不需要預(yù)先學(xué)習(xí)或訓(xùn)練,即插即用。
圖1是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的過濾方法的流程圖;圖2是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的滑動(dòng)窗口初始階段示意圖;圖3(a)至(d)是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的滑動(dòng)窗口調(diào)整階段示意圖;圖4是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的系統(tǒng)部署連接圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對(duì)根據(jù)本發(fā)明一個(gè)實(shí)施例的服務(wù)器瞬間擁塞控制方法和系統(tǒng)進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明所提供的服務(wù)器瞬間擁塞控制方法根據(jù)不同的控制狀態(tài)對(duì)所接收的數(shù)據(jù)包進(jìn)行不同的操作,其中共包括三個(gè)控制狀態(tài)DETECT狀態(tài)、PAS SIVE MITIGATION狀態(tài)和ACTIVE MITIGATION狀態(tài)。其中DETECT狀態(tài)中,主要對(duì)是否發(fā)生了瞬間擁塞進(jìn)行檢測(cè); PASSIVE MITIGATION狀態(tài)中,盡可能降低服務(wù)器的負(fù)載;ACTIVE MITIGATION狀態(tài)中,主要進(jìn)行會(huì)話級(jí)別的瞬間擁塞控制。服務(wù)器瞬間擁塞情況的判斷主要依據(jù)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延,也就是說通常平均請(qǐng)求時(shí)延較大時(shí),從DETECT狀態(tài)轉(zhuǎn)為PASSIVE MITIGATION狀態(tài)或從PASSIVE MITIGATION狀態(tài)轉(zhuǎn)為ACTIVE MITIGATION狀態(tài)。當(dāng)然,隨著時(shí)間的推移,在本發(fā)明所提供系統(tǒng)的控制下,服務(wù)器的擁塞情況可能緩 解,這時(shí)從ACTIVE MITIGATION狀態(tài)重新轉(zhuǎn)為DETECT狀態(tài)。如圖1 流程圖所示,根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,該服務(wù)器瞬間擁塞控制方法包括如下步驟(1)初始化參數(shù)由用戶設(shè)置滑動(dòng)窗口為TSW,TSW開始時(shí)間為當(dāng)前時(shí)間;檢測(cè)閾值為DELAY—LIMIT ;狀態(tài)變量包括DETECT狀態(tài)、PASSIVE MITIGATION狀態(tài)禾口 ACTIVE MITIGATION 狀態(tài),當(dāng)前狀態(tài)為 DETECT 狀態(tài);PAS SIVE MITIGATION 時(shí)隙為 intv-passive ; ACTIVE MITIGATION時(shí)隙為intv-active ;計(jì)時(shí)器的計(jì)數(shù)初始置0,該計(jì)數(shù)用于記錄滑動(dòng)窗口或時(shí)隙內(nèi)已記錄的時(shí)間?;瑒?dòng)窗口或兩種時(shí)隙內(nèi)總請(qǐng)求返回時(shí)延delaySum為0秒。請(qǐng)求到達(dá)數(shù)Rn = 0,會(huì)話到達(dá)數(shù)Sn = 0。為方便計(jì)量,上述變量中,滑動(dòng)窗口、檢測(cè)閾值、兩種時(shí)隙的單位都是秒。本領(lǐng)域普通技術(shù)人員可以理解,該包括滑動(dòng)窗口的實(shí)施例是優(yōu)選的。通過該滑動(dòng)窗口可以控制在一定的時(shí)間內(nèi)進(jìn)行檢測(cè),即滑動(dòng)窗口大小的時(shí)間,具體地,在滑動(dòng)窗口滿時(shí),依據(jù)已記錄時(shí)間跨度內(nèi)的信息進(jìn)行檢測(cè),由此成功地避免了由于流量波動(dòng)導(dǎo)致的因檢測(cè)時(shí)間過短而引起的檢測(cè)誤差。在該優(yōu)選實(shí)施例中,滑動(dòng)窗口每次向前移動(dòng)一秒,即每秒檢測(cè)一次,因此在保證誤檢率低的同時(shí)又可及時(shí)進(jìn)行報(bào)警。下面參考圖2和圖3對(duì)該滑動(dòng)窗口進(jìn)行詳細(xì)介紹,對(duì)于滑動(dòng)窗口主要包括下列兩個(gè)階段的操作階段1 參考圖2,該階段是滑動(dòng)窗口初始階段。剛開始進(jìn)行服務(wù)器瞬間擁塞檢測(cè)時(shí),記錄時(shí)間跨度為0,在該階段中將記錄的時(shí)間跨度增加到滑動(dòng)窗口大小。圖2中所示的滑動(dòng)窗口大小為4秒,在4秒后滑動(dòng)窗口滿,也就是說該階段的持續(xù)時(shí)間為4秒。階段2:參考圖3(a)至(d),該階段是滑動(dòng)窗口調(diào)整階段。在滑動(dòng)窗口已滿時(shí), 進(jìn)行滑動(dòng)窗口移動(dòng)。具體地,滑動(dòng)窗口已滿時(shí),滑動(dòng)窗口整體向前移動(dòng)一秒,其中最后一秒為待記錄時(shí)間,其余秒為已記錄時(shí)間;然后,滑動(dòng)窗口隨時(shí)間再次被填滿;在滑動(dòng)窗口填滿后,將再次向前移動(dòng),如此循環(huán)。(2)接收一個(gè)數(shù)據(jù)包。如果是一個(gè)請(qǐng)求返回?cái)?shù)據(jù)包,則記錄此請(qǐng)求返回時(shí)間,并根據(jù)請(qǐng)求到達(dá)時(shí)間和該請(qǐng)求返回時(shí)間計(jì)算請(qǐng)求返回時(shí)延,將此時(shí)延累加到當(dāng)前滑動(dòng)窗口或時(shí)隙內(nèi)總請(qǐng)求返回時(shí)延delaySum,并轉(zhuǎn)發(fā)該請(qǐng)求返回?cái)?shù)據(jù)包。如果是一個(gè)請(qǐng)求數(shù)據(jù)包,Rn加 1 ;并且,如果當(dāng)前狀態(tài)為DETECT狀態(tài),轉(zhuǎn)入步驟(3),如果當(dāng)前狀態(tài)為PASSIVE MITIGATION 狀態(tài),轉(zhuǎn)入步驟(4),如果當(dāng)前狀態(tài)為ACTIVE MITIGATION狀態(tài),轉(zhuǎn)入步驟(5)。(3)如果所接收的請(qǐng)求數(shù)據(jù)包來自一個(gè)以前未出現(xiàn)過的會(huì)話,當(dāng)前TSW內(nèi)的會(huì)話數(shù)Sn加1。判斷計(jì)時(shí)器的計(jì)數(shù)是否小于TSW,也即判斷TSW是否已滿。如果小于,則記錄請(qǐng)求到達(dá)時(shí)間,對(duì)該請(qǐng)求數(shù)據(jù)包進(jìn)行請(qǐng)求轉(zhuǎn)發(fā),轉(zhuǎn)入步驟(2);否則轉(zhuǎn)入步驟(6)。(4)判斷計(jì)時(shí)器的計(jì)數(shù)是否小于intv-passive。如果小于,則轉(zhuǎn)入步驟(9);否則轉(zhuǎn)入步驟(10)。(5)判斷該請(qǐng)求是否來自已開始服務(wù)的會(huì)話,如果是,記錄請(qǐng)求到達(dá)時(shí)間,轉(zhuǎn)發(fā)該請(qǐng)求,轉(zhuǎn)入步驟(2);否則轉(zhuǎn)入步驟(13)。(6)判斷瞬間擁塞是否發(fā)生。具體而言,計(jì)算當(dāng)前滑動(dòng)窗口內(nèi)的平均請(qǐng)求返回時(shí)延,其中平均請(qǐng)求返回時(shí)延=delaySum/TSW,如果平均請(qǐng)求返回時(shí)延小于DELAY_LIMIT,則認(rèn)為未發(fā)生瞬間擁塞,如果未發(fā)生,則對(duì)滑動(dòng)窗口進(jìn)行移動(dòng),記錄該請(qǐng)求到達(dá)時(shí)間,轉(zhuǎn)發(fā)請(qǐng)求,Rn置1,轉(zhuǎn)入步驟(2);否則認(rèn)為發(fā)生瞬間擁塞,并轉(zhuǎn)入步驟(7)。其中,上述對(duì)滑動(dòng)窗口進(jìn)行移動(dòng)具體包括將當(dāng)前計(jì)時(shí)器的計(jì)數(shù)調(diào)整為當(dāng)前計(jì)數(shù)減1,清空TSW最前一秒內(nèi)的返回時(shí)延記錄、會(huì)話到達(dá)數(shù)和請(qǐng)求到達(dá)數(shù)。(7)當(dāng)前TSW內(nèi)請(qǐng)求速率Rf = Rn/TSff,當(dāng)前TSW內(nèi)的會(huì)話速率Sf = Sn/TSff,并將當(dāng)前狀態(tài)更改為PASSIVE MITIGATION,時(shí)隙調(diào)整為intv-passive,計(jì)時(shí)器清零,請(qǐng)求轉(zhuǎn)發(fā)上限r(nóng)eqLimit = α X Rf,其中參數(shù)α可根據(jù)經(jīng)驗(yàn)選取,優(yōu)選的取值范圍是0. 75至0. 8,Rn、 Sn置為0,請(qǐng)求轉(zhuǎn)發(fā)數(shù)reqForward置為0,轉(zhuǎn)入步驟(8)。
本領(lǐng)域普通技術(shù)人員可以理解,也可以根據(jù)經(jīng)驗(yàn)或系統(tǒng)要求直接選定上述的請(qǐng)求轉(zhuǎn)發(fā)上限r(nóng)eqLimit,而非通過當(dāng)前TSW內(nèi)請(qǐng)求速率進(jìn)行計(jì)算。(8)判斷此請(qǐng)求是否來自已經(jīng)開始服務(wù)的會(huì)話,如果不是,丟棄,轉(zhuǎn)入步驟(2);如果是,記錄請(qǐng)求到達(dá)時(shí)間,轉(zhuǎn)發(fā)該請(qǐng)求,請(qǐng)求轉(zhuǎn)發(fā)數(shù)reqForward加1,Rn加1,轉(zhuǎn)入步驟(2)。(9)判斷此請(qǐng)求是否來自已經(jīng)開始服務(wù)的會(huì)話,并且當(dāng)前時(shí)隙內(nèi)請(qǐng)求轉(zhuǎn)發(fā)數(shù) reqForward小于reqLimit,如果不是,丟棄此請(qǐng)求,轉(zhuǎn)入步驟(2);否則記錄請(qǐng)求到達(dá)時(shí)間, 轉(zhuǎn)發(fā)該請(qǐng)求,reqForward加1,轉(zhuǎn)入步驟(2)。(10)判斷該intv-passive時(shí)隙內(nèi)平均請(qǐng)求返回時(shí)延是否小于DELAY_LIMIT,如果小于,轉(zhuǎn)入步驟(11),否則轉(zhuǎn)入步驟(12)。(11)計(jì)時(shí)器清 0,reqForward 置 0,delaySum 置 0,開始一個(gè)新的 PASSIVE MITIGATION時(shí)隙,進(jìn)入步驟(9)。(12)進(jìn)入 ACTIVE MITIGATION 狀態(tài),會(huì)話準(zhǔn)入時(shí)間間隔 sessionlntv = 1/Sf,時(shí)隙變?yōu)閕ntv-active,計(jì)時(shí)器清0,Rn = 0, delaySum = 0。判斷該請(qǐng)求是否來著已開始服務(wù)的會(huì)話,如果是,記錄該請(qǐng)求到達(dá)時(shí)間,Rn加1,轉(zhuǎn)發(fā)該請(qǐng)求,轉(zhuǎn)入步驟(2)。否則丟棄該請(qǐng)求,轉(zhuǎn)入步驟(2)。(13)當(dāng)前時(shí)間距上一個(gè)會(huì)話開始時(shí)間間隔是否大于sessionlntv,如果小于, 則丟棄該請(qǐng)求,如果大于,則記錄該請(qǐng)求到達(dá)時(shí)間,轉(zhuǎn)發(fā)該請(qǐng)求。判斷計(jì)時(shí)器是否超過 intv-active,如果沒有超過,則轉(zhuǎn)入步驟(2)。否則轉(zhuǎn)入步驟(14)。(14)判斷當(dāng)前時(shí)隙內(nèi)的平均請(qǐng)求返回時(shí)延是否小于DELAY_LIMIT,如果大于或等于,則增加sessionlntv, delaySum置0,Rn置0,計(jì)時(shí)器置0,轉(zhuǎn)入步驟(2)。否則轉(zhuǎn)入步驟 (15)。(15)判斷Rn是否小于reqLimit,如果小于,則狀態(tài)變?yōu)镈ETECT,Rn = 0,delaySum =0,Sn = 0,計(jì)時(shí)器置0,進(jìn)入步驟(2)。否則Rn置0,delaySum置0,計(jì)時(shí)器置0,Sn置0,
轉(zhuǎn)入步驟⑵。根據(jù)本發(fā)明的另一方面,還提供了一種服務(wù)器瞬間擁塞控制系統(tǒng),所述系統(tǒng)的控制狀態(tài)包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),其中所述第一狀態(tài)中,根據(jù)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延以及是否來自未開始服務(wù)的會(huì)話來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;所述第二狀態(tài)中, 根據(jù)當(dāng)前時(shí)隙是否已滿、當(dāng)前時(shí)隙內(nèi)請(qǐng)求轉(zhuǎn)發(fā)數(shù)、數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延和是否來自未開始服務(wù)的會(huì)話來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;所述第三狀態(tài)中,根據(jù)是否來自未開始服務(wù)的會(huì)話、當(dāng)前時(shí)間距上一個(gè)會(huì)話開始時(shí)間間隔、當(dāng)前時(shí)隙是否已滿和數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;且初始狀態(tài)為第一狀態(tài)。該系統(tǒng)包括數(shù)據(jù)包處理模塊,用于接收數(shù)據(jù)包,根據(jù)當(dāng)前控制狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā);控制狀態(tài)確定模塊, 用于比較數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延與檢測(cè)閾值,根據(jù)比較的結(jié)果進(jìn)行控制狀態(tài)轉(zhuǎn)變或者保持原有狀態(tài)。其中當(dāng)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延大于或等于檢測(cè)閾值時(shí),從所述第一狀態(tài)轉(zhuǎn)為第二狀態(tài)或從所述第二狀態(tài)轉(zhuǎn)為第三狀態(tài);當(dāng)當(dāng)前時(shí)間與上一個(gè)會(huì)話之間的時(shí)間間隔大于會(huì)話準(zhǔn)入時(shí)間間隔、數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延大于或等于檢測(cè)閾值且當(dāng)前請(qǐng)求到達(dá)數(shù)小于請(qǐng)求轉(zhuǎn)發(fā)上限時(shí),所述第三狀態(tài)轉(zhuǎn)為第一狀態(tài)。本發(fā)明公開的上述控制系統(tǒng)具有有效控制瞬間擁塞的能力,主要部署于 接入路由器與被保護(hù)網(wǎng)絡(luò)信息系統(tǒng)之間,具體的部署連接方式可參見圖4所示。與部署在服務(wù)器上的控制策略相比,避免了對(duì)服務(wù)器計(jì)算能力大量消耗。應(yīng)該注意到并理解,在不脫離后附的權(quán)利要求所要求的本發(fā)明的精神和范圍的情況下,能夠?qū)ι鲜鲈敿?xì)描述的本發(fā)明做出各種修改和改進(jìn)。因此,要求保護(hù)的技術(shù)方案的范圍不受所給出的任何特定示范教導(dǎo)的限制。
權(quán)利要求
1.一種服務(wù)器瞬間擁塞控制方法,其中的控制狀態(tài)包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),其中所述第一狀態(tài)中,根據(jù)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延以及是否來自未開始服務(wù)的會(huì)話來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;所述第二狀態(tài)中,根據(jù)當(dāng)前時(shí)隙是否已滿、當(dāng)前時(shí)隙內(nèi)請(qǐng)求轉(zhuǎn)發(fā)數(shù)、數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延和是否來自未開始服務(wù)的會(huì)話來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;所述第三狀態(tài)中,根據(jù)是否來自未開始服務(wù)的會(huì)話、當(dāng)前時(shí)間距上一個(gè)會(huì)話開始時(shí)間間隔、當(dāng)前時(shí)隙是否已滿和數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;其中初始狀態(tài)為第一狀態(tài),所述方法包括1)接收數(shù)據(jù)包,根據(jù)當(dāng)前控制狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā);2)比較數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延與檢測(cè)閾值,根據(jù)比較的結(jié)果進(jìn)行控制狀態(tài)轉(zhuǎn)變或者保持原有狀態(tài),其中當(dāng)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延大于或等于檢測(cè)閾值時(shí),從所述第一狀態(tài)轉(zhuǎn)為第二狀態(tài)或從所述第二狀態(tài)轉(zhuǎn)為第三狀態(tài),當(dāng)當(dāng)前時(shí)間與上一個(gè)會(huì)話之間的時(shí)間間隔大于會(huì)話準(zhǔn)入時(shí)間間隔、數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延小于檢測(cè)閾值且當(dāng)前請(qǐng)求到達(dá)數(shù)小于請(qǐng)求轉(zhuǎn)發(fā)上限時(shí),所述第三狀態(tài)轉(zhuǎn)為第一狀態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一狀態(tài)中的數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延是數(shù)據(jù)包在滑動(dòng)窗口內(nèi)的平均請(qǐng)求返回時(shí)延。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述第一狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā)進(jìn)一步包括10)對(duì)于當(dāng)前滑動(dòng)窗口未滿的情況,轉(zhuǎn)發(fā)數(shù)據(jù)包;11)對(duì)于當(dāng)前滑動(dòng)窗口已滿的情況,計(jì)算當(dāng)前滑動(dòng)窗口內(nèi)的平均請(qǐng)求返回時(shí)延;12)對(duì)于平均請(qǐng)求返回時(shí)延小于檢測(cè)閾值的情況,移動(dòng)當(dāng)前滑動(dòng)窗口,記錄請(qǐng)求到達(dá)時(shí)間,轉(zhuǎn)發(fā)請(qǐng)求;13)對(duì)于平均請(qǐng)求返回時(shí)延大于或等于檢測(cè)閾值的情況,轉(zhuǎn)發(fā)來自已開始服務(wù)的數(shù)據(jù)包,丟棄來自未開始服務(wù)的會(huì)話的數(shù)據(jù)包。
4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,根據(jù)所述第二狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā)進(jìn)一步包括20)判斷當(dāng)前時(shí)隙是否已滿,對(duì)于未滿的情況,轉(zhuǎn)步驟21),否則轉(zhuǎn)步驟22);21)如果當(dāng)前時(shí)隙內(nèi)請(qǐng)求轉(zhuǎn)發(fā)數(shù)小于請(qǐng)求轉(zhuǎn)發(fā)上限,則轉(zhuǎn)發(fā)來自已開始服務(wù)的數(shù)據(jù)包, 否則丟棄數(shù)據(jù)包;22)判斷當(dāng)前時(shí)隙內(nèi)平均請(qǐng)求返回時(shí)延是否小于檢測(cè)閾值;23)對(duì)于小于檢測(cè)閾值的情況,如果當(dāng)前時(shí)隙內(nèi)請(qǐng)求轉(zhuǎn)發(fā)數(shù)小于請(qǐng)求轉(zhuǎn)發(fā)上限,則轉(zhuǎn)發(fā)來自已開始服務(wù)的數(shù)據(jù)包,否則丟棄數(shù)據(jù)包;24)對(duì)于大于或等于檢測(cè)閾值的情況,轉(zhuǎn)發(fā)來自已開始服務(wù)的數(shù)據(jù)包,丟棄來自未開始服務(wù)的會(huì)話的數(shù)據(jù)包。
5.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,根據(jù)所述第三狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā)進(jìn)一步包括30)判斷所接收的數(shù)據(jù)包是否來自已開始服務(wù),如果是,則轉(zhuǎn)發(fā),否則轉(zhuǎn)入步驟31);31)判斷當(dāng)前時(shí)間距上一個(gè)會(huì)話開始時(shí)間間隔是否小于會(huì)話準(zhǔn)入時(shí)間間隔,如果小于或等于,則丟棄該數(shù)據(jù)包;否則,轉(zhuǎn)發(fā)該數(shù)據(jù)包,并且對(duì)于當(dāng)前時(shí)隙已滿且當(dāng)前時(shí)隙內(nèi)的平均請(qǐng)求返回時(shí)延大于或等于檢測(cè)閾值的情況,增加會(huì)話準(zhǔn)入時(shí)間間隔。
6. 一種服務(wù)器瞬間擁塞控制系統(tǒng),所述系統(tǒng)的控制狀態(tài)包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),其中所述第一狀態(tài)中,根據(jù)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延以及是否來自未開始服務(wù)的會(huì)話來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;所述第二狀態(tài)中,根據(jù)當(dāng)前時(shí)隙是否已滿、當(dāng)前時(shí)隙內(nèi)請(qǐng)求轉(zhuǎn)發(fā)數(shù)、數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延和是否來自未開始服務(wù)的會(huì)話來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包;所述第三狀態(tài)中,根據(jù)是否來自未開始服務(wù)的會(huì)話、當(dāng)前時(shí)間距上一個(gè)會(huì)話開始時(shí)間間隔、當(dāng)前時(shí)隙是否已滿和數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延來確定丟棄還是轉(zhuǎn)發(fā)數(shù)據(jù)包; 其中初始狀態(tài)為第一狀態(tài), 所述系統(tǒng)包括數(shù)據(jù)包處理模塊,用于接收數(shù)據(jù)包,根據(jù)當(dāng)前控制狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā); 控制狀態(tài)確定模塊,用于比較數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延與檢測(cè)閾值,根據(jù)比較的結(jié)果進(jìn)行控制狀態(tài)轉(zhuǎn)變或者保持原有狀態(tài),其中當(dāng)數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延大于或等于檢測(cè)閾值時(shí),從所述第一狀態(tài)轉(zhuǎn)為第二狀態(tài)或從所述第二狀態(tài)轉(zhuǎn)為第三狀態(tài),當(dāng)當(dāng)前時(shí)間與上一個(gè)會(huì)話之間的時(shí)間間隔大于會(huì)話準(zhǔn)入時(shí)間間隔、數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延小于檢測(cè)閾值且當(dāng)前請(qǐng)求到達(dá)數(shù)小于請(qǐng)求轉(zhuǎn)發(fā)上限時(shí),所述第三狀態(tài)轉(zhuǎn)為第一狀態(tài)。
全文摘要
本發(fā)明提供一種服務(wù)器瞬間擁塞控制方法和系統(tǒng),對(duì)于該方法,其中的控制狀態(tài)包括第一、第二和第三狀態(tài),在各個(gè)狀態(tài)中,不同情況對(duì)數(shù)據(jù)包進(jìn)行不同處理;該方法包括1)接收數(shù)據(jù)包,根據(jù)控制狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā);2)比較數(shù)據(jù)包的平均請(qǐng)求返回時(shí)延與檢測(cè)閾值,根據(jù)比較的結(jié)果進(jìn)行控制狀態(tài)轉(zhuǎn)變或者保持原有狀態(tài),其中當(dāng)平均請(qǐng)求返回時(shí)延較大時(shí),從第一狀態(tài)轉(zhuǎn)為第二狀態(tài)或從第二狀態(tài)轉(zhuǎn)為第三狀態(tài),當(dāng)擁塞情況緩解時(shí),從第三狀態(tài)轉(zhuǎn)為第一狀態(tài)。該方法和系統(tǒng)能夠保護(hù)會(huì)話完整性,避免因服務(wù)器負(fù)載振蕩而導(dǎo)致的大量數(shù)據(jù)包重傳,同時(shí)無需學(xué)習(xí)或訓(xùn)練,且計(jì)算開銷小。
文檔編號(hào)H04L12/56GK102333040SQ20111033384
公開日2012年1月25日 申請(qǐng)日期2011年10月28日 優(yōu)先權(quán)日2011年10月28日
發(fā)明者云曉春, 張永錚, 肖軍 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所