專利名稱:在移動臺中檢測指定事件的方法和設備的制作方法
背景1.發(fā)明領域本發(fā)明一般涉及無線通信領域。尤其,本發(fā)明涉及一種在無線通信系統(tǒng)中檢測指定事件的新穎方法和設備。
2.相關技術描述A.無線通信近來在無線通信和計算機相關技術中的革新以及因特網(wǎng)用戶的空前增長已為移動計算鋪設了一條捷徑。事實上,移動計算的普及更需要現(xiàn)有的因特網(wǎng)結(jié)構能提供移動用戶更多的支持。這個結(jié)構的生命線就是面向數(shù)據(jù)包的因特網(wǎng)協(xié)議(IP),它提供各種服務,包括在局域網(wǎng)和廣域網(wǎng)(LAN和WAN)之間數(shù)據(jù)包(數(shù)據(jù)報)的尋址和路由選擇。IP協(xié)議是在征求評論791(RFC 791)1981年9月公布的題為《INTERNET PROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION》中定義的。
IP協(xié)議是把數(shù)據(jù)封裝在發(fā)送的IP數(shù)據(jù)包中的網(wǎng)絡層協(xié)議。在數(shù)據(jù)報的標頭添加了尋址和路由選擇信息。例如,IP標頭包含識別發(fā)送和接收主機的32比特地址。中間路由器使用這些地址來為數(shù)據(jù)包選擇通過網(wǎng)絡到達在預定地址處的它的最終目的地。這樣,IP協(xié)議就允許在把世界上任何因特網(wǎng)節(jié)點上產(chǎn)生的數(shù)據(jù)包傳送到世界上任何其他因特網(wǎng)節(jié)點。另一方面,傳輸層(它包括傳輸控制協(xié)議(TCP)或用戶數(shù)據(jù)報協(xié)議(UDP))用于對于特定應用程序的尋址。
移動用戶的現(xiàn)有趨勢是使用移動計算機,比如筆記本或掌上型計算機,它與諸如蜂窩或便攜式電話之類的無線通信設備結(jié)合來訪問因特網(wǎng)。也就是說,正像用戶傳統(tǒng)地使用“有線”通信設備來把它們的計算機連接到陸上網(wǎng)絡一樣,移動用戶使用無線通信設備(一般被稱作為“移動臺”(MS))來把它們的移動終端連接到這樣的網(wǎng)絡。就如這里所使用的,移動臺或MS是指公共無線無線電網(wǎng)絡中的任何用戶臺。
圖1(現(xiàn)有技術)說明了無線數(shù)據(jù)通信系統(tǒng)的高層框圖,其中MS110與交互工作功能器(IWF)108通過基站/移動交換中心(BS/MSC)106進行通信。IWF 108用作到因特網(wǎng)的訪問點。IWF 108與BS/MSC 106耦合并通常與其駐留在同一地點,BS/MSC 106可以是本技術中已知的傳統(tǒng)無線基站。另一個對無線數(shù)據(jù)通信系統(tǒng)定址的標準協(xié)議是1999年12月公布的第3代合作工程(“3GPP2”)題為“WIRELESSIP NETWORK STANDARD”的標準。例如,3G無線IP網(wǎng)絡標準包括數(shù)據(jù)包數(shù)據(jù)服務節(jié)點(“PDSN”),它功能類似于IWF 108。
存在各種協(xié)議對在MS110和IWF 108間數(shù)據(jù)通信進行尋址。例如,1993年7月公布電信工業(yè)協(xié)會(TIA)/電子工業(yè)協(xié)會(EIA)臨時標準IS-95,題為《MOBILESTATION-BASE STATION COMPATIBILITY STANDARD FOR DUAL-MODE WIDEBAND SPREADSPECTRUM CELLULAR SYSTEM》的協(xié)議通常提供寬帶擴展頻譜無線通信系統(tǒng)的標準。此外,1998年2月公布的標準TIA/EIA IS-707.5,題為《DATA SERVICE OPTIONS FORWIDEBAND SPREAD SPECTRUM SYSTEMSPACKET DATA SERVICE》的協(xié)議定義了在TIA/EIA IS-95系統(tǒng)上支持數(shù)據(jù)包數(shù)據(jù)傳輸能力的要求,并指定了包數(shù)據(jù)載體服務,可把它可被用于MS 110和IWF 108間通過BS/MSC 106的通信。此外,都在1999年3月公布的TIA/EIA IS-707-A.9標準,題為《DATA SERVICE OPTIONS FORSPREAD SPECTRUM SYSTEMSPACKET DATA SERVICES》的協(xié)議以及TIA/EIA IS-707-A.9標準,題為《DATA SERVICE OPTIONS FOR SPREAD SPECTRUM SYSTEMSHIGH-SPEEDPACKET DATA SERVICES》的協(xié)議也定義了在TIA/EIA IS-95系統(tǒng)上支持的包數(shù)據(jù)傳輸?shù)囊?。此外,另一個在MS110和IWF 108間對通信尋址的標準協(xié)議是1999年7月公布的TIA/EIA IS-2000,題為《INTRODUCTION TO CDMA 2000 STANDARDS FORSPREAD SPECTRUM SYSTEMS》的協(xié)議。
IS-707.5引入了在MS 110和BS/MSC 106間(Um接口)以及BS/MSC 106和IWF 108間(L接口)的通信協(xié)議選項模型。例如,中繼模型表示點對點協(xié)議(PPP)鏈路存在于MS110和IWF 108之間的Um接口上的情況。PPP協(xié)議在征求評論1661(RFC 1661)題為《THE POINT-TO-POINT PROTOCOL(PPP)》中作了詳細描述。
圖2(現(xiàn)有技術)是在IS-707.5中繼模型的每個實體中的協(xié)議堆棧的示意圖。圖的最左邊是以傳統(tǒng)縱向格式顯示的通信協(xié)議堆棧,它示出在MS 110上運行的協(xié)議層。舉例的MS 110協(xié)議堆棧通過Um接口邏輯地連接于BS/MSC 106協(xié)議堆棧。接著,舉例的BS/MSC 106協(xié)議堆棧通過L接口邏輯地連接于IWF 108協(xié)議堆棧。
圖2中所述的操作如下高層協(xié)議200實體,比如在MS 110上運行的應用程序,需要在因特網(wǎng)上發(fā)送數(shù)據(jù),代表性的應用程序可以是web瀏覽器程序(例如Netscape NavigatorTM、Microsoft Internet ExplorerTM)web瀏覽器請求一個通用資源定位器(URL),例如超鏈接“http//www.Qualcomm.com”。也在高層協(xié)議200中的域名系統(tǒng)(DNS)協(xié)議通過使用把域名譯成因特網(wǎng)地址的域名解析把文本主機名www.Qualcomm.com譯成32位的數(shù)字IP地址。也在高層協(xié)議200中的超文本傳輸協(xié)議(HTTP)為請求的URL構造GET消息,并指定TCP將用于發(fā)送該消息及HTTP操作。傳輸層202使用端口80(這在本技術中是已知的)作為把HTTP操作選路傳送到此應用程序的目標端口。
TCP協(xié)議(就是傳輸層協(xié)議202)開啟到由DNS指定的IP地址的連接并發(fā)送應用層HTTP GET消息。TCP協(xié)議指定IP協(xié)議用于消息傳輸。IP協(xié)議(就是網(wǎng)絡層協(xié)議204)把TCP數(shù)據(jù)包發(fā)送到指定的IP地址。PPP(就是鏈路層協(xié)議206)對IP數(shù)據(jù)包進行編碼并把它們發(fā)送到中繼層協(xié)議208。中繼層協(xié)議208的一個例子就是已舉例TIA/EIA-232F標準,它是在1997年10月公布的《INTERFACE BETWEENDATA TERMINAL EQUIPMENT AND DATA CIRCUIT-TERMINATING EQUIPMENT EMPLOYINGSERIAL BINARY DATA INTERCHANGE》中定義的??梢岳斫獾氖潜绢I域普通技術人員已知的其他標準或協(xié)議可用于定義通過這些層的傳輸。例如,其他可應用標準可以包括1998年9月公布的《UNIVERSAL SERIAL BUS(USB)SPECIFICATION,Revision1.1》以及1999年7月公布的《BLUETOOTH SPECIFICATION VERSION 1.0A CORE》。最后,中繼層協(xié)議208把PPP數(shù)據(jù)包傳送到無線電鏈路層(RLP)210,并隨后傳送到IS-95協(xié)議212,以通過Um接口傳輸?shù)紹S/MSC 106。RLP協(xié)議210是在1998年2月公布的IS-707.2題為《DATA SERVICE OPTIONS FOR WIDEBAND SPREAD SPECTRUMSYSTEMSRADIO LINK PROTOCOL》中定義的,而IS-95協(xié)議是在以上所指出的IS-95標準中定義的。
在BS/MSC 106上互補的中繼層協(xié)議220經(jīng)過Um接口及通過IS-95層218和隨后的RLP層216接收PPP數(shù)據(jù)包。中繼層協(xié)議220通過L接口把它們傳送到IWF108上的中繼層協(xié)議228。IWF 108上的PPP協(xié)議鏈路層226從中繼層協(xié)議228接收PPP數(shù)據(jù)包并終止MS 110和IWF 108間的PPP連接。在IWF 108上把數(shù)據(jù)包從PPP層226傳送到IP層224,以為了最終路由選擇的IP數(shù)據(jù)包標頭的檢測,在這個情況中就是www.Qualcomm.com。
假設由MS 110產(chǎn)生的IP數(shù)據(jù)包的最終目的地不是IWF 108,那么就把數(shù)據(jù)包通過網(wǎng)絡層協(xié)議224和鏈路層協(xié)議225傳送到因特網(wǎng)上的下一個路由器(圖中未顯示)。由此,根據(jù)IS-707.5標準中繼模型把來自MS 110的IP數(shù)據(jù)包被傳送通過BS/MSC 106和IWF 108傳送到它們的最終預定目的地。
在MS 110數(shù)據(jù)包到達它們的目的地之前,必須首先建立數(shù)據(jù)鏈路連接。就如RFC 1661所規(guī)定的,這需要點對點鏈路(即PPP協(xié)議206和226)的每個端點首先發(fā)送PPP鏈路控制協(xié)議(LCP)數(shù)據(jù)包,以便建立、配置和測試數(shù)據(jù)鏈路連接。在已經(jīng)由LCP建立了鏈路之后,PPP協(xié)議206隨后就可以發(fā)送網(wǎng)絡控制協(xié)議(NCP)以配置網(wǎng)絡層協(xié)議204和224。PPP鏈路中IP的NCP是IP控制協(xié)議(IPCP)。IPCP在1992年5月公布的征求評論1332(RFC 1332),題為《THE PPP INTERNET PROTOCOLCONTROL PROTOCOL(IPCP)》中作了詳細描述。然而,在IPCP協(xié)商之前,可能需要鑒別階段。在已經(jīng)配置了每個網(wǎng)絡協(xié)議層協(xié)議之后,就可以通過鏈路在它們之間發(fā)送來自每個網(wǎng)絡層協(xié)議的數(shù)據(jù)包。
B.應用程序接口支持在MS 110上的通信協(xié)議堆棧的大多數(shù)(如果不是所有)過程都是由應用程序執(zhí)行的。通常,傳統(tǒng)的數(shù)據(jù)網(wǎng)絡使用應用程序接口(API)以使運行在一臺計算機的應用程序能與運行在另一臺計算機上的應用程序進行通信。API使用“套接字”,它在基礎的網(wǎng)絡協(xié)議中保護調(diào)用的應用程序免于區(qū)分。為了完成網(wǎng)絡間的通信,API包含它提供一些應用程序的函數(shù),例如打開套接字、把數(shù)據(jù)發(fā)送到網(wǎng)絡、從網(wǎng)絡接收數(shù)據(jù)以及關閉套接字。普通網(wǎng)絡程序設計接口包括Berkeley系統(tǒng)開發(fā)(BSD)套接字接口(它在UNIXTM操作系統(tǒng)下操作)以及WindowsTM套接字接口(WinSockTM)(它在WindowsTM操作系統(tǒng)下操作)。
由于BSD套接字和WinSockTM都不支持在無線MS 110(見圖2)上的通信協(xié)議堆棧,所以就需要支持這樣一個堆棧的新穎的API。尤其是,所需要的就是在無線通信系統(tǒng)中檢測指定事件的方法和設備。
發(fā)明概述本發(fā)明著手于以上由在無線通信系統(tǒng)中提供檢測指定事件的方法和設備所確定的需要。在一個實施中,本發(fā)明包括應用程序接口(API),它簡化移動臺通信協(xié)議堆棧(它與通信網(wǎng)絡通信)和移動臺應用程序間的通信。當移動臺應用程序記錄一指定事件時,移動臺通信協(xié)議堆棧就查詢存儲器。然后,根據(jù)查詢,移動臺通信協(xié)議堆棧檢測所述指定事件。在本發(fā)明的另一個實施中,移動臺通信協(xié)議堆棧由中斷通知而檢測所述指定事件,當所述指定事件發(fā)生時觸發(fā)這個中斷通知。
附圖簡述圖1(現(xiàn)有技術)是無線通信系統(tǒng)的高層框圖,其中移動臺連接到因特網(wǎng)。
圖2(現(xiàn)有技術)示意性地描述在TIA/EIA IS-707.5中繼模型的每個實體中的協(xié)議堆棧。
圖3示意性地描述本發(fā)明實施例的特征。
圖4和5是檢測指定事件的流程圖。
圖6是描述異步連接的框圖。
圖7是描述異步套接字輸入的框圖。
圖8-10是本發(fā)明實施例的狀態(tài)圖。
詳細描述可以在各種方法中實現(xiàn)本發(fā)明的實施例,包括軟件、固件和/或硬件。因此,本發(fā)明的操作和實現(xiàn)不會特別參照軟件代碼或硬件部件描述,可以理解的是,本領域的普通技術人員能夠設計軟件和/或硬件實現(xiàn)根據(jù)這里的描述檢測指定事件的本發(fā)明。
圖3描述了MS 110內(nèi)的應用程序260,通信協(xié)議堆棧280和API 270。應用程序260和通信協(xié)議堆棧280(即協(xié)議層202、204、206、208、210、212)通過函數(shù)調(diào)用而通信,這些函數(shù)調(diào)用是由API 270提供的。換句話說,API 270允許應用程序260和通信協(xié)議堆棧280在不同處理器和操作系統(tǒng)上運行而無需折衷功能性。本領域的技術人員會理解調(diào),用的函數(shù)可能有各種名字,而這并不離開本應該指出的是,通信協(xié)議堆棧280包含多個發(fā)送隊列和接收隊列,它們存儲數(shù)據(jù)。輸出函數(shù)從應用程序280的存儲器中讀取數(shù)據(jù),以把數(shù)據(jù)存儲在通信協(xié)議堆棧280的發(fā)送隊列之一中。輸入函數(shù)從通信協(xié)議堆棧280的接收隊列之一讀取數(shù)據(jù),以把數(shù)據(jù)存儲在應用程序260的存儲器中。
為了說明這個操作,MS 110就接收IP數(shù)據(jù)包。MS 110的通信協(xié)議堆棧280拆分IP數(shù)據(jù)包,并把它們傳送到傳輸層202(見圖3)。IP數(shù)據(jù)包標頭中的一字段指示傳輸,它可以是TCP也可以是UDP。根據(jù)在傳輸層標頭指定的目標端口號,把數(shù)據(jù)選路傳送到通信協(xié)議堆棧280的合適的接收隊列,它對應特定的套接字。然后可以把數(shù)據(jù)發(fā)送到應用程序260。
在某些情況中,可能希望繞過協(xié)議堆棧280的各層的數(shù)據(jù)包進行操作,以減少等待時間的影響。這樣的數(shù)據(jù)包包括原始分組數(shù)據(jù),比如原始IP數(shù)據(jù)包,它缺少目的地信息(即目標端口號)。正如這樣,就不能從原始IP數(shù)據(jù)包確定目標應用程序。在這種情況中,例如,通信協(xié)議堆棧280就可以把接收到的原始IP數(shù)據(jù)包發(fā)送到所有已記錄支持IP協(xié)議的套接字。這就使有效載荷數(shù)據(jù)發(fā)送到目標應用程序。因特網(wǎng)控制信息協(xié)議(ICMP)分析引擎(它響應IP數(shù)據(jù)包)也可以接收原始分組數(shù)據(jù)。眾所周知的ICMP分析引擎是在RFC 792的題為《INTERNET CONTROLMESSAGE PROTOCOL》中定義的。例如,從這個描述這就更加明顯,通信協(xié)議堆棧280在把接收的數(shù)據(jù)包沿著堆棧向上傳遞到應用程序260之前,就處理這些數(shù)據(jù)包,這就減少了應用程序260所進行的拆分量。
相反,應用程序260可以通過使用套接字經(jīng)過Um接口發(fā)送原始分組數(shù)據(jù),這個套接字簡化了通信協(xié)議堆棧280和應用程序260間的通信。此外,應用程序260可以通過Um接口發(fā)送原始分組數(shù)據(jù)。而通信協(xié)議堆棧280把分組或原始分組數(shù)據(jù)封裝在諸如IP數(shù)據(jù)包中,并把它們通過Um接口發(fā)送。在這個例子中,通信協(xié)議堆棧280提供IP標頭及校驗和,以產(chǎn)生IP數(shù)據(jù)包。另一方面,對于ICMP,可以把特定協(xié)議類型復制到IP標頭中。
就以上所指出的,應用程序可以創(chuàng)建了套接字(它提供至少一個協(xié)議層202、204、206、208、210、212和應用程序260間的通信),以減少在使用通信協(xié)議堆棧280中的固有的等待時間。也就是說,應用程序260可以創(chuàng)建套接字,它可以繞過傳輸層202、網(wǎng)絡層204以及鏈路層206,這樣就可以使應用程序260把有效載荷數(shù)據(jù)發(fā)送到RLP層210或從該層接收有效載荷數(shù)據(jù)。應用程序也可以創(chuàng)建套接字,它使應用程序260把有效載荷數(shù)據(jù)發(fā)送到IS-95層212或從該層接收有效載荷數(shù)據(jù)。
在一個實施例中,應用程序調(diào)用函數(shù)open_netlib()以打開通信協(xié)議堆棧280并賦于應用程序標識。應用程序標識允許多個應用程序與通信協(xié)議堆棧280通信(即多任務)。例如,作為函數(shù)open_netlib()調(diào)用的一部分,應用程序260指定一指向網(wǎng)絡回叫函數(shù)和指向套接字回叫函數(shù)的指針。只要發(fā)生(或已被啟動)網(wǎng)絡子系統(tǒng)指定事件(比如讀取、寫入、關閉話務信道(即Um)和/或鏈路層(即PPP 206))發(fā)生(或已被允許)就調(diào)用網(wǎng)絡回叫函數(shù)以通知應用程序260。只要發(fā)生(或已被啟動)套接字指定事件(比如讀取、寫入、關閉傳輸層(即TCP))就調(diào)用套接字回叫函數(shù)以通知應用程序260。對于本領域技術人員明顯的是,通信網(wǎng)絡至少包含話務信道、鏈路層和傳輸層中之一。
一旦開啟了通信協(xié)議堆棧280,就調(diào)用函數(shù)pppopen()使網(wǎng)絡子系統(tǒng)連接初始化,網(wǎng)絡系統(tǒng)連接包括話務信道和鏈路層。這是全應用程序調(diào)用,它不依靠單獨的套接字。然而,它需要應用程序識別。在網(wǎng)絡子系統(tǒng)連接建立或失效時,就調(diào)用網(wǎng)絡回叫函數(shù)提供指定事件通知。例如,如果沒有建立話務信道,則網(wǎng)絡子系統(tǒng)就失效了。此外,還可以調(diào)用函數(shù)net_ioctl()來設置網(wǎng)絡子系統(tǒng)的特性。例如,這個調(diào)用可以指定套接字的數(shù)據(jù)率。
一旦建立了網(wǎng)絡子系統(tǒng)連接,就可以創(chuàng)建套接字,并通過調(diào)用函數(shù)socket()初始化。然而,在可以使用套接字函數(shù)之前,函數(shù)socket()的調(diào)用可能返回套接字描述符。然后,應用程序260就可以調(diào)用函數(shù)async_select(),以記錄指定事件來接收異步通知。這個記錄,應用程序260可以執(zhí)行作為函數(shù)調(diào)用的一部分,以指定套接字描述符和需要通知的指定事件的位屏蔽(即多種事件一起相“或”)。例如,如果指定事件發(fā)生了(即啟動了)并且由通信協(xié)議堆棧280或API 270檢測到了,那么就調(diào)用套接字回叫函數(shù),以提供異步通知?;亟泻瘮?shù)可以通過使用信號、消息,包括通過遠程過程調(diào)用(RPC)的消息或硬件或軟件的中斷,來通知指定事件的應用程序260。
一旦把指定事件通知了應用程序260,它就可以調(diào)用函數(shù)getnextevent()以確定要服務的指定事件。這個函數(shù)返回為特定套接字描述符而發(fā)生的指定事件的屏蔽。它也可以清除在所發(fā)生的指定事件的屏蔽中的這些位。這樣應用程序260就不再接收所禁止的指定事件的通知。應用程序隨后必須通過調(diào)用函數(shù)async_select()重新記錄(即重新允許)這些特定的事件。
此外,應用程序260可以通過清除在指定事件的位屏蔽中的相應位而改變所記錄的指定事件。如果已清除了在位屏蔽中的這個位,那么就簡單地忽略這個請求。簡而言之,例如,通過調(diào)用函數(shù)async_deselect(),可以在每個事件的基礎上禁止事件通知。
圖4和5是檢測指定事件的流程圖。例如,如圖4中所示,在塊400中,通信協(xié)議堆棧280等待應用程序260記錄指定事件。在記錄了指定事件之后,在塊402中,通信協(xié)議堆棧280就查詢存儲器。在塊404中,根據(jù)塊402的查詢信息可以檢測指定事件。在塊406中,例如,當通信協(xié)議堆棧280的存儲器(即發(fā)送隊列)可用于接受足夠量信息時,檢測到了寫入事件。可以從應用程序260發(fā)送數(shù)據(jù)。如果塊404的查詢信息是不符合要求的(即,尚未發(fā)生指定事件),那么就如在塊402中那樣,通信協(xié)議堆棧280繼續(xù)查詢存儲器。
在圖5中,就如塊500中所示,通信協(xié)議堆棧280等待應用程序260記錄指定事件。在這期間,可以禁止中斷通知。這樣,就不能觸發(fā)或不觸發(fā)中斷通知。如在塊500中,在記錄了指定事件之后,在塊502中,根據(jù)指定事件的發(fā)生可以觸發(fā)中斷通知。例如,當把數(shù)據(jù)寫入通信協(xié)議堆棧280的存儲器(即接收隊列)中時,就發(fā)生了讀取事件。這樣,在塊504中,當通信協(xié)議堆棧280接收中斷通知(它由于事件的發(fā)生而觸發(fā)中斷通知)時,通信協(xié)議堆棧280檢測到了讀取事件。存儲在通信協(xié)議堆棧280的存儲器中的數(shù)據(jù)可以來自通信網(wǎng)路。此外,對于讀取事件,可以把所存儲的數(shù)據(jù)發(fā)送到應用程序260。
最后,當套接字可用于重新使用時,檢測到了關閉事件,例如,這是因為終止了數(shù)據(jù)鏈路連接,比如傳輸層。
以下提供異步連接(見圖6)和異步輸入(見圖7)的例子來說明異步事件通知的使用。
參照圖6,進入通信協(xié)議堆棧280以及指定回叫函數(shù)都通過調(diào)用函數(shù)open_netlib()。調(diào)用函數(shù)pppopen()(A)使網(wǎng)絡子系統(tǒng)連接初始化(B)。在已經(jīng)建立了網(wǎng)絡子系統(tǒng)連接之后,調(diào)用回叫函數(shù)以(C)報告網(wǎng)絡子系統(tǒng)的可用性。
假設已開啟并分配了套接字,調(diào)用函數(shù)connect()(D)使TCP連接(E)初始化。此外,應用程序260調(diào)用函數(shù)async_select()(F),以記錄指定事件來接收通知。在這個例子中,所關心的指定事件是寫入事件,它發(fā)生于建立連接后。
當建立了連接時,如果在屏蔽中記錄了指定事件,就調(diào)用回叫函數(shù)。如果是的,那么調(diào)用回叫函數(shù)(G)以提供異步通知。一旦通知了應用程序260,它就調(diào)用函數(shù)getnextevent()(H)以確定發(fā)生(I)了哪一個指定事件。這個調(diào)用還清除在屏蔽(J)中的該事件(即寫入事件)的位。應用程序260必須通過調(diào)用函數(shù)async_select()重新記錄該指定事件的接著的通知。
在圖7中,提供了異步套接字讀取的說明。為了初始化讀取,應用程序260調(diào)用函數(shù)read()(A)。假設缺少讀取的數(shù)據(jù),應用程序就調(diào)用函數(shù)async_select()(B)以記錄事件(即設置在屏蔽中的相應位)來接收通知。在這個例子中,所關心的指定事件是讀取事件,當應用程序260有數(shù)據(jù)讀取時它就發(fā)生了。
當接收隊列存儲數(shù)據(jù)時,如果在屏蔽中指定了讀取事件,就調(diào)用回叫函數(shù)。如果是的,那么調(diào)用回叫函數(shù)(C)以提供異步通知。一旦通知了應用程序260,它就調(diào)用函數(shù)getnextevent()(D)以確定發(fā)生(E)了哪一個事件。這個調(diào)用還清除在屏蔽(F)中該事件的位。應用程序260必須通過調(diào)用函數(shù)async_select()重新啟動該事件的接著的通知。最后,為了讀取存儲在接收隊列中的數(shù)據(jù),應用程序260調(diào)用函數(shù)read()(G)。
在圖8-10中,說明了本發(fā)明實施例的狀態(tài)機。在圖8-9中,假設開啟了通信協(xié)議堆棧280和建立了網(wǎng)絡子系統(tǒng)連接(即話務信道和鏈路層,如果必要,原始套接字可以繞過網(wǎng)絡子系統(tǒng))。本領域的技術人員會理解,狀態(tài)可能各種名字,這并不離開本發(fā)明的范圍。
狀態(tài)機(它可以在狀態(tài)間異步轉(zhuǎn)移)控制(即啟動和禁止)指定事件,比如讀取、寫入及關閉。在操作開始處可以禁止指定事件,并可以在預定狀態(tài)中啟動該指定事件,以幫助應用程序260識別MS 110的狀態(tài)。
根據(jù)API 270的狀態(tài)和應用程序260所調(diào)用的函數(shù)類型,API 270也可以報告特定狀態(tài)消息,所述特定狀態(tài)消息量應用程序260所特有的(即不僅僅是同類的)。特定狀態(tài)消息可以反映基礎通信網(wǎng)絡的狀態(tài)。例如,把狀態(tài)消息報告給應用程序260作為函數(shù)調(diào)用的依據(jù)。
例如,在圖8中,說明了API 207的TCP套接字的狀態(tài)圖。在“空”狀態(tài)800中開始未初始化的套接字。到目前為止,由于還沒分配套接字所以它不“存在”。可以通過調(diào)用函數(shù)socket()創(chuàng)建套接字和進行初始化,這個函數(shù)返回與套接字有關函數(shù)一起使用的套接字描述符。在調(diào)用函數(shù)socket()后,狀態(tài)機轉(zhuǎn)移到“初始化”狀態(tài)805。
在初始化狀態(tài)805中,只要有可能調(diào)用函數(shù)close()來終止TCP連接,狀態(tài)機就轉(zhuǎn)移回到空狀態(tài)800。調(diào)用函數(shù)close()斷開所有套接字有關資源。另一方面,調(diào)用函數(shù)connect(),使TCP連接初始化并使狀態(tài)機轉(zhuǎn)移到“正開啟”狀態(tài)810。
在正開啟狀態(tài)810,只要(1)發(fā)生了網(wǎng)絡子系統(tǒng)失效,(2)不能建立TCP連接或(3)IP地址的改變,狀態(tài)機就轉(zhuǎn)移到“關閉”狀態(tài)。在調(diào)用了函數(shù)close()(它終止TCP連接)之后,在啟動終止過程的同時,狀態(tài)機也會把套接字轉(zhuǎn)移到“正關閉”狀態(tài)820。最后,在建立TCP連接時,狀態(tài)機轉(zhuǎn)移到“開啟”狀態(tài)825。
在開啟狀態(tài)825中,開啟套接字以讀取和寫入。尤其,在根據(jù)是否把數(shù)據(jù)存儲到通信協(xié)議堆棧280的存儲器中而啟動讀取事件的同時,會立即啟動寫入事件。只要(1)發(fā)生了網(wǎng)絡子系統(tǒng)失效;(2)不能建立TCP連接;(3)試圖終止TCP連接,比如TCP重置、TCP異常終止或由網(wǎng)絡服務器啟動的TCP關閉以及(4)IP地址的改變,狀態(tài)機就會轉(zhuǎn)移到已關閉狀態(tài)815。應用程序啟動TCP連接終止(比如通過調(diào)用函數(shù)close()),使狀態(tài)機轉(zhuǎn)移到正關閉狀態(tài)820。
在已關閉狀態(tài)815,讀取、寫入和關閉事件都被確立了。在調(diào)用函數(shù)close()(它終止TCP連接)后,狀態(tài)機使套接字轉(zhuǎn)移到空狀態(tài)800,它釋放套接字,使之可再次使用。
在正關閉狀態(tài)820中,只要(1)發(fā)生了網(wǎng)絡子系統(tǒng)失效;(2)試圖終止TCP連接,比如TCP重置、或由網(wǎng)絡服務器啟動TCP關閉;(3)定時器到時以及(4)IP地址的改變,狀態(tài)機就會轉(zhuǎn)移到“等待關閉”狀態(tài)。為了防止在終止TCP連接進行中的延遲,API 270執(zhí)行定時器,在啟動TCP連接終止時激勵了該定時器。如所見的,定時器的到時就把狀態(tài)機轉(zhuǎn)移到等待關閉狀態(tài)830。
在等待關閉狀態(tài)830中,調(diào)用函數(shù)close()終止TCP連接并把狀態(tài)機轉(zhuǎn)移到空狀態(tài)800。在這個狀態(tài)830確立了關閉事件。
表1-3說明了API 270所支持的特定狀態(tài)消息。在空狀態(tài)(表1-3中沒有顯示出)中,可把特定狀態(tài)消息“沒有另外資源可使用”(是說明性的)可報告給應用程序260。
表1
表2
表3
通過舉例,圖9說明了API 270的UDP套接字的狀態(tài)圖。未初始化的套接字在“空”狀態(tài)900中開始。就以上關于空狀態(tài)800所述,套接字由于尚未分配所以不“存在”??梢酝ㄟ^調(diào)用函數(shù)socket()創(chuàng)建套接字和使之初始化,這個函數(shù)返回套接字描述符以與套接字有關函數(shù)一起使用。在調(diào)用函數(shù)socket()后,狀態(tài)機轉(zhuǎn)移到“開啟”狀態(tài)905。
在開啟狀態(tài)905中,開啟套接字以讀取和寫入。尤其,在根據(jù)是否把數(shù)據(jù)存儲到通信協(xié)議堆棧280的存儲器中而啟動讀取事件的同時,會立即啟動寫入事件。只要發(fā)生了網(wǎng)絡子系統(tǒng)失效,狀態(tài)機就會轉(zhuǎn)移到“已關閉”狀態(tài)910。應用程序啟動的UDP連接終止(比如通過調(diào)用函數(shù)close()),使狀態(tài)機轉(zhuǎn)移到空狀態(tài)900。
在已關閉狀態(tài)910中,讀取、寫入和關閉事件都被啟動了。在調(diào)用函數(shù)close()(它終止UDP連接)后,狀態(tài)機把套接字轉(zhuǎn)移到空狀態(tài)900,它釋放套接字并使其可再次使用。
表4-6說明了API 270所支持的特定狀態(tài)消息。在空狀態(tài)(表4-6中沒有顯示出)中,如上所述,可把特定狀態(tài)消息“沒有另外資源可使用”(是說明性的)報告給應用程序260。
表4
表5
表6
圖10說明了控制網(wǎng)絡子系統(tǒng)(比如話務信道(即Um)和鏈路層(即PPP206))的狀態(tài)圖。調(diào)用函數(shù)open_netlib()開啟網(wǎng)絡子系統(tǒng),并使套接字初始化而進入“已關閉”狀態(tài)1000。調(diào)用函數(shù)pppopen(),啟動網(wǎng)絡子系統(tǒng)連接,它使套接字轉(zhuǎn)移到“正開啟”狀態(tài)1005。通過進入的PPP呼叫,到MS 110的尋呼也使套接字轉(zhuǎn)移到正開啟狀態(tài)1005。在這兩種情況下,經(jīng)過成功協(xié)商,MS 110嘗試越過話務信道同步和建立RLP和PPP兩者。
在正開啟狀態(tài)1005中,當建立網(wǎng)絡子系統(tǒng)連接時,套接字轉(zhuǎn)移到“開啟”狀態(tài)1010。另一方面,如果沒有建立網(wǎng)絡子系統(tǒng),那么套接字轉(zhuǎn)移回到已關閉狀態(tài)1000。
在開啟狀態(tài)1010中,調(diào)用回叫函數(shù)以識別應用程序1060指定的事件,比如已啟動的讀取、寫入和關閉。在這個時刻,MS 110能夠通過話務信道通信。然而,只要發(fā)生了網(wǎng)絡子系統(tǒng)失效(它調(diào)用回叫函數(shù)),套接字就會轉(zhuǎn)移到“已關閉”狀態(tài)1000。應用程序啟動的網(wǎng)絡子系統(tǒng)連接終止(比如通過調(diào)用函數(shù)close()),使狀態(tài)機轉(zhuǎn)移到正關閉1015。
在正關閉狀態(tài)1015中,只要終止了網(wǎng)絡子系統(tǒng)連接,套接字就轉(zhuǎn)移到已關閉狀態(tài)1000。在已關閉狀態(tài)1000中,調(diào)用回叫函數(shù)以識別所啟動的應用程序260的指定事件。
表7說明了相應于特定函數(shù)調(diào)用,并由API 270支持的特定狀態(tài)消息。
表7
在另一個實施例中,機器可以讀取包含已編碼信息的機器可讀取介質(zhì),比如已編碼軟件代碼,以發(fā)生上檢測指定事件的過程。機器可讀取介質(zhì)可以從存儲設備(比如存儲器或存儲盤),或從通信網(wǎng)絡接收已編碼信息。當制造了該介質(zhì)時,也可用已編碼信息對機器可讀取介質(zhì)進行編程。該機器可以包括至少一個應用程序260、通信協(xié)議堆棧280和API 270,而機器可讀取介質(zhì)可以包括存儲器或存儲盤。
雖然結(jié)合特定實施例顯示了本發(fā)明,但不應考慮為有此限制。當然,本發(fā)明僅僅由所附權利要求和它們的等價物的范圍限定。
權利要求
1.一種用于移動臺通信協(xié)議堆棧檢測指定事件的方法,該方法包括在移動臺通信協(xié)議堆棧和通信網(wǎng)絡間進行通信;在所述移動臺通信協(xié)議堆棧和所述移動臺應用程序間通過移動臺應用程序接口進行通信;只要所述移動臺應用程序記錄了所述指定事件,就通過所述移動臺通信協(xié)議堆棧查詢存儲器;以及根據(jù)查詢通過移動臺通信協(xié)議堆棧檢測所述指定事件。
2.按權利要求1所述的方法,其特征在于進一步包括只要所述存儲器可用于接受足夠量的數(shù)據(jù),就通過所述移動臺通信協(xié)議堆棧檢測所述指定事件。
3.按權利要求1所述的方法,其特征在于所述指定事件至少是讀取、寫入和關閉事件之一。
4.按權利要求2所述的方法,其特征在于從所述移動臺應用程序發(fā)送所述數(shù)據(jù)。
5.按權利要求1所述的方法,其特征在于進一步包括通過所述移動臺應用程序記錄所述指定事件,以及通過所述移動臺應用程序禁止所述指定事件。
6.一種用于移動臺通信協(xié)議堆棧檢測指定事件的方法,該方法包括在移動臺通信協(xié)議堆棧和通信網(wǎng)絡間進行通信;在所述移動臺通信協(xié)議堆棧和所述移動臺應用程序間通過移動臺應用程序接口進行通信;通過移動臺應用程序記錄所述指定事件;只要所述指定事件發(fā)生就觸發(fā)中斷通知;以及通過移動臺通信協(xié)議堆棧按所述中斷通知檢測所述指定事件。
7.按權利要求6所述的方法,其特征在于只要把數(shù)據(jù)寫入了存儲器,所述指定事件就發(fā)生。
8.按權利要求6所述的方法,其特征在于所述指定事件至少是讀取、寫入和關閉事件之一。
9.按權利要求6所述的方法,其特征在于進一步包括通過所述移動臺應用程序禁止所述指定事件。
10.一種檢測指定事件的設備,該設備包括與通信網(wǎng)絡進行通信的移動臺通信協(xié)議堆棧;移動臺應用程序接口,它簡化移動臺通信協(xié)議堆棧和移動臺應用程序間的通信;以及存儲器,只要所述移動臺應用程序記錄了所述指定事件,就通過所述移動臺通信協(xié)議堆棧進行查詢。其中,所述移動臺通信協(xié)議堆棧適用于根據(jù)查詢檢測所述指定事件。
11.按權利要求10所述的設備,其特征在于只要所述存儲器可用于接受足夠量的數(shù)據(jù)所述移動臺應用程序接口就適用于檢測所述指定事件。
12.按權利要求10所述的設備,其特征在于所述指定事件至少是讀取、寫入和關閉事件之一。
13.按權利要求10所述的設備,其特征在于從所述移動臺應用程序發(fā)送所述數(shù)據(jù)。
14.按權利要求10所述的設備,其特征在于所述移動臺應用程序適用于禁止所述指定事件。
15.一種檢測指定事件的設備,該設備包括與通信網(wǎng)絡進行通信的移動臺通信協(xié)議堆棧;以及移動臺應用程序接口,它簡化移動臺通信協(xié)議堆棧和移動臺應用程序間的通信;其中,所述移動臺應用程序適用于記錄所述指定事件,其中,中斷通知適用于只要所述指定事件發(fā)生就觸發(fā),其中,所述移動臺通信協(xié)議堆棧適用于通過中斷通知檢測所述指定事件。
16.按權利要求15所述的設備,其特征在于所述指定事件至少是讀取、寫入和關閉事件之一。
17.按權利要求15所述的設備,其特征在于只要把數(shù)據(jù)寫入了存儲器所述指定事件就發(fā)生。
18.按權利要求15所述的設備,其特征在于所述移動臺應用程序適用于禁止所述指定事件。
19.一種機器可讀取介質(zhì),它包括已編碼信息,其中由機器讀取時所引發(fā)的過程有在移動臺通信協(xié)議堆棧和通信網(wǎng)絡間進行通信;在所述移動臺通信協(xié)議堆棧和所述移動臺應用程序間通過移動臺應用程序接口進行通信;只要所述移動臺應用程序記錄了所述指定事件,就通過所述移動臺通信協(xié)議堆棧查詢存儲器;以及根據(jù)查詢通過移動臺通信協(xié)議堆棧檢測所述指定事件。
20.按權利要求19所述的機器可讀取介質(zhì),其特征在于進一步包括只要所述存儲器可用于接受足夠量的數(shù)據(jù)就通過所述移動臺通信協(xié)議堆棧檢測所述指定事件。
21.按權利要求19所述的機器可讀取介質(zhì),其特征在于所述指定事件至少是讀取、寫入和關閉事件之一。
22.按權利要求20所述的機器可讀取介質(zhì),其特征在于從所述移動臺應用程序發(fā)送所述數(shù)據(jù)。
23.按權利要求19所述的機器可讀取介質(zhì),其特征在于進一步包括通過所述移動臺應用程序記錄所述指定事件,以及通過所述移動臺應用程序禁止所述指定事件。
24.一種機器可讀取介質(zhì),它包括已編碼信息,其中由機器讀取時所引發(fā)的過程有在移動臺通信協(xié)議堆棧和通信網(wǎng)絡間進行通信;在所述移動臺通信協(xié)議堆棧和所述移動臺應用程序間通過移動臺應用程序接口進行通信;通過移動臺應用程序記錄所述指定事件;只要所述指定事件發(fā)生就觸發(fā)中斷通知;以及通過移動臺通信協(xié)議堆棧按所述中斷通知檢測所述指定事件。
25.按權利要求24所述的機器可讀取介質(zhì),其特征在于只要把數(shù)據(jù)寫入了存儲器所述指定事件就發(fā)生。
26.按權利要求24所述的機器可讀取介質(zhì),其特征在于所述指定事件至少是讀取、寫入和關閉事件之一。
27.按權利要求24所述的機器可讀取介質(zhì),其特征在于進一步包括通過所述移動臺應用程序禁止所述指定事件。
全文摘要
本發(fā)明揭示了一種在無線通信系統(tǒng)中檢測指定事件的方法和設備。本發(fā)明包括應用程序接口(API),它簡化移動臺通信協(xié)議堆棧(它與通信網(wǎng)絡通信)和移動臺應用程序間的通信。當移動臺應用程序記錄一指定事件時,移動臺通信協(xié)議堆棧就查詢存儲器。然后,根據(jù)查詢,移動臺通信協(xié)議堆棧檢測所述指定事件。在本發(fā)明的另一個實施中,移動臺通信協(xié)議堆棧由中斷通知檢測所述指定事件,當所述指定事件發(fā)生時觸發(fā)這個中斷通知。
文檔編號G06F13/00GK1435039SQ01807377
公開日2003年8月6日 申請日期2001年3月29日 優(yōu)先權日2000年3月30日
發(fā)明者N·阿波羅, H·吉爾基 申請人:高通股份有限公司