專利名稱:令牌資源流控方法
技術領域:
本發明涉及通信領域,尤其是涉及一種令牌資源流控方法。
背景技術:
滿足以下條件的資源即可稱為令牌資源a.由一個系統分發,供其他系統使用,在使用完成后歸還給分發系統;b.數量有限;c.可重復使用;d.單個資源不能一個時間被多個系統使用;令牌資源就如同一個公司的流動資金,有機體中的血液。此類資源的另一個共同特點就是正常情況下是周轉循環的,而在異常情況下如果出現周轉循環異常,則會影響整個系統的業務。
此類資源在通信網絡中使用較多,比如GSM網絡中的漫游號碼MSRN,切換號碼HON,CDMA網絡中的臨時位置號碼TLDN等,都屬于此類資源。
漫游號碼MSRN是應用于GSM網絡中,用于解決移動被叫用戶呼叫尋址的臨時號碼。TLDN是與MSRN類似的,用于CDMA網絡中用于解決移動被叫用戶呼叫尋址的臨時號碼。漫游號碼是由問詢網絡interrogation network向歸屬網絡home network請求被叫位置時,由拜訪網絡visit network分配的臨時號碼,用于完成從問詢網絡向拜訪網絡尋址。
漫游號碼完全符合令牌資源的條件a.漫游號碼資源是由運營商在網絡規劃初期劃分的,其號碼個數是固定的;b.其生命周期分為分配/使用/釋放三部分;c.漫游號碼是由VLR分配,由GMSC使用,最后由分配它的VLR釋放;d.一個漫游號碼一次只能用來接續一個呼叫。
漫游號碼的使用流程如圖1所示1、呼叫入局到GSMC;2、GMSC向HLR申請被叫路由信息;3、HLR向VMSC請求MSRN/TLDN;4、VMSC向VLR請求MSRN/TLDN;5、VLR分配并返回MSRN/TLDN;6、VMSC向HLR返回MSRN/TLDN;7、HLR向GMSC返回MSRN/TLDN;8、GMSC依據MSRN/TLDN尋址到拜訪網絡的VMSC;9、拜訪網絡釋放分配的MSRN/TLDN并完成接續。
3GPP引入的由GMSC發給VMSC的釋放漫游號碼消息,該方案是由GMSC發送ReleaseMSRN消息給VMSC,用于釋放漫游號碼。
該方案依賴于由GMSC檢測到的漫游號碼資源不能正常釋放。比如在GMSC發生基于智能業務的呼叫改向。一旦呼叫已經依據漫游號碼開始尋址,GMSC將無法判斷漫游號碼是否需要釋放。
同時,該技術依賴于GMSC和VMSC之間的連接正常,在連接異常情況下,無法使用該方案釋放漫游號碼。
此外,還可使用定時器的方法,在定時器超時時強行釋放MSRN/TLDN。
這種方式是VLR進行自我保護的一種方案,這種方案在分配每一個MSRN/TLDN時會為該號碼啟動一個定時器,等到定時器超時時如果還沒有正常釋放MSRN/TLDN,則強行釋放。
然而,這種方法由于沒有控制分配MSRN/TLDN的速度,即沒有控制令牌分發的速度,所以在申請量比較大的情況下,如果出現MSRN/TLDN資源無法正常釋放的情況,MSRN/TLDN的分配情況會是隨時間變化的周期性的峰值和谷值交替的方波形狀,無法保證整個系統的正常運作。
發明內容
本發明要解決的技術問題是克服上述現有技術存在的不足,提供一種令牌資源流控方法,以控制令牌資源的分配速度、令牌資源的釋放速度,保證令牌資源分配拒絕時對周邊系統的影響盡量小并保證令牌資源釋放時機盡量遲后。
為解決上述技術問題,本發明提供一種令牌資源流控方法,包括以下步驟a.設定令牌資源分配速度和令牌資源占用時長的閥值;以及b.根據所述設定對令牌資源申請速度和平均占用時長進行監控而實現流控。
進一步地,所述步驟a進一步包括步驟a1.設定閥值V1=Vmax*t和V2=Vdelay*t,其中t為循環定時器的周期,V為所述周期分配的令牌資源個數,Vmax為令牌資源申請速度急劇增大情況下的分配速度上限,Vdelay為令牌資源占用時長增加情況下的分配速度上限。
進一步地,所述步驟b進一步包括步驟b1.每次分配令牌資源時,如果V<=V2,則分配資源;如果V>V1,則拒絕分配;如果V2<V<=V1,則檢查資源平均占用時長;以及b2.如果資源平均占用時長小于Tnorm,則分配資源,Tnorm為資源占用時長的上限;否則,拒絕分配。
進一步地,每次分配成功時,V增加1。
進一步地,每次定時器超時時,V清0。
進一步地,所述步驟b中在分發每一個令牌資源時,進一步包括步驟c1.為該令牌資源啟動一個定時器,時長為Tmax;c2.當令牌資源正常釋放時,停止該定時器;以及c3.當該定時器超時時,強行釋放該令牌資源。
進一步地,所述步驟b中當資源請求被拒絕時,進一步包括步驟d1.建立存放被拒絕的請求的隊列,對該隊列設定一個定時器,并將所有被拒絕的請求均放入該隊列的隊尾;以及d2.每次定時器超時時,從該隊列的首端取出一個或多個請求,依據該請求發送拒絕消息給申請者。
進一步地,從隊列中取出的請求個數等于隊列的長度/每個請求允許延遲的最長等待時間,計算值如有小數則向上取整。
進一步地,所述步驟c3中當強行釋放部分資源時,進一步包括步驟e1.建立存放需要強制釋放的資源的隊列,為該隊列設定一個循環定時器,每次有資源需要強制釋放時,將其排在隊尾;以及e2.每次定時器超時時,從隊列頭部取出一個或多個資源,強行釋放,取出的資源釋放個數取決于剩余空閑資源的量。
進一步地,資源強制釋放后,空閑資源足夠供下一個周期分配。
本發明具有以下有益的效果(1)可以避免因為令牌類資源耗盡而造成的系統業務異常;(2)在流量控制中兼顧信道速率,不會造成由于突發的大量業務拒絕消息而造成信道擁塞;(3)在令牌資源強制釋放時盡量拖延釋放時機,以避免因資源過早釋放而造成的業務損耗。
圖1是漫游號碼的使用流程圖。
圖2是本發明令牌資源流控方法的流程示意圖。
具體實施例方式
以下結合附圖對本發明進行詳細描述。
令牌資源的個數是有限的,我們將令牌資源的總數看作常量C。
從單個資源的角度看,令牌資源的生命周期是由分配,使用,釋放三部分構成的。
從全部令牌資源使用的角度看,令牌資源的分配速度,釋放速度都可以看作是時間t的函數。
我們將令牌資源的分配速度的函數表示為Valloc(t)將令牌資源的釋放速度的函數表示為Vrel(t)則某一時刻,令牌資源占用的量與時間的函數O(t)為O(t)=∫Valloc(t)-∫Vrel(t)由于受到總量C的限制,則無論如何令牌資源占用量O(t)不可能大于C。同時,如果令牌資源的生命周期長度為固定值1,則有Vrel(t)=Valloc(t-1)即某時刻釋放資源的速度,必然等于1時長以前分配資源的速度。簡單的說,釋放函數Vrel(t)是分配函數Valloc(t)的延遲,延遲時間為1。
在實際的情況下,令牌資源的生命周期是長短不等的,但是從統計的角度講,如果將1認為是生命周期的平均值,即令牌資源平均占用時長,則上面的公式仍然是成立的。
當系統處于穩態平衡時,O(t)是一個恒定值。此時必然存在Vrel(t)=Valloc(t)=恒量v,這樣令牌資源占用量O(t)的其值為O(t)=∫t=0lValloc(t)=v*1]]>當v值變化時,令牌資源占用量O(t)的值也會變化,但是最終仍然會穩定在v*1的水平。
所以,只要令牌資源占用量O(t)=v*1<=C,則令牌資源分配是可以持續進行的。這種情況下,系統是平衡的。
令牌資源在正常使用情況下,由于遵循上面的平衡,所以資源是可以循環利用的。但是當出現異常時,會出現暫時或永遠分配不到令牌資源的情況。在通信網絡中就會出現漫游號碼資源分配不到的情況。
令牌資源使用異常的原因在于(1)突發的大量的申請;(2)大量的延遲釋放導致的剩余資源不足。
第(1)種情況主要出現于系統整體負荷急劇增加的情況下。由于突發的大量的流量,或由于流控機制導致的流量累積,使得這種情況下的申請速度急劇增大。表現在數學模型上,是v值的迅速上升。
第(2)種情況主要出現于整個系統異常,在令牌資源使用的過程中發生異常的流程中斷,使得令牌資源無法正常釋放。表現在數學模型上,是l值的增加。
引入流控機制就是為了解決上面的兩個問題。
對于第(1)種情況,我們可以設定一個分配速度上限Vmax,當分配速度達到或超過這個值時,停止分配資源,直到平均速度低于該值。由于資源總量C是一定的,此時的平均資源占用時長上限表示為Lnorm,則有Vmax*Lnorm=C對于第(2)種情況,我們可以設定一個占用時長上限Lmax,當資源占用時長達到或超過這個值時,強制釋放資源。由于資源總量C是一定的,此時的分配速度上限表示為Vdelay,則有Vdelay*Lmax=C令牌資源在以上兩種情況下,會出現系統業務臨時或永久中斷的問題。為了避免令牌資源耗盡,并盡量維持系統正常業務流量,避免業務臨時或永久中斷的方法均稱為令牌資源流控方法。
令牌資源流控的方法都必須保證有限制令牌資源分配速度的方法;或有強行釋放令牌資源的方法。除此之外,還需要具有令牌資源申請拒絕策略;令牌資源強制釋放策略。
對于突發的大量的申請情況,我們需要限制令牌資源分發的速度。實現此目的的方法,就稱為限制令牌資源分配速度的方法。
限制令牌分發速度的方法必須保證能夠將令牌分配的速度限制在一個指定的范圍內,使得令牌資源分發速度和令牌資源回收的速度相當,以保證令牌資源的正常循環使用。
請參照圖2所示,本專利提供的方法如下設定循環定時器,周期為t;
設本周期分配的個數為V;每次定時器超時時,V清0;設定閥值V1=Vmax*t和V2=Vdelay*t,用于限制漫游號碼分配的量;每次分配令牌資源時,如果V<=V2,則分配資源;如果V2<V<=V1,則檢查資源平均占用時長。
如果資源平均占用時長小于Tnorm,則分配資源;否則,拒絕分配;如果本周期分配的個數>V1,則拒絕分配;每次分配成功時,V增加1。
該方法既可以保證在正常情況下盡可能多的分配資源,又可以保證在資源占用時間增加的情況下業務流量的平穩運行。
對于大量的延遲釋放導致的剩余令牌資源不足情況,我們需要限制一個閥值,當資源占用時長到達閥值時,則需要強制釋放部分令牌資源,以保證后續的令牌資源分配。這個過程使用的方法就稱為強行釋放令牌資源的方法。
強行釋放令牌資源的方法需要保證剩余的空閑令牌資源能夠足夠下一個令牌資源分發周期的正常分發。
本專利提供的方法如下在分發每一個令牌資源時,為該令牌資源啟動一個定時器,時長為Tmax;當令牌資源正常釋放時,停止該定時器;當該定時器超時時,強行釋放該令牌資源。
在具體的軟件實現上,只要能夠實現對于申請速度和平均占用時長的監控,并依據設定的速度和占用時長閥值進行流控即可。所有應用上述數學模型作為算法思路的均屬于本專利的保護范疇。
對于大量的延遲釋放導致的剩余資源不足情況下(即上面描述的第(2)種情況)的分配策略
在每次分配令牌資源時,為該令牌資源啟動定時器,時長為Tmax;在定時器超時前,如果收到釋放資源的指示時,釋放分配的資源,并停止定時器;當定時器超時時,立即釋放分配的令牌資源。
當令牌資源申請量過大時,依據資源流控方法,將會拒絕部分資源請求。對于被拒絕的資源請求的處理稱為申請拒絕策略。所有的申請拒絕策略都必須保證不會造成其他資源(包括但不限于內存、狀態機、電路等)部分或全部無法重復使用。所有符合要求的拒絕策略均在本專利保護范圍。
本發明提供的策略如下建立一個隊列,用于存放被拒絕的請求;對該隊列設定一個很短的定時器;所有被拒絕的請求均放入該隊列的隊尾;每次定時器超時時,從該隊列的首端取出一個或多個請求,依據該請求發送拒絕消息給申請者。從隊列中取出的請求個數等于隊列的長度/每個請求允許延遲的最長等待時間,計算值如有小數則需要向上取整。
通過該策略可以保證不丟棄申請,并在申請允許延遲的最長等待時間內返回拒絕消息。并且拒絕消息的發送速度是均勻的,不會出現因為突發的大量拒絕造成鏈路負荷的上升。
當依據資源流控算法需要強行釋放部分資源時,會強制釋放一部分資源。強制釋放資源的策略就是資源強制釋放策略。所有的資源強制釋放策略都必須保證強制釋放后的資源可以重復使用,并且本資源強制釋放不會造成周邊其他資源(包括但不限于內存、狀態機、電路等)部分或全部無法重復使用。所有符合該要求的資源強制釋放策略均在本專利保護范圍。
本發明建議的資源強制釋放策略如下建立一個隊列,用于存放需要強制釋放的資源;為該隊列設定一個循環定時器;
每次有資源需要強制釋放時,則排在隊尾;每次定時器超時時,從隊列頭部取出一個或多個資源,強行釋放。取出的資源釋放個數取決于剩余空閑資源的量。
資源強制釋放后需要保證空閑資源足夠下一個周期分配資源即可。
這樣可以盡量的拖延資源釋放的時間,以避免因為資源釋放太早而造成的業務損耗。
權利要求
1.一種令牌資源流控方法,包括以下步驟a.設定令牌資源分配速度和令牌資源占用時長的閥值;以及b.根據所述設定對令牌資源申請速度和平均占用時長進行監控而實現流控。
2.根據權利要求1所述的令牌資源流控方法,其特征在于所述步驟a進一步包括步驟a1.設定閥值V1=Vmax*t和V2=Vdelay*t,其中t為循環定時器的周期,V為所述周期分配的令牌資源個數,Vmax為令牌資源申請速度急劇增大情況下的分配速度上限,Vdelay為令牌資源占用時長增加情況下的分配速度上限。
3.根據權利要求2所述的令牌資源流控方法,其特征在于所述步驟b進一步包括步驟b1.每次分配令牌資源時,如果V<=V2,則分配資源;如果V>V1,則拒絕分配;如果V2<V<=V1,則檢查資源平均占用時長;以及b2.如果資源平均占用時長小于Tnorm,則分配資源,Tnorm為資源占用時長的上限;否則,拒絕分配。
4.根據權利要求2所述的令牌資源流控方法,其特征在于每次分配成功時,V增加1。
5.根據權利要求2所述的令牌資源流控方法,其特征在于每次定時器超時時,V清0。
6.根據權利要求3所述的令牌資源流控方法,其特征在于所述步驟b中在分發每一個令牌資源時,進一步包括步驟c1.為該令牌資源啟動一個定時器,時長為Tmax;c2.當令牌資源正常釋放時,停止該定時器;以及c3.當該定時器超時時,強行釋放該令牌資源。
7.根據權利要求3所述的令牌資源流控方法,其特征在于所述步驟b中當資源請求被拒絕時,進一步包括步驟d1.建立存放被拒絕的請求的隊列,對該隊列設定一個定時器,并將所有被拒絕的請求均放入該隊列的隊尾;以及d2.每次定時器超時時,從該隊列的首端取出一個或多個請求,依據該請求發送拒絕消息給申請者。
8.根據權利要求7所述的令牌資源流控方法,其特征在于從隊列中取出的請求個數等于隊列的長度/每個請求允許延遲的最長等待時間,計算值如有小數則向上取整。
9.根據權利要求6所述的令牌資源流控方法,其特征在于所述步驟c3中當強行釋放部分資源時,進一步包括步驟e1.建立存放需要強制釋放的資源的隊列,為該隊列設定一個循環定時器,每次有資源需要強制釋放時,將其排在隊尾;以及e2.每次定時器超時時,從隊列頭部取出一個或多個資源,強行釋放,取出的資源釋放個數取決于剩余空閑資源的量。
10.根據權利要求9所述的令牌資源流控方法,其特征在于資源強制釋放后,空閑資源足夠供下一個周期分配。
全文摘要
本發明提供一種令牌資源流控方法,包括以下步驟a.設定令牌資源分配速度和令牌資源占用時長的閥值;以及b.根據所述設定對令牌資源申請速度和平均占用時長進行監控而實現流控。本發明具有以下有益的效果(1)可以避免因為令牌類資源耗盡而造成的系統業務異常;(2)在流量控制中兼顧信道速率,不會造成由于突發的大量業務拒絕消息而造成信道擁塞;(3)在令牌資源強制釋放時盡量拖延釋放時機,以避免因資源過早釋放而造成的業務損耗。
文檔編號H04L29/06GK101060471SQ20061006132
公開日2007年10月24日 申請日期2006年6月23日 優先權日2006年6月23日
發明者和江濤 申請人:華為技術有限公司