專利名稱:用于無線消息傳送系統的堵塞控制方法
根據U.S.C.§119(e),要求享有于1996年7月12日提出的臨時申請No.60/021617和于1996年7月22日提出的臨時申請No.60/022045的有關權利。
本發明一般涉及無線消息傳送系統,特別涉及用于無線消息傳送系統的堵塞控制方法。
無線消息傳送系統例如尋呼系統在近二十年來發生了明顯的變化。早期的尋呼機是在接收來自尋呼服務的尋呼信號時發出嘟嘟聲的簡單的無線接收機。然后,佩帶尋呼機的用戶會一旦接收尋呼信號會采取一些預定的行動,例如通過普通電話撥打尋呼服務以得到消息。由于尋呼信號不包括有關要采取其它行動的性質的消息,用戶接收尋呼信號時他不具有如何應答的其它選擇。
隨著尋呼技術的進展,有可能向尋呼機發送消息數據。該消息數據可包括字母數字消息,以通知接收方采取適當的行動。例如,尋呼消息可能告訴用戶向家里回電話、向辦公室回電話、干洗店停止洗衣等等。此外,技術進展還增大發送給尋呼機的信息量。例如,數字尋呼機典型地只包含128位的信息,而數字化的電子留言可包含10,000位。
隨著無線消息技術的進展,將來的消息傳送裝置能接收和發送多得多的消息。由于無線消息傳送系統的容量和用戶數量的增加,信號干擾和堵塞成為更需要關心的問題。堵塞的定義是,因缺乏資源(例如CPU處理能力、RAM存儲器或介質的帶寬)全部或者部分無線消息網絡不能處理消息。當出現堵塞時,無線消息傳送系統的性能趨于急劇下降。
用一套特定的協議控制無線消息傳送系統中處理信號堵塞的方法,這些協議管理無線消息傳送系統內各部件之間的通信。一般來說,協議是有關形式、格式、數據內容和在連接不同裝置的通信鏈路上發送的消息流的一套規則。無線消息傳送系統使用大范圍的協議,以在不同的部件之間提供通信。
由幾種協議使用的堵塞控制的最基本的方法之一是“停-等(stop-and-wait)”方法。停-等方法要求發送部件能夠將消息或其它數據發送給接收部件,接收部件能夠將表示已成功地接收和接受消息的確認信號送回到發送部件。發送部件被稱為“發送器”,接收部件被稱為“接收器”。由于在發送消息后,發送器停止并在發送另一個消息之前等待已經成功地接收和接受的確認消息,所以將這種方法稱為“停-等”。因此,在任何給定時間至多存在已經發送的單個未處理消息。由于無線消息網絡可能有在任何時間發送多于一個消息的能力,所以這種方法效率低。采用更先進方法的協議允許發送器在其接收確認信號之前發送幾個消息。
堵塞控制的更先進的方法是“滑動窗口”方法,該方法詳細披露于“計算機網絡”,A.Tanenbaum,1989。滑動窗口方法是許多標準網絡協議的基礎,例如TCP和SPX。在滑動窗口的一個類型中,發送器對各消息分配一個順序號,順序號的范圍從0至某個最大數。發送器指定發送消息的最大數,即允許有在任何給定時間未處理的消息數。這個最大數確定發送窗口的大小。發送窗口包括相應于已經由發送器發送但還未由接收器確認的消息的順序號表。一旦發送窗口包括允許保持的最多數量的順序號,那么發送器就不能發送更多的消息。對于發送窗口中的某順序號來說,當來自接收器的確認信號到達時,窗口就清除該順序號,并且窗口可接收又一個的順序號,從而允許發送器發送下一個消息。
由于發送窗口內與當前的順序號對應的消息在交換中可能最終損失或受損,所以發送器必須在其存儲器中保留所有消息以便可以重發。因此,發送器必須有足夠大的緩沖器,以保存與其窗口中的順序號同樣多的消息。發送器還記錄發送各消息的時間,如果在“超時周期”過去前發送器未接收到確認信號,那么它就重發該消息。
接收器還保留對應于允許接受的無序順序號的數量的接收窗口。落在接收窗口外邊的順序號的消息不加說明地被放棄。帶有“1”尺寸的接收窗口意味著接收器只按連續次序接收由其順序號規定的消息。對于較大的接收窗口來說,可以無序接收消息直至接收窗口允許的最大數量。
盡管使用滑動窗口方法的協議可實現某種程度的堵塞控制,但這種方法有許多缺點。主要的缺點之一是,在發送窗口接收表示已經成功地接收和接受的確認消息之前,它不接收消息狀態指示。因此,無論出現堵塞或有其它問題,有關發送器遇到的問題的唯一消息是未接收到響應發送消息的確認信號。
采用滑動窗口方法的協議的另一個缺點是,當窗口接收中僅存在一個空的空間而不是存在許多空間時,接收窗口不能不同地響應。因此,無論接收窗口怎樣快速被填滿,或接近被填滿,只要可以繼續接受進入的消息,接收窗口都只對發送器回送簡單的確認信號。
采用滑動窗口方法的協議的另一個缺點是,發送窗口和接收窗口只可以指示在尋呼網絡的一個地方即在接收器處的一般堵塞。換句話說,即使接收器完成幾種功能級別和類型,但在它們中任何一個的堵塞都將造成相同的結果,亦即不發送響應于輸入給接收器的消息的確認信號。
采用停-等方法或滑動窗口方法的協議的另一個缺點是,一旦出現堵塞,消息的流動就完全停止。而且,由于發送器未接收響應于已發送消息的任何類型的確認信號,所以發送器設法重發消息,而這只能更加劇網絡中的堵塞。
本發明的目的在于提供堵塞控制方法,用以克服上述缺點和其它缺點。更具體地說,本發明的目的是提供堵塞控制方法,從而使發送器接收表示正在發生的堵塞類型的應答和發送另一消息前發送器應該等待的時間間隔。
提供在無線消息傳送系統中控制堵塞的方法。該消息系統包括在被傳送的信息或指令之間的節點。該信息可以是消息包形式。發送消息包的節點被稱為發送器,接收消息包的節點被稱為接收器。接收器節點至少包括一個處理消息包所需的部件。在消息包的地址中包含該消息包要發送到的部件列表。
按照本發明的一個方案,當發送器將消息包發送給接收器時,接收器響應這樣規定的應答是否已經接收了消息包;接收機中消息要路由到的任何部件是否堵塞;如果堵塞,發送器將另外的消息包發送給被堵塞部件應等待的延遲時間。
按照本發明的另一方案,當發送器接收表示在以前未被堵塞的部件中存在堵塞的應答時,發送器建立臨時的堵塞隊列,以保存定址到該堵塞部件的消息包。臨時堵塞隊列包括帶有用于確定將消息包發送給被堵塞部件之間的延遲的某設定時間的定時器。一旦產生臨時堵塞隊列,發送器在將其發送給接收器之前確定消息包的地址,把定址到堵塞部件的消息包放入臨時堵塞隊列中。如果發送器接收表示消息因堵塞被拒絕的應答,那么就將消息放入臨時堵塞隊列,并在由接收器規定的延遲后再次發送。如果發送器接收表示消息被堵塞的接收器接收的應答,那么在發送任何后續消息前發送器將等待由接收器規定的延遲時間。當在延遲時間的末端臨時堵塞隊列中沒有更多的消息時,或當以前被堵塞的部件不再堵塞時,臨時堵塞隊列就被終止。
通過參照下列結合附圖的詳細說明,本發明的上述方面和許多附加的優點會變得更明顯,其中
圖1是無線通信系統的方框圖;圖2是圖1的消息交換機系統的方框圖;圖3是圖1的單向尋呼系統的輸出消息交換機的方框圖;圖4是圖1的雙向尋呼系統的輸出消息交換機的方框圖;圖5A是發送部件消息發送例行程序的流程圖;圖5B是接收部件的消息接收和應答例行程序的流程圖;圖5C是發送部件的應答接收例行程序的流程圖;圖5D是臨時堵塞隊列的消息發送例行程序;圖6是表示將消息和應答在內部(home)消息交換機和輸出消息交換機之間發送和接收的時間線;和圖7是圖6所示的消息和應答的時序圖。
圖1表示無線通信系統10的主要部件。無線消息傳送系統的最常見的類型之一是尋呼系統。通過尋呼系統的常見信息類型是用戶輸入的對特定尋呼機廣播的消息包。這種類型的消息包通過標準電話16或計算機18經公共交換電話網絡20進入無線通信系統10。然后,消息包被傳送給輸入消息交換機22,該開關是消息交換系統21的輸入部件。接著,消息包經通信鏈路50通過內部交換協議網絡24和經通信鏈路51傳到內部消息交換機23,該開關包括消息包指定的尋呼機的特定消息。通信鏈路50和51可以是簡單的線路、專用電話線路、微波線路、衛星線路,或其它任何合適的通信路徑。
然后,消息包經通信鏈路51再通過內部交換協議網絡24分別經通信鏈路52或53傳給兩個輸出消息交換機36或44的其中之一。輸出消息交換機36和44是消息交換系統21的輸出部件。來自輸出消息交換機36的消息包經通信鏈路56發送給單向發射系統30。單向發射系統30發送的消息包經發射站38和40廣播通信給其地理區域內的尋呼機。來自輸出消息交換機44的消息包經通信鏈路58發送給雙向發射系統32。發送給雙向發射系統32的消息包通過基站網絡46發送,然后經通信鏈路62或64有選擇地分別發送給要廣播通信的基站48或49。基站48和49可以廣播通信消息包和接收來自遠程尋呼機的信號。
在單向尋呼系統30中不能獲得的雙向尋呼系統32的一個特征是使用“定位”信號。用由基站48和49同步廣播通信的唯一“定位”信號可以確定特定的地理區域,在該區域中特定尋呼機被定位。一旦響應唯一定位信號的尋呼機接收了信號,它將“確認”信號送回基站48和49。兩個基站48和49的其中之一或二者接收確認信號并將有關信號強度的消息送回輸出消息交換機44,以分析確定哪個基站最靠近該尋呼機。然后,可以從最近的基站廣播通信對該尋呼機的消息包。如以下更詳細的說明那樣,將消息廣播通信給尋呼機的單個基站可能要求另一級別的堵塞控制,而不是在單向發射系統中所需的堵塞控制級別。
消息交換系統21使用的協議管理如何控制在消息交換機22、23、36和44之間正被發送的消息的堵塞。盡管將被發送的消息稱為“消息包”或簡稱為“消息”,但在本應用中,它們實際上可以是任何類型的應用協議數據單元(APDU),該數據單元為“包”形式,在任何消息交換機之間可以該形式發送數據或命令。消息傳送系統21包括作為輸入裝置的輸入消息交換機22,作為消息存儲裝置的內部交換機23,作為輸出裝置的輸出消息交換機36和44,以及連接所有消息交換機的內部交換協議網絡24。在優選實施例中,輸入消息交換機22和內部消息交換機23可以是設備的相同物理部件的兩個方面。
各消息交換機中的關鍵部件在消息交換系統21中被表示成“節點”標記。節點可以表示許多部件,即在輸入消息交換機中,節點可以表示一組進入的電話線路;在內部消息交換機中,節點可以表示特定尋呼機的存儲器區域;在輸出消息交換機中,節點可以表示特定地理區域中的發射機。賦予各節點唯一的標識號,消息交換系統21使用標識號識別網絡中各關鍵部件的位置。
如圖2所示,輸入消息交換機22包括節點N1、N2和N3;內部消息交換機23包括節點N4、N5和N6;輸出消息交換機包括節點N7;和輸出消息交換機44包括節點N8。實際上,任一消息交換機可以包括任何數量的節點。各節點包括一個存儲器區和一個時鐘;因此,節點N1至N8分別包括存儲器ME1至ME8和時鐘CL1至CL8。如下更詳細的說明那樣,這些存儲器和時鐘可以用于堵塞控制。具體地,可以在存儲器區中建立堵塞隊列。盡管下面參照將消息包從PSTN20通過尋呼交換機網絡發送給指定的尋呼機說明了節點的使用,但應該理解,可以通過不同的路徑和通過任何節點序列發送不同類型的消息包或APDU。
在輸入消息交換機22中包括節點N1、N2和N3,各節點可分別表示來自公共交換電話網絡20的唯一輸入線路組。輸入消息交換機22接收來自公共交換電話網絡20的消息,然后,如下所述,將消息發送給適當的內部消息交換機23,該開關被指定給要被尋呼的特定尋呼機。
來自輸入消息交換機22的節點N1、N2或N3的消息包通過內部交換協議網絡24發送給內部消息交換機23的節點N4、N5或N6。節點N4、N5和N6是內部節點,通常表示各單獨尋呼機所需要的消息存儲區。發送給尋呼機和來自尋呼機的所有消息都通過尋呼機的內部節點。內部節點存儲進入的消息包,如下所述,將消息通過輸出交換機發送給尋呼機。內部節點還保留有關尋呼機的數據庫記錄,包括有關地理區域的消息,在該區域中,將廣播通信尋呼機的消息包。
將來自內部消息交換機23的節點N4、N5或N6的消息包通過內部交換協議網絡分別發送給輸出消息交換機36或44的節點N7或N8。節點N7和N8通常可與某些發射機或被發射機覆蓋的地理區域相聯系。因此,節點N7和N8可以表示覆蓋特定區域的發射機,例如特定的城市,和應該發送給該節點的在城市中要被廣播通信的消息包。
為了說明本發明的堵塞控制方法,圖2中節點N7和N8還表示包括某個應用程序(application)、信道和點。應用、信道和點在各節點內被認為是“部件”。部件可以是節點內的任何類型的元件,包括軟件應用程序和進行消息包或指令處理的類似非物理實體。在一些實施例中,可以把節點本身認為是一種類型的部件。節點N7包括應用AP1和信道CH1及CH2,節點N8包括應用AP2和信道CH3及CH4,還有點P1和P2。“信道”是指射頻信道。一旦在節點上接收了消息包,就可以從一個或多個信道與該節點相關的發射機廣播通信消息包。因此,各節點可以有幾個射頻信道,以從其各發射機廣播通信消息包。除廣播通信外,在節點上還可以完成其它功能,例如在節點的數據庫中查找消息。這種功能被稱為“應用”。此外,在雙向發射系統32中,可以指定消息包去特定的基站48或49(圖1)。可以將基站48和49表示為節點上的“點”。如下所述,點一般指在發送消息包的時刻發送器未知的任何部件。因此,總之當通過內部消息交換機將消息包發送給輸出消息交換機時,消息包可以要求使用特定的節點、應用、信道和/或點。
輸出消息交換機中的以上部件與可能在輸出消息交換機中出現的某些類型的堵塞有關。盡管以下參照輸出消息交換機說明堵塞的類型和堵塞控制方法,但應該理解,在任何消息交換機中可能出現相同類型的堵塞,而且以下說明的堵塞控制方法同樣可以用于任何相同類型的堵塞。堵塞控制的目的在于限定發送給被堵塞的尋呼網絡部件的數據量。圖3和圖4從原理上說明可能出現堵塞的某些通信路徑。圖3和圖4所示的通信路徑僅用于說明的目的,并不一定表示實際的物理連接。
如圖3所示,通信線路70從通信鏈路52達到節點N7。從線路70,線路72達到應用AP1。從應用AP1,線路74和76分別到達信道CH1和CH2。如圖4所示,通信線路80從通信鏈路54到達節點N8。從線路80,線路82到達應用AP2。從應用AP2,線路84和86分別到達信道CH3和CH4。從信道CH3和CH4,線路91和94到達點P1,線路92和95到達點P2。
下面,參照圖3和圖4說明堵塞的四種類型,包括連帶(association)堵塞、應用堵塞、信道堵塞和點堵塞。當整個節點被堵塞,例如當節點上所有部件被堵塞或出現其它問題以致節點不能接收其它消息時,會出現連帶堵塞。節點N7或N8上的連帶堵塞會分別阻止其它消息從線路70或80到達節點。當應用被堵塞,例如分別阻止其它消息從線路72或82到達應用AP1或AP2時,會出現應用堵塞。當信道被堵塞,例如分別阻止其它消息從線路74、76、84或86到達信道CH1、CH2、CH3或CH4時,會出現信道堵塞。當點被堵塞,例如分別阻止其它消息從線路91和94或92和95到達點P1或P2時,會出現點堵塞。如下所述,點堵塞與其它類型的堵塞不同。
根據本發明的堵塞控制方法,輸出消息交換機36和44中的節點用應答響應由內部消息交換機23中的節點發送的各進入消息,該應答表示(1)是否已經接收了消息;(2)出現堵塞的部件(若顯示堵塞),和(3)在發送下一個消息前,內部消息交換機23中的該節點應該等待的規定延遲時間。為了控制消息流的速率,可以改變延遲時間。以這種方式,如果部件變為堵塞,并且接著暢通,可采用“慢啟動”技術;就是說,速率可以慢慢地上升,而不是僅僅“打開閘門”。
當內部消息交換機23接收來自輸出消息交換機表示部件被堵塞的應答時,它為需要使用該部件的消息建立臨時堵塞隊列。例如,如果將消息從內部消息交換機23的節點N4發送給輸出消息交換機36的節點N7并在信道CH1上廣播通信,而應答表示信道CH1被堵塞,則在節點N4的存儲器ME4中為信道CH1建立臨時堵塞隊列。接著,需要使用信道CH1的所有消息將被放在該臨時堵塞隊列中。
可以同時存在用于多個被堵塞部件的多個臨時堵塞隊列。如果消息需要使用多于一個的被堵塞部件,那么將該消息放在最高級別部件的臨時堵塞隊列中。由級別系統確定部件的級別,例如級別的順序為節點、應用、信道和點,其表示最高級別部件至最低級別部件的順序。
來自輸出消息交換機的表示以前被堵塞的部件不再堵塞的應答允許終止該部件的臨時堵塞隊列。通過發送其所有消息使隊列變空,然后重新分配存儲器ME4中曾為該隊列分配的區域。如果在延遲時間后在隊列中沒有要發送的消息,那么也重新分配存儲器中為隊列分配的區域。
當由來自輸出消息交換機的最近的應答消息中表示的延遲時間確定時,臨時堵塞隊列中的消息以周期性間隔發送給被堵塞的部件。通過節點中的時鐘可以測量周期性間隔,在該節點中存在臨時堵塞隊列。時鐘計數至到發送消息之間設定的延遲時間。通過在接收消息交換機中的算法可以確定應答中規定的延遲時間。該算法可考慮多種因素,其中一些因素可以是被堵塞的特定部件的特性;部件增加堵塞使消息系統的性能下降的速率;消息系統的其它部分是否有堵塞;和因堵塞部件是否已經拒絕了前面的消息。
采用堵塞控制的另一方法,在應答中可以不包括延遲時間,而由內部消息交換機23使用根據其自身條件產生延遲時間的算法。例如,在優選實施例中,當連帶堵塞出現以致整個節點被堵塞時,在表示節點被堵塞的應答中不包括延遲時間。相反,內部消息交換機23使用這樣的算法,該算法規定每次從臨時堵塞隊列中發送消息并被拒絕時,延遲時間被加倍,而每次接收消息時,延遲時間被減半。設定延遲時間的最大和最小值,當達到最小延遲時間時,終止臨時堵塞隊列。
在圖5A、5B、5C和5D的流程圖中說明應用、信道、和/或點的堵塞控制的優選方法。盡管該示出的方法可以施加在消息交換系統21的任何地方出現的堵塞上,但為了說明的目的,圖5A至圖5D應用于將內部消息交換機23中的節點N4發送的消息包傳送給消息交換機44中的節點N8。在圖5A至圖5D中,內部消息交換機23被規定為“發送器”,輸出消息交換機44被規定為“接收器”。再有,如上所述,被發送的“消息”或“消息包”實際上可以是應用協議數據單元(APDU)的任何類型,該消息是“包”形式,在這種包中,數據或指令可以在消息交換系統21中的任何消息交換機之間發送。
圖5A表示發送器的消息包發送例行程序。在啟動程序塊100后,在程序塊102中,程序檢查要發送的下一個消息包的地址。消息包地址包括接收器中的部件,需要利用該部件處理消息包。例如,地址可以規定消息包所需的特定的節點、應用和/或信道。在地址中不包括點,其原因在后面說明。因此,地址規定消息包將通過的部件的“路徑”。
在判定(decision)程序塊104中,利用當前存在著臨時堵塞隊列的部件表比較各部件,從而程序確定消息包地址是否包括任何被堵塞部件。如下所述,已知被堵塞部件有為其建立的臨時堵塞隊列。如果在地址中沒有被堵塞部件那么程序繼續至程序塊106,在該程序塊中將消息包發送給接收器,程序接著返回程序塊102以檢查下一個消息包地址。如果地址中的一個部件被堵塞,那么程序繼續至程序塊108,在該程序塊中把消息包放在該確定的被堵塞部件的臨時堵塞隊列的尾部,程序返回程序塊102以檢查下一個消息包地址。
圖5B表示接收器的消息接收和應答例行程序。在程序塊150啟動后,接收器在程序塊152中等待要從發送器接收的消息。在判定程序塊154中,程序確定沿消息路徑是否有連帶堵塞。如上所述,連帶堵塞是指該消息包定址的整個節點有難以處理消息。如果出現連帶堵塞,那么程序轉到程序塊156,在該程序塊中,把被堵塞的節點規定為對發送器的應答的一部分。如上所述,在優選實施例中,接收器在連帶堵塞情況下不指定延遲時間,于是從程序塊156程序直接轉到程序塊157,在該程序塊中,將應答發送給發送器,表示存在連帶堵塞。如果在程序塊154中未出現連帶堵塞,那么程序轉到判定程序塊158。
在判定程序塊158,程序確定沿消息路徑是否有應用堵塞。如上所述,應用堵塞是指該消息包定址的應用有難以處理消息。如果顯示應用堵塞,那么程序轉到程序塊160,在該程序塊中,把被堵塞的應用規定為對發送器的應答的一部分。如果未出現應用堵塞,程序轉到判定程序塊162。
在判定程序塊162中,程序通過監視接收器產生什么響應,確定沿消息路徑是否有信道堵塞。如上所述,信道堵塞是指該消息包定址的信道難以處理消息。如果出現信道堵塞,那么程序轉到程序塊164,在該程序塊中,把被堵塞的信道規定為對發送器的應答的一部分。如果不出現信道堵塞,那么程序轉到判定程序塊166。
在判定程序塊166中,程序確定沿消息路徑是否有點堵塞。如下所述,點堵塞是指當發送消息時沿發送器不知道的消息路徑上的某“點”難以處理消息。如果出現點堵塞,那么程序轉到程序塊168,在該程序塊中,將被堵塞的點規定為對發送器的應答的一部分。如果不出現點堵塞,那么程序轉到程序塊170,在該程序塊中,將應答送回發送器,表示在沒有堵塞的情況下已經接收了消息包。
各程序塊154、158、162和166表示輸出消息交換機中的不同軟件模塊。隨著消息通過程序塊154、158、162和166達到“在堆棧頂上(upthe stack)”,不同的軟件模塊處理該消息。例如,在程序塊154的“節點”處理器中消息碰到第一軟件模塊,該模塊了解在其配置中有多少資源。如果節點被堵塞,該模塊還是形成堵塞消息的軟件模塊。
從程序塊160、164或168,程序轉到程序塊172,在該程序塊上確定發送器將消息發送給被堵塞部件之間應該等待的延遲時間。如上所述,可由接收器中的算法確定延遲時間,該算法可以涉及多個因素。程序接著轉到判定程序塊174,在該程序塊上程序確定是否應該接收或拒絕來自發送器的當前消息包。如果當前消息包被拒絕,那么程序繼續至程序塊176,在該程序塊上將應答發送回發送器,表示消息包已經被拒絕、被堵塞部件和發送器在將另外的消息包發送給被堵塞部件之前應該等待的延遲時間。如果當前消息包被接收,那么程序繼續至程序塊178,在該程序塊上將應答發送回發送器,表示在堵塞的情況下消息包已經接收、被堵塞部件和發送器在將另外的消息包發送給被堵塞部件之前應該等待的延遲時間(如果需要)。
程序塊178表示本發明的堵塞控制方法甚至在堵塞確實出現前也可以工作。如下所述,接收器可以有確定部件剛剛趨近堵塞狀態的方法,因此,甚至在部件變得堵塞之前,可以實施預防性的堵塞控制。因此,如在程序塊178中所示,可以將應答發送給發送器,表示雖然已經接收當前的消息包,但仍應該實施堵塞控制。
圖5C表示發送器的應答接收例行程序。程序開始于程序塊110,然后在判定程序塊112上確定來自接收器的應答是否表示正在出現堵塞。如果表示堵塞,那么程序轉到判定程序塊120。如果表示不堵塞,那么程序轉到判定程序塊114。
在判定程序塊114中,程序確定臨時堵塞隊列目前是否對產生應答的消息包路徑上的任何部件有效。如上所述,接收器上部件的臨時堵塞隊列的存在表示在該部件上預先已經有堵塞。表示該部件不再堵塞的應答可以終止臨時堵塞隊列。因此,在判定程序塊114上,如果在預先被堵塞的部件上表示不再有堵塞,那么程序轉到程序塊116,在該程序塊上,在沒有延遲時間的情況下發送臨時堵塞隊列中的所有消息,并在程序塊136上終止隊列。如果沒有隊列,那么程序轉到程序塊136,在該程序塊上程序結束。
在判定程序塊120上,程序確定臨時堵塞隊列對于由應答消息規定的堵塞的部件目前是否有效。如果臨時堵塞隊列目前無效,那么程序轉到程序塊122,在該程序塊上建立新的對被堵塞部件定址的消息包的臨時堵塞隊列。如上所述,隊列使用定時器,根據設定的延遲時間按周期間隔送出消息包。如果已經存在隊列,那么程序轉到判定程序塊124,在該程序塊中確定由應答表示的延遲時間是否與隊列目前使用的延遲時間相同。如果延遲時間相同,那么程序轉到判定程序塊130。如果延遲時間不同,那么程序轉到程序塊126,在該程序塊中改變隊列的延遲時間。
當在程序塊126上程序改變臨時堵塞隊列的延遲時間時,隊列的定時器可能已經處于先有延遲時間的中間時段。在優選實施例中,當延遲時間在程序塊126上改變時不復位定時器,而允許定時器繼續運行,而且沿著對先有延遲時間的任何計時時間繼續朝向新的延遲時間計時。因此,如果新的延遲時間不長于當前定時器的計時,那么定時器繼續運行直至它達到新的延遲時間,在該點上發送隊列中的下一個消息。如果新的延遲時間短于當前定時器的計時,那么立即發送隊列中的下一個消息,計數器開始按新的延遲時間計數。從程序塊126或程序塊122中,程序轉到判定程序塊130。
在判定程序塊130上,程序確定產生該應答的消息包是否被拒絕。如果消息包未被拒絕,那么程序在程序塊136上結束。如果消息包被拒絕,那么將消息包放在被堵塞部件的臨時堵塞隊列的前面。程序塊132表示如果消息包被接收器拒絕,那么從臨時堵塞隊列的前面發送給接收器的消息包將返回臨時堵塞隊列的前面。這將按某個順序保留隊列中的消息。在程序塊132之后,程序在程序塊136上結束。
圖5D表示臨時堵塞隊列的消息包發送例行程序。程序在程序塊140上開始,轉到啟動延遲定時器的程序塊142。在判定程序塊144上,在延遲時間的末尾,程序確定在隊列中是否有要發送的任何消息。如果隊列是空的,那么程序轉到終止隊列的程序塊148。如果在隊列中有要發送的消息,程序轉到發送隊列中下一個消息的程序塊146。然后,程序轉回重新啟動延遲定時器的程序塊142。
參照圖5A至圖5D,可解釋點堵塞和其它堵塞類型之間的一些差別。如上所述,在圖5A中,在判定程序塊104上,程序確定消息包地址在其路徑上是否包括任何被堵塞部件。如果存在堵塞,那么程序繼續至程序塊108,在該程序塊中消息包被放在規定堵塞部件隊列的末尾。由于發送消息包經過路徑的這些部件是發送器上已知地址的部件,所以程序的該部分對特定節點、應用和/或信道上出現的堵塞是有效的。但是,在點堵塞的情況下,由于對其發送消息的點部件的定義不是地址的一部分,因此當發送消息時發送器不會知道該點部件。
例如,參照圖1,如果內部消息交換機23是發送器,輸出消息交換機44是接收器,基站48和49是可能的“點”,那么在發出如上所述的“定位信號”之前,發送消息包的點是不知道的。如上所述,當消息包到達輸出消息交換機44時,利用定位信號確定哪個基站(點)更靠近尋呼機,以由哪個基站48或49(點)發送消息包。因此,直至輸出消息交換機44(接收器)接收消息包前,仍不知道將消息包發送給哪個基站(點)。因此,當內部消息交換機23(發送器)有發送給輸出消息交換機44(接收器)的消息包時,由于內部消息交換機23(發送器)還不知道消息包將最終發送給哪個特定的點,所以不能將消息包放在特定點的特定臨時堵塞隊列中。
為了比較,一旦消息包到達接收器和出現點堵塞,那么當應答發送回發送器時,應答規定被堵塞的點。因此,如圖5C所示,在判定程序塊130上,當消息因點堵塞被拒絕時,與堵塞的任何其它類型一樣,可以將消息包放在特定點建立的臨時堵塞隊列中。因此,盡管原來的消息包不能放在特定點的臨時堵塞隊列中,但一旦消息包從特定點中被拒絕,消息包也可以放在特定點的臨時堵塞隊列中。
參照圖5C和圖5D,可以解釋點堵塞和其它堵塞類型之間的另一差別。當根據圖5D中的程序從臨時堵塞隊列中發送消息包時,應答被發送回接收器,并根據圖5C的程序由發送器處理應答。當從臨時堵塞隊列中發送的消息包被拒絕時,根據圖5C的程序塊132,消息被放在拒絕它的部件的臨時堵塞隊列的開頭。對于節點、應用或信道來說,不改變發送消息包的部件,因此如果從這些部件的其中之一的臨時堵塞隊列中發送消息包,然后由于該部件仍被堵塞而拒絕消息包,那么消息包將返回發送它的同一臨時堵塞隊列的開頭。如果在沒有堵塞的情況下接收消息,那么就可以終止該部件的堵塞隊列。
但是,在點堵塞的情況下,從特定點的臨時堵塞隊列中發送的消息包并不總是發送給相同的點部件,因此應答可能表示消息在不同的點上被拒絕或被接收。再次參照圖1,如果點是基站48和49,那么當在輸出消息交換機44(接收器)上接收消息包時,利用如上所述的“定位”信號,接收器確定從哪個基站48或49(點)發射消息包。因此,即使在內部消息交換機23(發送器)中從臨時堵塞隊列發送特定的第一點(例如,以前更靠近尋呼機的基站48)的消息包,來自接收器的應答消息可能表示在不同的點上被拒絕或被接收的消息(例如,現在更靠近尋呼機的基站49)。如果消息在不同的點上被拒絕,不把它放回發送它的臨時堵塞隊列,而是把消息包放在最近拒絕它的點的臨時堵塞隊列的前面。應答(例如,延遲時間)上的指令也僅施加給從剛拒絕該消息的點的臨時堵塞隊列。
為了進一步說明本發明的工作,圖6和圖7包括一組展示的實例。圖6表示消息包的時間線和內部消息交換機23和輸出消息交換機36之間的應答。為了說明圖7中定時器的計時,圖6最左邊的垂直時間線表示消息和應答的“事件時間”。還如圖6所示,用由左向右的進入標明內部消息交換機23的垂直線的箭頭表示進入內部消息交換機23的新消息。如下所述,與圖7對應的時間T1至T8也標注在圖6中。在信道CH1的臨時堵塞隊列中排隊的消息在圖6中用內部消息交換機23線右邊的標記表示。再有,按與最新發送消息相同的方式表示從信道CH1的臨時堵塞隊列中發送的消息。各圖示消息A至F用其將通過的部件地址來標記,在這種情況下地址僅表示為節點和信道。
如圖6中由左向右的箭頭所示,一旦消息從內部消息交換機32移至輸出消息交換機36,那么用由右向左的返回箭頭表示從輸出消息交換機36返回內部消息交換機23的應答。在應答箭頭的原點至輸出消息交換機36線的右邊表示應答的內容。應答表示消息被接收還是被拒絕,消息路徑及是否被堵塞,如果被堵塞,對于被堵塞部件的臨時堵塞隊列來說,延遲時間應該如何。
當特定部件變得堵塞時,除在內部消息交換機23上啟動的臨時堵塞隊列外,在優選實施例中,在輸出消息交換機36中也存在一些永久隊列。輸出消息交換機36中的永久隊列用于特定的部件和用于作為部件正常工作一部分的功能。例如,在圖6所示的實例中,信道CH1和CH2在輸出消息交換機36中有永久隊列。這些永久隊列可以是存儲器ME7的一部分。
永久隊列不改變上述堵塞控制方法。當信道CH1和CH2有永久隊列時,發送給信道的消息可以被放在永久隊列中而不是立即被廣播通信,在這種情況下,正如如果不存在永久隊列那樣,表示消息已在信道中被接收的應答可以發送給發送器。這還提供了在實際出現堵塞前可以如何實施堵塞控制的實例,在該實例中,實際上在永久隊列填滿前,可以對信道啟動堵塞控制。在啟動堵塞控制上可能的觸發狀態的實例可以是永久隊列中的一定數量的消息或永久隊列的填入速率。
如下所述,當永久隊列被所有方式填滿時,會出現圖6和圖7所示的觸發堵塞控制的觸發狀態。當信道可以處理來自永久隊列的消息時,就從隊列中刪除處理過的消息。圖6中,從輸出消息交換機36的線中用由左向右的箭頭表示從隊列中刪除處理過的消息。對圖7中時間T1至T8示出信道CH1的臨時堵塞隊列的內容和信道CH1及CH2的永久隊列的內容。盡管為了說明的目的,圖7中的各隊列僅示出了三個消息,但實際上隊列可以保留與系統存儲器允許保留消息同樣多的消息。圖7中還示出當前定時器計時和信道CH1的臨時堵塞隊列的設定延遲時間。
如圖6和圖7所示,在時間T1,沒有消息進入內部消息交換機23。然后,新消息A和B到達內部消息交換機23中的節點N7,被發送給輸出消息交換機36中的節點N7的信道CH1,并被接收在存儲器ME7內信道CH1的永久隊列中,如圖7中時間T2處所示。
如圖6所示,在時間T2后,新的消息C到達并由信道CH1的永久隊列接收,但帶有表示堵塞已經開始和應對節點N7中信道CH1的所有消息延遲t=100的返回消息。本例中,表示堵塞的輸出消息交換機36的觸發狀態是信道CH1的永久隊列被排滿。一旦由內部消息交換機23接收來自消息C的應答消息,就為定址到節點N7的信道CH1的消息建立臨時堵塞隊列。把延遲時間按指令設定至t=100,隊列定時器即時鐘CL4的一部分開始從0計時直至它達到設定的延遲時間,在該點上,隊列前面的消息將被發送給節點N7的信道CH1。圖7中為展示的目的,在時間T3,如圖6的垂直時間線所示,經過t=20的時間,于是定時器顯示t=20。
如圖6所示,在時間T3后,新的消息D到達,并對節點N7上信道CH1定址,于是消息D變成放在節點N7上信道CH1的新的臨時堵塞隊列中的第一消息。如圖7的時間T4所示。
如圖6所示,在時間T4后,定時器達到延遲時間(已經經過t=100的總時間),于是信道CH1的臨時隊列設法將臨時隊列前面的消息(消息D)發送給節點7上的信道CH1。圖6所示的應答表示消息D在堵塞的情況下被拒絕,和給出t=150的延遲時間。因此,消息D被放回信道CH1臨時堵塞隊列的前面。這種情況如圖7中時間T5所示,延遲時間被設定為t=150。但是,在這種情況下不是從接收應答時開始計時,定時器從發送消息D時開始計時。由于定時器從發送消息D時已經開始計時新的t=100,所以出現這種情況。由于當定時器達到延遲時間時定時器才停止計時,所以當來自消息D的應答將延遲時間從t=100重設到t=150時,已經開始計時但還未達到t=100的定時器僅繼續計時直至它達到t=150。
還如圖6所示,在時間T4后,信道CH1處理消息A,因此除去來自信道CH1永久隊列的消息A。消息A的除去允許消息B至C在信道CH1的永久隊列中向前移動一個位置,如圖7中的時間T5所示。如圖6所示,時間T4后還出現新的消息E和F的到達。如圖7中的時間T5所示,定址到節點N7上信道CH1的消息E被放在消息D之后的臨時堵塞隊列中。定址到節點N7上信道CH2的消息F是信道CH2的第一消息,它在沒有堵塞的情況下被接收,并被放在信道CH2的永久隊列中,這可以從圖7的T5上看出。
如圖6所示,在時間T5后,信道CH1臨時堵塞隊列的定時器達到延遲時間(已經經過t=150的總時間),于是臨時堵塞隊列試圖將隊列前面的消息(消息D)發送給節點N7上的信道CH1。如圖6所示的應答表示在堵塞情況下接收消息D,和給出新的延遲時間t=90。因此,消息D放置在信道CH1永久隊列的后面,如圖7中的時間T6所示。
如圖6所示,在時間T6后,信道CH1l處理消息B、C和D,于是從信道CH1的永久隊列中除去這些消息,如可從圖7中的時間T7上看出。時間T6后還出現的情況是,信道CH1臨時堵塞隊列的定時器達到延遲時間(已經經過t=90的總時間),因此臨時堵塞隊列將隊列前面的消息(消息E)發送給節點N7上的信道CH1。如圖6所示的應答表示在沒有堵塞的情況下接收消息E,于是節點N7上的信道CH1的臨時堵塞隊列與設定的延遲時間一起被刪除。因此,消息E被放置在信道CH1的永久隊列上,如圖7中時間T7所示。
如圖6所示,在時間T7后,信道CH2處理消息F和信道CH1處理消息E,因此清除信道CH1和CH2的永久隊列存儲器。在圖7中的時間T8表示這種情況。
盡管已經說明和論述了本發明的優選實施例,但十分明顯,在不脫離本發明的精神和范圍的情況下,可以進行各種改進。例如,盡管以堵塞的節點、應用、信道和點的類型說明了堵塞控制的方法,但對于可能出現堵塞的消息系統中的任何區域或功能,也可以實施相同的方法。
權利要求
1.在具有多個節點的無線消息傳送系統中控制消息包堵塞的方法,其中該消息包在系統的所述節點之間發送,其中將發送消息包的節點稱為發送器,將接收消息包的節點稱為接收器,所述接收器具有一個處理消息包所需要的部件,該方法包括所述接收器對發送消息包的發送器進行應答的步驟,應答指定(a)是否有堵塞;(b)如果有堵塞,在其上發生堵塞的部件;(c)如果有堵塞,在將消息包發送給被堵塞部件之前發送器應該等待的延遲時間。
2.如權利要求1的方法,其特征在于,無線消息傳送系統還包括用于堵塞隊列的存儲器區,其中一旦接收到表示部件中存在堵塞的應答,發送器將定址到被堵塞部件的消息包放置于堵塞隊列中。
3.如權利要求2的方法,其特征在于,堵塞隊列包括帶有設定時間的定時器,用于確定在將消息包發送給被堵塞部件之前的延遲。
4.如權利要求2的方法,其特征在于,發送器在將消息包發送給接收器之前檢查各消息包的地址,并將定址到被堵塞部件的任何消息放置在部件的堵塞隊列中。
5.如權利要求4的方法,其特征在于,如果消息包對多于一個的被堵塞部件定址,那么發送器將被堵塞的部件排序,將消息包放置在帶有最高排序的部件的堵塞隊列中。
6.如權利要求1的方法,其特征在于,被堵塞部件可以是一個應用。
7.如權利要求1的方法,其特征在于,被堵塞部件可以是一個信道。
8.如權利要求1的方法,其特征在于,被堵塞部件可以是一個點。
9.如權利要求2的方法,其特征在于,由被堵塞部件拒絕的消息被放置在該部件的堵塞隊列中。
10.如權利要求9的方法,其特征在于,被拒絕的消息被放置在堵塞隊列的前面。
11.如權利要求3的方法,其特征在于,由來自接收器的最近應答中規定的設定時間確定設定時間。
12.如權利要求11的方法,其特征在于,當設定時間改變時定時器計時不復位。
13.如權利要求1的方法,其特征在于,在某些堵塞類型情況下,發送器確定延遲時間,而不是由接收器在應答中包括延遲時間。
14.如權利要求13的方法,其特征在于,發送器利用以下算法確定延遲時間,其中(a)每當消息被接收器拒絕的時候,延遲時間就加倍,直至某個最大延遲;(b)每當消息被接收器接收的時候,延遲時間就被減半,直至某個最小延遲。
15.如權利要求2的方法,其特征在于,堵塞隊列是臨時的。
16.如權利要求15的方法,其特征在于,一旦接收到表示在預先被堵塞的部件上不再堵塞的應答,發送器發送在堵塞隊列中保留的所有消息包,然后重新分配指定給堵塞隊列的存儲器區。
17.如權利要求15的方法,其特征在于,堵塞隊列包括帶有設定時間的定時器,用于確定將消息包發送給堵塞隊列之間的延遲。
18.如權利要求17的方法,其特征在于,如果在設定時間的末端,在堵塞隊列中沒有消息包,那么發送器重新分配指定給堵塞隊列的存儲器區。
19.在無線消息傳送系統中的堵塞控制方法,其中無線消息傳送系統的部件相互發送消息和相互進行有關消息處理的堵塞狀態的通信,當部件沒有足夠的資源處理另外的消息時部件就被堵塞,被堵塞的部件造成建立堵塞隊列以使至被堵塞部件的后續消息排隊,按變化的速率將消息從堵塞隊列發送給被堵塞的部件。
20.如權利要求1的方法,其特征在于,通過與被堵塞部件的通信規定從隊列發送的消息的變化速率。
21.如權利要求19的方法,其特征在于,被堵塞部件的隊列建立于試圖將消息發送給被堵塞部件的某部件的存儲器區中。
22.如權利要求21的方法,其特征在于,響應于來自被堵塞部件的表示堵塞發生的應答,建立堵塞隊列。
23.在具有發送和接收消息部件的無線消息傳送系統中控制消息堵塞的方法,其中通過無線消息傳送系統發送該消息,該方法包括以下步驟(a)確定在正接收消息的部件上是否發生堵塞;和(b)響應于堵塞,被堵塞的部件將應答發送給已將消息發送給被堵塞部件的部件,應答表示被堵塞部件的身份和將消息發送給被堵塞部件的速率。
24.如權利要求23的方法,其特征在于,可以改變將消息發送給被堵塞部件的速率。
25.如權利要求23的方法,其特征在于,無線消息傳送系統還包括用于堵塞隊列的存儲器區,其中一旦接收到表示部件被堵塞的應答,接收應答的部件將定址到被堵塞部件的消息放入堵塞隊列。
26.如權利要求25的方法,其特征在于,響應于表示在以前未被堵塞部件處出現堵塞的應答建立堵塞隊列。
27.在無線消息傳送系統內控制堵塞的方法,其中該無線消息傳送系統具有發送和接收消息的部件,發送消息的部件是消息源,接收消息的部件包括無線消息傳送系統內可能發生堵塞的區域,該方法包括以下步驟(a)確定無線消息傳送系統的某區域中何時出現堵塞;(b)確定正被發送給被堵塞區域的消息的源;和(c)按將消息再次發送給被堵塞區域的速率提供消息源。
28.如權利要求27的方法,其特征在于,可以改變將消息發送給被堵塞區域的速率。
29.如權利要求28的方法,其特征在于,由被堵塞區域內的部件確定將消息發送給被堵塞區域的速率。
30.如權利要求29的方法,其特征在于,將消息發送給被堵塞區域的速率作為從被堵塞區域發送的應答的一部分提供給消息源。
31.如權利要求27的方法,其特征在于,無線消息傳送系統還包括用于堵塞隊列的存儲器區,其中消息源將對被堵塞區域定址的消息放置在堵塞隊列中,從該隊列將消息按規定的速率發送給被堵塞區域。
全文摘要
本發明提供在無線消息傳送系統的多層中進行堵塞控制的方法。與僅以一種方式響應于堵塞的以往系統不同,本發明的接收部件用這樣的應答響應于各進入的消息包,該應答表示:是否已經接收了消息包(170、176、178);在其上發生拒絕消息包(156、160、164、168)的堵塞的層或功能塊;以及發送器在發送下一個消息包(172)前應該等待的規定延遲時間。為了控制消息流的速率,可以改變延遲時間。在這種方式中,如果一個區域變得堵塞然后變得通暢,那么可以采用“慢啟動”技術;就是說,速率可以緩慢地上升返回,而不是僅僅“打開閘門”。發送器中的臨時堵塞隊列被用于保持對堵塞區域定址的消息包。
文檔編號G06F1/00GK1228909SQ9719758
公開日1999年9月15日 申請日期1997年7月11日 優先權日1996年7月12日
發明者安杰伊·古德羅賈 申請人:格萊納瑞電子公司