專利名稱:過程間通信和網(wǎng)絡(luò)間數(shù)據(jù)傳送的方法和系統(tǒng)的制作方法
一般來說,本發(fā)明涉及處理系統(tǒng)網(wǎng)絡(luò),更具體地說,本發(fā)明涉及在網(wǎng)絡(luò)間處理系統(tǒng)的應(yīng)用程序之間建立通信和網(wǎng)絡(luò)間數(shù)據(jù)傳送的方法和系統(tǒng)。
由于異步傳送模式(“ATM”)網(wǎng)絡(luò)的高數(shù)據(jù)速率和靈活性,利用這種網(wǎng)絡(luò)來傳送包括視頻、聲音和數(shù)據(jù)的多媒體信息已變得越來越普遍。ATM網(wǎng)絡(luò)使用CCITT規(guī)定的分組交換技術(shù)標(biāo)準(zhǔn),M.dePrycker在“異步傳送模式來自寬帶SIDN的解決辦法”(EllisHorwood,1993)中描述了這一標(biāo)準(zhǔn)。ATM網(wǎng)絡(luò)已被計(jì)算機(jī)和無線電通信工業(yè)用來連網(wǎng)已有和未來的多媒體應(yīng)用,例如電視會(huì)議、付費(fèi)電視(video—on—demand)和電話應(yīng)用。ATM網(wǎng)絡(luò)是面向連接的網(wǎng)絡(luò),在這種網(wǎng)絡(luò)中,網(wǎng)絡(luò)設(shè)備之間每次數(shù)據(jù)傳送之前是調(diào)用網(wǎng)絡(luò)連接管理器來建立設(shè)備之間的虛擬線路或連接。虛擬線路相當(dāng)于被網(wǎng)絡(luò)連接管理器識(shí)別的、用于在設(shè)備之間傳送數(shù)據(jù)的特定發(fā)送通路。但是,幾乎沒有市場(chǎng)上買得到的計(jì)算機(jī)是ATM兼容的。此外,由于目前在ATM網(wǎng)絡(luò)的構(gòu)成方面所用的數(shù)據(jù)路由交換機(jī)的高成本,當(dāng)前可用的與少數(shù)已有ATM網(wǎng)絡(luò)的連接是有限的。
相反地,通過無連接網(wǎng)絡(luò)、例如Internet網(wǎng)相互進(jìn)行通信的計(jì)算機(jī)或其它處理系統(tǒng)正被廣泛使用,并用于辦公室、學(xué)校和許多家庭。這些網(wǎng)絡(luò)被稱為無連接網(wǎng),是由于數(shù)據(jù)通過網(wǎng)絡(luò)從源設(shè)備傳送到目標(biāo)設(shè)備,不必象在ATM網(wǎng)絡(luò)中所需要的那樣首先建立“連接”或虛擬線路。
計(jì)算機(jī)利用若干協(xié)議中的任一協(xié)議、例如“Internet網(wǎng)協(xié)議”(“IP”)通過無連接網(wǎng)絡(luò)進(jìn)行通信。協(xié)議規(guī)定了文件傳送、遠(yuǎn)端登記、電子郵件和其它服務(wù),包括分布處理。IP的功能之一是使數(shù)據(jù)分組能夠通過一個(gè)或多個(gè)網(wǎng)絡(luò)從源設(shè)備到達(dá)最終的目標(biāo)設(shè)備。在無連接網(wǎng)絡(luò)中,源設(shè)備利用目標(biāo)設(shè)備的地址傳送數(shù)據(jù),無連接網(wǎng)絡(luò)將利用任意多條網(wǎng)絡(luò)路徑把該數(shù)據(jù)送到所需的目標(biāo)設(shè)備。
這些數(shù)據(jù)傳送技術(shù)的差別一直是鏈接大量的計(jì)算機(jī)和在無連接網(wǎng)絡(luò)、例如“交互(internet)網(wǎng)”上可用的應(yīng)用軟件與預(yù)期在ATM網(wǎng)絡(luò)上獲得的設(shè)備和寬范圍的服務(wù)的主要障礙。在各種網(wǎng)絡(luò)上傳送信息所用的數(shù)據(jù)分組格式的不同進(jìn)一步阻礙了網(wǎng)絡(luò)系統(tǒng)的這種連接。
因此,已認(rèn)識(shí)到需要在無連接網(wǎng)和ATM網(wǎng)絡(luò)之間建立通信和數(shù)據(jù)傳送。
根據(jù)本發(fā)明的原理,克服了現(xiàn)有技術(shù)的過程間通信和網(wǎng)絡(luò)間數(shù)據(jù)傳送的許多問題。
已有的無連接服務(wù)器和客戶程序可通過在這些程序間建立連接或虛擬電路修改成和在與無連接或面向連接的網(wǎng)絡(luò)連接的不同的設(shè)備上運(yùn)行的面向連接的例程進(jìn)行通信。服務(wù)器程序?yàn)槠渌绦蚝鸵?guī)程提供服務(wù),而客戶程序利用服務(wù)器程序提供的服務(wù)。
這種無連接服務(wù)器和客戶程序在傳送數(shù)據(jù)之前與連接管理器進(jìn)行通信。連接管理器是在程序之間建立和維持連接的例行程序或線路。通過傳送可用服務(wù)信息給連接管理器就可以修改服務(wù)器程序來建立與遠(yuǎn)端客戶機(jī)例行程序的通信。連接管理器然后根據(jù)可用服務(wù)消息,登記可用服務(wù)并將登記消息的確認(rèn)傳回給服務(wù)器程序。用戶程序然后可以向連接管理器傳送連接請(qǐng)求消息來請(qǐng)求由服務(wù)器程序執(zhí)行的到一個(gè)特定可用服務(wù)的連接。一旦接收到這種消息,連接管理器就傳送相應(yīng)的連接請(qǐng)求給服務(wù)器程序。服務(wù)器程序然后可以發(fā)送接受連接消息給連接管理器,后者作出響應(yīng)、發(fā)回相應(yīng)于服務(wù)器程序和遠(yuǎn)端客戶例行程序之間的已建立連接的虛擬線路標(biāo)識(shí)符(“VCI”)的值。該VCI值然后被正在運(yùn)行服務(wù)器程序的設(shè)備的網(wǎng)絡(luò)接口用來傳送從具有該VCI值的網(wǎng)絡(luò)接收的數(shù)據(jù)分組。
在相應(yīng)的方式中,通過向連接管理器傳送請(qǐng)求與一特定服務(wù)器例行程序連接的信息就可以修改用戶程序來建立與遠(yuǎn)端服務(wù)器例行程序的通信。連接管理器然后通過傳送返回確認(rèn)消息對(duì)該請(qǐng)求作出確認(rèn)。連接管理器確定被請(qǐng)求的服務(wù)是否被可用的服務(wù)器例行程序執(zhí)行,如果是,就建立與該服務(wù)器例行程序的連接。一旦建立了與該服務(wù)器例行程序的連接,連接管理器就傳送連接建立通知給用戶程序。該連接建立通知包含相應(yīng)于被建立連接的VCI值。該VCI值然后被正在運(yùn)行用戶程序的設(shè)備的網(wǎng)絡(luò)接口用來傳送從具有該VCI值的網(wǎng)絡(luò)接收的數(shù)據(jù)分組。
本發(fā)明的一個(gè)方面涉及在連接已被建立之后數(shù)據(jù)分組的傳輸。本發(fā)明允許信息在源設(shè)備中運(yùn)行的源例行程序和在目標(biāo)設(shè)備中運(yùn)行的目標(biāo)例行程序之間的傳送,源和目標(biāo)例行程序按照ATM格式幀的方式產(chǎn)生和接收數(shù)據(jù),而網(wǎng)絡(luò)以Internet協(xié)議(“IP”)數(shù)據(jù)分組的方式傳送數(shù)據(jù)。利用封裝器和解封裝器來實(shí)現(xiàn)這種數(shù)據(jù)傳送在IP分組的數(shù)據(jù)部分中封裝ATM格式幀以便在網(wǎng)絡(luò)上傳送。
根據(jù)本發(fā)明的一種封裝方法,產(chǎn)生中間數(shù)據(jù)格式首部,該首部包含要被傳送的ATM格式幀的源和目標(biāo)信息。被產(chǎn)生的中間格式首部然后被附加到ATM格式幀以便形成中間格式數(shù)據(jù)分組。該中間格式數(shù)據(jù)分組然后被封裝到IP數(shù)據(jù)分組的數(shù)據(jù)部分中并通過網(wǎng)絡(luò)被傳送。目標(biāo)設(shè)備接收的封裝IP數(shù)據(jù)分組然后可被解封裝為原來的ATM格式數(shù)據(jù)分組。
本發(fā)明的一種解封裝方法首先從接收的IP數(shù)據(jù)分組中檢索中間格式數(shù)據(jù)分組。然后從中間格式數(shù)據(jù)分組檢索ATM格式幀和中間數(shù)據(jù)格式首部。目標(biāo)設(shè)備然后可把檢索的ATM格式幀送到相應(yīng)的目標(biāo)行例程序,或者,如果該目標(biāo)設(shè)備是中間網(wǎng)間連接器(gateway)目標(biāo)設(shè)備,就可在第二網(wǎng)絡(luò)上將第一格式的數(shù)據(jù)分組傳送給最終的目標(biāo)設(shè)備。
本發(fā)明使在一個(gè)或多個(gè)鏈接網(wǎng)絡(luò)上的通信例行程序之間的數(shù)據(jù)傳送更為方便,在本發(fā)明中,被例行程序傳送和讀出的信息的數(shù)據(jù)格式不同于一個(gè)或多個(gè)網(wǎng)絡(luò)能夠傳送的數(shù)據(jù)格式。
通過參看以下的詳細(xì)描述和附圖將更加容易理解本發(fā)明的上述特征以及其它特征和優(yōu)點(diǎn)。
圖1表示可以按照本發(fā)明運(yùn)行的個(gè)人計(jì)算機(jī)的等角圖;圖2表示微處理系統(tǒng)的方框圖,該系統(tǒng)可以與圖1的個(gè)人計(jì)算機(jī)一起被使用;圖3表示圖1的個(gè)人計(jì)算機(jī)與之連接的無連接網(wǎng)絡(luò)和異步傳送模式(“ATM”)網(wǎng)絡(luò)的方框圖4表示在與圖3的網(wǎng)絡(luò)連接的處理系統(tǒng)中執(zhí)行的通信例行程序和示范性應(yīng)用程序的方框圖,這些程序可用來在網(wǎng)絡(luò)之間通信和傳送數(shù)據(jù);圖5表示可以在圖4的處理系統(tǒng)中使用的服務(wù)器連接例行程序的流程圖;圖6表示可以在圖4的處理系統(tǒng)中使用的用戶連接例行程序的流程圖;圖7表示可被圖4所示的封裝程序—解封裝程序使用的封裝例行程序的流程圖;圖8表示可被圖4所示的封裝程序—解封裝程序使用的解封裝例行程序的流程圖。
圖1表示可在圖3和4所示的處理系統(tǒng)網(wǎng)絡(luò)內(nèi)起異步傳送模式(“ATM”)啟動(dòng)主機(jī)作用的個(gè)人計(jì)算機(jī)(“PC”)100的等角圖。該P(yáng)C100由硬件機(jī)箱101(表示為具有剖開的視圖)、監(jiān)視器104、鍵盤105和任選的鼠標(biāo)器108組成。應(yīng)當(dāng)指出,監(jiān)視器104以及鍵盤105和鼠標(biāo)108都可以分別被任何恰當(dāng)?shù)卦O(shè)置的輸出和輸入設(shè)備來代替。硬件機(jī)箱101包括軟盤驅(qū)動(dòng)器102和硬盤驅(qū)動(dòng)器103。軟盤驅(qū)動(dòng)器102能夠接收、讀出和寫入外部磁盤,而硬盤驅(qū)動(dòng)器103能夠提供快速存取的數(shù)據(jù)存儲(chǔ)和檢索。還可以給PC100安裝用于接收和傳送數(shù)據(jù)的任何恰當(dāng)?shù)卦O(shè)置的結(jié)構(gòu),例如包括磁帶和光盤驅(qū)動(dòng)器,以及串行和并行數(shù)據(jù)端口。
在硬件機(jī)箱101的剖開部分內(nèi)的是例如與存儲(chǔ)器存儲(chǔ)設(shè)備連接的中央處理單元(“CPU”)106這樣的處理單元,在所示的實(shí)施例中,存儲(chǔ)器存儲(chǔ)設(shè)備是隨機(jī)存取存儲(chǔ)器(“RAM”)107。CPU106還與ATM網(wǎng)絡(luò)接口109以及例如“Internet”接口110這樣的無連接網(wǎng)絡(luò)接口連接。合適的ATM網(wǎng)絡(luò)接口109是可以位于賓夕法尼亞州的匹茲堡的Fore系統(tǒng)公司(Fore System,Inc.)大量獲得的ATM主機(jī)適配器卡。合適的無連接網(wǎng)絡(luò)接口110包括在商業(yè)上可用于與Internet網(wǎng)連接的網(wǎng)絡(luò)接口。
雖然PC100被表示為具有單個(gè)CPU106,但PC100也可設(shè)有多個(gè)CPU106共同實(shí)現(xiàn)本發(fā)明的原理。同樣地,雖然PC100被表示為具有單個(gè)本地存儲(chǔ)器存儲(chǔ)設(shè)備107,但PC100也可裝多個(gè)本地存儲(chǔ)器存儲(chǔ)設(shè)備。另外,雖然PC100被用來說明在處理系統(tǒng)網(wǎng)絡(luò)內(nèi)的ATM啟動(dòng)主機(jī)的一種實(shí)現(xiàn)方式,但本發(fā)明也可以在任何具有至少一個(gè)處理單元的處理系統(tǒng)內(nèi)被實(shí)現(xiàn),這些系統(tǒng)例如包括復(fù)雜計(jì)算器以及手持、微型計(jì)算機(jī),大型機(jī)和超級(jí)計(jì)算機(jī),還包括RISC和并行處理體系結(jié)構(gòu),本發(fā)明還可以在前述處理系統(tǒng)網(wǎng)絡(luò)的組合中被實(shí)現(xiàn)。
圖2表示可以與圖1的個(gè)人計(jì)算機(jī)100一起被使用的微處理系統(tǒng)的方框圖。該微處理系統(tǒng)包括通過數(shù)據(jù)總線203與例如RAM107這樣的存儲(chǔ)器存儲(chǔ)設(shè)備連接的例如CPU 106這樣的單個(gè)處理單元。存儲(chǔ)器存儲(chǔ)設(shè)備107能夠存儲(chǔ)可被處理單元106檢索、解釋和執(zhí)行的一條或多條指令。
處理單元106包括控制單元200、算術(shù)邏輯單元(“ALU”)201和本地存儲(chǔ)器存儲(chǔ)設(shè)備202,該本地存儲(chǔ)器存儲(chǔ)設(shè)備202例如可以是可堆棧的高速緩沖存儲(chǔ)器或多個(gè)寄存器??刂茊卧?00能夠從存儲(chǔ)器存儲(chǔ)設(shè)備107檢索指令。ALU201能夠執(zhí)行多種操作,包括執(zhí)行指令所需的加法運(yùn)算和布爾“與”運(yùn)算。本地存儲(chǔ)器存儲(chǔ)設(shè)備202能夠提供用于存儲(chǔ)暫時(shí)結(jié)果和控制信息的高速存儲(chǔ)功能。
本發(fā)明的過程間通信和網(wǎng)間數(shù)據(jù)傳送方法和系統(tǒng)的預(yù)期使用就是在位于internet和ATM網(wǎng)絡(luò)上的設(shè)備之間提供通信和數(shù)據(jù)傳送。因此,以下參照這些無連接和面向連接的網(wǎng)絡(luò)分別描述本發(fā)明,但這并不意味著對(duì)可以恰當(dāng)?shù)乩帽景l(fā)明的網(wǎng)絡(luò)種類的限制。
圖3表示能夠使ATM為主機(jī),諸如圖100的處理系統(tǒng),鏈接到ATM網(wǎng)300和無連接網(wǎng),諸如網(wǎng)間接口310的框圖。處理系統(tǒng)100可作為在網(wǎng)絡(luò)300和310之間進(jìn)行數(shù)據(jù)傳送的網(wǎng)間連接器。ATM網(wǎng)絡(luò)300將處理系統(tǒng)100與處理系統(tǒng)320和321、付費(fèi)電視(video on demand)服務(wù)設(shè)備322、電話系統(tǒng)323以及可視電話系統(tǒng)324進(jìn)行連接。ATM網(wǎng)絡(luò)是通過將語音、數(shù)據(jù)或視頻信息組織成為小的單元或數(shù)據(jù)分組就能夠在與ATM網(wǎng)絡(luò)300連接的設(shè)備之間傳送這種信息的信元交換網(wǎng)絡(luò)。如在“ATM討論會(huì)用戶網(wǎng)絡(luò)接口3.0(ATM Forum User—Network Interface 3.0)”(Prentice—Hall,1993)(“ATM Forum UNI reference”)中所描述的那樣,CCITT和ATM討論會(huì)已經(jīng)標(biāo)準(zhǔn)化ATM網(wǎng)絡(luò)的許多特性和特征,該文件的全文援引在此作為參考文獻(xiàn)。ATM信元通過ATM網(wǎng)絡(luò)300被高速地傳送,目前以每秒50兆位到每秒2.4千兆位。
internet網(wǎng)310將處理系統(tǒng)100與處理系統(tǒng)330、331和332以及局域網(wǎng)(“LAN”)333進(jìn)行鏈接。LAN 333是利用連續(xù)電纜或室內(nèi)語音數(shù)據(jù)電話系統(tǒng)在建筑物或綜合結(jié)構(gòu)內(nèi)將各種硬件設(shè)備連接在一起的通信網(wǎng)絡(luò)。internet通常被定義為作為一個(gè)整體進(jìn)行操作的獨(dú)立或特殊的無連接網(wǎng)絡(luò)的任何組合,可以包括利用若干種協(xié)議中的任一協(xié)議、例如“internet網(wǎng)協(xié)議”(“IP”)相互進(jìn)行連接的各種網(wǎng)絡(luò)的世界范圍的網(wǎng)絡(luò)。協(xié)議規(guī)定了文件傳送、遠(yuǎn)端登記、電子郵件和包括分布處理的其它服務(wù)以及其它資源。IP的功能之一是使源節(jié)點(diǎn)、例如處理系統(tǒng)100的IP數(shù)據(jù)分組能夠在其傳送過程中通過多個(gè)網(wǎng)絡(luò)到達(dá)最終的目標(biāo)節(jié)點(diǎn),不必首先建立虛擬線路或“連接”。
由于ATM網(wǎng)絡(luò)需要建立虛擬線路以及數(shù)據(jù)分組格式的失配,在無連接網(wǎng)絡(luò)、例如internet310上已有的應(yīng)用程序不經(jīng)修改就不能利用在ATM網(wǎng)絡(luò)、例如網(wǎng)絡(luò)300上可獲得的服務(wù)。
圖4表示根據(jù)本發(fā)明的使示范性應(yīng)用程序A400和B400能夠與在ATM網(wǎng)絡(luò)300上的設(shè)備進(jìn)行通信的一實(shí)施例的通信過程和例行程序的方框圖布置。在以下描述中,當(dāng)另一例行程序請(qǐng)求時(shí)進(jìn)行服務(wù)的例行程序被稱為服務(wù)器例行程序。另外,請(qǐng)求該服務(wù)的例行程序被稱為用戶例行程序。
在圖4中,被圖3的處理系統(tǒng)100和330執(zhí)行的例行程序被分別包括在標(biāo)為100和330的虛線框內(nèi)。在處理系統(tǒng)100內(nèi),示范性應(yīng)用程序A400,它可以是無連接的服務(wù)器或用戶程序,與連接服務(wù)例行程序庫(kù)405通信??梢岳迷趫D2所示的處理單元106內(nèi)的過程間通信或利用在處理系統(tǒng)100內(nèi)的兩個(gè)合適編程的電路或設(shè)備之間的連接來進(jìn)行通信。
連接服務(wù)例行程序庫(kù)405與連接管理器410通信。連接管理器410還與internet協(xié)議(“IP”)堆棧接口415和ATM協(xié)議堆棧接口420通信。堆棧接口415和420還與封裝器—解封裝器425和應(yīng)用程序A400通信。連接管理器410可以是在圖1所示的處理單元106上操作的程序或例行程序,或是包含在處理系統(tǒng)100內(nèi)的合適編程的設(shè)備。在作為參考文獻(xiàn)的“ATM Forum UNIreference”的第149—292頁(yè)的§5中描述了合適的連接管理器410的例行程序。
IP堆棧接口415與網(wǎng)絡(luò)接口110通信并使其產(chǎn)生處理系統(tǒng)100和internet 310之間的數(shù)據(jù)傳送所必須的信號(hào)。IP堆棧接口415是IP語義的實(shí)現(xiàn)。換句話說,IP堆棧接口415執(zhí)行internet網(wǎng)協(xié)議(包含信令)規(guī)定的每一層所需的抽象功能。IP堆棧接口415可以是在處理單元106中運(yùn)行的例行程序或是包含在處理系統(tǒng)100內(nèi)的合適編程的電路或插件板。在S.J.Leffler、M.K.Mckusick、M.J.Karels和J.S.Quarterman的“4.3 BSD UNIX操作系統(tǒng)的設(shè)計(jì)和實(shí)施”(Addison—Wesley,1989)(“BSDreference”)中描述了合適的IP堆棧接口415,該著作的全文在此作為參考文獻(xiàn)。IP堆棧接口415與應(yīng)用程序A 400通信以便以普通方式實(shí)現(xiàn)與在internet網(wǎng)310上的其它設(shè)備的數(shù)據(jù)傳送。
同樣地,ATM協(xié)議堆棧接口420與ATM網(wǎng)絡(luò)接口109通信并使其產(chǎn)生啟動(dòng)處理系統(tǒng)100和在ATM網(wǎng)絡(luò)300上的設(shè)備、例如處理系統(tǒng)320之間的數(shù)據(jù)傳送的正確信號(hào)。ATM協(xié)議堆棧接口420實(shí)現(xiàn)這些語義或本地模式ATM堆棧的抽象的功能。在“BSDreference”中描述了合適的ATM協(xié)議堆棧接口420。
封裝器—解封裝器執(zhí)行IP數(shù)據(jù)分組中ATM格式幀的封裝和解封裝,以便通過internet網(wǎng)310傳送和接收ATM格式幀??梢栽诜庋b器—解封裝器425中用來對(duì)ATM格式幀進(jìn)行封裝和解封裝的方法在以下參看圖7和8分別進(jìn)行詳細(xì)的描述。
因此,ATM協(xié)議堆棧接口420可以通過ATM網(wǎng)絡(luò)接口109在應(yīng)用程序A400和ATM網(wǎng)絡(luò)300上的設(shè)備之間、或通過封裝器—解封裝器425和IP協(xié)議堆棧接口415在應(yīng)用程序A400和internet網(wǎng)310上的設(shè)備之間進(jìn)行ATM格式幀的數(shù)據(jù)傳送。此外,堆棧接口415和420以及封裝器—解封裝器425還可以用作中間連接器處理系統(tǒng)或能在internet網(wǎng)310上執(zhí)行ATM的主機(jī),以便在位于網(wǎng)絡(luò)300和310上的設(shè)備之間傳送數(shù)據(jù)。
以類似的方式,在處理系統(tǒng)330內(nèi),應(yīng)用程序B430,也可以是無連接服務(wù)器或用戶例行程序,與相應(yīng)的連接服務(wù)例行程序庫(kù)435、IP堆棧接口440和ATM協(xié)議堆棧接口455通信。連接服務(wù)例行程序庫(kù)435還與IP堆棧接口440通信。IP堆棧接口440還從與internet網(wǎng)310連接的internet網(wǎng)網(wǎng)絡(luò)接口445傳送和接收IP數(shù)據(jù)分組。
IP堆棧接口440和internet網(wǎng)網(wǎng)絡(luò)接口445可分別按照基本上與處理系統(tǒng)100中的IP堆棧接口415和網(wǎng)絡(luò)接口110相同的方式運(yùn)行。同樣地,ATM協(xié)議堆棧接口455和封裝器—解封裝器460按照與在處理系統(tǒng)100中基本相同的方式運(yùn)行。但是,ATM協(xié)議堆棧接口455只發(fā)送和接收應(yīng)用程序B 430和封裝器—解封裝器460之間ATM格式幀,不需任何ATM網(wǎng)絡(luò)。
圖4所示的應(yīng)用程序A 400和B 430可以是已有的應(yīng)用例行程序,它們已被修改,用來傳送ATM格式幀并且包括用于建立與遠(yuǎn)端用戶或服務(wù)器程序的通信連接的連接服務(wù)例行程序庫(kù)。遠(yuǎn)端程序可以在與ATM網(wǎng)絡(luò)300連接的設(shè)備、例如圖3和4的處理系統(tǒng)320上運(yùn)行。連接管理器410建立并維護(hù)實(shí)現(xiàn)例行程序之間的通信的連接或虛擬線路。因此,處理系統(tǒng)100內(nèi)的連接服務(wù)例行程序庫(kù)405可以直接與連接管理器410通信。類似地,連接服務(wù)例行程序庫(kù)435可以按照通常的方法經(jīng)由IP堆棧接口415和440通過internet網(wǎng)310與連接管理器410通信。
連接服務(wù)例行程序庫(kù)435包含與連接管理器410通信的合適例行程序。以便建立和維護(hù)虛擬線路或連接。以下參看圖5和6更詳細(xì)地描述可包括在連接例行程序庫(kù)中的若干例行程序的操作。另外,應(yīng)用程序A400和B430可以是面向連接的程序,例如在ATM網(wǎng)絡(luò)300上運(yùn)行的程序。在這種情況下,程序A400和B430不必修改就能夠使用相應(yīng)的連接服務(wù)例行程序庫(kù)405和435來建立連接。
在已建立了兩例行程序、例如應(yīng)用程序B430和在處理系統(tǒng)330上的遠(yuǎn)端程序之間的連接之后,就可以按照以下方式在這兩例行程序之間傳送數(shù)據(jù)。參看圖4,假定連接的例行程序能夠利用ATM協(xié)議傳送和接收數(shù)據(jù),程序430將數(shù)據(jù)傳送給在處理系統(tǒng)330中的ATM協(xié)議堆棧接口455。ATM協(xié)議堆棧接口455將數(shù)據(jù)整理成ATM格式幀并將其傳送給封裝IP數(shù)據(jù)分組中數(shù)據(jù)分組的封裝器—解封裝器。以下參看圖7描述一種合適的封裝例行程序。
被封裝IP數(shù)據(jù)分組然后被傳送給IP堆棧接口440,IP堆棧接口440經(jīng)由IP網(wǎng)絡(luò)接口通過Internet網(wǎng)再將其傳送給處理系統(tǒng)1 00。在處理系統(tǒng)100中,IP堆棧接口415從IP網(wǎng)絡(luò)接口110接收IP數(shù)據(jù)分組。IP堆棧接口415將IP數(shù)據(jù)分組識(shí)別為被封裝IP數(shù)據(jù)包并將其傳送給封裝程序—解封裝程序425進(jìn)行解封裝。以下參看圖8描述一種合適的解封裝例行程序。
解封裝ATM格式幀然后被封裝器—解封裝器425傳送給ATM協(xié)議堆棧接口420,ATM協(xié)議堆棧接口420根據(jù)控制管理器410的信息識(shí)別ATM格式幀的目的地。ATM協(xié)議堆棧接口420然后控制ATM網(wǎng)絡(luò)接口109,以便通過ATM網(wǎng)絡(luò)300將ATM格式幀傳送給處理系統(tǒng)320。
圖5表示可被用來建立連接以便與遠(yuǎn)端面向連接的例行程序交換數(shù)據(jù)的服務(wù)器連接例行程序500的流程圖。遠(yuǎn)端面向連接的例行程序可以在與ATM網(wǎng)絡(luò)300或Internet網(wǎng)310連接的設(shè)備上運(yùn)行。相對(duì)于在圖4的處理系統(tǒng)330上實(shí)現(xiàn)的應(yīng)用程序B430將服務(wù)器連接例行程序500描述為服務(wù)器程序。但是,該方法可被在與Internet網(wǎng)310連接的設(shè)備上運(yùn)行的任何無連接服務(wù)器例行程序、例如在處理系統(tǒng)100上運(yùn)行的應(yīng)用程序A400使用。
參看圖5,在步驟510中,當(dāng)服務(wù)器應(yīng)用程序B430希望宣傳其服務(wù)時(shí),它命令在連接服務(wù)例行程序庫(kù)435中的服務(wù)例行程序向連接管理器410輸出可用的服務(wù)器程序信息。該服務(wù)器程序信息包含可用服務(wù)的服務(wù)名。該信息可以按照通常的方式通過internet網(wǎng)310經(jīng)由IP堆棧接口440和415以及它們相應(yīng)的網(wǎng)絡(luò)接口445和110被傳送給連接管理器410。該輸出信息還可以包含網(wǎng)絡(luò)端口號(hào),服務(wù)器應(yīng)用程序B430將一直在該網(wǎng)絡(luò)端口上監(jiān)聽來自連接管理器410的信息。一旦從服務(wù)器應(yīng)用程序接收到可用服務(wù)信息,連接管理器410就在可用服務(wù)表中登記該可用服務(wù)名及其端口號(hào)。連接管理器410然后傳回確認(rèn)這種登記的信息。
在步驟510中輸出了可用服務(wù)信息后,服務(wù)器應(yīng)用程序B430就在步驟520中等待連接管理器410將確認(rèn)登記信息傳送給指定的網(wǎng)絡(luò)端口。在步驟520中接收了確認(rèn)登記信息后,服務(wù)器應(yīng)用程序B430再在步驟530中等待連接管理器410傳送的即將連接信息。這種信息表示遠(yuǎn)端用戶程序已經(jīng)向連接管理程序410請(qǐng)求與服務(wù)器應(yīng)用程序B430進(jìn)行連接。在例如與ATM網(wǎng)絡(luò)300連接的處理系統(tǒng)320上運(yùn)行的遠(yuǎn)程客戶程序可以產(chǎn)生這樣的服務(wù)連接請(qǐng)求。一旦接收到遠(yuǎn)程客戶程序?qū)τ诜?wù)器應(yīng)用程序B430提供的可用服務(wù)的請(qǐng)求,連接管理程序410就會(huì)將即將連接信息傳送給服務(wù)器應(yīng)用程序B430。
為了提供安全措施,傳送給服務(wù)器應(yīng)用程序B430的即將連接信息可以包含連接關(guān)鍵字。該連接關(guān)鍵字可以是16位信息字,該16位信息字向保持IP堆棧接口、例如在這一例子中的IP堆棧接口440給出了按照下述方式建立連接所需的信息。
在步驟530中接收了即將連接信息后,服務(wù)器應(yīng)用程序B430就在步驟540中決定它是否將接受連接。如果程序430在步驟540中決定不接受連接,則在步驟550中將拒絕連接信息傳送給連接管理器410并終止服務(wù)器連接例行程序。拒絕連接信息被連接管理器410的接收可以使連接管理器410從可用服務(wù)表中消除相應(yīng)的可用服務(wù)名。在另一種方案中,一旦在步驟550中發(fā)送了拒絕連接信息,服務(wù)器連接例行程序500可以返回到步驟530,在此等待連接管理器410的另一連接請(qǐng)求。在這樣一種可供選擇的方案中,連接管理器410在接收到拒絕連接信息之后將不從可用服務(wù)表中消除相應(yīng)的服務(wù)名。
但是,如果服務(wù)器連接例行程序500在步驟540中決定接受連接,則例行程序500就到達(dá)步驟560。在步驟560,服務(wù)器應(yīng)用程序B430使連接服務(wù)例行程序庫(kù)435向連接管理器410傳送接受連接信息。該接受連接信息可以包含連接管理器410先前傳送的連接關(guān)鍵字,以便保證將在合適的用戶和服務(wù)器程序之間建立連接。
然后服務(wù)器應(yīng)用程序B430在步驟570中等待接收被連接管理器410傳送的、相應(yīng)于被建立的連接的虛擬線路標(biāo)識(shí)符(“VCI”)值。VCI值是在ATM網(wǎng)絡(luò)中使用的唯一標(biāo)識(shí)符,它與數(shù)據(jù)將在相應(yīng)的處理系統(tǒng)330和320中的服務(wù)器和遠(yuǎn)端用戶程序之間通過的虛擬線路或數(shù)據(jù)通路相對(duì)應(yīng)。VCI值識(shí)別被連接管理器410維護(hù)的服務(wù)器和遠(yuǎn)端用戶程序之間的連接,并確保連接管理器410將把利用該VCI值傳送的數(shù)據(jù)送到合適的處理系統(tǒng)。在以上引用的“ATM forum UNI reference”中提供了對(duì)VCI更詳細(xì)的說明。
在步驟570中接收了VCI值后,服務(wù)器應(yīng)用程序B430就在步驟580中將該VCI值傳送給ATM協(xié)議堆棧接口455。該ATM協(xié)議堆棧接口455利用該VCI值來將從Internet網(wǎng)310接收的、具有該特征VCI值的任何被接收的ATM格式幀傳送給服務(wù)器應(yīng)用程序B430。換句話說,步驟580的功能可被看作是將VCI值配聯(lián)給相應(yīng)的ATM協(xié)議堆棧接口455和服務(wù)器應(yīng)用程序430。處理系統(tǒng)100的連接管理器410保存了VCI映射表,該VCI映射表包含被建立連接的VCI值和執(zhí)行被連接程序的相應(yīng)處理系統(tǒng)的internet網(wǎng)網(wǎng)絡(luò)端口號(hào)。然后在連接管理器410的信息的控制下,利用處理系統(tǒng)100,通過網(wǎng)絡(luò)300和310,將被連接服務(wù)器和遠(yuǎn)端用戶程序產(chǎn)生的數(shù)據(jù)傳送到它們各自的目的地。
連接管理器410可以通過不斷地檢查和更新5個(gè)表來執(zhí)行其操作。這5個(gè)表包括上述的可用服務(wù)表和VCI映射表、等待可用服務(wù)器程序的用戶程序的用戶請(qǐng)求表、存儲(chǔ)連接等待接受的標(biāo)識(shí)的連接請(qǐng)求表、以及配聯(lián)連接表。配聯(lián)連接表包含那些已被連接管理器410建立但尚未被配聯(lián)給相應(yīng)的ATM協(xié)議堆棧接口的連接。
通過把相對(duì)于圖5的服務(wù)器連接例行程序500描述的連接服務(wù)例行程序庫(kù)調(diào)用包括進(jìn)來就可以容易地修改任何已有的無連接服務(wù)器應(yīng)用程序來建立連接。例如,可將服務(wù)器應(yīng)用程序修改為包括以下的連接服務(wù)例行程序庫(kù)調(diào)用<pre listing-type="program-listing"><![CDATA[(1)export_service(service Name,TCP_PORT);(2)conkey=await_service_request();(3)VCI=accept_connection(conkey);(4)bind(VCI);]]></pre>庫(kù)調(diào)用export—service相當(dāng)于例行程序500的步驟510,并發(fā)送服務(wù)名service Name和本地網(wǎng)絡(luò)端口號(hào)TCP—PORT。該本地網(wǎng)絡(luò)端口號(hào)相應(yīng)于服務(wù)器程序?qū)⒃谄渖弦恢北O(jiān)聽來自連接管理器410的響應(yīng)的網(wǎng)絡(luò)端口。庫(kù)調(diào)用await—service—request相當(dāng)于步驟530,傳回任選連接關(guān)鍵字conkey。庫(kù)調(diào)用accept—connection相當(dāng)于步驟560和570,發(fā)送任選關(guān)鍵字以便提供連接管理器410正在與合適的服務(wù)器程序連接的安全措施。庫(kù)調(diào)用accept—connection傳回接收的VCI值。庫(kù)調(diào)用bind相當(dāng)于配聯(lián)相應(yīng)的協(xié)議堆棧接口,以便利用在internet網(wǎng)310上傳送的合適的VCI值將任何數(shù)據(jù)傳送給服務(wù)器應(yīng)用程序。
圖6表示可被處理系統(tǒng)用來獲得與所需遠(yuǎn)端面向連接的服務(wù)器程序連接的虛擬線路的用戶連接例行程序600。例如,該用戶連接例行程序600將相對(duì)于在圖4的處理系統(tǒng)100上運(yùn)行的應(yīng)用程序A400被描述為用戶程序。相應(yīng)的遠(yuǎn)端服務(wù)器程序可位于與ATM網(wǎng)絡(luò)300或Internet網(wǎng)310連接的設(shè)備上。
參看圖6,在步驟610中,用戶應(yīng)用程序A400使連接服務(wù)例行程序庫(kù)405向連接管理器410發(fā)送請(qǐng)求信息。該請(qǐng)求信息可以包含例如某一所需服務(wù)器名和本地網(wǎng)絡(luò)端口地址這樣的信息,用戶程序?qū)⒃谠摫镜鼐W(wǎng)絡(luò)端口地址處監(jiān)聽響應(yīng)。用戶應(yīng)用程序400然后在步驟620中等待對(duì)被連接管理器410傳送到指定的本地網(wǎng)絡(luò)端口地址的請(qǐng)求的確認(rèn)。連接管理器410傳送的后續(xù)確認(rèn)可以包含相應(yīng)的連接關(guān)鍵字,可以按照與以上相對(duì)于圖5的服務(wù)器連接例行程序500所描述的關(guān)鍵字相同的方式來使用該關(guān)鍵字。
在步驟620從連接管理器410接收了確認(rèn)后,例行程序600然后在步驟630中等待來自連接管理器的、已建立了與被請(qǐng)求遠(yuǎn)端服務(wù)器程序的連接的后續(xù)信息。連接管理器410可以按照以上相對(duì)于圖5的例行程序500所描述的方式建立與遠(yuǎn)端服務(wù)器程序的連接。表示連接已被建立的接收信息可以包含該連接的相應(yīng)VCI值。用戶應(yīng)用程序A400按照與以上也是相對(duì)于圖5的例行程序500所描述的方式基本相同的方式使用該VCI值。
在步驟630中接收了表示連接已被建立的信息后,例行程序到達(dá)步驟640。在步驟640,用戶機(jī)連接例行程序?qū)CI值傳送給ATM協(xié)議堆棧接口420,以便將該VCI值配聯(lián)給用戶應(yīng)用程序A400。配聯(lián)步驟640使ATM協(xié)議堆棧接口420將具有合適的VCI值的任何數(shù)據(jù)分組傳送給用戶應(yīng)用程序A400。應(yīng)當(dāng)指出,ATM協(xié)議堆棧接口420能夠經(jīng)由ATM網(wǎng)絡(luò)接口109通過ATM網(wǎng)絡(luò)300以及經(jīng)由封裝器—解封裝器425和IP堆棧接口415通過internet網(wǎng)310接收和傳送ATM格式幀。因此,利用ATM格式幀進(jìn)行通信的用戶和服務(wù)器程序可以在與internet網(wǎng)310連接的并具有ATM協(xié)議堆棧接口和封裝器—解封裝器的兩臺(tái)設(shè)備上進(jìn)行。這種例行程序?qū)⒄5剡\(yùn)行,不理會(huì)ATM網(wǎng)絡(luò)的不存在。
通過把可被包括在連接服務(wù)例行程序庫(kù)中的以下兩條示范性庫(kù)調(diào)用包括進(jìn)來就可以修改已有的無連接用戶應(yīng)用程序來與面向連接的服務(wù)器程序通信<pre listing-type="program-listing"><![CDATA[(1)VCI=open_connect(ServerName,TCP_PORT);(2)connect(VCI).]]></pre>庫(kù)調(diào)用open—connect發(fā)送所需的服務(wù)器名Server Name和本地網(wǎng)絡(luò)端口地址TCP—PORT,用戶程序?qū)⒃谠摰刂诽幈O(jiān)聽來自連接管理器410的響應(yīng)。一旦發(fā)現(xiàn)可用服務(wù)器程序,連接管理器410就傳回相應(yīng)連接的VCI值。庫(kù)調(diào)用open—connect將接收的VCI值傳給用戶應(yīng)用程序A400。相應(yīng)地,庫(kù)調(diào)用open—connect執(zhí)行圖6中的用戶連接例行程序600的步驟610、620和630。庫(kù)調(diào)用connect(VCI)將VCI值傳送給相應(yīng)的ATM協(xié)議堆棧接口,以便命令其在網(wǎng)絡(luò)上傳送具有合適的VCI值的任何保留數(shù)據(jù)分組。服務(wù)例行程序connect(VCI)相應(yīng)于圖6的步驟640。
圖5和6的服務(wù)器和用戶連接例行程序500和600分別使采用無連接網(wǎng)絡(luò)技術(shù)的已有用戶和服務(wù)器程序向面向連接的網(wǎng)絡(luò)、例如ATM網(wǎng)絡(luò)300提供服務(wù)或向其請(qǐng)求服務(wù)。本發(fā)明對(duì)無連接用戶或服務(wù)器程序進(jìn)行極小的修改就獲得了附加的靈活性。因此,根據(jù)本發(fā)明的一個(gè)方面,可以容易地修改大量在Internet網(wǎng)上可獲得的程序來利用在ATM網(wǎng)絡(luò)上提供的或者為供面向連接的網(wǎng)絡(luò)使用而設(shè)置的各種服務(wù)。
將IP格式幀內(nèi)的ATM格式幀進(jìn)行封裝的圖4的封裝器—解封裝器425和460克服了在internet網(wǎng)310上傳送ATM格式幀時(shí)數(shù)據(jù)格式失配的問題。圖7表示封裝例行程序700的流程圖,該封裝例行程序可以在封裝器—解封裝器中被執(zhí)行以便在IP數(shù)據(jù)分組中對(duì)ATM格式幀進(jìn)行封裝,internet網(wǎng)310進(jìn)行傳送。此外,圖8表示解封裝例行程序800的流程圖,該解封裝例行程序也可以在封裝器—解封裝器425和460中被執(zhí)行、將接收的IP封裝數(shù)據(jù)分組解封裝成為ATM格式幀。
以下將相對(duì)于上述關(guān)于在應(yīng)用程序B430和在處理系統(tǒng)320上實(shí)現(xiàn)的遠(yuǎn)端例行程序之間的數(shù)據(jù)傳送的例子來討論例行程序700和800。應(yīng)用程序B430這樣傳送ATM格式幀首先將其送到ATM協(xié)議堆棧接口455,ATM協(xié)議堆棧接口455產(chǎn)生相應(yīng)的ATM格式數(shù)據(jù)分組、例如AAL幀。在IP數(shù)據(jù)分組內(nèi)進(jìn)行封裝的一種合適的AAL幀格式是AAL 5格式。AAL幀和IP數(shù)據(jù)分組的詳細(xì)說明可以分別在上述的“ATM frum UNI reference”和“BSD reference”中找到。ATM格式幀然后被傳送給對(duì)每一幀執(zhí)行圖7的封裝例行程序700的封裝器—解封裝器460。
參看圖7,在步驟710中,封裝器—解封裝器460獲得要被封裝和傳送的ATM格式幀的VCI值和中間目標(biāo)地址。中間目標(biāo)地址相應(yīng)于具有與internet網(wǎng)310和ATM網(wǎng)絡(luò)300連接的鏈路的最近的具有ATM的主機(jī)或中間連接器、例如圖4中的處理系統(tǒng)100的Internet網(wǎng)網(wǎng)絡(luò)地址。
例行程序700然后在步驟720中編制中間數(shù)據(jù)分組首部。該中間數(shù)據(jù)分組首部可以包含例如發(fā)送數(shù)據(jù)的源設(shè)備的ATM地址、連接的相應(yīng)VCI值和數(shù)據(jù)分組順序位置號(hào)這樣的信息。數(shù)據(jù)分組順序位置號(hào)是相應(yīng)于當(dāng)被傳送信息包括若干幀時(shí),幀的順序位置的值。由于Internet網(wǎng)310是可以根據(jù)在每一數(shù)據(jù)分組首部中的目標(biāo)地址通過不同的路徑將每一IP數(shù)據(jù)分組送到目標(biāo)設(shè)備的無連接網(wǎng)絡(luò),所以數(shù)據(jù)可以不按順序接收。中間數(shù)據(jù)分組首部中的數(shù)據(jù)分組順序位置號(hào)使中間連接器處理系統(tǒng)能夠檢測(cè)被傳送的封裝IP數(shù)據(jù)分組是否不按順序被接收,如果是,就檢測(cè)接收數(shù)據(jù)分組的固有順序。
然后在步驟730中通過將在步驟720中編制的中間數(shù)據(jù)分組首部附加到要被傳送的ATM格式幀來產(chǎn)生中間格式數(shù)據(jù)分組。例行程序700接著在步驟740中產(chǎn)生IP數(shù)據(jù)分組首部。該IP數(shù)據(jù)分組首部是20字節(jié)的首部,包含在intennet網(wǎng)310上傳送相應(yīng)IP數(shù)據(jù)分組所需的信息和格式。這種首部包含最接近的Internet網(wǎng)處理系統(tǒng)的Internet網(wǎng)絡(luò)地址和規(guī)定數(shù)據(jù)分組的IP格式類型的數(shù)據(jù)字段。包含在IP格式類型字段中的值應(yīng)當(dāng)指出數(shù)據(jù)分組是被封裝的ATM格式幀。
然后在步驟750中將產(chǎn)生的IP數(shù)據(jù)分組首部附加到產(chǎn)生的中間數(shù)據(jù)分組以便形成IP數(shù)據(jù)分組。IP數(shù)據(jù)分組由20字節(jié)的IP數(shù)據(jù)分組首部和變長(zhǎng)數(shù)據(jù)部分或有效負(fù)載組成。例行程序700產(chǎn)生的IP數(shù)據(jù)分組的有效負(fù)載包含中間數(shù)據(jù)分組首部和ATM格式幀。產(chǎn)生的IP數(shù)據(jù)分組具有通過Internet網(wǎng)310進(jìn)行傳送的合適數(shù)據(jù)分組格式。
產(chǎn)生的IP數(shù)據(jù)分組然后在Internet網(wǎng)310上被傳送并被處理系統(tǒng)100接收。相應(yīng)的IP堆棧接口415讀IP數(shù)據(jù)分組首部來獲得IP數(shù)據(jù)分組格式類型信息。如果該IP數(shù)據(jù)分組格式類型如在這一例子中那樣指出該數(shù)據(jù)分組包含被封裝的ATM格式幀,則該IP數(shù)據(jù)分組被傳送給封裝器一解封裝器進(jìn)行解封裝??稍诜庋b器—解封裝器中被用來對(duì)ATM格式幀進(jìn)行解封裝的解封裝例行程序800如圖8所示。
參看圖8,在步驟810中,從接收的IP數(shù)據(jù)分組中去除IP數(shù)據(jù)分組首部來獲得中間數(shù)據(jù)分組。該中間數(shù)據(jù)分組然后在步驟820中被分離為中間數(shù)據(jù)分組首部和ATM格式幀。然后在步驟830中從分離的中間數(shù)據(jù)分組首部中獲得源地址、數(shù)據(jù)分組順序位置號(hào)和VCI值。
然后在步驟840中,根據(jù)數(shù)據(jù)分組順序位置號(hào),將該ATM格式幀連同以前接收的其它ATM格式幀排列到其固有順序位置。按照固有順序排列ATM格式幀的一種合適的技術(shù)是將接收幀存儲(chǔ)到與封裝器—解封裝器425連接的存儲(chǔ)器緩沖器中。然后根據(jù)如在步驟850中指出的數(shù)據(jù)分組順序位置號(hào)將存儲(chǔ)幀按照它們的固有順序輸出給ATM協(xié)議堆棧接口420。此外,相應(yīng)的中間數(shù)據(jù)分組首部信息可以借助每一幀傳送給ATM協(xié)議堆棧接口420。
在這一例子中,ATM協(xié)議堆棧接口420將使ATM網(wǎng)絡(luò)接口109產(chǎn)生所需的尾部,例如AAL5,如果ATM格式幀是AAL5幀的話,并通過ATM網(wǎng)絡(luò)300將具有附加尾部的幀傳送給目標(biāo)處理系統(tǒng)320。ATM協(xié)議堆棧接口420將根據(jù)來自連接管理器410的信息將該幀傳送給特定的目標(biāo)。連接管理器410根據(jù)其VCI值確定單元的正確目標(biāo)。在第一可供選擇的實(shí)施例中,可以在相應(yīng)的幀被封裝器—解封裝器460封裝之前由以上例子中的ATM協(xié)議堆棧接口455來產(chǎn)生尾部。
當(dāng)數(shù)據(jù)沿相反方向傳送時(shí),封裝器—解封裝器425和460將按照基本相同的方式運(yùn)行。例如,當(dāng)將ATM格式幀從圖4中的處理系統(tǒng)320傳送到應(yīng)用程序B430時(shí),處理系統(tǒng)320將根據(jù)來自連接管理器410的信息通過ATM網(wǎng)絡(luò)300將ATM格式幀傳送給處理系統(tǒng)100的ATM網(wǎng)絡(luò)接口109和ATM協(xié)議堆棧接口420。ATM協(xié)議堆棧接口420也將根據(jù)來自連接管理器410的信息將ATM格式幀傳送給封裝器—解封裝器425進(jìn)行封裝。相應(yīng)的被產(chǎn)生IP數(shù)據(jù)分組然后將通過Internet310被傳送給處理系統(tǒng)330。
在處理系統(tǒng)330內(nèi),被接收IP數(shù)據(jù)分組將被IP堆棧接口440傳送給封裝器—解封裝器460。封裝器—解封裝器460然后解封裝該數(shù)據(jù)分組并將該被解封裝ATM格式幀傳送給ATM協(xié)議堆棧接口455,ATM協(xié)議堆棧接口455把該幀提供給應(yīng)用程序B430。
在另一可供選擇實(shí)施例中,可以在ATM協(xié)議堆棧接口中實(shí)現(xiàn)封裝例行程序700,在相應(yīng)的IP堆棧接口中實(shí)現(xiàn)解封裝例行程序800,這些堆棧接口在處理系統(tǒng)中相互直接進(jìn)行通信。這一實(shí)施例消除了在每一處理系統(tǒng)中對(duì)于單獨(dú)的封裝器—解封裝器例行程序或電路的需要。
因此,本發(fā)明通過采用例如圖3和4的系統(tǒng)100這樣的中間連接器處理系統(tǒng)以及按照上述方式在遠(yuǎn)端例行程序之間建立連接和網(wǎng)絡(luò)間數(shù)據(jù)傳送的方法和系統(tǒng)擴(kuò)展了與internet網(wǎng)和ATM網(wǎng)絡(luò)連接的設(shè)備可得到的服務(wù)。
雖然已在上面描述了提供過程間通信和網(wǎng)絡(luò)間數(shù)據(jù)傳送的幾個(gè)實(shí)施例,但本領(lǐng)域普通技術(shù)人員很容易理解不違背本發(fā)明的教導(dǎo)可以對(duì)所述實(shí)施例進(jìn)行許多修改。要求保護(hù)的本發(fā)明將覆蓋全部這樣的修改。例如,可以在無連接網(wǎng)絡(luò)和面向連接的網(wǎng)絡(luò)之間使用多個(gè)網(wǎng)關(guān)處理系統(tǒng),每一個(gè)這種系統(tǒng)可以具有控制在無連接網(wǎng)絡(luò)上最接近的設(shè)備的連接的連接管理器,例如連接管理器410。
還有,上述每一個(gè)例行程序、包括連接管理器,連接服務(wù)例行程序庫(kù)和封裝器—解封裝器都可以作為在相應(yīng)的處理系統(tǒng)上運(yùn)行的軟件例行程序或作為軟件例行程序和專用電路的組合來實(shí)現(xiàn),以便提供它們指定的功能。
權(quán)利要求
1.在第一網(wǎng)絡(luò)上的源設(shè)備中運(yùn)行的源例行程序和在目標(biāo)設(shè)備中運(yùn)行的目標(biāo)例行程序之間傳送數(shù)據(jù)的方法,該源和目標(biāo)例行程序產(chǎn)生和接收異步傳送模式(“ATM”)格式幀,該第一網(wǎng)絡(luò)傳送“Internet網(wǎng)協(xié)議”(“IP”)數(shù)據(jù)包,該方法包括以下步驟a)產(chǎn)生包含源和目標(biāo)信息的中間數(shù)據(jù)格式首部;b)將產(chǎn)生的中間數(shù)據(jù)格式首部附加到一ATM格式幀來形成中間格式數(shù)據(jù)包,ATM格式幀由源例行程序產(chǎn)生;c)在IP數(shù)據(jù)包的數(shù)據(jù)部分中封裝該中間格式數(shù)據(jù)包;d)在第一網(wǎng)絡(luò)上傳送該IP數(shù)據(jù)包;e)解封裝該IP數(shù)據(jù)包來檢索中間格式數(shù)據(jù)包;f)從被解封裝中間格式數(shù)據(jù)數(shù)據(jù)包檢索ATM格式幀和中間數(shù)據(jù)格式首部;以及g)根據(jù)在被檢索中間數(shù)據(jù)格式首部中的信息確定被檢索ATM格式幀的路由。
2.權(quán)利要求1的方法,其中在步驟a)產(chǎn)生的中間數(shù)據(jù)格式首部包含表示一ATM格式幀相對(duì)于按照相應(yīng)的順序傳送的其它ATM格式幀的位置的數(shù)據(jù)包順序位置號(hào)。
3.權(quán)利要求1的方法,其中的目標(biāo)設(shè)備是將第二網(wǎng)絡(luò)與第一網(wǎng)絡(luò)連接的中間連接器(gateway)處理系統(tǒng),第二網(wǎng)絡(luò)傳送ATM格式幀,其中的步驟e)、f)和g)由該中間連接器處理系統(tǒng)來執(zhí)行。
4.權(quán)利要求1的方法,其中在步驟a)產(chǎn)生的中間數(shù)據(jù)格式首部中的信息包含源設(shè)備網(wǎng)絡(luò)地址,源和目標(biāo)設(shè)備之間已建立的虛擬線路的虛擬線路標(biāo)識(shí)符值,以及表示該ATM格式幀相對(duì)于按順序傳送的其它數(shù)據(jù)包順序的位置的數(shù)據(jù)包順序位置號(hào)。
5.權(quán)利要求1的方法,還包括在封裝步驟c)之前產(chǎn)生包含目標(biāo)Internet網(wǎng)設(shè)備的網(wǎng)絡(luò)地址的Internet網(wǎng)協(xié)議數(shù)據(jù)包首部和表示數(shù)據(jù)包是被封裝ATM幀的Internet網(wǎng)協(xié)議類型字段的步驟;其中的步驟c)還包括將產(chǎn)生的Internet網(wǎng)協(xié)議數(shù)據(jù)包首部附加到中間格式數(shù)據(jù)包。
6.權(quán)利要求1的方法,其中的ATM格式幀是AAL幀。
7.權(quán)利要求6的方法,其中的AAL幀是AAL5幀。
8.在IP數(shù)據(jù)包中封裝ATM格式幀以便通過能夠傳送II數(shù)據(jù)包的第一網(wǎng)絡(luò)進(jìn)行傳送的方法,該方法包括以下步驟a)產(chǎn)生包含源和目標(biāo)信息的中間數(shù)據(jù)格式首部;b)將產(chǎn)生的中間數(shù)據(jù)格式首部附加到ATM格式幀來形成中間格式數(shù)據(jù)包;c)產(chǎn)生IP數(shù)據(jù)包首部;以及d)將IP數(shù)據(jù)包首部附加到中間格式數(shù)據(jù)包來形成IP數(shù)據(jù)包。
9.權(quán)利要示8的方法,其中在步驟a)產(chǎn)生的中間數(shù)據(jù)格式首部中的信息包含源設(shè)備網(wǎng)絡(luò)地址,源和目標(biāo)設(shè)備之間已建立的虛擬線路的虛擬線路標(biāo)識(shí)符值,以及表示該ATM格式幀相對(duì)于按照順序傳送的其它數(shù)據(jù)包的位置的數(shù)據(jù)包順序位置號(hào)。
10.權(quán)利要求8的方法,還包括在封裝步驟c)之前產(chǎn)生包含目標(biāo)Internet網(wǎng)設(shè)備的網(wǎng)絡(luò)地址的Internet網(wǎng)協(xié)議數(shù)據(jù)包首部和表示該數(shù)據(jù)包是被封裝ATM幀的Internet網(wǎng)協(xié)議類型字段的步驟;其中的步驟c)還包括將產(chǎn)生的Internet網(wǎng)協(xié)議數(shù)據(jù)包首部附加到中間格式數(shù)據(jù)包。
11.權(quán)利要求8的方法,其中的ATM格式幀是AAL幀。
12.權(quán)利要求11的方法,其中的AAL幀是AAL5幀。
13.通過能夠傳送IP數(shù)據(jù)包的第一網(wǎng)絡(luò)傳送ATM格式幀的處理系統(tǒng),該處理系統(tǒng)包括與第一網(wǎng)絡(luò)連接的源設(shè)備,該源設(shè)備具有至少一個(gè)能夠存儲(chǔ)多條處理系統(tǒng)指令的存儲(chǔ)器存儲(chǔ)設(shè)備、以及至少一個(gè)控制數(shù)據(jù)傳送和執(zhí)行所述存儲(chǔ)器存儲(chǔ)設(shè)備的所述處理系統(tǒng)指令中的至少一條的處理單元,所述處理單元能夠產(chǎn)生包含源和目標(biāo)信息的中間數(shù)據(jù)格式首部、將產(chǎn)生的中間數(shù)據(jù)格式首部附加到ATM格式幀來形成中間格式數(shù)據(jù)包、以及封裝該中間格式數(shù)據(jù)包來形成IP數(shù)據(jù)的數(shù)據(jù)部分以便在第一網(wǎng)絡(luò)上進(jìn)行傳送;以及與第一網(wǎng)絡(luò)連接的第一網(wǎng)絡(luò)目標(biāo)設(shè)備,該目標(biāo)設(shè)備具有至少一個(gè)能夠存儲(chǔ)多條處理系統(tǒng)指令的存儲(chǔ)器存儲(chǔ)設(shè)備、以及至少一個(gè)控制數(shù)據(jù)接收和執(zhí)行所述存儲(chǔ)器存儲(chǔ)設(shè)備的所述處理系統(tǒng)指令中的至少一條的處理單元,所述處理單元能夠解封裝IP數(shù)據(jù)包來檢索中間格式數(shù)據(jù)包、從被解封裝中間格式數(shù)據(jù)包獲得ATM格式幀和中間數(shù)據(jù)格式首部、以及根據(jù)在被檢索中間數(shù)據(jù)格式首部中的信息確定被檢索ATM格式幀的路由。
14.權(quán)利要求13的處理系統(tǒng),還包括與第一網(wǎng)絡(luò)目標(biāo)設(shè)備連接的第二網(wǎng)絡(luò),該第二網(wǎng)絡(luò)能夠傳送ATM格式幀;以及第二網(wǎng)絡(luò)目標(biāo)設(shè)備,其中的第一網(wǎng)絡(luò)目標(biāo)設(shè)備是能夠根據(jù)在被檢索中間數(shù)據(jù)格式首部中的信息把在IP數(shù)據(jù)包中被封裝的ATM格式幀送到第二網(wǎng)絡(luò)目標(biāo)設(shè)備的中間連接器設(shè)備。
15.權(quán)利要求13的處理系統(tǒng),其中的中間數(shù)據(jù)格式首部中的信息包含源設(shè)備網(wǎng)絡(luò)地址,源和目標(biāo)設(shè)備之間已建立的虛擬線路的虛擬線路標(biāo)識(shí)符值,以及表示該ATM格式幀相對(duì)于按照順序傳送的其它ATM格式幀的位置的數(shù)據(jù)包順序位置號(hào)。
16.權(quán)利要求13的處理系統(tǒng),其中的源設(shè)備還能夠產(chǎn)生包含第一網(wǎng)絡(luò)目標(biāo)設(shè)備的Internet網(wǎng)地址的Internet網(wǎng)協(xié)議數(shù)據(jù)包首部和表示該數(shù)據(jù)包是被封裝ATM格式幀的Internet網(wǎng)協(xié)議類型字段;以及將產(chǎn)生的Internet網(wǎng)協(xié)議數(shù)據(jù)包首部附加到中間格式數(shù)據(jù)包來產(chǎn)生IP數(shù)據(jù)包。
17.權(quán)利要求13的處理系統(tǒng),其中的ATM格式幀是AAL幀。
18.權(quán)利要求17的處理系統(tǒng),其中的AAL幀是AAL5幀。
19.通過能夠傳送IP數(shù)據(jù)包的第一網(wǎng)絡(luò)傳送ATM格式幀的處理系統(tǒng),該處理系統(tǒng)包括與第一網(wǎng)絡(luò)連接的源設(shè)備,該源設(shè)備具有與封裝器通信的IP堆棧接口和ATM協(xié)議堆棧接口,該IP堆棧接口和與第一網(wǎng)絡(luò)連接的IP網(wǎng)絡(luò)接口連接;以及與第一網(wǎng)絡(luò)連接的第一網(wǎng)絡(luò)目標(biāo)設(shè)備,該第一網(wǎng)絡(luò)目標(biāo)設(shè)備具有與解封裝器通信的IP堆棧接口和ATM協(xié)議堆線接口,該IP堆棧接口和與第一網(wǎng)絡(luò)連接的IP網(wǎng)絡(luò)接口連接。
20.權(quán)利要求19的處理系統(tǒng),其中的第一網(wǎng)絡(luò)目標(biāo)設(shè)備還包括與ATM協(xié)議堆棧接口連接的ATM網(wǎng)絡(luò)接口;與該ATM網(wǎng)絡(luò)接口連接的第二網(wǎng)絡(luò),該第二網(wǎng)絡(luò)能夠傳送ATM格式幀;以及與該第二網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)目標(biāo)設(shè)備,如果源設(shè)備傳送的ATM格式幀的目的地是第二網(wǎng)絡(luò)目標(biāo)設(shè)備,則第一網(wǎng)絡(luò)目標(biāo)設(shè)備的ATM協(xié)議堆棧接口能夠通過第二網(wǎng)絡(luò)把被解封裝ATM格式幀送到第二網(wǎng)絡(luò)目標(biāo)設(shè)備。
21.權(quán)利要求19的處理系統(tǒng),其中的封裝器是源設(shè)備的IP堆棧接口的一部分。
22.權(quán)利要求19的處理系統(tǒng),其中的解封裝器是第一網(wǎng)絡(luò)目標(biāo)設(shè)備的ATM協(xié)議堆棧接口的一部分。
23.服務(wù)器應(yīng)用程序在該服務(wù)器應(yīng)用程序和用戶例行程序之間建立被連接管理器維護(hù)的通信虛擬線路的方法,該服務(wù)器應(yīng)用程序和該用戶例行程序在與無連接網(wǎng)絡(luò)連接的各自處理系統(tǒng)上運(yùn)行,該方法包括以下步驟將可用服務(wù)信息傳送給連接管理器;等待來自連接管理器的可用服務(wù)登記的確認(rèn);等待來自連接管理器的連接請(qǐng)求,連接管理器一旦從用戶例行程序接收到與服務(wù)器應(yīng)用程序進(jìn)行連接的請(qǐng)求就傳送該連接請(qǐng)求;將接受連接信息傳送給連接管理器;等待被連接管理器傳送的虛擬線路標(biāo)識(shí)符值的接收;以及命令在服務(wù)器應(yīng)用程序處理系統(tǒng)中的協(xié)議堆棧接口例行程序傳送從具有該虛擬線路標(biāo)識(shí)符值的網(wǎng)絡(luò)接收的全部數(shù)據(jù)包。
24.權(quán)利要求23的方法,還包括如果在接收了連接請(qǐng)求后,如該連接不是可接受的,就傳送拒絕連接信息的步驟。
25.權(quán)利要求23的方法,其中的連接管理器利用連接請(qǐng)求將連接關(guān)鍵字值傳送服務(wù)器應(yīng)用程序,當(dāng)傳送接受連接信息來保證將與合適的服務(wù)器應(yīng)用程序建立連接時(shí),該值被傳回給連接管理器。
26.權(quán)利要求23的方法,其中的向連接管理器發(fā)送信息和從連接管理器接收信息由與服務(wù)器應(yīng)用程序通信的連接服務(wù)例行程序庫(kù)來完成。
27.權(quán)利要求23的方法,其中的用戶例行程序駐留在利用到達(dá)面向連接的網(wǎng)絡(luò)的鏈路與無連接網(wǎng)絡(luò)連接的處理系統(tǒng)中,該面向連接的網(wǎng)絡(luò)和與該無連接網(wǎng)絡(luò)連接的中間連接器處理系統(tǒng)連接。
28.權(quán)利要求27的方法,其中的連接管理器是在中間連接器處理系統(tǒng)上運(yùn)行的例行程序。
29.權(quán)利要求27的方法,其中的面向連接的網(wǎng)絡(luò)是ATM網(wǎng)絡(luò)。
30.用戶應(yīng)用程序在該用戶應(yīng)用程序和服務(wù)器例行程序之間建立被連接管理器維護(hù)的通信虛擬線路的方法,該用戶應(yīng)用程序和該服務(wù)器例行程序在與無連接網(wǎng)絡(luò)連接的各自處理系統(tǒng)上運(yùn)行,該方法包括以下步驟向連接管理器發(fā)送請(qǐng)求與特定服務(wù)器例行程序連接的信息;等待來自連接管理器的該請(qǐng)求的確認(rèn);等待來自連接管理器的連接建立通知,當(dāng)該特定服務(wù)器例行程序接受連接管理器請(qǐng)求的連接時(shí),連接管理器就傳送該連接建立通知,連接管理器還傳送相應(yīng)于具有該連接建立通知的連接的虛擬線路標(biāo)識(shí)符值;以及命令在用戶應(yīng)用程序處理系統(tǒng)中的協(xié)議堆棧接口例行程序發(fā)送從具有該虛擬線路標(biāo)識(shí)符值的網(wǎng)絡(luò)接收的全部數(shù)據(jù)包。
31.權(quán)利要求30的方法,其中的連接管理器利用連接請(qǐng)求將連接關(guān)鍵字值傳送給用戶應(yīng)用程序,該連接關(guān)鍵字值相應(yīng)于虛擬線路標(biāo)識(shí)符值并被傳送給具有虛擬線路標(biāo)識(shí)符值的協(xié)議堆棧接口。
32.權(quán)利要求30的方法,其中的給連接管理器傳送信息和從連接管理器接收信息由與用戶機(jī)應(yīng)用程序通信的連接服務(wù)例行程序庫(kù)來完成。
33.權(quán)利要求30的方法,其中的服務(wù)器例行程序駐留在利用到達(dá)面向連接的網(wǎng)絡(luò)的鏈路與無連接網(wǎng)絡(luò)連接的處理系統(tǒng)中,該面向連接的網(wǎng)絡(luò)和與該無連接網(wǎng)絡(luò)連接的中間連接器處理系統(tǒng)連接。
34.權(quán)利要求33的方法,其中的連接管理程序是在中間連接器處理系統(tǒng)上運(yùn)行的例行程序。
35.權(quán)利要求33的方法,其中的面向連接的網(wǎng)絡(luò)是ATM網(wǎng)絡(luò)。
36.與無連接網(wǎng)絡(luò)連接的處理系統(tǒng),該處理系統(tǒng)在在該處理系統(tǒng)上運(yùn)行的服務(wù)器應(yīng)用程序和用戶例行程序之間建立被連接管理器維護(hù)的通信虛擬線路,該用戶例行程序在與該無連接網(wǎng)絡(luò)連接的各個(gè)處理系統(tǒng)上運(yùn)行,該處理系統(tǒng)包括至少一個(gè)能夠存儲(chǔ)多條處理系統(tǒng)指令的存儲(chǔ)器存儲(chǔ)設(shè)備;以及至少一個(gè)控制在服務(wù)器應(yīng)用程序和無連接網(wǎng)絡(luò)之間的數(shù)據(jù)傳送和接收并執(zhí)行所述存儲(chǔ)器存儲(chǔ)設(shè)備的所述處理系統(tǒng)指令中的至少一條的處理單元,所述處理單元能夠向駐留在與無連接網(wǎng)絡(luò)連接的設(shè)備上的連接管理器發(fā)送可用服務(wù)信息;等待來自連接管理器的可用服務(wù)登記的確認(rèn);等待來自連接管理器的連接請(qǐng)求,連接管理器一旦從用戶例行程序接收到與服務(wù)器應(yīng)用程序進(jìn)行連接的請(qǐng)求就傳送該連接請(qǐng)求;將接受的連接信息發(fā)送給連接管理器,等待被連接管理器發(fā)送的虛擬線路標(biāo)識(shí)符值的接收;以及命令在該處理系統(tǒng)中的協(xié)議堆線接口例行程序傳送從具有該虛擬線路標(biāo)識(shí)符值的網(wǎng)絡(luò)接收的全部數(shù)據(jù)包。
37.權(quán)利要求36的處理系統(tǒng),在該處理系統(tǒng)中,如果在接收了連接請(qǐng)求后該連接是不可接受的,則處理單元還能夠傳送拒絕連接信息。
38.權(quán)利要求36的處理系統(tǒng),其中的連接管理器利用連接請(qǐng)求將連接關(guān)鍵字值但送給該處理系統(tǒng),當(dāng)傳送接受連接信息來保證將與合適的服務(wù)器應(yīng)用程序建立連接時(shí),該處理系統(tǒng)能夠?qū)⑦B接關(guān)鍵字值傳回給連接管理器。
39.權(quán)利要求36的處理系統(tǒng),其中的用戶機(jī)例行程序駐留在利用到達(dá)面向連接的網(wǎng)絡(luò)的鏈路與無連接網(wǎng)絡(luò)連接的設(shè)備中,該面向連接的網(wǎng)絡(luò)和與該無連接網(wǎng)絡(luò)連接的中間連接器處理系統(tǒng)連接。
40.權(quán)利要求39的處理系統(tǒng),其中的連接管理器是在中間連接器設(shè)備上運(yùn)行的例行程序。
41.權(quán)利要求39的處理系統(tǒng),其中的面向連接的網(wǎng)絡(luò)是ATM網(wǎng)絡(luò)。
42.與無連接網(wǎng)絡(luò)連接的處理系統(tǒng),該處理系統(tǒng)在在該系統(tǒng)上運(yùn)行的用戶應(yīng)用程序和服務(wù)器例行程序之間建立被連接管理器維護(hù)的通信虛擬線路,該服務(wù)器例行程序在與該無連接網(wǎng)絡(luò)連接的各個(gè)處理系統(tǒng)上運(yùn)行,該處理系統(tǒng)包括至少一個(gè)能夠存儲(chǔ)多條處理系統(tǒng)指令的存儲(chǔ)器存儲(chǔ)設(shè)備;至少一個(gè)控制在用戶機(jī)應(yīng)用程序和無連接網(wǎng)絡(luò)之間的數(shù)據(jù)傳送和接收并執(zhí)行所述存儲(chǔ)器存儲(chǔ)設(shè)備的所述處理系統(tǒng)指令中的至少一條的處理單元,所述處理單元能夠向連接管理器發(fā)送請(qǐng)求與某一服務(wù)器例行程序連接的信息;等待來自連接管理器的對(duì)于服務(wù)器例行程序的請(qǐng)求的確認(rèn);等待來自連接管理器的連接建立通知,當(dāng)該服務(wù)器例行程序接受連接管理器請(qǐng)求的連接時(shí),連接管理器就發(fā)送連接建立通知,連接管理器還發(fā)送相應(yīng)于具有該連接建立通知的連接的虛擬線路標(biāo)識(shí)符值;以及命令在該處理系統(tǒng)中的協(xié)議堆棧接口例行程序發(fā)送從具有該虛擬線路標(biāo)識(shí)符值的網(wǎng)絡(luò)接收的全部數(shù)據(jù)包。
43.權(quán)利要求42的處理系統(tǒng),其中的連接管理器利用連接請(qǐng)求將連接關(guān)鍵字值發(fā)送給該處理系統(tǒng),該連接關(guān)鍵字值相應(yīng)于虛擬線路標(biāo)識(shí)符值并被傳送給具有該虛擬線路標(biāo)識(shí)符值的協(xié)議堆棧接口。
44.權(quán)利要求42的處理系統(tǒng),其中的服務(wù)器例行程序駐留在利用到達(dá)面向連接的網(wǎng)絡(luò)的鏈路與無連接網(wǎng)絡(luò)連接的處理設(shè)備中,該面向連接的網(wǎng)絡(luò)和與該無連接網(wǎng)絡(luò)連接的中間連接器處理設(shè)備連接。
45.權(quán)利要求44的處理系統(tǒng),其中的連接管理器是在中間連接器處理設(shè)備上運(yùn)行的例行程序。
46.權(quán)利要求44的處理系統(tǒng),其中的面向連接的網(wǎng)絡(luò)是ATM網(wǎng)絡(luò)。
全文摘要
本發(fā)明的方法和系統(tǒng)通過在處理系統(tǒng)上運(yùn)行的面向無連接的服務(wù)器和用戶程序以及在不同的處理系統(tǒng)上運(yùn)行的面向連接的例行程序之間建立連接或通信虛擬線路使前一種程序能夠與后一種程序進(jìn)行通信。在啟動(dòng)與面向連接的例行程序的通信之前,可以修改面向無連接的服務(wù)器和用戶程序來與連接管理器進(jìn)行通信,以便建立虛擬線路。本發(fā)明還利用封裝器和解封裝器來使通信程序能夠在按照第二格式傳送數(shù)據(jù)的網(wǎng)絡(luò)內(nèi)按照第一格式傳送數(shù)據(jù)包。
文檔編號(hào)H04Q11/04GK1122979SQ9511698
公開日1996年5月22日 申請(qǐng)日期1995年8月28日 優(yōu)先權(quán)日1994年8月29日
發(fā)明者斯里尼瓦森·凱斯哈夫, 羅森·沙瑪 申請(qǐng)人:美國(guó)電報(bào)電話公司