專利名稱:虛擬ip框架和接口方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信系統(tǒng),更具體地說,涉及虛擬因特網(wǎng)協(xié)議(IP)框架和接口方法,它提供在多個(gè)服務(wù)器和分組數(shù)據(jù)網(wǎng)、如因特網(wǎng)之間的容錯(cuò)和可擴(kuò)展接口。
相關(guān)技術(shù)的描述現(xiàn)在許多公司通過在因特網(wǎng)上進(jìn)行的商務(wù)來構(gòu)建大部分或全部的收入流。因此,這些公司需要具有極高可靠性的接入和交換技術(shù)。如果這些公司失去因特網(wǎng)接入甚至很短的時(shí)間,他們會(huì)損失大量收入。因此,提高因特網(wǎng)接入技術(shù)的容錯(cuò)性是很有必要的。此外,這些類型的公司需要考慮到其數(shù)據(jù)業(yè)務(wù)需求增長的網(wǎng)絡(luò)接入技術(shù)。如果他們需要例如獲得更大的帶寬,他們要求能夠容易地做到這一點(diǎn)。因此,也需要一種提供可擴(kuò)展性的解決方案。
IP領(lǐng)域中現(xiàn)有的不同技術(shù)都有各種問題或限制。僅針對(duì)容錯(cuò)的系統(tǒng)一般無法與強(qiáng)調(diào)可擴(kuò)展性的系統(tǒng)結(jié)合以同時(shí)滿足兩種要求,因?yàn)閺?qiáng)調(diào)可擴(kuò)展性的系統(tǒng)部分不是容錯(cuò)的,這對(duì)整個(gè)系統(tǒng)的容錯(cuò)性有負(fù)面影響。一般,一種要求對(duì)另一種要求進(jìn)行折衷。
當(dāng)客戶機(jī)接入萬維網(wǎng)服務(wù)器時(shí),例如,瀏覽器首先得到統(tǒng)一資源定位器(URL)的名稱,利用域名服務(wù)器(DNS)將其轉(zhuǎn)換成唯一IP地址。唯一IP地址使客戶機(jī)能夠到達(dá)服務(wù)器,服務(wù)器將處理其超文本傳送協(xié)議(HTTP)請求。因此需要一種將單個(gè)IP地址提供給客戶機(jī)的解決方案。該方案應(yīng)當(dāng)提供可擴(kuò)展性和容錯(cuò)性,并且不應(yīng)當(dāng)對(duì)客戶機(jī)強(qiáng)加任何附加要求。此外,該方案不應(yīng)專門受限于HTTP業(yè)務(wù)或TCP業(yè)務(wù)。最好是所述方案可適用于所有類型的IP業(yè)務(wù)。
市面上現(xiàn)有循環(huán)DNS,提供一定程度的可擴(kuò)展性。循環(huán)DNS每次為相同的URL名提供不同的IP地址。DNS可以使用任何算法來平衡不同服務(wù)器之間的負(fù)載。可以增加額外的服務(wù)器,并且DNS將把負(fù)載分配到大量服務(wù)器上。但是,循環(huán)DNS方案具有如下限制客戶機(jī)必須作出DNS請求,以便確保平衡分配。客戶機(jī)能夠緩存IP地址,并且對(duì)于以后的接入,可以使用緩存的IP地址而不是從DNS獲取新IP地址。這可能損害可擴(kuò)展性特征,因?yàn)闊o論何時(shí)客戶機(jī)緩存DNS所返回的IP地址,循環(huán)DNS都無法保證分配。如果客戶機(jī)緩存服務(wù)器IP地址而服務(wù)器后來產(chǎn)生錯(cuò)誤,則系統(tǒng)的容錯(cuò)性也會(huì)受到不利影響。因此,客戶機(jī)的行為限制了可擴(kuò)展性和容錯(cuò)性。最好是提供對(duì)客戶機(jī)沒有約束的可擴(kuò)展性和容錯(cuò)性。因此,循環(huán)DNS是不夠的。
另一方案是為每條消息選擇到焦點(diǎn)的路由,焦點(diǎn)將分組重定向到不同的終端主機(jī)。WO 99/33227中說明了這種類型的方案,其中采用了網(wǎng)絡(luò)流交換機(jī)(NFS)。但是,這種方案不允許系統(tǒng)容量增加,因?yàn)镹FS是一個(gè)限制因素。NFS的實(shí)現(xiàn)類似于具有網(wǎng)卡和由CPU控制的因特網(wǎng)控制器的標(biāo)準(zhǔn)路由器,業(yè)務(wù)量在CPU和卡之間傳輸。因此,CPU中的容量限制可能限制整個(gè)系統(tǒng)容量。NFS也是大大降低系統(tǒng)的容錯(cuò)性的單故障點(diǎn)。
在EP 0 865 180 A2中,描述了把請求分配給多個(gè)服務(wù)器的兩種備選方案,但是沒有一種備選方案提供可擴(kuò)展性。在一種備選方案中,用調(diào)度器來為呼入業(yè)務(wù)定向。路由器請求調(diào)度器確定哪個(gè)服務(wù)器應(yīng)當(dāng)處理該業(yè)務(wù)。調(diào)度器是單點(diǎn),當(dāng)其容量被完全利用時(shí),就無法增加額外的服務(wù)器。調(diào)度器還為數(shù)據(jù)選擇路由,所以它是單故障點(diǎn),從而降低了系統(tǒng)的容錯(cuò)性。另一種備選方案采用通過總線進(jìn)行廣播。但是,如果總線帶寬有限,則系統(tǒng)的可擴(kuò)展性同樣受到限制。
另一種稱作LocalDirector的產(chǎn)品還提供單焦點(diǎn),它確保在分組到達(dá)終端主機(jī)之前正確的分組重組。LocalDirector用作VIP終端并且將請求轉(zhuǎn)發(fā)給實(shí)際的終端主機(jī),這是采用如下方式之一進(jìn)行的1.MAC地址轉(zhuǎn)換。所有終端主機(jī)支持VIP終端。LocalDirector利用這個(gè)終端主機(jī)的MAC地址向特定的終端主機(jī)發(fā)送IP數(shù)據(jù)報(bào)。然后終端主機(jī)可以直接向始發(fā)端反方向發(fā)送。
2.隧道技術(shù)。在另一協(xié)議層將IP數(shù)據(jù)報(bào)封裝,以便將它們轉(zhuǎn)發(fā)給終端主機(jī)。終端主機(jī)必須支持這種封裝。然后,終端主機(jī)可以直接向始發(fā)端反向發(fā)送或通過LocalDirector。
3.網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)。LocalDirector修改IP信頭,用目標(biāo)終端主機(jī)的實(shí)際IP地址代替VIP地址。終端主機(jī)必須向LocalDirector反向發(fā)送。
諸如LocalDirector之類的實(shí)現(xiàn)存在的問題是它們采用“熱待機(jī)”技術(shù)來解決容錯(cuò)問題。熱待機(jī)系統(tǒng)維持一套完整功能的輔助系統(tǒng),該輔助系統(tǒng)準(zhǔn)備在主系統(tǒng)出現(xiàn)故障時(shí)接管。這滿足了容錯(cuò)性,但是沒有滿足可擴(kuò)展性,因?yàn)橹骰蜉o助系統(tǒng)的容量限制了系統(tǒng)容量。因此,采用LocalDirector的體系結(jié)構(gòu)不能滿足可擴(kuò)展性要求。
為了克服現(xiàn)有方案的缺點(diǎn),最好是具有虛擬IP(VIP)框架,它提供多個(gè)服務(wù)器與分組數(shù)據(jù)網(wǎng)、如因特網(wǎng)之間的容錯(cuò)和可擴(kuò)展接口。此外,框架具有對(duì)客戶機(jī)、應(yīng)用設(shè)計(jì)者以及現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施的有限影響。最終,框架可用于多種協(xié)議。本發(fā)明提供這樣一種框架。
因此,一方面,本發(fā)明是實(shí)現(xiàn)多個(gè)應(yīng)用服務(wù)器與分組數(shù)據(jù)網(wǎng)(PDN)之間接口的容錯(cuò)和可擴(kuò)展方法。對(duì)于輸入消息,所述方法通過在多個(gè)網(wǎng)絡(luò)終端中接收來自PDN的輸入數(shù)據(jù)分組和分組片段而開始。每個(gè)網(wǎng)絡(luò)終端與多個(gè)轉(zhuǎn)發(fā)進(jìn)程其中之一相關(guān),每個(gè)轉(zhuǎn)發(fā)進(jìn)程連接到多個(gè)分段器/合并器。然后,每個(gè)轉(zhuǎn)發(fā)進(jìn)程選擇單個(gè)分段器/合并器來接收具有共同源地址的所有輸入數(shù)據(jù)分組和分組片段。然后,向所選擇的分段器/合并器發(fā)送具有共同源地址的輸入數(shù)據(jù)分組和分組片段,其中輸入數(shù)據(jù)分組是由從轉(zhuǎn)發(fā)進(jìn)程接收的輸入分組片段重新組裝的。每個(gè)分段器/合并器又連接到多個(gè)應(yīng)用服務(wù)器,所選的分段器/合并器識(shí)別一個(gè)有效應(yīng)用服務(wù)器以接收重新組裝的輸入數(shù)據(jù)分組。然后,所選的分段器/合并器向有效應(yīng)用服務(wù)器發(fā)送重新組裝的輸入數(shù)據(jù)分組。
對(duì)于輸出消息,所述方法在有效的應(yīng)用服務(wù)器從多個(gè)分段器/合并器中選擇一個(gè)分段器/合并器時(shí)開始。然后,從有效應(yīng)用服務(wù)器向所選的分段器/合并器發(fā)送輸出數(shù)據(jù)分組,并且由所選的分段器/合并器從多個(gè)轉(zhuǎn)發(fā)進(jìn)程中識(shí)別單個(gè)轉(zhuǎn)發(fā)進(jìn)程。然后,所選的分段器/合并器向所識(shí)別的轉(zhuǎn)發(fā)進(jìn)程發(fā)送輸出數(shù)據(jù)分組,其中所識(shí)別的轉(zhuǎn)發(fā)進(jìn)程將輸出數(shù)據(jù)分組與網(wǎng)絡(luò)終端相聯(lián)。然后,從相聯(lián)的網(wǎng)絡(luò)終端向PDN發(fā)送輸出數(shù)據(jù)分組。
另一方面,本發(fā)明是用于提供容錯(cuò)和可擴(kuò)展接口的框架,它從PDN接收輸入數(shù)據(jù)分組和分組片段并將重新組裝的分組傳送到多個(gè)應(yīng)用服務(wù)器。所述框架包括從PDN接收輸入數(shù)據(jù)分組和分組片段的多個(gè)網(wǎng)絡(luò)終端以及多個(gè)與這些網(wǎng)絡(luò)終端相關(guān)的轉(zhuǎn)發(fā)進(jìn)程。每個(gè)轉(zhuǎn)發(fā)進(jìn)程包括用于從多個(gè)合并器中識(shí)別單個(gè)合并器以接收具有共同源地址的所有輸入數(shù)據(jù)分組和分組片段的裝置。每個(gè)合并器包括用于從輸入分組片段中重新組裝輸入數(shù)據(jù)分組的裝置以及用于識(shí)別有效應(yīng)用服務(wù)器以接收重新組裝的輸入數(shù)據(jù)分組的裝置。多個(gè)進(jìn)程間通信(IPC)鏈路連接每個(gè)合并器與每個(gè)應(yīng)用服務(wù)器,并且多個(gè)IPC鏈路連接每個(gè)分段器與每個(gè)轉(zhuǎn)發(fā)進(jìn)程。所述框架還可包括路由選擇進(jìn)程,它包含可用來到達(dá)特定客戶機(jī)IP地址的VIP轉(zhuǎn)發(fā)器列表。所述路由選擇進(jìn)程為PDN中的外部路由器提供網(wǎng)絡(luò)終端地址。
又一方面,本發(fā)明是用于提供容錯(cuò)和可擴(kuò)展接口的框架,它從多個(gè)應(yīng)用服務(wù)器接收輸出數(shù)據(jù)分組并將輸出數(shù)據(jù)分組和分組片段傳送到PDN。多個(gè)IPC鏈路將各應(yīng)用服務(wù)器連接到多個(gè)分段器。始發(fā)數(shù)據(jù)分組的應(yīng)用服務(wù)器選擇分段器并將輸出數(shù)據(jù)分組發(fā)送到所選擇的分段器。每個(gè)分段器包括用于將輸出數(shù)據(jù)分組分段成輸出分組片段的裝置以及用于從多個(gè)轉(zhuǎn)發(fā)進(jìn)程中識(shí)別一個(gè)轉(zhuǎn)發(fā)進(jìn)程的裝置。路由選擇進(jìn)程可用來向分段器提供有關(guān)輸出數(shù)據(jù)分組的輸出路由選擇信息。多個(gè)IPC鏈路連接各個(gè)分段器與各個(gè)轉(zhuǎn)發(fā)進(jìn)程,而且所選擇的分段器向所識(shí)別的轉(zhuǎn)發(fā)進(jìn)程發(fā)送輸出數(shù)據(jù)分組和分組片段,以便轉(zhuǎn)發(fā)到網(wǎng)絡(luò)終端。然后所述網(wǎng)絡(luò)終端將輸出數(shù)據(jù)分組和分組片段提供給PDN。
此外,所述框架對(duì)于該框架以外的進(jìn)程是透明的,并且客戶機(jī)和服務(wù)器都不知道VIP框架。在該框架之上的應(yīng)用繼續(xù)照常運(yùn)行,并且應(yīng)用設(shè)計(jì)者繼續(xù)使用來自操作系統(tǒng)的相同應(yīng)用程序接口(API)來打開套接字、關(guān)閉套接字、讀取數(shù)據(jù)等等。應(yīng)用對(duì)于它們以下的協(xié)議層看不出差異。從網(wǎng)絡(luò)的觀點(diǎn)來看,外部路由器將該框架視為只不過是更多路由器并且照常與該框架接口。
通過VIP框架,可以啟動(dòng)所需數(shù)量的萬維網(wǎng)服務(wù)器來處理業(yè)務(wù)需求,所有的萬維網(wǎng)服務(wù)器服務(wù)于相同的VIP地址。因此,集中在VIP框架中定義VIP地址,以供所有服務(wù)器使用。但是,所述框架能夠支持一個(gè)以上的VIP地址,并且能夠主持一個(gè)以上的網(wǎng)站。因此,在路由選擇進(jìn)程中設(shè)置局部路由選擇表,它包含可用來到達(dá)特定客戶機(jī)IP地址的VIP轉(zhuǎn)發(fā)器11的列表。
當(dāng)啟動(dòng)萬維網(wǎng)服務(wù)器時(shí),軟件使用來自操作系統(tǒng)的API來打開用作收聽端口的TCP服務(wù)器套接字。API中使用的IP地址可被設(shè)置成“全部”可用IP地址或者可被明確地設(shè)置。在諸如Jigsaw(萬維網(wǎng)服務(wù)器平臺(tái))的程序中,有各服務(wù)器的配置文件,告訴軟件當(dāng)打開這個(gè)服務(wù)器套接字時(shí)使用哪個(gè)IP地址。Jigsaw提供樣本HTTP1-1實(shí)現(xiàn)和在Java中實(shí)現(xiàn)的先進(jìn)體系結(jié)構(gòu)之上的各種特征。另一種API使服務(wù)器能夠發(fā)現(xiàn)在特定主機(jī)上可以服務(wù)于哪個(gè)IP地址。因此,通過這種API使所支持的VIP地址的列表在該框架中的所有處理器上可用。這樣,VIP服務(wù)器套接字可以在框架中的任何處理器上啟動(dòng)。
VIP框架還使網(wǎng)絡(luò)容量能夠通過添加更多網(wǎng)卡而得到擴(kuò)展。重要的是注意網(wǎng)絡(luò)容量增加不應(yīng)被服務(wù)器容量增加限制著。換言之,服務(wù)器軟件的存儲(chǔ)單元應(yīng)當(dāng)與網(wǎng)絡(luò)接口卡的存儲(chǔ)單元脫開聯(lián)系。因此,與先有技術(shù)的系統(tǒng)不同,先有技術(shù)的系統(tǒng)假定IP棧終止于TCP服務(wù)器套接字所有者駐留的同一處理器上,在VIP框架中,IP棧不必在應(yīng)用要服務(wù)于請求的同一處理器上終止。
圖1是本發(fā)明的虛擬IP(VIP)框架10的簡化框圖。VIP框架提供分布式IP棧,它包括三種基本進(jìn)程類型VIP轉(zhuǎn)發(fā)、分段/合并以及路由選擇。這些被表示成多個(gè)VIP轉(zhuǎn)發(fā)器11a到11n、多個(gè)分段器/合并器12a到12n以及路由選擇進(jìn)程13。路由選擇進(jìn)程包括局部路由選擇表,其中含有可用來到達(dá)特定客戶機(jī)IP地址的VIP轉(zhuǎn)發(fā)器11的列表。路由選擇進(jìn)程包含對(duì)所有處理器是公共/全局的、但也可通過路由選擇進(jìn)程的局部示例用在各處理器上的信息。圖中用八邊形表示這些進(jìn)程;黑色圓圈表示網(wǎng)絡(luò)接口卡、如重新為IP分組選擇路由的以太網(wǎng)卡;三角形表示采用內(nèi)部進(jìn)程間通信(IPC)協(xié)議的接口。還可利用執(zhí)行相同功能的其它協(xié)議。
多種萬維網(wǎng)服務(wù)器、如HTTP-1(14)、HTTP-2(15)、HTTP-3(16)以及HTTP-4(17)可通過IPC連接到分段器/合并器12。HTTP-1和HTTP-2表示成分別運(yùn)行于分開的處理器18和19上,而HTTP-3和HTTP-4表示成運(yùn)行于相同的處理器20上。雖然只表示了四個(gè)服務(wù)器,但是所述框架是可擴(kuò)展的,可以添加更多的服務(wù)器以便增加系統(tǒng)容量。此外,雖然僅表示了HTTP服務(wù)器,但是在頂部的應(yīng)用可包括運(yùn)行于IP上的任何服務(wù)器應(yīng)用,諸如萬維網(wǎng)服務(wù)器或用于文件傳送的FTP服務(wù)器。
VIP轉(zhuǎn)發(fā)器與網(wǎng)絡(luò)終端、如以太網(wǎng)卡相關(guān),后者連接到多個(gè)外部路由器22-24。外部路由器又連接到分組數(shù)據(jù)網(wǎng)(PDN)25、如企業(yè)內(nèi)部網(wǎng)或因特網(wǎng)。每個(gè)外部路由器可以連接到任何以太網(wǎng)卡(以及相關(guān)的VIP轉(zhuǎn)發(fā)器);每個(gè)VIP轉(zhuǎn)發(fā)器可以連接到任何分段器/合并器;以及每個(gè)分段器/合并器可以連接到任何服務(wù)器。例如,所畫的實(shí)線表示從外部路由器23到VIP轉(zhuǎn)發(fā)器11a、到分段器/合并器12a以及到HTTP-2服務(wù)器15的連接。
對(duì)于每個(gè)物理上具有連接到因特網(wǎng)的網(wǎng)絡(luò)終端(例如以太網(wǎng)卡)的處理器,VIP轉(zhuǎn)發(fā)進(jìn)程駐留在該處理器上。實(shí)際上,用作VIP終端的每個(gè)卡具有相應(yīng)的VIP轉(zhuǎn)發(fā)進(jìn)程。卡可在運(yùn)行時(shí)為VIP終端配置。每個(gè)VIP終端可以端接路由選擇進(jìn)程13中定義的所有IP地址?;蛘呖梢灾付承¬IP終端僅端接特定的VIP地址。
應(yīng)當(dāng)指出,網(wǎng)絡(luò)終端21被配備IP地址,該地址是局部(按處理器)定義的,與這種終端是否用于某個(gè)VIP地址無關(guān)。采用例如路由選擇信息協(xié)議(RIP),路由選擇進(jìn)程13通知外部路由器22-24關(guān)于哪些終端支持VIP地址。本發(fā)明的可擴(kuò)展性部分來自以下事實(shí)可以有多個(gè)物理終端、如可能在多個(gè)不同處理器上的以太網(wǎng)卡。通常,一個(gè)IP地址表示一個(gè)卡或IP終端。通常,對(duì)于每個(gè)以太網(wǎng)地址,指定不同的IP地址。本發(fā)明也是如此。外部路由器將各個(gè)卡視為不同的地址。所以,VIP框架將外部路由器看作如網(wǎng)絡(luò)中的其它路由器一樣,它們按照需要為數(shù)據(jù)選擇路由。一旦數(shù)據(jù)進(jìn)入框架中,以太網(wǎng)層接收數(shù)據(jù)并且驗(yàn)證其層-1信息。當(dāng)數(shù)據(jù)進(jìn)入IP棧時(shí),該棧是分布式的。
圖2A和2B是說明當(dāng)在VIP框架10中從PDN 25接收輸入消息時(shí)、本發(fā)明的方法的最佳實(shí)施例的步驟的流程圖。首先參照圖2A,在步驟31,分組/片段從PDN(企業(yè)內(nèi)部網(wǎng)/因特網(wǎng))25到達(dá)外部路由器22-24。如上所述并且如步驟32中所說明的,路由選擇進(jìn)程13通知外部路由器哪個(gè)終端支持這些分組中指明的VIP地址。在步驟33,把分組/片段發(fā)送到支持的網(wǎng)絡(luò)終端21及其相關(guān)的VIP轉(zhuǎn)發(fā)器11。但是,由于分組可能已被分段(分割成較小的幀),各片段可能采取不同的路由進(jìn)入VIP框架。所接收的片段必須在它們向上送到TCP和應(yīng)用層之前被合并(重新組裝)。分組的重新組裝必須在共同的位置發(fā)生。重新組裝無法由任何單個(gè)VIP轉(zhuǎn)發(fā)進(jìn)程來執(zhí)行,因?yàn)樵撨M(jìn)程可能不知道所有分段的幀。因此,輸入分組的重新組裝在分段器/合并器級(jí)12執(zhí)行。
利用例如IPC把VIP轉(zhuǎn)發(fā)器11接收的所有分組轉(zhuǎn)發(fā)到預(yù)定的分段器/合并器12,即使分組不需要任何重新組裝(合并),也是如此。為了避免在框架中制造瓶頸,本發(fā)明創(chuàng)建分段器/合并器進(jìn)程的多個(gè)示例并且它們總是激活的。例如,框架可包括256個(gè)進(jìn)程示例。這些分段器/合并器進(jìn)程示例分布在框架中,并且運(yùn)行在多個(gè)處理器上。例如可能在兩個(gè)處理器中的每個(gè)上運(yùn)行128個(gè)示例,4個(gè)處理器中的每個(gè)上運(yùn)行64個(gè)示例,或者在極端情況下,256個(gè)處理器中的每個(gè)上運(yùn)行1個(gè)示例。數(shù)字256僅作為舉例,在實(shí)踐中,可以有更多或更少數(shù)目的示例。如果需要,可以增加或減小該數(shù)目。
來自相同源的所有IP分組(包括各個(gè)分組片段)包含相同的源IP地址。在步驟34,源IP地址用于確定性函數(shù)計(jì)算中,以便確定哪個(gè)分段器/合并器示例12要用來重新組裝分組。通過確定性函數(shù)計(jì)算,在步驟35中,所有來自特定源IP地址的分組總是被發(fā)送到相同的分段器/合并器進(jìn)程示例。所有VIP轉(zhuǎn)發(fā)進(jìn)程示例11利用這個(gè)相同的確定性函數(shù);因此,確保所有來自特定源IP地址的分組到達(dá)相同的分段器/合并器。在最佳實(shí)施例中,確定性函數(shù)將完整源地址的值混編成0到n-1之間的值(其中n是分段器/合并器示例的數(shù)目)?;蛘?,完整源地址、目的地址或者目的端口可用作該函數(shù)的輸入,只要能得到可預(yù)測結(jié)果。
如果分段器/合并器示例出現(xiàn)故障,則在同一處理器或框架中另一處理器上自動(dòng)重新啟動(dòng)它。如果VIP轉(zhuǎn)發(fā)示例出現(xiàn)故障,則自動(dòng)在同一處理器上重新啟動(dòng)它。路由選擇進(jìn)程13更新外部路由器22-24,使得如果故障持續(xù)下去,則排除失效的VIP轉(zhuǎn)發(fā)示例。因此,所述框架同時(shí)提供了容錯(cuò)性和線性可擴(kuò)展容量增加。
在步驟36,如果需要的話,分段器/合并器12重新組裝各分組。一旦IP分組被重新組裝,則可以被向上發(fā)送到應(yīng)用服務(wù)器。但是,由于VIP框架可以與多種應(yīng)用服務(wù)器一起工作,所以分段器/合并器進(jìn)程12必須首先為目的VIP地址識(shí)別有效應(yīng)用服務(wù)器。在步驟37,分段器/合并器從分組中提取目的VIP地址。然后,此處理轉(zhuǎn)到圖2B,步驟41,這里,分段器/合并器維護(hù)將IPC端口與VIP地址/服務(wù)器套接字組合相聯(lián)系的更新的服務(wù)器套接字列表,下面結(jié)合圖3來更詳細(xì)地說明這種處理。在步驟42,分段器/合并器從服務(wù)器套接字列表中識(shí)別一個(gè)或多個(gè)有效應(yīng)用服務(wù)器。如是在步驟43中確定識(shí)別了一個(gè)以上的有效應(yīng)用服務(wù)器,則處理轉(zhuǎn)到步驟44,這時(shí)分段器/合并器利用諸如循環(huán)選擇或負(fù)載平衡之類的處理來選擇單個(gè)服務(wù)器。然后,處理轉(zhuǎn)到步驟45,這時(shí)分段器/合并器利用IPC將重新組裝的分組發(fā)送到所選的服務(wù)器。
現(xiàn)在參照圖3,圖中表示了一個(gè)說明用于維護(hù)將IPC端口與VIP地址/服務(wù)器套接字組合相聯(lián)系的更新列表的步驟的流程圖。在步驟51,注意到所有分段器/合并器在框架內(nèi)公布IPC端口名稱。當(dāng)在步驟52中服務(wù)器使用API打開用于一個(gè)VIP地址的服務(wù)器套接字(例如80)時(shí),系統(tǒng)調(diào)用確定它是用于一個(gè)VIP地址的套接字。在步驟53,框架請求分段器/合并器之一用這個(gè)新的服務(wù)器套接字來更新IPC端口列表。對(duì)于VIP地址/服務(wù)器套接字的相同組合,可能有許多IPC端口。因此,在步驟54,服務(wù)器套接字列表是分布的并且在所有分段器/合并器之間共享。當(dāng)來自任何源IP地址的分組到達(dá)一個(gè)分段器/合并器時(shí),處理從分組中抽取目的VIP地址和目的套接字(例如80)。然后,分段器/合并器通過服務(wù)器套接字列表找到有效的應(yīng)用服務(wù)器。如果多個(gè)服務(wù)器可服務(wù)于這個(gè)VIP地址和服務(wù)器套接字組合,則分段器/合并器選擇其中之一。例如,如果有六個(gè)不同的處理器,F(xiàn)TP服務(wù)器為此VIP地址運(yùn)行于其上,則分段器/合并器選擇其中之一。所述選擇可基于循環(huán)選擇或者可提升為考慮處理器負(fù)載、延遲或其它因素。一旦進(jìn)行連接,用于此連接的所有其它分組都返回到該服務(wù)器并且完成其事務(wù)處理。
圖4是說明當(dāng)輸出消息從VIP框架發(fā)送到PDN時(shí)、本發(fā)明的方法的最佳實(shí)施例的步驟的流程圖。當(dāng)應(yīng)用服務(wù)器、如HTTP-2 15需要建立其本身和遠(yuǎn)程客戶機(jī)之間的套接字時(shí),它首先在步驟61中打開客戶機(jī)套接字。這個(gè)客戶機(jī)套接字由應(yīng)用與用作遠(yuǎn)程IP地址的重新組裝點(diǎn)的分段器/合并器12a之間的受監(jiān)控IPC鏈路來表示。在步驟62中可以通過相同的確定性函數(shù)來識(shí)別分段器/合并器,該函數(shù)由VIP轉(zhuǎn)發(fā)器用來針對(duì)輸入消息識(shí)別分段器/合并器。在步驟63,系統(tǒng)調(diào)用確定哪個(gè)分段器/合并器用于這個(gè)特定遠(yuǎn)程IP地址并且請求分段器/合并器建立IPC受監(jiān)控鏈路。
一旦建立IPC受監(jiān)控鏈路,服務(wù)器和客戶機(jī)可以使用新的客戶機(jī)套接字來互相通信。如上所述,發(fā)到服務(wù)器的客戶機(jī)分組通過任何VIP轉(zhuǎn)發(fā)器11到達(dá)該框架中,并且通過客戶機(jī)特定的分段器/合并器12和受監(jiān)控IPC鏈路轉(zhuǎn)發(fā)到服務(wù)器應(yīng)用。在步驟64中,發(fā)到客戶機(jī)的服務(wù)器分組經(jīng)由受監(jiān)控IPC鏈路從應(yīng)用服務(wù)器以隧道技術(shù)傳送到分段器/合并器12。在步驟65,分段器/合并器在需要時(shí)將分組分段,并且在步驟66,使用路由選擇進(jìn)程13中的路由選擇表來確定應(yīng)當(dāng)使用哪個(gè)輸出路由。路由選擇表是局部表,它包括可用來到達(dá)特定客戶機(jī)IP地址的VIP轉(zhuǎn)發(fā)器11的列表。例如,對(duì)于內(nèi)部網(wǎng)可能有第一個(gè)路由,對(duì)于外部網(wǎng)可能有另一路由。路由選擇進(jìn)程可以集中在單個(gè)處理器上,或者可以是分布式的,即路由選擇進(jìn)程運(yùn)行于多個(gè)處理器上。路由選擇進(jìn)程可能返回VIP轉(zhuǎn)發(fā)器列表,或者可能返回由循環(huán)或負(fù)載平衡程序選擇的特定VIP轉(zhuǎn)發(fā)器。為了使局部可用的VIP轉(zhuǎn)發(fā)器列入優(yōu)先地位,用于局部可用的VIP轉(zhuǎn)發(fā)器的路由選擇表?xiàng)l目具有較低的METRIC值。在步驟67,分組通過網(wǎng)絡(luò)終端21和外部路由器22-24傳送到PDN 25。
從以上描述中可以看出,VIP框架使外部實(shí)體可以將整個(gè)框架視為單個(gè)IP地址,同時(shí)提供高度的可擴(kuò)展性和容錯(cuò)性。對(duì)于可擴(kuò)展性,可以在VIP框架中任何層添加額外的進(jìn)程。如果存在大量事務(wù),則例如可以添加更多的服務(wù)器而不影響VIP框架的實(shí)現(xiàn)。如果有足夠多的服務(wù)器,但是帶寬存在問題,則可以添加更多的VIP轉(zhuǎn)發(fā)器。如果到路由器的中繼線的容量超過,則可以添加另一中繼線而不必改變?nèi)魏蜼IP框架基礎(chǔ)設(shè)施。
對(duì)于容錯(cuò)性,可以繞過失效的進(jìn)程來選擇路由,因?yàn)榇嬖诙鄠€(gè)處理器上運(yùn)行的各進(jìn)程的大量示例。在VIP轉(zhuǎn)發(fā)層,在端口上的以太網(wǎng)卡與路由器之間有物理連接。如果VIP轉(zhuǎn)發(fā)進(jìn)程11失效,則可以繞過失效的進(jìn)程將輸出消息送到外部路由器22-24。對(duì)于輸入消息,外部路由器檢測故障并且將分組發(fā)送到可工作的VIP轉(zhuǎn)發(fā)進(jìn)程。在分段器-合并器級(jí),進(jìn)程的每個(gè)示例在VIP框架中具有唯一的“名稱地址”。因此,例如運(yùn)行在處理器1或15上的這個(gè)進(jìn)程的特定示例總是可以找到。如果示例失效并且隨后被重新啟動(dòng),則它具有相同的身份。因?yàn)樗哂形ㄒ簧矸荩园严⒎邓突赝皇纠?br>
同樣對(duì)容錯(cuò)性起作用的是以下事實(shí)所有狀態(tài)依賴關(guān)系已被限制或排除。也就是說,如果消息為某一事務(wù)進(jìn)入客戶機(jī)和服務(wù)器位置、比如分段器-合并器和HTTP服務(wù)器中的兩個(gè)進(jìn)程之間,并且分段器-合并器進(jìn)程失效,則服務(wù)器在幾秒內(nèi)發(fā)回消息,說明它具有懸掛的事務(wù)。當(dāng)消息回來時(shí),失效的分段器-合并器進(jìn)程已經(jīng)重新啟動(dòng),或者在相同處理器上或者在VIP框架中的不同處理器上。分段器-合并器則繼續(xù)該事務(wù)處理并且開始把分組轉(zhuǎn)發(fā)到任何在分段器-合并器失效時(shí)激活的進(jìn)程上。因此,信息未保存在分段器-合并器中;它是無國籍的。
這樣,風(fēng)險(xiǎn)僅限于丟失事務(wù),這是在進(jìn)程失效時(shí)建立的。但是,諸如TCP之類的協(xié)議具有糾錯(cuò)機(jī)制并且如果片段丟失就重新進(jìn)行傳輸嘗試。但是,本發(fā)明不限于TCP或進(jìn)行重傳嘗試的其它協(xié)議。例如,UDP本質(zhì)上不具有重傳能力,因?yàn)椴槐匾WC傳輸?shù)陌l(fā)送。在這種情況下,VIP框架與協(xié)議要求是一致的。
因此,框架的優(yōu)點(diǎn)包括服務(wù)器的線性可擴(kuò)展性、網(wǎng)絡(luò)接口的線性可擴(kuò)展性以及高容錯(cuò)性??蚣軐?duì)于客戶機(jī)和服務(wù)器是透明的,并且對(duì)外圍PDN基礎(chǔ)設(shè)施具有最小的影響。此外,由于最佳實(shí)施例在IP級(jí)工作,所以可以在(UDP、HTTP、FTP等)上運(yùn)行許多不同的應(yīng)用。應(yīng)當(dāng)指出,本發(fā)明不限于第二代IPv4,而且還可用于第三代IPv6。
另外,本發(fā)明不限于IP。它也可以用于其它協(xié)議,只要它們采用標(biāo)識(shí)消息的信頭和包含消息內(nèi)容的部分。例如,在電信中,采用7號(hào)信令系統(tǒng)(SS7)協(xié)議,并且本發(fā)明可通過SS7來實(shí)現(xiàn)以提供電信網(wǎng)絡(luò)中的容錯(cuò)性和可擴(kuò)展性,不必修改成千上萬的互相產(chǎn)生業(yè)務(wù)量的節(jié)點(diǎn)。
所述框架可以在應(yīng)用特定層以下的協(xié)議棧中的任何級(jí)實(shí)現(xiàn)。最佳實(shí)施例是在IP層實(shí)現(xiàn)的,以便拓寬本發(fā)明的適用性并且向運(yùn)行于IP上的所有協(xié)議提供好處。如果想向特定應(yīng)用或協(xié)議、如HTTP提供好處,所述框架可以在更高級(jí)實(shí)現(xiàn)。
因此,可以相信,從上述描述中可以明白本發(fā)明的操作和結(jié)構(gòu)。雖然所示和所描述的框架和方法的特征是最佳的,但是,容易理解,只要不背離如以下權(quán)利要求中定義的本發(fā)明的范圍,可以進(jìn)行各種變化和修改。
權(quán)利要求
1.一種用于在多個(gè)應(yīng)用服務(wù)器與分組數(shù)據(jù)網(wǎng)(PDN)之間提供容錯(cuò)和可擴(kuò)展接口的框架,所述框架包括多個(gè)網(wǎng)絡(luò)終端,接收來自所述PDN的輸入數(shù)據(jù)分組和分組片段,并且向所述PDN發(fā)送輸出數(shù)據(jù)分組和分組片段;多個(gè)分段器/合并器,向所述應(yīng)用服務(wù)器發(fā)送輸入數(shù)據(jù)分組并且從所述應(yīng)用服務(wù)器接收輸出數(shù)據(jù)分組,各個(gè)所述分段器/合并器包括用于將輸入分組片段重新組裝成輸入數(shù)據(jù)分組的裝置;用于從所述多個(gè)應(yīng)用服務(wù)器中識(shí)別有效應(yīng)用服務(wù)器以接收所述重新組裝的輸入數(shù)據(jù)分組的裝置;用于將輸出數(shù)據(jù)分組分段成輸出分組片段的裝置;以及用于從多個(gè)轉(zhuǎn)發(fā)進(jìn)程中識(shí)別一個(gè)轉(zhuǎn)發(fā)進(jìn)程以接收輸出數(shù)據(jù)分組和分組片段的裝置;多個(gè)轉(zhuǎn)發(fā)進(jìn)程,每個(gè)轉(zhuǎn)發(fā)進(jìn)程與多個(gè)網(wǎng)絡(luò)終端之一相聯(lián)系,每個(gè)所述轉(zhuǎn)發(fā)進(jìn)程包括用于從多個(gè)分段器/合并器中識(shí)別單個(gè)分段器/合并器以接收所有具有共同源地址的輸入數(shù)據(jù)分組和分組片段的裝置;在各轉(zhuǎn)發(fā)進(jìn)程與各分段器/合并器之間的多個(gè)進(jìn)程間通信(IPC)鏈路;以及在各分段器/合并器與各個(gè)應(yīng)用服務(wù)器之間的多個(gè)IPC鏈路。
2.如權(quán)利要求1所述的框架,其特征在于,所述框架是在應(yīng)用服務(wù)器級(jí)以下的任何協(xié)議級(jí)實(shí)現(xiàn)的。
3.如權(quán)利要求2所述的框架,其特征在于,所述框架是在因特網(wǎng)協(xié)議(IP)級(jí)實(shí)現(xiàn)的,而且所述框架是虛擬IP(VIP)框架,它支持運(yùn)行IP協(xié)議所支持的任何協(xié)議的應(yīng)用服務(wù)器。
4.如權(quán)利要求3所述的框架,其特征在于,所述PDN是因特網(wǎng),而所述網(wǎng)絡(luò)終端是以太網(wǎng)卡。
5.如權(quán)利要求2所述的框架,其特征在于,所述框架是支持運(yùn)行SS7所支持的任何協(xié)議的應(yīng)用服務(wù)器的7號(hào)信令系統(tǒng)(SS7)框架。
6.如權(quán)利要求1所述的框架,其特征在于,所述分段器/合并器使所述應(yīng)用服務(wù)器能夠打開和關(guān)閉套接字并且發(fā)送和接收數(shù)據(jù)分組,而不用修改應(yīng)用服務(wù)器。
7.如權(quán)利要求1所述的框架,其特征在于還包括路由選擇進(jìn)程,所述進(jìn)程包括所述框架中的地址表并且為PDN中的外部路由器提供所述網(wǎng)絡(luò)終端的地址。
8.如權(quán)利要求7所述的框架,其特征在于,所述路由選擇進(jìn)程中的表為特定網(wǎng)絡(luò)終端指定特定框架地址。
9.如權(quán)利要求7所述的框架,其特征在于,所述網(wǎng)絡(luò)終端與所述PDN中的外部路由器進(jìn)行通信,并且對(duì)外部路由器而言看上去像是附加的網(wǎng)絡(luò)路由器。
10.如權(quán)利要求7所述的框架,其特征在于,所述路由選擇進(jìn)程包括路由選擇表,它為分段器/合并器提供有關(guān)輸出數(shù)據(jù)分組的輸出路由選擇信息。
11.如權(quán)利要求10所述的框架,其特征在于,所述輸出路由選擇信息包括所述多個(gè)轉(zhuǎn)發(fā)進(jìn)程之一的身份,其中所述分段器/合并器應(yīng)當(dāng)發(fā)送輸出數(shù)據(jù)分組和分組片段。
12.一種用于提供容錯(cuò)和可擴(kuò)展接口的框架,它從分組數(shù)據(jù)網(wǎng)(PDN)接收輸入數(shù)據(jù)分組和分組片段并且將重新組裝的分組傳送給多個(gè)應(yīng)用服務(wù)器,所述框架包括多個(gè)網(wǎng)絡(luò)終端,從所述PDN接收輸入數(shù)據(jù)分組和分組片段;多個(gè)合并器,向所述應(yīng)用服務(wù)器發(fā)送輸入數(shù)據(jù)分組,每個(gè)所述合并器包括用于從輸入分組片段中重新組裝輸入數(shù)據(jù)分組的裝置;以及用于從多個(gè)應(yīng)用服務(wù)器識(shí)別有效應(yīng)用服務(wù)器以便接收所述重新組裝的輸入數(shù)據(jù)分組的裝置;多個(gè)轉(zhuǎn)發(fā)進(jìn)程,每個(gè)轉(zhuǎn)發(fā)進(jìn)程與多個(gè)網(wǎng)絡(luò)終端之一相聯(lián)系,每個(gè)所述轉(zhuǎn)發(fā)進(jìn)程包括用于從多個(gè)合并器中識(shí)別單個(gè)合并器以接收所有具有共同源地址的輸入數(shù)據(jù)分組和分組片段的裝置;在各轉(zhuǎn)發(fā)進(jìn)程與各分段器/合并器之間的多個(gè)進(jìn)程間通信(IPC)鏈路;以及在各分段器/合并器與各個(gè)應(yīng)用服務(wù)器之間的多個(gè)IPC鏈路。
13.一種用于提供容錯(cuò)和可擴(kuò)展接口的框架,它從多個(gè)應(yīng)用服務(wù)器接收輸出數(shù)據(jù)分組并且將輸出數(shù)據(jù)分組和分組片段傳送給分組數(shù)據(jù)網(wǎng)(PDN),所述框架包括多個(gè)轉(zhuǎn)發(fā)進(jìn)程,多個(gè)分段器,從所述應(yīng)用服務(wù)器接收輸出數(shù)據(jù)分組,每個(gè)所述分段器包括用于將輸出數(shù)據(jù)分組分成輸出分組片段的裝置;以及用于從多個(gè)轉(zhuǎn)發(fā)進(jìn)程識(shí)別一個(gè)轉(zhuǎn)發(fā)進(jìn)程以便將輸出數(shù)據(jù)分組和分組片段轉(zhuǎn)發(fā)到網(wǎng)絡(luò)終端的裝置;多個(gè)網(wǎng)絡(luò)終端,把輸出數(shù)據(jù)分組和分組片段發(fā)送給所述PDN,每個(gè)所述網(wǎng)絡(luò)終端與所述多個(gè)轉(zhuǎn)發(fā)進(jìn)程之一相聯(lián)系;在各分段器與各應(yīng)用服務(wù)器之間的多個(gè)進(jìn)程間通信(IPC)鏈路;以及在各分段器與各轉(zhuǎn)發(fā)進(jìn)程之間的多個(gè)IPC鏈路。
14.一種實(shí)現(xiàn)多個(gè)應(yīng)用服務(wù)器與分組數(shù)據(jù)網(wǎng)(PDN)之間接口的容錯(cuò)和可擴(kuò)展方法,所述方法包括以下步驟在多個(gè)網(wǎng)絡(luò)終端中從所述PDN接收輸入數(shù)據(jù)分組和分組片段;將每個(gè)所述網(wǎng)絡(luò)終端與多個(gè)轉(zhuǎn)發(fā)進(jìn)程其中之一相聯(lián)系;將每個(gè)轉(zhuǎn)發(fā)進(jìn)程與多個(gè)分段器/合并器相連;通過每個(gè)轉(zhuǎn)發(fā)進(jìn)程來選擇單個(gè)分段器/合并器以接收所有具有共同源地址的輸入數(shù)據(jù)分組和分組片段;把所述具有共同源地址的輸入數(shù)據(jù)分組和分組片段發(fā)送到所選的分段器/合并器;由所選的分段器/合并器把從所述轉(zhuǎn)發(fā)進(jìn)程接收的輸入分組片段重新組裝成輸入數(shù)據(jù)分組;把每個(gè)所述分段器/合并器連接到多個(gè)應(yīng)用服務(wù)器;由所選的分段器/合并器從所述多個(gè)應(yīng)用服務(wù)器中識(shí)別一個(gè)有效應(yīng)用服務(wù)器以接收所述重新組裝的輸入數(shù)據(jù)分組;以及從所選的分段器/合并器向所述有效應(yīng)用服務(wù)器發(fā)送所述重新組裝的輸入數(shù)據(jù)分組。
15.如權(quán)利要求14所述的容錯(cuò)和可擴(kuò)展方法,其特征在于還包括以下步驟由所述有效應(yīng)用服務(wù)器從所述多個(gè)分段器/合并器中選擇一個(gè)分段器/合并器;從所述有效應(yīng)用服務(wù)器向所選的分段器/合并器發(fā)送輸出數(shù)據(jù)分組;由所選的分段器/合并器從所述多個(gè)轉(zhuǎn)發(fā)進(jìn)程中識(shí)別單個(gè)轉(zhuǎn)發(fā)進(jìn)程;從所選的分段器/合并器向所述識(shí)別的轉(zhuǎn)發(fā)進(jìn)程發(fā)送所述輸出數(shù)據(jù)分組;由所述識(shí)別的轉(zhuǎn)發(fā)進(jìn)程將所述輸出數(shù)據(jù)分組與網(wǎng)絡(luò)終端相聯(lián)系;以及從所述相聯(lián)系的網(wǎng)絡(luò)終端向所述PDN發(fā)送所述輸出數(shù)據(jù)分組。
16.如權(quán)利要求15所述的容錯(cuò)和可擴(kuò)展方法,其特征在于還包括通過所述選擇的分段器/合并器將所述輸出數(shù)據(jù)分組分成輸出分組片段。
17.如權(quán)利要求16所述的容錯(cuò)和可擴(kuò)展方法,其特征在于,將所述輸出數(shù)據(jù)分組從所選的分段器/合并器發(fā)送到所識(shí)別的轉(zhuǎn)發(fā)進(jìn)程的步驟還包括把輸出分組片段從所選的分段器/合并器發(fā)送到所識(shí)別的轉(zhuǎn)發(fā)進(jìn)程。
全文摘要
一種接口方法和虛擬IP框架(10)。最佳實(shí)施例在TP級(jí)工作,由此使所述框架能夠與運(yùn)行于TP之上的任何應(yīng)用配合工作。在多個(gè)網(wǎng)絡(luò)終端(21)中接收輸入數(shù)據(jù)分組和分組片段,為此,路由選擇進(jìn)程為外部路由器提供地址。每個(gè)網(wǎng)絡(luò)終端與多個(gè)轉(zhuǎn)發(fā)進(jìn)程(11a-11n)之一相關(guān),并且每個(gè)轉(zhuǎn)發(fā)進(jìn)程連接到多個(gè)分段器/合并器(12a-12n)。每個(gè)轉(zhuǎn)發(fā)進(jìn)程選擇單個(gè)分段器/合并器來接收具有共同源地址的所有輸入數(shù)據(jù)。然后把輸入分組和分組片段發(fā)送到所選的分段器/合并器,其中如果需要就將它們重新組裝。所選的分段器/合并器標(biāo)識(shí)有效應(yīng)用服務(wù)器(14-17)并向其發(fā)送重新組裝的輸入數(shù)據(jù)分組。
文檔編號(hào)G06F13/00GK1466840SQ01816378
公開日2004年1月7日 申請日期2001年9月26日 優(yōu)先權(quán)日2000年9月28日
發(fā)明者A·貝利維奧, A 貝利維奧, P·安德松, 濾, A·弗蘭岑, 堅(jiān), L·亨納特, 商 申請人:艾利森電話股份有限公司