專利名稱:短消息重試方法及短消息網(wǎng)關(guān)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種短消息重試方法及短消息網(wǎng)關(guān)。
背景技術(shù):
短消息業(yè)務(wù)由于自身方便快捷、經(jīng)濟實用、覆蓋面廣等特點,已經(jīng)成為傳遞非正式 消息的標準方式,并應(yīng)用于人們生活的各個方面。其中,一個非常廣泛的應(yīng)用領(lǐng)域就是,服 務(wù)提供商(Service Provider,簡稱為SP)可以通過短消息網(wǎng)關(guān)接入到核心網(wǎng)中,并借助短 消息網(wǎng)關(guān)為用戶提供各種業(yè)務(wù)。這是短消息網(wǎng)關(guān)的主要功能之一,此外,為了實現(xiàn)對短消息 業(yè)務(wù)的監(jiān)管,短消息網(wǎng)關(guān)還可以接入消息過濾平臺、SP管理平臺等中間網(wǎng)元,短消息在網(wǎng)關(guān) 處需要去這些中間網(wǎng)元進行鑒權(quán)等操作。由此可見,網(wǎng)關(guān)是一個短消息的匯聚點,其網(wǎng)絡(luò)通信是非常頻繁的。而隨著短消息 業(yè)務(wù)的不斷發(fā)展,短消息網(wǎng)關(guān)的網(wǎng)絡(luò)資源也變得越來越緊張,網(wǎng)絡(luò)擁塞的情況也出現(xiàn)得越 來越頻繁。當網(wǎng)絡(luò)較為擁塞時,短消息網(wǎng)關(guān)發(fā)送消息到其他網(wǎng)元時經(jīng)常會發(fā)送失敗。當出現(xiàn) 這種由于網(wǎng)絡(luò)擁塞而引起消息發(fā)送失敗的情況時,網(wǎng)關(guān)一般都設(shè)置有重試機制來保證消息 最終能夠發(fā)送到目的網(wǎng)元。相關(guān)技術(shù)中,短消息網(wǎng)關(guān)的重試機制是在發(fā)送短消息的時刻開 始,等待固定的時間間隔后仍然未接收到響應(yīng),則再次重新嘗試發(fā)送消息。這就引入了一個 問題,如果當這固定時間間隔后,網(wǎng)絡(luò)再次達到了一個較為擁塞的狀態(tài),或者說這段時間之 內(nèi),網(wǎng)絡(luò)一直沒有恢復到空閑狀態(tài),那么此時的消息重試就仍然很可能會失敗。同時,大量 消息的重試反過來又會消耗更多的網(wǎng)絡(luò)資源,在網(wǎng)絡(luò)本身已經(jīng)比較擁塞的情況下,這種消 息重試可能會造成網(wǎng)絡(luò)進一步擁塞,進而進入一個惡性循環(huán)網(wǎng)絡(luò)的擁塞使得重試的消息 越來越多,而越來越多的重試消息又使得網(wǎng)絡(luò)越來越擁塞。隨著短消息業(yè)務(wù)的蓬勃發(fā)展,短消息流量越來越大,出現(xiàn)上述情況的可能性也越 來越大。網(wǎng)絡(luò)擴容雖然是解決問題的一種途徑,但是另一方面,如何在現(xiàn)有網(wǎng)絡(luò)設(shè)備的條件 下,提供更加合理的處理方式也是當前需要解決的問題。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種短消息網(wǎng)關(guān)的重試方法及短消息網(wǎng)關(guān),以至少解 決上述問題。本發(fā)明的一個方面提供了一種短消息重試方法,包括短消息網(wǎng)關(guān)確定當前網(wǎng)絡(luò) 的擁塞程度;根據(jù)當前網(wǎng)絡(luò)的擁塞程度確定待重試的短消息的重試策略;使用重試策略對 待重試的短消息進行重試。進一步地,根據(jù)當前網(wǎng)絡(luò)的擁塞程度確定待重試的短消息的重試策略包括將不 同的擁塞程度劃分為不同的擁塞等級,擁塞等級用于表示重試的待重試的短消息的數(shù)量。進一步地,根據(jù)當前網(wǎng)絡(luò)的擁塞程度確定待重試的短消息的重試策略包括將不 同的擁塞程度劃分為不同的擁塞等級,擁塞等級用于表示重試的待重試的短消息的優(yōu)先
3級。進一步地,短消息網(wǎng)關(guān)確定當前網(wǎng)絡(luò)的擁塞程度包括短消息網(wǎng)關(guān)記錄發(fā)出的每 條短消息的響應(yīng)時長;短消息網(wǎng)關(guān)對預定時間段內(nèi)接收到響應(yīng)的短消息所對應(yīng)的響應(yīng)時長 取均值;將不同的擁塞程度劃分為不同的擁塞等級包括根據(jù)均值所在的取值范圍,確定 當前網(wǎng)絡(luò)的擁塞等級。進一步地,使用重試策略對待重試的短消息進行重試包括按照待重試的短消息 的優(yōu)先級從高到低的順序,對預定數(shù)量的待重試的短消息進行重試,其中,預定數(shù)量為當前 擁塞等級所表示的數(shù)量。進一步地,擁塞等級隨著當前網(wǎng)絡(luò)的擁塞程度的提高而增加,重試的待重試的短 消息的優(yōu)先級隨擁塞等級的增加而提高。進一步地,使用重試策略對待重試的短消息進行重試,直到當前調(diào)度周期內(nèi)已重 試的短消息的數(shù)量達到閾值。進一步地,閾值=短消息網(wǎng)元的消息發(fā)送隊列中消息堆積數(shù)的預警值_短消息網(wǎng) 元的消息發(fā)送隊列中當前堆積的短消息的數(shù)量。本發(fā)明的另一個方面提供了一種短消息網(wǎng)關(guān),包括第一確定模塊,用于確定當前 網(wǎng)絡(luò)的擁塞程度;第二確定模塊,用于根據(jù)當前網(wǎng)絡(luò)的擁塞程度確定待重試的短消息的重 試策略;重試模塊,用于使用重試策略對待重試的短消息進行重試。進一步地,第二確定模塊包括第一劃分模塊,用于將不同的擁塞程度劃分為不同 的擁塞等級,擁塞等級用于表示重試的待重試的短消息的數(shù)量;或者,第二劃分模塊,用于 將不同的擁塞程度劃分為不同的擁塞等級,擁塞等級用于表示重試的待重試的短消息的優(yōu) 先級。通過本發(fā)明,根據(jù)當前網(wǎng)絡(luò)的擁塞程度確定重試策略,并根據(jù)該策略進行短消息 的重試,解決了相關(guān)技術(shù)中的重試方法易導致網(wǎng)絡(luò)阻塞的問題,降低了重試消息對于網(wǎng)絡(luò) 繁忙程度的影響,減小了大量消息重試所引起的網(wǎng)絡(luò)擁塞的發(fā)生概率,提高了網(wǎng)絡(luò)資源的 利用率。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中圖1是根據(jù)本發(fā)明實施例的短消息重試方法的流程圖;圖2是根據(jù)本發(fā)明實施例的短消息網(wǎng)關(guān)的結(jié)構(gòu)框圖;圖3是根據(jù)本發(fā)明實施例的短消息網(wǎng)關(guān)的優(yōu)選結(jié)構(gòu)框圖一;圖4是根據(jù)本發(fā)明實施例的短消息網(wǎng)關(guān)的優(yōu)選結(jié)構(gòu)框圖二 ;圖5是根據(jù)實施例1的短消息網(wǎng)關(guān)的詳細結(jié)構(gòu)框圖;圖6是根據(jù)實施例3的分派重試消息到相應(yīng)重試隊列的流程圖;圖7是根據(jù)實施例3的通過收集并計算平均消息響應(yīng)時長的方式來判斷當前網(wǎng)絡(luò) 狀況的流程圖;圖8是根據(jù)實施例3的消息重試過程的流程圖。
具體實施例方式下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的 情況下,本申請中的實施例及實施例中的特征可以相互組合。本實施例提供了一種短消息重試方法,圖1是根據(jù)本發(fā)明實施例的短消息重試方 法的流程圖,該方法包括步驟S102,短消息網(wǎng)關(guān)確定當前網(wǎng)絡(luò)的擁塞程度;步驟S104,根據(jù)當前網(wǎng)絡(luò)的擁塞程度確定待重試的短消息的重試策略;步驟S106,使用重試策略對待重試的短消息進行重試。通過長時間對現(xiàn)網(wǎng)短消息業(yè)務(wù)的統(tǒng)計分析后發(fā)現(xiàn),短消息的流量有閑時和忙時之 分,不可能一直保持某一個峰值。這就說明,網(wǎng)絡(luò)并沒有真正達到飽和。因此,區(qū)別于相關(guān)技 術(shù)中在發(fā)出短消息的固定時長后進行重試的方法,該實施例根據(jù)當前網(wǎng)絡(luò)的擁塞程度來決 定后續(xù)的重試策略,在重試時充分考慮了網(wǎng)絡(luò)的擁塞情況,降低了重試消息對于網(wǎng)絡(luò)繁忙 程度的影響,減小了大量消息重試所引起的網(wǎng)絡(luò)擁塞的發(fā)生概率;并且,根據(jù)網(wǎng)絡(luò)的擁塞、 空閑情況動態(tài)的調(diào)整重試策略,可以達到充分利用網(wǎng)絡(luò)資源的目的,提高了網(wǎng)絡(luò)資源的利 用率。擁塞程度可以通過多種方式來確定,以及可以通過多種參數(shù)來表征,例如,可以通 過正常發(fā)送的短消息的響應(yīng)時長來表征當前的擁塞程度,在實際應(yīng)用中,為了得到更加平 滑的結(jié)果,可以通過以下的方式來確定當前的擁塞程度(以響應(yīng)時長來體現(xiàn))短消息網(wǎng)關(guān) 記錄發(fā)出的每條短消息的響應(yīng)時長;短消息網(wǎng)關(guān)對預定時間段內(nèi)接收到響應(yīng)的短消息所對 應(yīng)的響應(yīng)時長取均值,這個均值即可作為體現(xiàn)當前網(wǎng)絡(luò)的擁塞程度的參數(shù)。為了便于處理, 可以將不同的擁塞程度劃分為不同的擁塞等級,具體地,可以根據(jù)均值所在的取值范圍,確 定當前網(wǎng)絡(luò)的擁塞等級。在實際應(yīng)用中,重試策略的確定可以由短消息網(wǎng)關(guān)來確定;也可以由短消息網(wǎng)關(guān) 將擁塞程度通知給遠程的決策服務(wù)器,再接收來自遠程的決策服務(wù)器的重試策略。重試策 略可以根據(jù)具體的網(wǎng)絡(luò)狀況或根據(jù)網(wǎng)管人員的預先設(shè)置來確定,為了便于理解,以下列舉 兩種根據(jù)當前網(wǎng)絡(luò)的擁塞程度確定待重試的短消息的重試策略的例子(1)將不同的擁塞程度劃分為不同的擁塞等級,其中,擁塞等級用于表示重試的待 重試的短消息的數(shù)量。也就是說,根據(jù)網(wǎng)絡(luò)的擁塞程度來確定進行重試的短消息的數(shù)量,這 種方式可以非常有效地控制短消息重試對當前網(wǎng)絡(luò)的影響。優(yōu)選地,在重試過程中,可以按照待重試的短消息的優(yōu)先級從高到低的順序,對預 定數(shù)量的待重試的短消息進行重試,其中,預定數(shù)量為當前擁塞等級所表示的數(shù)量。通過這 種方式,能夠優(yōu)先處理優(yōu)先級較高的短消息,保證重要業(yè)務(wù)的優(yōu)先進行。(2)將不同的擁塞程度劃分為不同的擁塞等級,擁塞等級用于表示重試的待重試 的短消息的優(yōu)先級。也就是說,可以根據(jù)網(wǎng)絡(luò)的擁塞程度來確定發(fā)送的短消息的優(yōu)先級,對 與確定的優(yōu)先級一致的短消息進行重試,不一致的則暫不重試,這種方式能夠在有限的網(wǎng) 絡(luò)資源下,優(yōu)先保證重要業(yè)務(wù)的進行。在網(wǎng)絡(luò)處于不同忙閑狀態(tài)的時候,允許重試不同優(yōu)先級的消息,例如當網(wǎng)絡(luò)較為 空閑時,網(wǎng)關(guān)對所有待重試的消息進行重試;當網(wǎng)絡(luò)處于某一程度的擁塞狀態(tài)時,網(wǎng)關(guān)按其 擁塞程度,選擇不同優(yōu)先級的待重試消息進行重試;當網(wǎng)絡(luò)非常擁塞時,網(wǎng)關(guān)暫停所有消息的重試。在有限資源下,為了保證重要業(yè)務(wù)的進行,可以設(shè)置擁塞等級隨著當前網(wǎng)絡(luò)的擁塞 程度的提高而增加,重試的待重試的短消息的優(yōu)先級隨擁塞等級的增加而提高。在使用重試策略對待重試的短消息進行重試的過程中,為了防止出現(xiàn)浪涌,可以 為消息重試設(shè)置合適的流控策略,例如,在重試中,可以持續(xù)使用重試策略對待重試的短消 息進行重試,直到當前調(diào)度周期內(nèi)已重試的短消息的數(shù)量達到閾值,進一步降低了消息重 試對網(wǎng)絡(luò)帶來的沖擊。以上的閾值可以由網(wǎng)管人員預先設(shè)定,作為一種優(yōu)選的實施方式,為了防止消息 發(fā)送隊列的溢出,可以設(shè)置閾值=短消息網(wǎng)元的消息發(fā)送隊列中消息堆積數(shù)的預警值-短 消息網(wǎng)元的消息發(fā)送隊列中當前堆積的短消息的數(shù)量。以上的方法,通過計算最近一段時間內(nèi)網(wǎng)關(guān)發(fā)送消息的平均響應(yīng)時長,判斷當前 網(wǎng)絡(luò)擁塞情況;然后對經(jīng)過網(wǎng)關(guān)的消息劃分優(yōu)先級,在網(wǎng)絡(luò)處于不同忙閑狀態(tài)的時候,允許 重試不同優(yōu)先級的消息,或允許重試不同數(shù)量的消息;選擇需要重試的消息后,再為消息重 試設(shè)置合適的流控策略,進一步降低了消息重試對網(wǎng)絡(luò)帶來的沖擊。本實施例還提供了一種短消息網(wǎng)關(guān),圖2是根據(jù)本發(fā)明實施例的短消息網(wǎng)關(guān)的結(jié) 構(gòu)框圖,其包括第一確定模塊22,用于確定當前網(wǎng)絡(luò)的擁塞程度;第二確定模塊24,用于 根據(jù)當前網(wǎng)絡(luò)的擁塞程度確定待重試的短消息的重試策略;重試模塊26,用于使用重試策 略對待重試的短消息進行重試。圖3是根據(jù)本發(fā)明實施例的短消息網(wǎng)關(guān)的優(yōu)選結(jié)構(gòu)框圖一,如圖3所示,第二確定 模塊24可以包括第一劃分模塊32,用于將不同的擁塞程度劃分為不同的擁塞等級,擁塞 等級用于表示重試的待重試的短消息的數(shù)量。圖4是根據(jù)本發(fā)明實施例的短消息網(wǎng)關(guān)的優(yōu)選結(jié)構(gòu)框圖二,如圖4所示,第二確定 模塊24可以包括第二劃分模塊42,用于將不同的擁塞程度劃分為不同的擁塞等級,擁塞 等級用于表示重試的待重試的短消息的優(yōu)先級。下面描述的實施例1-3,綜合了上述多個優(yōu)選實施例的技術(shù)方案。實施例1該實施例詳細描述了短消息網(wǎng)關(guān)的結(jié)構(gòu),圖5是根據(jù)實施例1的短消息網(wǎng)關(guān)的詳 細結(jié)構(gòu)框圖,其包括以下模塊業(yè)務(wù)邏輯處理模塊50,主要負責消息路由、用戶狀態(tài)鑒權(quán)、預付費等功能;消息收發(fā)模塊52,主要負責底層消息的發(fā)送和接收;配置管理模塊54,主要負責網(wǎng)關(guān)上信息數(shù)據(jù)的配置維護;網(wǎng)絡(luò)狀況檢測模塊56,主要負責檢測當前網(wǎng)絡(luò)的擁塞情況;消息重試模塊58,主要負責待重試消息的重試。當短消息網(wǎng)關(guān)有消息需要發(fā)送時,首先投遞到消息收發(fā)模塊52進行發(fā)送;如果消 息發(fā)送失敗,則將該消息投遞到消息重試模塊58進行重試處理;消息重試模塊58接收到該 消息后,根據(jù)消息的優(yōu)先級,將重試消息放置到不同的重試隊列中等待重試;網(wǎng)絡(luò)狀況檢測 模塊56會收集網(wǎng)關(guān)到其接入網(wǎng)元之間,每次發(fā)送消息到接收響應(yīng)的時間間隔(即消息響應(yīng) 時長),并定時計算一段時間內(nèi),消息響應(yīng)時長的均值(即平均消息響應(yīng)時長),然后將該平 均消息響應(yīng)時長發(fā)送給消息重試模塊58 ;消息重試模塊58定時檢查最新的平均消息響應(yīng) 時長,根據(jù)該時長的大小判斷是否需要對重試消息進行重試,并判斷是對哪個或哪幾個優(yōu)
6先級隊列中的消息進行重試。實施例2該實施例描述了基于網(wǎng)絡(luò)擁塞情況的短消息重試方法的基本處理流程,包括以下 步驟步驟1,當有消息需要重試時,根據(jù)消息的優(yōu)先級,將該消息放置到不同的重試優(yōu) 先級隊列中等待重試;步驟2,收集網(wǎng)關(guān)到其他網(wǎng)元之間的消息響應(yīng)時長,并定時計算得到最新的平均消 息響應(yīng)時長;需要說明的是,步驟1和步驟2是獨立的步驟,它們之間的順序可以調(diào)換,或者,也 可以同時進行。步驟3,根據(jù)最新的平均消息響應(yīng)時長,以及配置的消息響應(yīng)時長閥值,選擇當前 允許進行重試的重試優(yōu)先級隊列;步驟4,按照設(shè)置的重試流控策略,對第三步中找出的重試優(yōu)先級隊列中的重試消 息進行重試,重試時,遵循從高優(yōu)先級隊列到低優(yōu)先級隊列的順序進行。實施例3該實施例結(jié)合附圖,通過舉例的方式,詳細描述了上述短消息的重試方法的處理 流程。首先,我們對每個接入到網(wǎng)關(guān)上的SP設(shè)置重試優(yōu)先級,以該優(yōu)先級作為其發(fā)送消 息的重試優(yōu)先級,當然,在實際應(yīng)用中,短消息的優(yōu)先級也可以以其他的依據(jù)來設(shè)置,本實 施例對此不作限定。這里,設(shè)置了 3個優(yōu)先級1、2、3,分別對應(yīng)低優(yōu)先級、中優(yōu)先級、高優(yōu) 先級。相應(yīng)的,設(shè)置了 3個重試隊列A、B、C,分別用于存放優(yōu)先級為1、2、3的重試消息。此 外,還為平均消息響應(yīng)時長設(shè)置閥值,并設(shè)置計算平均消息響應(yīng)時長的時間間隔。這里,設(shè) 置了 3個閥值,分別為Tl、T2、T3(T1 < Τ2 < Τ3),并設(shè)置計算平均消息響應(yīng)時長的時間間 隔為m秒。為了實現(xiàn)基于網(wǎng)絡(luò)擁塞情況的短消息重試方法,短消息網(wǎng)關(guān)系統(tǒng)需要三個模塊協(xié) 同工作業(yè)務(wù)邏輯處理模塊50、網(wǎng)絡(luò)狀況檢測模塊56、消息重試模塊58。業(yè)務(wù)邏輯處理模 塊50主要負責根據(jù)消息的重試優(yōu)先級,將重試消息分派到不同的重試隊列中;網(wǎng)絡(luò)狀況檢 測模塊56主要負責定時檢測當前網(wǎng)絡(luò)狀況;消息重試模塊58負責消息的重試。圖6是根據(jù)實施例3的分派重試消息到相應(yīng)重試隊列的流程圖,如圖6所示,業(yè)務(wù) 邏輯處理模塊50分派重試消息的具體實施流程如下步驟601,業(yè)務(wù)邏輯處理模塊50從SP接收到短消息;步驟602,根據(jù)該SP的重試優(yōu)先級,設(shè)置該消息的重試優(yōu)先級。例如,如果該SP的 重試優(yōu)先級為3,則設(shè)置該消息的重試優(yōu)先級也為3 ;步驟603,對該消息進行路由、鑒權(quán)等業(yè)務(wù)邏輯處理,并根據(jù)處理結(jié)果,嘗試發(fā)送消 息到下一級網(wǎng)元,如果嘗試發(fā)送消息失敗,則進入步驟604,如果嘗試發(fā)送消息成功,則進入 步驟605 ;步驟604,根據(jù)消息的重試優(yōu)先級,將該消息放置到相應(yīng)的重試隊列中等待重試。 例如,如果消息的重試優(yōu)先級為3,則放置到重試隊列C中;步驟605,結(jié)束處理。
圖7是根據(jù)實施例3的通過收集并計算平均消息響應(yīng)時長的方式來判斷當前網(wǎng)絡(luò) 狀況的流程圖,如圖7所示,網(wǎng)絡(luò)狀況檢測模塊56通過收集并計算平均消息響應(yīng)時長的方 式來判斷當前網(wǎng)絡(luò)狀況,其具體實施流程如下步驟701,當網(wǎng)關(guān)需要發(fā)送消息到其他網(wǎng)元時,模塊記錄下發(fā)送該消息的時間 start ;步驟702,當網(wǎng)關(guān)接收到對方網(wǎng)元返回的步驟701中消息的響應(yīng)時,模塊記錄下接 收響應(yīng)的時間end ;步驟703,計算消息響應(yīng)時長t = end-start,并將t記錄到消息響應(yīng)時長隊列中 的空白位置;步驟704,每隔m秒,觸發(fā)計算平均消息響應(yīng)時長的流程假設(shè)此時消息響應(yīng)時長
隊列中已經(jīng)有χ條記錄,分別為tl、t2.......tx,則計算平均消息響應(yīng)時長average =
(tl+t2+. . . +tx)/x,然后清空消息響應(yīng)時長隊列。圖8是根據(jù)實施例3的消息重試過程的流程圖,如圖8所示,消息重試模塊58進 行消息重試的具體實施流程如下步驟801,定時(例如每隔10秒鐘)觸發(fā)消息重試流程;步驟802,模塊得到從網(wǎng)絡(luò)狀況檢測模塊同步過來的最新平均消息響應(yīng)時長,假 設(shè)為t,將其與我們設(shè)置的3個閥值Tl、T2、T3作比較,按照比較結(jié)果確定進入以下步驟 803-807 之一;步驟803,如果t < Tl,則允許對所有優(yōu)先級的消息進行重試,于是按照系統(tǒng)設(shè)置 的重試流量,依次從重試隊列C、B、A中提取重試消息進行重試;步驟804,如果Tl < t < T2,則允許對優(yōu)先級2、3的消息進行重試,于是按照系統(tǒng) 設(shè)置的重試流量,依次從重試隊列C、B中提取重試消息進行重試;步驟805,如果T2 < t < T3,則允許對優(yōu)先級3的消息進行重試,于是按照系統(tǒng)設(shè) 置的重試流量,從重試隊列C中提取重試消息進行重試;步驟806,如果t > T3,則不允許任何消息的重試,于是不作任何動作,直接結(jié)束本 次重試流程。上述基于網(wǎng)絡(luò)擁塞情況的短消息重試方法實施流程中提到,需要根據(jù)系統(tǒng)設(shè)置的 重試流量來進行消息的重試,即每次重試的消息條數(shù)最多不能超過系統(tǒng)設(shè)置的最大重試消 息數(shù),這主要是考慮到對重試消息加以流控,可以減輕網(wǎng)絡(luò)的負擔,防止出現(xiàn)瞬間的流量峰值。這里給出一種優(yōu)選的動態(tài)重試消息流控策略,使得消息的重試能夠更加符合當前 的網(wǎng)絡(luò)狀況。首先,由于系統(tǒng)底層消息發(fā)送隊列中消息的堆積數(shù)可以大致反映出當前的網(wǎng)絡(luò)狀 況,因此,利用消息發(fā)送隊列中消息堆積數(shù)作為依據(jù),動態(tài)的獲取每次重試時允許重試的最 大消息數(shù)。設(shè)定消息發(fā)送隊列中消息堆積數(shù)的預警值為M,且當前需要重試的重試隊列有
A1、A2.......An,重試隊列A1、A2.......An的優(yōu)先級依次為從低到高,于是重試消息動態(tài)
流量控制的具體實施流程如下步驟1,得到當前消息發(fā)送隊列中消息堆積數(shù)為m,并將其與M作比較;
步驟2,如果m > M或m = M,則說明目前不能進行重試,本次重試流程結(jié)束;步驟3,如果m < M,則計算本次重試允許重試的最大消息數(shù)r = M_m,然后設(shè)i = η ;步驟4,不斷從隊列Ai中提取重試消息進行重試,直到提取的消息總數(shù)等于r,或 者隊列Ai中的重試消息提取完畢;步驟5,如果隊列Ai中的重試消息提取完畢,則設(shè)i = i_l,返回步驟4;步驟6,如果提取的消息總數(shù)等于r,則本次重試流程結(jié)束;步驟7,如果隊列Al、A2.......An中的所有重試消息均重試完畢,則本次重試流
程結(jié)束。從以上流程可以看出,我們每次重試時動態(tài)的獲取本次重試允許的最大消息數(shù), 這樣就可以防止當重試消息過多時,對網(wǎng)絡(luò)造成過重的負擔,進而導致網(wǎng)絡(luò)擁塞;而當網(wǎng)絡(luò) 比較空閑時,又可以充分利用網(wǎng)絡(luò)資源,將更多的重試消息發(fā)送出去。綜上所述,本發(fā)明實施例提供的方案降低了重試消息對于網(wǎng)絡(luò)繁忙程度的影響, 減小了大量消息重試所引起的網(wǎng)絡(luò)擁塞的發(fā)生概率,提高了網(wǎng)絡(luò)資源的利用率。需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的 計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不 同于此處的順序執(zhí)行所示出或描述的步驟。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲 在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們 中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的 硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
一種短消息重試方法,其特征在于,包括短消息網(wǎng)關(guān)確定當前網(wǎng)絡(luò)的擁塞程度;根據(jù)所述當前網(wǎng)絡(luò)的擁塞程度確定待重試的短消息的重試策略;使用所述重試策略對待重試的短消息進行重試。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述當前網(wǎng)絡(luò)的擁塞程度確定待重 試的短消息的重試策略包括將不同的擁塞程度劃分為不同的擁塞等級,所述擁塞等級用于表示重試的待重試的短 消息的數(shù)量。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述當前網(wǎng)絡(luò)的擁塞程度確定待重 試的短消息的重試策略包括將不同的擁塞程度劃分為不同的擁塞等級,所述擁塞等級用于表示重試的待重試的短 消息的優(yōu)先級。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于, 短消息網(wǎng)關(guān)確定當前網(wǎng)絡(luò)的擁塞程度包括所述短消息網(wǎng)關(guān)記錄發(fā)出的每條短消息的響應(yīng)時長;所述短消息網(wǎng)關(guān)對預定時間段內(nèi)接收到響應(yīng)的短消息所對應(yīng)的響應(yīng)時長取均值; 將不同的擁塞程度劃分為不同的擁塞等級包括 根據(jù)所述均值所在的取值范圍,確定當前網(wǎng)絡(luò)的擁塞等級。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,使用所述重試策略對待重試的短消息進 行重試包括按照待重試的短消息的優(yōu)先級從高到低的順序,對預定數(shù)量的待重試的短消息進行重 試,其中,所述預定數(shù)量為當前擁塞等級所表示的數(shù)量。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述擁塞等級隨著當前網(wǎng)絡(luò)的擁塞程度 的提高而增加,所述重試的待重試的短消息的優(yōu)先級隨所述擁塞等級的增加而提高。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,使用所述重試策略對待重試的短消息進 行重試,直到當前調(diào)度周期內(nèi)已重試的短消息的數(shù)量達到閾值。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述閾值=所述短消息網(wǎng)元的消息發(fā)送 隊列中消息堆積數(shù)的預警值-所述短消息網(wǎng)元的消息發(fā)送隊列中當前堆積的短消息的數(shù) 量。
9.一種短消息網(wǎng)關(guān),其特征在于,包括第一確定模塊,用于確定當前網(wǎng)絡(luò)的擁塞程度;第二確定模塊,用于根據(jù)所述當前網(wǎng)絡(luò)的擁塞程度確定待重試的短消息的重試策略; 重試模塊,用于使用所述重試策略對待重試的短消息進行重試。
10.根據(jù)權(quán)利要求9所述的短消息網(wǎng)關(guān),其特征在于,所述第二確定模塊包括第一劃分模塊,用于將不同的擁塞程度劃分為不同的擁塞等級,所述擁塞等級用于表 示重試的待重試的短消息的數(shù)量;或者,第二劃分模塊,用于將不同的擁塞程度劃分為不同的擁塞等級,所述擁塞等級用于表 示重試的待重試的短消息的優(yōu)先級。
全文摘要
本發(fā)明公開了一種短消息重試方法及短消息網(wǎng)關(guān),該方法包括短消息網(wǎng)關(guān)確定當前網(wǎng)絡(luò)的擁塞程度;根據(jù)當前網(wǎng)絡(luò)的擁塞程度確定待重試的短消息的重試策略;使用重試策略對待重試的短消息進行重試。降低了重試消息對于網(wǎng)絡(luò)繁忙程度的影響,減小了大量消息重試所引起的網(wǎng)絡(luò)擁塞的發(fā)生概率,提高了網(wǎng)絡(luò)資源的利用率。
文檔編號H04W28/10GK101951571SQ201010269290
公開日2011年1月19日 申請日期2010年8月27日 優(yōu)先權(quán)日2010年8月27日
發(fā)明者楊丹 申請人:中興通訊股份有限公司