專利名稱:一種利用狀態(tài)機機制實現(xiàn)事務可靠傳輸?shù)姆椒?br>
技術領域:
本發(fā)明涉及通信技術領域,尤其涉及一種實現(xiàn)事務在IP網(wǎng)絡上可靠傳輸?shù)姆椒ā?br>
背景技術:
在下一代網(wǎng)絡中和軟交換組網(wǎng)體系結構中,媒體網(wǎng)關控制器(MGC)通過媒體網(wǎng)關控制協(xié)議(H.248)來控制媒體網(wǎng)關(MG)。H.248協(xié)議是一種主從協(xié)議,以媒體網(wǎng)關控制器為主,媒體網(wǎng)關為從,媒體網(wǎng)關控制器負責對和媒體網(wǎng)關相關的呼叫狀態(tài)進行控制,媒體網(wǎng)關在媒體網(wǎng)關控制器的控制下完成不同網(wǎng)絡之間媒體格式的轉換,若媒體網(wǎng)關控制器發(fā)送的消息不能獲得及時響應,可能導致重復發(fā)送,將導致對媒體網(wǎng)關執(zhí)行命令后的狀態(tài)無法預知。
H.248協(xié)議定義的協(xié)議消息可以在用戶數(shù)據(jù)報協(xié)議(UDP)或傳輸控制協(xié)議(TCP)上傳輸,當在UDP上進行傳輸時,可能會發(fā)生消息丟失,在TCP上進行傳輸時,盡管TCP提供了可靠的傳輸機制,但由于TCP是一種基于流的協(xié)議,對于面向事務(Transaction)的H.248協(xié)議,消息中的請求事務(Transaction Request)與應答事務(TransactionReply)仍有可能發(fā)生丟失,所以H.248協(xié)議規(guī)定了在IP上傳輸?shù)囊?,保證事務(Transaction)的可靠傳輸。
目前,H.248協(xié)議規(guī)定了在IP上傳輸要求遵循以下機制(一)“至多一次機制”
要求協(xié)議實體在內存中保留兩個列表,一個用來記錄執(zhí)行完最近所接收的Transaction Request后返回的Transaction Reply,另一個用來記錄當前需要處理的Transaction Request,當接收到一個Transaction Request消息時,將接收事務的事務號(Transaction ID)與最近發(fā)出的Transaction Reply的事務號(Transaction ID)相比較,如果相同,則不執(zhí)行接收到的請求事務Transaction Request,僅重復發(fā)送Transaction Reply響應消息,如不相同,則將該接收事務Transaction ID與需要處理的Transaction Request列表相比較,如果在列表中查找到Transaction ID相同的事務,則表明此TransactionRequest為重復發(fā)送,不必執(zhí)行。
(二)重傳機制發(fā)出Transaction Request的協(xié)議實體應為所有的Transaction指定一個重傳定時器,當定時器超時仍未接收到響應,則應當重復發(fā)送該Transaction,當重復多次發(fā)送的Transaction仍未得到響應時,發(fā)送請求的實體應當采取替代服務或拆除現(xiàn)有連接或即將建立的連接。
(三)三次握手機制Transaction執(zhí)行過程中,某些Transaction執(zhí)行可能需要較長的時間,從而可能會導致Transaction執(zhí)行與重傳機制發(fā)生沖突,執(zhí)行時間太長可能導致Transaction的反復重傳多次,或者導致重傳定時器數(shù)值過大而降低傳輸?shù)男省H绻麉f(xié)議實體預見某一Transaction需要較長的執(zhí)行時間,則可以先發(fā)送一個臨時響應消息(Transaction Pending)指示Transaction正在處理;當協(xié)議實體接收到重復的TransactionRequest消息,如果該Transaction正在處理,也應當發(fā)送TransactionPending消息,接收到Transaction Pending消息的實體應當為該消息對應的Transaction Request消息的重傳定時器設定一個不同數(shù)值;如果接收到最終的Transaction Reply消息,則應立即向對端實體發(fā)送一個確認消息,此后,應使用通常的定時器。對于同一個TransactionRequest,實體在接收到最終的Transaction Reply后,應忽略接收的Transaction Pending消息。
(四)其它長定時器(LONG-TIMER)LONG-TIMER設定的時間應大于一個Transaction的最大持續(xù)時間,該時間還應考慮Transaction最多重復次數(shù)、重復定時器的最大值以及分組在網(wǎng)絡中的最大傳輸時延。當協(xié)議實體發(fā)出響應消息后,協(xié)議實體應為響應事務的Transaction ID保存一個備份,保存時間為LONG-TIMER設定的時間。如果LONG-TIMER超時,或者已經(jīng)收到來自對等實體包含“Response Acknowledgement Parameter”參數(shù)的響應證實消息,該參數(shù)攜帶了一組“已被確認的Transaction ID范圍”參數(shù),則協(xié)議實體將檢測Transaction Reply列表,丟棄那些Transaction ID包含在上述范圍內的Transaction Reply。
以上協(xié)議規(guī)定的實現(xiàn)Transaction可靠傳輸?shù)臋C制復雜,對實現(xiàn)的測試也難以控制。
發(fā)明內容
本發(fā)明所要解決的技術問題是克服現(xiàn)有的實現(xiàn)Transaction可靠傳輸?shù)臋C制復雜以及對實現(xiàn)的測試難以控制的不足,提供一種使Transaction可靠傳輸復雜的邏輯關系變得簡單清晰,便于實現(xiàn)和測試的方法。
本發(fā)明為解決上述技術問題所采用的技術方案為這種利用狀態(tài)機機制實現(xiàn)事務可靠傳輸?shù)姆椒?,其特征在于將協(xié)議實體向對端實體發(fā)送的請求事務(Transaction Request)保存到請求(Request)隊列,將對從對端實體接收到的請求事務(TransactionRequest)所響應的應答事務(Transaction Reply)保存到應答(Response)隊列,兩個隊列中的事務(Transaction)分別根據(jù)觸發(fā)狀態(tài)變化的事件而完成相應的操作和狀態(tài)變化,從而利用狀態(tài)機機制實現(xiàn)對事務(Transaction)的可靠傳輸。
所述的請求隊列中,事務的狀態(tài)包括狀態(tài)a請求事務第一次被發(fā)送給對端實體;狀態(tài)b發(fā)送給對端實體的請求事務在定時時間內沒有收到響應,該請求事務被重發(fā)一次或多次;狀態(tài)c在向對端實體發(fā)送請求事務后接收到對端實體對該請求事務的臨時響應(Transaction Pending)。
所述的觸發(fā)請求隊列中事務狀態(tài)變化的事件包括事件a從對端實體接收到對請求事務的響應;事件b從對端實體接收到對請求事務的臨時響應;事件c請求事務的重傳定時器超時;事件d請求事務達到了最大重傳次數(shù)。
所述的請求隊列中,事務的狀態(tài)與事件的操作變化為當接收到事件a,當前狀態(tài)為狀態(tài)a時將事務從請求隊列中丟棄;當接收到事件a,當前狀態(tài)為狀態(tài)b時將事務從請求隊列中丟棄;當接收到事件a,當前狀態(tài)為狀態(tài)c時將事務從請求隊列中丟棄,向對端實體發(fā)送一個確認消息;當接收到事件b,當前狀態(tài)為狀態(tài)a時將事務的重傳定時器的值設置為臨時響應定時器取值,重傳次數(shù)置零,事務的狀態(tài)遷至狀態(tài)c;當接收到事件b,當前狀態(tài)為狀態(tài)b時將事務的重傳定時器的值設置為臨時響應定時器取值,重傳次數(shù)置零,事務的狀態(tài)遷至狀態(tài)c;當接收到事件b,當前狀態(tài)為狀態(tài)c時不操作;當接收到事件c,當前狀態(tài)為狀態(tài)a時重新發(fā)送一次該事務,重傳次數(shù)增加,事務的狀態(tài)遷至狀態(tài)b;當接收到事件c,當前狀態(tài)為狀態(tài)b時重新發(fā)送一次該事務,重傳次數(shù)增加;當接收到事件c,當前狀態(tài)為狀態(tài)c時重新發(fā)送一次該事務,重傳次數(shù)增加,將事務的重傳定時器重新設置,事務的狀態(tài)遷至狀態(tài)b;當接收到事件d,當前狀態(tài)不會為狀態(tài)a;當接收到事件d,當前狀態(tài)為狀態(tài)b時采取替代服務或拆除現(xiàn)有連接或即將建立的連接;當接收到事件d,當前狀態(tài)不會為狀態(tài)c。
所述的應答隊列中,事務的狀態(tài)包括狀態(tài)A第一次接收到對端實體的請求事務;狀態(tài)B對接收到的請求事務的響應已發(fā)送給對端實體;狀態(tài)C接收到對端實體對應答事務的確認響應(ResponseAcknowledgement)。
所述的觸發(fā)應答隊列中事務狀態(tài)變化的事件包括事件A從對端實體接收到請求事務;事件B從對端實體接收到對應答事務的確認響應;事件C向對端實體發(fā)送響應的事務號(Transaction ID)保存時間超時。
所述的應答隊列中,事務的狀態(tài)與事件的操作變化為當接收到事件A,當前狀態(tài)為狀態(tài)A時發(fā)送一個臨時響應給對端實體,不執(zhí)行該請求事務,臨時響應重發(fā)達到一定次數(shù)后將應答事務從應答隊列中刪除;當接收到事件A,當前狀態(tài)為狀態(tài)B時重新發(fā)送一次應答事務給對端實體,不執(zhí)行該請求事務;當接收到事件A,當前狀態(tài)為狀態(tài)C時不執(zhí)行該請求事務;
當接收到事件B,當前狀態(tài)為狀態(tài)A時不操作;當接收到事件B,當前狀態(tài)為狀態(tài)B時將應答事務從應答隊列中刪除,僅保存事務號,事務的狀態(tài)遷至狀態(tài)C;當接收到事件B,當前狀態(tài)為狀態(tài)C時不操作;當接收到事件C,當前狀態(tài)不會為狀態(tài)A;當接收到事件C,當前狀態(tài)為狀態(tài)B時將應答事務從應答隊列中刪除,丟棄相應的事務號;當接收到事件C,當前狀態(tài)為狀態(tài)C時丟棄相應的事務號。
本發(fā)明的有益效果為本發(fā)明根據(jù)H.248協(xié)議規(guī)定的機制利用狀態(tài)機來實現(xiàn)Transaction的可靠傳輸,利用狀態(tài)機機制對隊列、狀態(tài)和事件進行設計,與現(xiàn)有的實現(xiàn)方式相比,本發(fā)明使Transaction可靠傳輸復雜的邏輯關系通過狀態(tài)和事件的設計變得簡單清晰,便于實現(xiàn)和測試。
具體實施例方式
下面根據(jù)實施方案對本發(fā)明作進一步詳細說明本發(fā)明基于H.248協(xié)議對在IP上傳輸?shù)囊?guī)定,采用了狀態(tài)機來實現(xiàn)事務(Transaction)的可靠傳輸,詳細描述如下將協(xié)議實體向對等實體發(fā)送的請求事務(Transaction Request)保存到一個請求(Request)隊列,將對從對等實體接收到的請求事務(Transaction Request)所響應的應答事務(Transaction Reply)保存到一個應答(Response)隊列,兩個隊列中的事務(Transaction)分別根據(jù)觸發(fā)狀態(tài)變化的事件而完成相應的操作和狀態(tài)變化,利用狀態(tài)機機制實現(xiàn)對事務(Transaction)的可靠傳輸。
Request隊列中的Transaction的狀態(tài)如表1所示
表1
Transaction進入Request隊列的條件是第一次向對端實體發(fā)送后,初始狀態(tài)為狀態(tài)a。
觸發(fā)以上狀態(tài)變化的所有可能事件包括表2
當前Request隊列中的Transaction根據(jù)觸發(fā)事件的相應操作和狀態(tài)變化情況如表3所示表3
Response隊列中的Transaction的狀態(tài)如表4所示表4
Transaction進入Response隊列的條件是第一次接收到對端實體的Transaction Request,初始狀態(tài)為狀態(tài)A,一旦響應了TransactionReply,Response隊列中保存的是Transaction Reply,狀態(tài)遷至狀態(tài)B,并啟動長定時器LONG_TIMER。
觸發(fā)以上狀態(tài)變化的所有可能事件如表5所示,包括表5
當前Response隊列中的Transaction根據(jù)觸發(fā)事件的相應操作和狀態(tài)變化情況如表6所示表6
本發(fā)明的上述方案,利用狀態(tài)機機制對隊列、狀態(tài)和事件進行設計,與現(xiàn)有的實現(xiàn)方式相比,使事務Transaction可靠傳輸復雜的邏輯關系變得簡單清晰,便于實現(xiàn)和測試。
權利要求
1.一種利用狀態(tài)機機制實現(xiàn)事務可靠傳輸?shù)姆椒?,其特征在于將協(xié)議實體向對端實體發(fā)送的請求事務(Transaction Request)保存到請求(Request)隊列,將對從對端實體接收到的請求事務(Transaction Request)所響應的應答事務(Transaction Reply)保存到應答(Response)隊列,兩個隊列中的事務(Transaction)分別根據(jù)觸發(fā)狀態(tài)變化的事件而完成相應的操作和狀態(tài)變化,從而利用狀態(tài)機機制實現(xiàn)對事務(Transaction)的可靠傳輸。
2.根據(jù)權利要求1所述的利用狀態(tài)機機制實現(xiàn)事務可靠傳輸?shù)姆椒?,其特征在于所述的請求隊列中,事務的狀態(tài)包括狀態(tài)a請求事務第一次被發(fā)送給對端實體;狀態(tài)b發(fā)送給對端實體的請求事務在定時時間內沒有收到響應,該請求事務被重發(fā)一次或多次;狀態(tài)c在向對端實體發(fā)送請求事務后接收到對端實體對該請求事務的臨時響應(Transaction Pending)。
3.根據(jù)權利要求2所述的利用狀態(tài)機機制實現(xiàn)事務可靠傳輸?shù)姆椒?,其特征在于所述的觸發(fā)請求隊列中事務狀態(tài)變化的事件包括事件a從對端實體接收到對請求事務的響應;事件b從對端實體接收到對請求事務的臨時響應;事件c請求事務的重傳定時器超時;事件d請求事務達到了最大重傳次數(shù)。
4.根據(jù)權利要求3所述的利用狀態(tài)機機制實現(xiàn)事務可靠傳輸?shù)姆椒?,其特征在于所述的請求隊列中,事務的狀態(tài)與事件的操作變化為當接收到事件a,當前狀態(tài)為狀態(tài)a時將事務從請求隊列中丟棄;當接收到事件a,當前狀態(tài)為狀態(tài)b時將事務從請求隊列中丟棄;當接收到事件a,當前狀態(tài)為狀態(tài)c時將事務從請求隊列中丟棄,向對端實體發(fā)送一個確認消息;當接收到事件b,當前狀態(tài)為狀態(tài)a時將事務的重傳定時器的值設置為臨時響應定時器取值,重傳次數(shù)置零,事務的狀態(tài)遷至狀態(tài)c;當接收到事件b,當前狀態(tài)為狀態(tài)b時將事務的重傳定時器的值設置為臨時響應定時器取值,重傳次數(shù)置零,事務的狀態(tài)遷至狀態(tài)c;當接收到事件b,當前狀態(tài)為狀態(tài)c時不操作;當接收到事件c,當前狀態(tài)為狀態(tài)a時重新發(fā)送一次該事務,重傳次數(shù)增加,事務的狀態(tài)遷至狀態(tài)b;當接收到事件c,當前狀態(tài)為狀態(tài)b時重新發(fā)送一次該事務,重傳次數(shù)增加;當接收到事件c,當前狀態(tài)為狀態(tài)c時重新發(fā)送一次該事務,重傳次數(shù)增加,將事務的重傳定時器重新設置,事務的狀態(tài)遷至狀態(tài)b;當接收到事件d,當前狀態(tài)不會為狀態(tài)a;當接收到事件d,當前狀態(tài)為狀態(tài)b時采取替代服務或拆除現(xiàn)有連接或即將建立的連接;當接收到事件d,當前狀態(tài)不會為狀態(tài)c。
5.根據(jù)權利要求1、2、3或4所述的利用狀態(tài)機機制實現(xiàn)事務可靠傳輸?shù)姆椒?,其特征在于所述的應答隊列中,事務的狀態(tài)包括狀態(tài)A第一次接收到對端實體的請求事務;狀態(tài)B對接收到的請求事務的響應已發(fā)送給對端實體;狀態(tài)C接收到對端實體對應答事務的確認響應(ResponseAcknowledgement)。
6.根據(jù)權利要求5所述的利用狀態(tài)機機制實現(xiàn)事務可靠傳輸?shù)姆椒ǎ涮卣髟谟谒龅挠|發(fā)應答隊列中事務狀態(tài)變化的事件包括事件A從對端實體接收到請求事務;事件B從對端實體接收到對應答事務的確認響應;事件C向對端實體發(fā)送響應的事務號(Transaction ID)保存時間超時。
7.根據(jù)權利要求6所述的利用狀態(tài)機機制實現(xiàn)事務可靠傳輸?shù)姆椒?,其特征在于所述的應答隊列中,事務的狀態(tài)與事件的操作變化為當接收到事件A,當前狀態(tài)為狀態(tài)A時發(fā)送一個臨時響應給對端實體,不執(zhí)行該請求事務,臨時響應重發(fā)達到一定次數(shù)后將應答事務從應答隊列中刪除;當接收到事件A,當前狀態(tài)為狀態(tài)B時重新發(fā)送一次應答事務給對端實體,不執(zhí)行該請求事務;當接收到事件A,當前狀態(tài)為狀態(tài)C時不執(zhí)行該請求事務;當接收到事件B,當前狀態(tài)為狀態(tài)A時不操作;當接收到事件B,當前狀態(tài)為狀態(tài)B時將應答事務從應答隊列中刪除,僅保存事務號,事務的狀態(tài)遷至狀態(tài)C;當接收到事件B,當前狀態(tài)為狀態(tài)C時不操作;當接收到事件C,當前狀態(tài)不會為狀態(tài)A;當接收到事件C,當前狀態(tài)為狀態(tài)B時將應答事務從應答隊列中刪除,丟棄相應的事務號;當接收到事件C,當前狀態(tài)為狀態(tài)C時丟棄相應的事務號。
全文摘要
一種涉及通信技術領域的實現(xiàn)事務可靠傳輸?shù)姆椒ǎ涮卣髟谟趯f(xié)議實體向對端實體發(fā)送的請求事務Transaction Request保存到請求Request隊列,將對從對端實體接收到的請求事務Transaction Request所響應的應答事務Transaction Reply保存到應答Response隊列,兩個隊列中的事務Transaction分別根據(jù)觸發(fā)狀態(tài)變化的事件而完成相應的操作和狀態(tài)變化,從而利用狀態(tài)機機制實現(xiàn)對事務Transaction的可靠傳輸。本發(fā)明克服現(xiàn)有的實現(xiàn)Transaction可靠傳輸?shù)臋C制復雜以及對實現(xiàn)的測試難以控制的不足,提供一種使Transaction可靠傳輸復雜的邏輯關系變得簡單清晰,便于實現(xiàn)和測試的方法。
文檔編號H04L12/26GK1499802SQ0214836
公開日2004年5月26日 申請日期2002年11月11日 優(yōu)先權日2002年11月11日
發(fā)明者趙瑞, 瑞 趙 申請人:華為技術有限公司