国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在不同的互聯(lián)網(wǎng)通信棧實例之間對數(shù)據(jù)包路由的方法和設(shè)備的制作方法

      文檔序號:7676092閱讀:252來源:國知局
      專利名稱:在不同的互聯(lián)網(wǎng)通信棧實例之間對數(shù)據(jù)包路由的方法和設(shè)備的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明總的涉及數(shù)字?jǐn)?shù)據(jù)處理,更具體地,涉及在計算機(jī)系統(tǒng)中對互
      聯(lián)網(wǎng)通信棧(例如TCP/IP棧)的使用。
      背景技術(shù)
      在二十世紀(jì)后期,開始出現(xiàn)一種已知為信息革命的現(xiàn)象。盡管信息革 命是一種歷史發(fā)展,其范圍比任意一個事件或機(jī)器更廣泛,但是沒有一個 設(shè)備比數(shù)字電子計算機(jī)更能表現(xiàn)信息革命了 。計算機(jī)系統(tǒng)的發(fā)展無疑是一 個革命。每年,計算機(jī)系統(tǒng)增長越來越快,存儲越來越多的數(shù)據(jù),以及向 它們的用戶提供越來越多應(yīng)用。與此同時,計算資源的成本一直在降低, 從而在幾年前因為太昂貴而不能夠收集、存儲和處理的信息如今可經(jīng)濟(jì)地 通過計算機(jī)進(jìn)行管理。由于產(chǎn)品設(shè)計、制造工藝、資源調(diào)度、管理工作以 及許多其它因素變得更加高效,所以信息處理的更低成本使得生產(chǎn)率以滾 雪J求效應(yīng)逐、漸增力口。
      計算的更低成本以及數(shù)字設(shè)備的通用版本使得這些設(shè)備中存儲的信息 量劇增。使用數(shù)字形式存儲的這些信息,自然地,期望獲得從計算機(jī)系統(tǒng) 對信息的更寬的訪問。信息量使得任一個設(shè)備的存儲能力變得相形見絀。 為了改善信息訪問,開發(fā)出了允許計算設(shè)備與另 一個設(shè)備通信和交換信息 的各種技術(shù)?;蛟S,這種分布式計算機(jī)的最突出實例是萬維網(wǎng)(通常,簡 稱為"web"),即在使用互聯(lián)網(wǎng)的世界范圍內(nèi)可用的資源集合。從學(xué)童 到老年人都學(xué)習(xí)使用web,并且在它們家或工作單位可以方便地找到幾乎 無止境的各種信息。商業(yè)、政府、組織甚至普通個人使得信息在web上可 用,以至于達(dá)到這樣的程度,即現(xiàn)在期望任意有價值的相關(guān)信息可在web上的某處得到。
      在多個數(shù)字系統(tǒng)中為web以及為電子郵件和其它形式的通信和分布式 處理提供支持的互聯(lián)網(wǎng)是通過多個鏈路連接的數(shù)字設(shè)備(節(jié)點)的異構(gòu)網(wǎng) 絡(luò),從而在網(wǎng)絡(luò)的任意兩個節(jié)點之間,典型地存在多個路徑,從而給互聯(lián) 網(wǎng)帶來了一定程度的冗余。在包中發(fā)送數(shù)據(jù),在多個連續(xù)的節(jié)點之間對每 個包路由,直到它到達(dá)它的目的地。為了支持在與互聯(lián)網(wǎng)耦合的任意兩個 隨機(jī)節(jié)點之間的通信,使用全局命名規(guī)則對每個節(jié)點分配唯一名稱。這種 命名規(guī)則已知為域名系統(tǒng)或DNS。僅具有目標(biāo)節(jié)點的全局DNS名稱的與 互聯(lián)網(wǎng)連接的源節(jié)點可向目標(biāo)發(fā)送數(shù)據(jù)包。各個DNS服務(wù)器和其它設(shè)備將 全局DNS名稱轉(zhuǎn)換成互聯(lián)網(wǎng)協(xié)議(IP)地址,使得互聯(lián)網(wǎng)上的各個路由器 和其它設(shè)備正確確定對于數(shù)據(jù)包到達(dá)其最終目的節(jié)點的路徑。
      在對包路由的基本層,互聯(lián)網(wǎng)能夠從一個節(jié)點向另 一個節(jié)點傳輸任意 隨機(jī)數(shù)據(jù),因此可看作通信介質(zhì)。然而,互聯(lián)網(wǎng)的用途取決于在源節(jié)點和 目的節(jié)點處理數(shù)據(jù)交換的應(yīng)用。因此,web瀏覽器和其它web應(yīng)用的出現(xiàn) 使得基礎(chǔ)信息傳輸技術(shù)在獨立、交互基礎(chǔ)上對于不具有廣泛計算機(jī)編程技 術(shù)的人們可用,所以這極大地擴(kuò)大了互聯(lián)網(wǎng)的使用。
      在與互聯(lián)網(wǎng)連接的計算機(jī)系統(tǒng)中, 一組低級別進(jìn)程從互聯(lián)網(wǎng)連接接收
      輸入(inbound )數(shù)據(jù)包,組合包中的數(shù)據(jù),向一個或多個高級別應(yīng)用提供
      數(shù)據(jù);類似地,所述一組低級別進(jìn)程從高級應(yīng)用接收輸出(outbound)消
      息、文件或類似的結(jié)構(gòu),構(gòu)成體現(xiàn)每個這種結(jié)構(gòu)的一個或多個輸出數(shù)據(jù)包,
      對數(shù)據(jù)包尋址,以及在互聯(lián)網(wǎng)連接之間發(fā)送數(shù)據(jù)包。這里,這些進(jìn)程稱為
      互聯(lián)網(wǎng)通信棧或TCP/IP棧,其中TCP/IP是傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議的 已知首字母縮寫。
      互聯(lián)網(wǎng)通信?;騎CP/IP棧(或"棧實例")是用于執(zhí)行上述低級別 互聯(lián)網(wǎng)通信功能的計算機(jī)程序代碼的進(jìn)程實例。對于任意不同原因,有時, 期望在一個計算機(jī)系統(tǒng)中采用多個互聯(lián)網(wǎng)通信棧。盡管不是必須的,但是 所述多個互聯(lián)網(wǎng)通信??墒褂孟嗤幕A(chǔ)TCP/IP或相同的基礎(chǔ)TCP/IP 的部分,或其它計算^^編程代碼,但是每個互聯(lián)網(wǎng)通信棧具有其自己獨立的狀態(tài)數(shù)據(jù),并且每個互聯(lián)網(wǎng)通信棧具有其自己的IP地址(或IP地址組)。 使用這種多個互聯(lián)網(wǎng)通信棧的一個實例是這樣一種計算機(jī)系統(tǒng),其具
      有 一個(或多個)棧,用于代表用戶執(zhí)行有用的應(yīng)用,這里稱為工作棧 (production stack);以及分開的一個(或多個棧),用于遠(yuǎn)程管理、保 持和控制計算機(jī)系統(tǒng)本身的任務(wù),這里稱為服務(wù)棧。因為各種原因,期望 將用戶應(yīng)用從系統(tǒng)管理功能分離。例如,即使工作棧過載或無效,也可以 通過服務(wù)棧執(zhí)行系統(tǒng)維護(hù)和控制操作;可通過服務(wù)棧執(zhí)行并行維護(hù),而不 干擾在工作棧中正在進(jìn)行的操作等。
      互聯(lián)網(wǎng)通信棧必須根據(jù)主管協(xié)議執(zhí)行網(wǎng)絡(luò)通信所需的某些核心功能, 但是按需要也可執(zhí)行任意不同的改進(jìn)或可選功能。其中計算機(jī)系統(tǒng)包含多 個互聯(lián)網(wǎng)通信棧,例如在工作棧和分開的服務(wù)棧的情況下,在多個棧之間 存在核心功能的至少一些副本。然而,由于副本需要附加資源,所以不必 復(fù)制改進(jìn)或可選功能,并且這些功能并非在所有棧中可用。如果需要在不 支持該功能的棧中訪問用于處理通信的改進(jìn)功能,則可通過在局域網(wǎng) (LAN )連接上將數(shù)據(jù)路由到另 一個棧來調(diào)用其它棧中的功能。遺憾地是, 這種方案只是空想。這樣消耗LAN上的網(wǎng)絡(luò)資源,并且每個棧需要它自 己的專用網(wǎng)絡(luò)適配器執(zhí)行這種操作。
      此外,還可通過定義與不同棧相關(guān)的端口并將指定端口用作數(shù)據(jù)的目 的地而在不同的互聯(lián)網(wǎng)通信棧之間對數(shù)據(jù)進(jìn)行內(nèi)部地路由。端口轉(zhuǎn)發(fā)使得 一個適配器^^皮兩個棧共享。然而,由于某些數(shù)據(jù)包不包括端口標(biāo)識(或者 端口不可訪問),所以端口轉(zhuǎn)發(fā)不是始終可用。例如,在對數(shù)據(jù)加密以用 于虛擬專用網(wǎng)絡(luò)中的某些包中,端口也被加密,并且不可用于使用傳統(tǒng)端 口轉(zhuǎn)發(fā)的棧間路由。
      期望提供在計算機(jī)系統(tǒng)中的互聯(lián)網(wǎng)通信棧之間傳送數(shù)據(jù)的改進(jìn)技術(shù), 以避免現(xiàn)有技術(shù)中的某些缺點。具體地,期望提供棧間通信設(shè)施,其不在 LAN上施加附加流量,支持單硬件LAN適配器的共享,以及可容易地集 成在支持互聯(lián)網(wǎng)通信協(xié)議的現(xiàn)有軟件中。發(fā)明內(nèi)容一種計算機(jī)系統(tǒng)包含多個互聯(lián)網(wǎng)通信棧實例,其可以共享共同硬件網(wǎng)絡(luò)適配器或與單獨的各自硬件網(wǎng)絡(luò)適配器關(guān)聯(lián)。對于多個棧實例定義系統(tǒng) 內(nèi)部軟件通信路徑,從而使用互聯(lián)網(wǎng)協(xié)議(IP)尋址在計算機(jī)系統(tǒng)中的不 同互聯(lián)網(wǎng)通信棧實例之間對包路由。使用IP轉(zhuǎn)發(fā),將到達(dá)一個棧并且具有 與另 一個棧關(guān)聯(lián)的目的IP地址的包轉(zhuǎn)發(fā)至其他棧。在優(yōu)選實施例中,包的棧間路由可使用全局定義的互聯(lián)網(wǎng)IP地址或局 域內(nèi)聯(lián)網(wǎng)(封裝的)IP地址,并且可采用輸入或輸出包。例如,對于輸入 包可到達(dá)第一棧,使用全局IP地址將其轉(zhuǎn)發(fā)至第二棧,以及使用局部內(nèi)聯(lián) 網(wǎng)IP地址將其重新轉(zhuǎn)發(fā)回第一棧。對于輸出包可到達(dá)第一棧,使用局部內(nèi) 聯(lián)網(wǎng)IP地址將其轉(zhuǎn)發(fā)至第二棧,以及使用全局IP地址將其重新轉(zhuǎn)發(fā)回第 一棧。也存在許多其他用途。在優(yōu)選實施例的示例性環(huán)境中,第一棧是具有全范圍的TCP/IP功能 的工作棧,以支持在通用計算機(jī)系統(tǒng)中的各種用戶應(yīng)用,第二棧是具有有 限范圍的TCP/IP功能的服務(wù)棧,其的存在主要用以支持從遠(yuǎn)程控制臺的 系統(tǒng)控制,并行維護(hù)操作等??墒褂脳ig接口來獲得改進(jìn)功能的操作,以 用于來到的并且由綁定至服務(wù)棧的應(yīng)用發(fā)送的包。在優(yōu)選實施例的一個變形中,棧間接口還可用于支持由多個棧對共同 硬件網(wǎng)絡(luò)適配器的共享。棧間接口可作為選擇性能夠或禁止共享的開關(guān)運 行。在另一個變形中,當(dāng)在工作棧上執(zhí)行例程維護(hù)時,可使用棧間接口臨 時地將數(shù)據(jù)路由到備用棧實例。因此,本發(fā)明提供一種使用IP尋址的簡單內(nèi)部棧間接口,其能夠進(jìn)行 棧間通信,而不使用網(wǎng)絡(luò)設(shè)施,不需要專用軟件的開發(fā)成本,以處理棧間 通信或在所有棧實例中提供期望水平的功能??蓞⒄崭綀D從結(jié)構(gòu)和操作方面更好地理解本發(fā)明的細(xì)節(jié),其中類似的 標(biāo)號表示類似的部分,其中


      圖1是互聯(lián)網(wǎng)的高M(jìn)^示。
      圖2是根據(jù)優(yōu)選實施例的主機(jī)計算機(jī)系統(tǒng)的主要硬件組件的高級框圖。
      圖3是根據(jù)優(yōu)選實施例的主機(jī)計算機(jī)系統(tǒng)的主要軟件組成的概念示圖。
      圖4是示出根據(jù)優(yōu)選實施例的在互聯(lián)網(wǎng)通信棧實例中處理輸入數(shù)據(jù)包 的高級過程的整體流程圖。
      圖5是示出根據(jù)優(yōu)選實施例的在互聯(lián)網(wǎng)通信棧實例中處理輸出數(shù)據(jù)包 的高級過程的整體流程圖。
      圖6是示出根據(jù)優(yōu)選環(huán)境對輸入數(shù)據(jù)包的處理的流程圖,其中根據(jù)優(yōu) 選實施例將為服務(wù)應(yīng)用而綁定的封裝數(shù)據(jù)包路由到用于IPSec處理的工作 棧。
      圖7是示出才艮據(jù)圖6的示例性環(huán)境對輸出數(shù)據(jù)包的處理的流程圖。
      M實施方式 互聯(lián)網(wǎng)概況
      在討論本發(fā)明實施例的操作之前,這里提供了互聯(lián)網(wǎng)的簡單概述。 術(shù)語"互聯(lián)網(wǎng)"是"互聯(lián)網(wǎng)網(wǎng)絡(luò),,的縮寫版, 一般指的是利用在計算 機(jī)網(wǎng)絡(luò)領(lǐng)域中公知的TCP/IP和相關(guān)協(xié)議族的計算機(jī)網(wǎng)絡(luò)的集合。TCP/IP 是"傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議"(即便于計算機(jī)之間的通信的軟件協(xié)議) 的首字母縮寫。
      圖l是互聯(lián)網(wǎng)的高,念圖?;ヂ?lián)網(wǎng)不是預(yù)先建立的拓樸結(jié)構(gòu),而是 通過增加新的節(jié)點和鏈路無限擴(kuò)展的。節(jié)點可具有將其與其它節(jié)點連接的
      任意數(shù)目的鏈路,這些鏈路可使用任意不同的通信技術(shù),所述技術(shù)具有不 同的數(shù)據(jù)容量和其它特征。因此,互聯(lián)網(wǎng)的拓樸結(jié)構(gòu)變?yōu)闃O端復(fù)雜的互連 網(wǎng)絡(luò),其中典型地在任意兩個節(jié)點之間存在大量可能的通路。
      網(wǎng)絡(luò)的中心部分(有時稱為"骨干網(wǎng)")包含多個高速路由器101, 其接收數(shù)據(jù)包,并將這些數(shù)據(jù)包繼續(xù)轉(zhuǎn)發(fā)到網(wǎng)絡(luò)中的其它節(jié)點。典型地,每個路由器具有與其它路由器的多個連接,并且這些連接具有高數(shù)據(jù)容量。例如,在高速路由器101之間通常使用光纖鏈路。與高速路由器連接的是這樣的節(jié)點,其用作對于高速路由器的互聯(lián)網(wǎng)"骨干網(wǎng)"的訪問點,如圖1中所示的節(jié)點102。由于訪問節(jié)點102用作在高速路由器101和其它網(wǎng)絡(luò) 節(jié)點之間對數(shù)據(jù)包路由,所以訪問節(jié)點102也是路由器,但是它們典型地 采用低速連接。訪問節(jié)點可以是例如公共互聯(lián)網(wǎng)服務(wù)提供商(其通過電話 線路或其它連接在付費的情況下提供對互聯(lián)網(wǎng)的訪問),或可以是用于其 內(nèi)部系統(tǒng)的大型公司的訪問節(jié)點。通常,每個訪問節(jié)點102連接至多個高 速路由器101,以提供冗余,盡管這不是必要的。典型地,每個訪問節(jié)點 提供對多個主機(jī)計算機(jī)系統(tǒng)103A、 103B (共同表示為標(biāo)號103)的訪問, 圖1中僅示出2個。主機(jī)103是連接至互聯(lián)網(wǎng)的計算機(jī)系統(tǒng),并且其作為 源端生成或作為最終目的地接收在互聯(lián)網(wǎng)上發(fā)送的數(shù)據(jù)包。主機(jī)103可以 是從大型主機(jī)系統(tǒng)到PC到手持便攜式設(shè)備的任意類型計算機(jī)系統(tǒng),并且 一個主機(jī)可代表系統(tǒng)的集群。通常,主機(jī)具有用于訪問互聯(lián)網(wǎng)的僅一個訪 問節(jié)點102 (在這種情況下是非冗余的),但是主機(jī)也可具有多個這種訪 問節(jié)點用于冗余。在主機(jī)和訪問節(jié)點之間的連接通常是相對低速的(例如 電話線或射頻鏈路),但是也可以是高速鏈路。在一些計算機(jī)系統(tǒng)的情況 下,例如主要用于在互聯(lián)網(wǎng)上提^f^f言息的大型互聯(lián)網(wǎng)服務(wù)器,主機(jī)可直接 連接至高速路由器IOI,因此主機(jī)用作其自身的訪問節(jié)點??梢岳斫猓瑘D1用作互聯(lián)網(wǎng)的概念示圖,實際上在互聯(lián)網(wǎng)上節(jié)點和連 接的數(shù)目可以與圖1中所示的有極大的不同,并且連接的拓樸結(jié)構(gòu)可以改 變。此外,可以理解,可以存在其它層次的連接類型和訪問形式,為了圖 示的清楚在圖1中沒有示出。即,可以存在多種類型或等級的訪問節(jié)點102, 其中主機(jī)通過這些節(jié)點連接以到達(dá)骨干網(wǎng)的高速路由器101,并且不同的 主機(jī)可以在不同層次的訪問節(jié)點連接。嚴(yán)格地講,互聯(lián)網(wǎng)包括與其耦合的 所有設(shè)備,并且當(dāng)在互聯(lián)網(wǎng)上登入例如PC的小型計算機(jī)系統(tǒng)時,從其作 為互聯(lián)網(wǎng)節(jié)點并具有互聯(lián)網(wǎng)協(xié)議(IP)地址(盡管IP地址僅是暫時的)的 意義上,其是互聯(lián)網(wǎng)的一部分。通常,互聯(lián)網(wǎng)骨干網(wǎng)和訪問節(jié)點的路由器和連接都稱為互聯(lián)網(wǎng),即,與計算機(jī)系統(tǒng)的分布式處理網(wǎng)絡(luò)相對將互聯(lián)網(wǎng) 看成通信介質(zhì)。
      一般地,使用在后者含義中的"互聯(lián)網(wǎng)"描述通信介質(zhì), 但是根據(jù)上下文,也可采用前者的含義。為了能夠在任意網(wǎng)絡(luò)中從一個隨機(jī)節(jié)點向另一個進(jìn)行數(shù)據(jù)通信,發(fā)送 節(jié)點必須指定接收節(jié)點的目的地。對于很小的網(wǎng)絡(luò),例如局域以太網(wǎng),可 以向網(wǎng)絡(luò)中的所有節(jié)點廣播數(shù)據(jù),通過簡單的尋址方案識別所期望的接收 方?;ヂ?lián)網(wǎng)的大小使得這種方案不現(xiàn)實。對于發(fā)送方仍舊必須指定目的地, 但是向網(wǎng)絡(luò)中的每個節(jié)點發(fā)送數(shù)據(jù)直到找到目的地這是不現(xiàn)實的。這意味 著,發(fā)送方以及在通路中的發(fā)送方和接收方之間的每個節(jié)點必須能夠確定 將數(shù)據(jù)包向哪里路由,而使其到達(dá)其目的地。然而在通路中的每個節(jié)點必 須能夠確定在下一個中間鏈路上將包向哪里路由,而不必讓通路中的每個 節(jié)點知道最終目的地。 一般地,存在多個可能的路由,并且路由器可基于 各個因素確定使用哪個。在路由器硬件的層次,通過多位數(shù)字地址(稱為互聯(lián)網(wǎng)協(xié)議(IP)地址)指定互聯(lián)網(wǎng)目的節(jié)點。將使用32位IP地址的原始互聯(lián)網(wǎng)尋址系統(tǒng)分 成分別為8位的4個部分或"八位字節(jié)(octet)"。這些八位字節(jié)通常通 過句點分開,例如IP地址可寫為卯.4.63.18。八位字節(jié)是尋址的分級形 式,對于每個單獨的路由器,不必知道所有互聯(lián)網(wǎng)地址的最終目的地。將 承載遠(yuǎn)處地址的數(shù)據(jù)包路由到更近的路由器,并且因此能夠進(jìn)一步對地址 細(xì)分,以此類推直到數(shù)據(jù)包到達(dá)其最終目的地。盡管原始尋址系統(tǒng)使用32 位IP地址,但是近年來,互聯(lián)網(wǎng)地址空間受到限制,并且已經(jīng)采用已知為 IPv6的新標(biāo)準(zhǔn)用于互聯(lián)網(wǎng)IP地址。IPv6支持128位的IP地址。目前,IPv6 是同相的,并且許多互聯(lián)網(wǎng)設(shè)備硬件使用舊的32位IP尋址協(xié)議,已知為 IPv4。IP地址允許發(fā)送節(jié)點將數(shù)據(jù)包路由到接收節(jié)點,但是在通過使用互聯(lián) 網(wǎng)來使用數(shù)字IP地址用于更高級的進(jìn)程間通信時,可具有缺陷。首先,數(shù) 字地址對于人們來說4艮難記得。此外,某些IP地址可在多個節(jié)點之間共享, 或者可因為網(wǎng)絡(luò)配置的改變而改變。對于這些和其他原因,存在用于互聯(lián)網(wǎng)節(jié)點的更高級命名約定,稱為域名系統(tǒng)(DNS)。在具有任意字母字符 的DNS中對互聯(lián)網(wǎng)節(jié)點給定名稱,然后將它們轉(zhuǎn)換成IP地址。因此,節(jié) 點的DNS名稱更容易記得,并且不需要因為某些硬件改變而簡單地改變。 例如, 一個人可建立客戶端可能記得的具有類似DNS名稱的web服務(wù)器, 并且可保持相同的DNS名稱,即使因為硬件更新等造成web服務(wù)器的實 際IP地址改變。DNS服務(wù)器的分布式系統(tǒng)記錄DNS名稱和它們對應(yīng)的IP 地址,并且提供用于將DNS名稱轉(zhuǎn)換成IP地址的機(jī)構(gòu)。由于路由器用于根據(jù)包的IP地址對給定數(shù)據(jù)包選擇多個通信鏈路中 的一個(直接目的地),所以多個IP地址可以與每個鏈路關(guān)聯(lián)。由于連接 的路由器或多個路由器簡單地將所有IP地址與一個目的地節(jié)點關(guān)聯(lián),所以 在架構(gòu)中不存在禁止一個主機(jī)節(jié)點具有多個IP地址的裝置。典型地,用作 客戶端并執(zhí)行例如交互式web瀏覽器的應(yīng)用的個人工作站或個人計算機(jī)將 僅具有一個IP地址。然而,某些更大的計算機(jī)系統(tǒng)可具有多個IP地址, 其中每個與內(nèi)部進(jìn)行的不同各自集合關(guān)聯(lián)。在耦合至互聯(lián)網(wǎng)的主機(jī)節(jié)點計算機(jī)系統(tǒng)中,等級進(jìn)程組接收來自應(yīng)用 的輸出數(shù)據(jù),并且將其適當(dāng)?shù)馗袷交跀?shù)據(jù)包中,其具有適當(dāng)?shù)腎P地址指 定,用于在互聯(lián)網(wǎng)上的傳輸。類似地,等級進(jìn)程組從互聯(lián)網(wǎng)接收數(shù)據(jù)包, 提取和組合數(shù)據(jù),并將其提供給應(yīng)用。所述等級進(jìn)程組通常稱為"互聯(lián)網(wǎng) 通信棧,,。在行業(yè)中,通常成為"TCP/IP棧,,,盡管由棧處理的互聯(lián)網(wǎng)通 信不需要限制在TCP/IP協(xié)議中,并且可包括例如UDP/IP、 ICMP/IP等的 其他協(xié)議。 一個主機(jī)計算機(jī)可包含互聯(lián)網(wǎng)通信棧的多個實例,其中所使用 的每個具有各自的目的。在一個主機(jī)計算機(jī)系統(tǒng)中,多個互聯(lián)網(wǎng)通信棧實 例是激活的,每個棧典型地具有其自己的不同IP地址(或IP地址組)。詳細(xì)描述參照附圖,其中在幾個示圖中,類似的標(biāo)號指定類似的部件,圖2是 根據(jù)優(yōu)選實施例的通過互聯(lián)網(wǎng)與其他系統(tǒng)通信的主機(jī)計算機(jī)系統(tǒng)200的主 要硬件組件的高級框圖。CPU 201是執(zhí)行指令和處理來自主存儲器202的數(shù)據(jù)的至少一個通用可編程處理器。優(yōu)選地,主存儲器202是使用任意不同存儲器技術(shù)的隨才;i^取存儲器,其中從存儲裝置或其他通過CPU201處 理的裝置加載數(shù)據(jù)。一個或多個通信總線205提供用于在CPU 201、主存儲器202和各種 I/O接口單元211-214 (還已知為I/O處理器(IOP)或I/O適配器(IOA )) 之間傳送數(shù)據(jù)的數(shù)據(jù)通信路徑。I/O接口單元支持與各種存儲裝置和I/O 設(shè)備的通信。例如,終端接口單元211支持一個或多個用戶終端221-224 的連接。存儲接口單元212支持一個或多個直接存^^i史備(DASD) 225-227 (典型地,其是旋轉(zhuǎn)磁盤驅(qū)動存儲設(shè)備,但是它們或者可以是其他 設(shè)備,包括盤驅(qū)動器陣列,其可被配置為作為對于主機(jī)的單獨大型存^i殳 備出現(xiàn))的連接。I/O設(shè)備接口單元213支持任意各種其他類型I/O設(shè)備 (例如打印機(jī)228和傳真機(jī)229)的連接,可以理解,可使用其他或附加類型的i/o設(shè)備。網(wǎng)絡(luò)接口 (或"網(wǎng)絡(luò)適配器")214支持用于與一個或多個其他數(shù)字 設(shè)備通信的一個或多個外部網(wǎng)絡(luò)230的連接。網(wǎng)絡(luò)230包括互聯(lián)網(wǎng),但是 網(wǎng)皿口 214不必直接耦合至互聯(lián)網(wǎng),其可連接至局域網(wǎng)(未示出),其 隨后通過網(wǎng)關(guān)與互聯(lián)網(wǎng)連接。優(yōu)選實施例的主機(jī)計算機(jī)系統(tǒng)200包含至少 一個網(wǎng)絡(luò)適配器214。其可選地包含多個網(wǎng)絡(luò)適配器。其中系統(tǒng)200包含 多個適配器, 一個或多個可直接或間接耦合至互聯(lián)網(wǎng),這些適配器可連接 至相同或不同的局域網(wǎng),或者相同或不同路由器或網(wǎng)關(guān)??梢岳斫猓瑘D2旨在示出高級的系統(tǒng)200的代表性主要組件,其中各 個組件可具有比圖2中所示的更高復(fù)雜度,可揭_供不同于圖2中所示的或 附加的組件,并且這種組件的數(shù)目、類型和配置可改變,典型地,大型計 算機(jī)系統(tǒng)可具有比圖2更多的組件。這里公開了這種附加復(fù)雜度或附加變 化的幾個特定實例,可以理解,僅通過實例存在而不僅僅是這種改變。盡管在圖2中為了圖示的目的僅示出一個CPU201,但是計算機(jī)系統(tǒng) 200可包含多個CPU,這是本領(lǐng)域已知的。盡管在圖2中示出主存儲器202 為一個單一性實體,但是實際上,存儲器202可以是分布式的和/或分等級的,這是本領(lǐng)域已知的。例如,存儲器可存在于多等級緩存中,并且這些 緩存可進(jìn)一步按功能劃分,使得一個緩存保存指令,而另一個保存由處理 器或多個處理器使用的非指令數(shù)據(jù)。此外,存儲器也可以是分布式的,并
      且可以與不同CPU或CPU組關(guān)聯(lián),這是在各種所謂的非統(tǒng)一存儲器存取 (NUMA)計算機(jī)架構(gòu)中已知的。盡管圖2中示出通信總線205為一個實 體,但是實際上,典型地通過復(fù)雜的總線等級、接口等實現(xiàn)在各種系統(tǒng)組 件中的通信,其中使用更高速路徑在CPU201和存儲器202之間通信,使 用更低速路徑與I/O接口單元211-214通信??偩€205可以以任意各種形 式排列,例如按等級的點對點鏈接、星型或網(wǎng)型配置、多個等級總線、并 行和冗余路徑等。例如,在NUMA架構(gòu)中已知的,在節(jié)點基礎(chǔ)上排列通 信路徑??偩€可使用例如行業(yè)標(biāo)準(zhǔn)PCI總線、或任意其他適合的總線技術(shù)。 盡管示出多個I/O接口單元(它們將系統(tǒng)總線205從對于各種I/O設(shè)備運 行的各種通信路徑分離),但是可選擇地,也可以將I/Oi殳備中的某些或 所有直接連接至一個或多個系統(tǒng)總線。
      圖2中所示的計算機(jī)系統(tǒng)200具有多個連接終端221-224,例如可以是 典型地多個用戶的"大型"計算機(jī)系統(tǒng)。連接設(shè)備的實際數(shù)目可以改變, 并且本發(fā)明不限于任意特定大小的系統(tǒng)??蛇x擇地,計算機(jī)系統(tǒng)200可以 是單用戶系統(tǒng),例如"個人計算機(jī),,。訪問計算機(jī)系統(tǒng)200的用戶工作站 或終端可以通過網(wǎng)絡(luò)230連接至系統(tǒng)200或與系統(tǒng)200通信??蛇x擇地, 計算機(jī)系統(tǒng)200可以這樣的系統(tǒng),即,其包含無連接終端或僅具有一個用 戶顯示器和鍵盤輸入的一個操作者平臺。此外,盡管為了在一個計算機(jī)系 統(tǒng)中實現(xiàn)的示例性目的在這里描述了本發(fā)明的某些功能,但是這些功能可 選擇地可使用與彼此通信的計算機(jī)系統(tǒng)的分布式網(wǎng)絡(luò)實現(xiàn),其中在不同的 計算機(jī)系統(tǒng)上執(zhí)行這里描述的不同功能或步驟。
      盡管高級地描述和示出各種系統(tǒng)組件,但是可以理解,典型的計算機(jī) 系統(tǒng)包含對于本發(fā)明的理解不重要的未示出的許多其他組件。在優(yōu)選實施 例中,計算機(jī)系統(tǒng)200是基于IBM i/SeriesTM架構(gòu)的計算機(jī)系統(tǒng),可以理 解,本發(fā)明可以在其他計算機(jī)系統(tǒng)上實施。圖3是根據(jù)優(yōu)選實施例的主機(jī)計算機(jī)系統(tǒng)200的主要軟件組成(由存 儲器202的組成表示)的概念示圖。操作系統(tǒng)301是可執(zhí)行代碼,以及提 供各種低級軟件功能(例如設(shè)備接口、存儲頁管理、多個任務(wù)的管理和分 派等)的狀態(tài)數(shù)據(jù),這是本領(lǐng)域已知的。具體地,操作系統(tǒng)301包括用于 系統(tǒng)200的每個網(wǎng)絡(luò)適配器214的各自網(wǎng)絡(luò)適配器設(shè)備驅(qū)動器。圖3表示 第一網(wǎng)絡(luò)適配器設(shè)備驅(qū)動器302和可選第二網(wǎng)絡(luò)適配器設(shè)備驅(qū)動器303, 可選網(wǎng)絡(luò)適配器i殳備驅(qū)動器303用虛線表示,以指示該特征代表可選實施 例。在系統(tǒng)200包含僅一個網(wǎng)絡(luò)適配器214的情況下,存在僅一個對應(yīng)的 網(wǎng)絡(luò)適配器設(shè)備驅(qū)動器302;在系統(tǒng)200包含第二網(wǎng)絡(luò)適配器(圖2中未 示出)的情況下,存在對應(yīng)的附加網(wǎng)絡(luò)適配器i殳備驅(qū)動器303.根據(jù)優(yōu)選實施例的主機(jī)計算機(jī)系統(tǒng)包含多個互聯(lián)網(wǎng)通信棧實例。在圖 3所示的特定示例性實施例中,其包含兩個互聯(lián)網(wǎng)通信棧實例,其中一個 是服務(wù)棧304,另一個是工作棧305。然而,主機(jī)系統(tǒng)200可包含多于兩個 的互聯(lián)網(wǎng)通信棧實例。兩個棧執(zhí)行用于互聯(lián)網(wǎng)上的通信所必須的TCP/IP 的核心組和/或其他互聯(lián)網(wǎng)協(xié)議功能,特別地包括IP路由。然而,除了這 些核心協(xié)議之外,工作棧305支持基本全范圍的TCP/IP和/或其他互聯(lián)網(wǎng) 協(xié)議改進(jìn)功能,而服務(wù)棧支持少數(shù)的改進(jìn)功能或不支持。這些改進(jìn)功能是 僅由某些應(yīng)用或環(huán)境所需的功能。這種改進(jìn)功能的實例包括IPSec、 IP過 濾、網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)和入侵檢測,可以理解,工作棧可支持其他或 附加的改進(jìn)功能。通常,使用工作棧305支持用于在計算機(jī)系統(tǒng)200上執(zhí)行的生產(chǎn)工作 的多種用戶應(yīng)用。由于某些用戶應(yīng)用可需要特定的改進(jìn)功能,并且難以預(yù) 先預(yù)測用戶應(yīng)用的特征,以及將由系統(tǒng)200上執(zhí)行的用戶應(yīng)用所需的是哪 些功能,所以期望支持大范圍的改進(jìn)TCP/IP或其他互聯(lián)網(wǎng)協(xié)議功能。服 務(wù)棧的存在主要用于維護(hù)和控制的目的。例如,服務(wù)??捎糜谥С峙c遠(yuǎn)程 控制臺的網(wǎng)絡(luò)通信,以控制系統(tǒng)200的操作;在系統(tǒng)200上執(zhí)行并行維護(hù) 操作;以及用于類似的管理功能。此外,系統(tǒng)200還包含一個或多個用戶應(yīng)用311-313 (圖3中表示的,可以理解,實際數(shù)目可以改變,典型地可以更大)。用戶應(yīng)用311-313通 過互聯(lián)網(wǎng)與遠(yuǎn)程進(jìn)程通信,以代表用戶執(zhí)行生產(chǎn)工作,并且優(yōu)選地與工作 棧305關(guān)聯(lián),以根據(jù)TCP/IP或某些其他可用互聯(lián)網(wǎng)協(xié)議處理互聯(lián)網(wǎng)通信。 此外,系統(tǒng)200還包含一個或多個服務(wù)應(yīng)用314-315 (圖3中表示的,可以 理解,實際數(shù)目可以改變,典型地可以更大)。服務(wù)應(yīng)用與遠(yuǎn)程進(jìn)程通信, 以執(zhí)行管理功能,并且優(yōu)選地與服務(wù)棧304關(guān)聯(lián),以根據(jù)TCP/IP或某些 其他可用互聯(lián)網(wǎng)協(xié)議處理互聯(lián)網(wǎng)通信。在圖3的實例中,服務(wù)應(yīng)用314表 示為操作系統(tǒng)301的一部分,而服務(wù)應(yīng)用315表示為與操作系統(tǒng)301分離, 以示出服務(wù)應(yīng)用可以是操作系統(tǒng)的一部分也可以不是操作系統(tǒng)的一部分。 典型地,與工作棧關(guān)聯(lián)的應(yīng)用(例如用戶應(yīng)用311-313)不是操作系統(tǒng)的一 部分,但是工作棧也可以向操作系統(tǒng)功能提供服務(wù)。
      將每個網(wǎng)絡(luò)適配器設(shè)備驅(qū)動器302、 303綁定到各自互聯(lián)網(wǎng)通信棧。每 個互聯(lián)網(wǎng)通信棧304、 305可具有與其綁定的0個、l個或大于l個網(wǎng)絡(luò)適 配器設(shè)備驅(qū)動器。初始地,將網(wǎng)絡(luò)適配器中接收的所有輸入包路由到綁定 對應(yīng)網(wǎng)絡(luò)適配器設(shè)備驅(qū)動器的互聯(lián)網(wǎng)通信棧中。在每個棧中的各個IP路由 選擇器306、 307使用IP路由協(xié)議確定用于每個流出包的目的網(wǎng)絡(luò)適配器 設(shè)備。
      根據(jù)本發(fā)明的優(yōu)選實施例,通過IP路由選擇器建立到另 一個棧的系統(tǒng) 內(nèi)部的棧間通信路徑。配置每個IP路由選擇器306、 307,以將某些包路 由到虛擬網(wǎng)絡(luò)適配器設(shè)備驅(qū)動器308。實際上,虛擬網(wǎng)絡(luò)適配器設(shè)備驅(qū)動 器不驅(qū)動物理網(wǎng)絡(luò)適配器,所以虛擬網(wǎng)絡(luò)適配器設(shè)備驅(qū)動器308根本不是 一個設(shè)備驅(qū)動器。而是簡單地用作在IP路由器可對包路由的IP路由協(xié)議 下的目的地,因此建立內(nèi)部棧間通信路徑。實際上,將綁定到虛擬網(wǎng)絡(luò)適 配器設(shè)備驅(qū)動器308的包路由到其他棧。即,如果在服務(wù)棧304中的路由 選擇器306使用IP路由選擇虛擬網(wǎng)絡(luò)適配器設(shè)備驅(qū)動器308作為包的目的 地,則隨后將包路由到工作棧305,并進(jìn)入到工作棧中,以按照來自綁定 到工作棧的實際網(wǎng)絡(luò)適配器和對應(yīng)網(wǎng)絡(luò)適配器設(shè)備驅(qū)動器303的包相同方 式處理。可以理解,典型的計算機(jī)系統(tǒng)可包含對于本發(fā)明的理解不重要的許多 其他軟件組成(未示出)。具體地,典型的操作系統(tǒng)將包含許多功能,以 及與在網(wǎng)絡(luò)間的數(shù)據(jù)傳輸不相關(guān)的狀態(tài)數(shù)據(jù)。
      在圖3中將各個軟件實體表示為分離實體或包含在其他實體中。然而, 可以理解,這種表示僅用于示例性目的,并且特定模塊或數(shù)據(jù)實體可以是 分離實體,或通用模塊或模塊包裝的一部分。此外,盡管在圖3的概念表 示中示出某個數(shù)目和類型的軟件實體,但是可以理解,這種實體的實際數(shù) 目可以改變,并且具體地,在復(fù)雜主機(jī)系統(tǒng)中,典型地這種實體的數(shù)目和 復(fù)雜度可以更大。
      盡管扭無念性示出圖3的軟件組成駐留在存儲器202中,但是可以理解, 通常計算機(jī)系統(tǒng)的存儲器太小,以致于無法同時保存所有的程序和數(shù)據(jù), 并且典型地將信息存儲在數(shù)據(jù)存儲設(shè)備225-227中(包括一個或多個大型 存儲設(shè)備,例如旋轉(zhuǎn)磁盤驅(qū)動器),以及如果需要通過操作系統(tǒng)將信息分 頁保存到存儲器中。此外,可以理解,圖3的概念表示不意味著對任意特 定存儲器組織模型的暗示,并且系統(tǒng)200可采用單地址空間虛擬存儲器, 或可采用重疊的多虛擬地址空間。
      圖4是示出根據(jù)優(yōu)選實施例的在互聯(lián)網(wǎng)通信棧實例304、 305中處理輸 入數(shù)據(jù)包(即,從互聯(lián)網(wǎng)輸入)的高級過程的整體流程圖。參照圖4,棧 實例從網(wǎng)絡(luò)適配器驅(qū)動器接收輸入數(shù)據(jù)包(步驟401)。在步驟401中接 收的數(shù)據(jù)包的源端可以是用于物理硬件網(wǎng)絡(luò)適配器的網(wǎng)絡(luò)適配器驅(qū)動器 302、 303,或者可以是虛擬網(wǎng)絡(luò)適配器驅(qū)動器308,實際上,它僅是與作 為網(wǎng)絡(luò)適配器的接收棧實例通信的另一個棧實例的接口。在接收包時,IP 路由選擇器306、 307檢查在包中的目的IP地址,以確定適當(dāng)?shù)穆酚?步 驟402)。如果目的地址與另一個實體關(guān)聯(lián)(從步驟403的"N"分支), 則將包轉(zhuǎn)發(fā)(使用IP轉(zhuǎn)發(fā))到目的實體(步驟404 )??蓪付ǖ接嬎?機(jī)系統(tǒng)200外部的某些地址,在這種情況下,可將包轉(zhuǎn)發(fā)到與外部地址關(guān) 聯(lián)的網(wǎng)絡(luò)適配器,以向其最終目的地的外部傳輸。但是具體地,在優(yōu)選實 施例中,可通過向與目的棧關(guān)聯(lián)的虛擬適配器驅(qū)動器308 IP轉(zhuǎn)發(fā)將至少一些包轉(zhuǎn)發(fā)到系統(tǒng)200中的不同互聯(lián)網(wǎng)通信棧實例。
      在步驟403,如果目的地址與當(dāng)前棧實例關(guān)聯(lián),則將包向上轉(zhuǎn)發(fā)到由 各個棧層處理的棧(表示為從步驟403的"Y"分支)??蛇x地,處理可 包括顯示與原始IP地址不同的嵌入在原始數(shù)據(jù)包中的封裝IP地址(步驟 405 )??赏ㄟ^用于IP地址封裝的任意可用協(xié)議來顯示封裝IP地址。例如, 根據(jù)IPSec隧道協(xié)議,可以從解密數(shù)據(jù)包提取封裝IP地址,IPSec隧道僅 是封裝的一個可能的實例。在顯示封裝IP地址的情況下,隨后將包返回至 IP路由選擇器(步驟403 ),以向適當(dāng)?shù)哪康膶嶓w進(jìn)行IP轉(zhuǎn)發(fā)(步驟404 )。 這個目的實體可以是系統(tǒng)200中的不同網(wǎng)絡(luò)通信棧實例。
      在不存在封裝IP地址的情況下(或已經(jīng)先前提取了封裝地址并且由此 轉(zhuǎn)發(fā)了包的情況下),棧的上層(例如IP和TCP層)根據(jù)可用的傳統(tǒng)協(xié) 議處理包(步驟406)。然后,將包中的數(shù)據(jù)提供給系統(tǒng)200中的適當(dāng)應(yīng) 用(步驟407 )。
      圖5是示出才艮據(jù)優(yōu)選實施例的在互聯(lián)網(wǎng)通信棧實例304、305中處理輸 出數(shù)據(jù)包(即,通過互聯(lián)網(wǎng)向外部目的地輸出)的高級過程的整體流程圖。 參照圖5,輸出數(shù)據(jù)包可以是來自與棧實例綁定的應(yīng)用的數(shù)據(jù)結(jié)果(示出 為通過步驟501和502的路徑),或者可以是從另 一個實體(特定地從另 一個棧)轉(zhuǎn)發(fā)的數(shù)據(jù)包(示出為通過步驟503的路徑)。在前一情況下, 棧實例接收數(shù)據(jù),所述數(shù)據(jù)來自與棧綁定的應(yīng)用的輸出互聯(lián)網(wǎng)通信(步驟 501),例如在工作棧305的情況下的用戶應(yīng)用311-313,或在月良務(wù)棧304 的情況下的服務(wù)應(yīng)用314、 315。棧的上層(例如IP和TCP層)根據(jù)可用 協(xié)議處理數(shù)據(jù),以生成一個或多個數(shù)據(jù)包(步驟502)??蛇x地,已經(jīng)由 更高棧層處理的數(shù)據(jù)包可在從另一個實體(具體地從同一系統(tǒng)中的另一個 棧)路由之后到達(dá)棧中(步驟503)。
      可選地,棧可將數(shù)據(jù)包和目的地址封裝在更大數(shù)據(jù)包中,以根據(jù)任意 適合的封裝協(xié)議(例如IPSec隧道)提供用于更大數(shù)據(jù)包的新IP地址(步 驟504)。無論是否執(zhí)行封裝步驟504,隨后都通過IP路由選擇器306、 307將包轉(zhuǎn)發(fā)到由其IP地址指定的目的地(步驟505 ) 。 IP轉(zhuǎn)發(fā)路由目的地是網(wǎng)絡(luò)適配器驅(qū)動器。所述目的地可以是與物理網(wǎng)絡(luò)適配器耦合的網(wǎng)絡(luò)
      適配器驅(qū)動器302、 303 (在外部目的地的情況下),或者可以與系統(tǒng)200 中另一個棧實例對接的虛擬適配器驅(qū)動器308。
      可在各種應(yīng)用中使用根據(jù)如上所述優(yōu)選實施例的棧間通信。例如,棧 間通信容易支持由多個棧實例對單個硬件網(wǎng)絡(luò)適配器的共享。典型地,硬 件網(wǎng)絡(luò)適配器由第一棧實例所有或激活,需要通過與第一棧實例相關(guān)的IP 路由選擇器路由的所有通信。但是,IP路由選擇器可將進(jìn)入包路由到第二 棧實例,或者從第二棧實例接收外出包,因此通過網(wǎng)絡(luò)適配器(不是由第 二棧實例所有)支持在第二棧實例和外部實體之間的通信。棧間接口也可 以作為能夠在某時刻或某事件時選擇的開關(guān)。例如,在某時刻能夠正常地 使能和禁能接口,以支持需要專用網(wǎng)絡(luò)適配器的重要任務(wù)的應(yīng)用?;蛘?, 接口可以被正常禁能,以在可選擇的時刻能夠從主棧實例向備用棧實例重 新路由數(shù)據(jù),以在主棧上執(zhí)行例程維護(hù)。
      在根據(jù)優(yōu)選實施例使用棧間實例的特定示例性實施例中,工作棧305 具有全范圍的TCP/IP功能,以支持通用計算機(jī)系統(tǒng)中的各種用戶應(yīng)用, 并且服務(wù)棧304具有有限范圍的TCP/IP功能,它的存在主要支持從遠(yuǎn)程 控制臺的系統(tǒng)控制、并行維護(hù)操作等。使用棧間接口來獲得在服務(wù)棧上并 非正??捎玫囊粋€或多個改進(jìn)功能操作,以用于涉及與服務(wù)棧綁定的應(yīng)用 的通信。
      一個這種改進(jìn)功能的實例是使用IPSec隧道協(xié)議的數(shù)據(jù)包的封裝。 IPSec隧道允許對完整的數(shù)據(jù)包進(jìn)行封裝和加密,以將其打包在具有新IP 才艮頭和IP地址的更大包中???吏用IPSec隧道,例如以支持虛擬專用網(wǎng) (VPN)。在具有雙重工作棧和服務(wù)棧實例的系統(tǒng)中,有時候可需要服務(wù) 棧使用工作棧的IPSec功能。例如, 一些維護(hù)操作可偶爾需要從不安全網(wǎng) 絡(luò)連接的設(shè)備執(zhí)行。
      圖6和圖7是分別示出根據(jù)示例性環(huán)境在系統(tǒng)200的各個組件中對輸 入數(shù)據(jù)包的處理和輸出數(shù)據(jù)包的處理的流程圖,其中根據(jù)優(yōu)選實施例將為 服務(wù)應(yīng)用而綁定的封裝數(shù)據(jù)包路由到用于IPSec處理的工作棧。在該實例中,將互聯(lián)網(wǎng)IP地址66.191.69.9和66.191.69.10路由至與服務(wù)棧304綁定 的網(wǎng)絡(luò)適配器302。在服務(wù)棧上定義互聯(lián)網(wǎng)IP地址66.191.69.9,在工作棧 上定義互聯(lián)網(wǎng)IP地址66.191.69.10??纱嬖趯τ谶@些棧和/或附加網(wǎng)絡(luò)適配 器定義的并非與該實例相關(guān)的附加互聯(lián)網(wǎng)IP地址。在服務(wù)棧上定義企業(yè)網(wǎng) 虛擬專用網(wǎng)(VPN )地址目的地10.5.12.35,在工作棧上定義用于遠(yuǎn)程企業(yè) 網(wǎng)地址目的地10.5.26.14的VPN過濾規(guī)則。
      參照圖6,具有66.191.69.10的IP地址的輸入包和封裝包(VPN包) 到達(dá)網(wǎng)絡(luò)適配器302,并且4皮路由到與網(wǎng)絡(luò)適配器302綁定的服務(wù)棧304 (步驟601)。在服務(wù)棧上沒有定義IP地址66.191.69.10,然而,將其定 義為到虛擬適配器308的路由,即到工作棧305的路由。因此,IP路由選 擇器306使用IP轉(zhuǎn)發(fā)將包路由到工作棧305 (步驟602 )。
      工作棧接收所述包。在工作棧上定義IP地址66.191.69.10,從而工作 棧的IPSec隧道功能對包解密,以顯現(xiàn)嵌入的VPN包(步驟603 )。這種 嵌入的VPN包具有它自己的IP地址10.5.12.35,在這種情況下其是在虛擬 專用網(wǎng)上使用的企業(yè)網(wǎng)地址。在工作棧上沒有定義企業(yè)網(wǎng)IP地址 10.5.12.35,然而將其定義為到虛擬適配器308的路由,即到服務(wù)棧的路由。 因此,IP路由選擇器307將當(dāng)前解密的包向回路由到服務(wù)棧(步驟604)。
      月良務(wù)棧接收具有IP地址10.5.12.35的解密包。在服務(wù)棧上定義了所述 地址,從而在服務(wù)棧的更高層(即TCP和IP層)處理所述包(步驟605 )。 然后,將結(jié)果數(shù)據(jù)傳遞到服務(wù)應(yīng)用(步驟606)。服務(wù)應(yīng)用從服務(wù)棧接收 數(shù)據(jù),并且適當(dāng)?shù)厥褂脭?shù)據(jù)(步驟607)。
      參照圖7,初始地將來自服務(wù)應(yīng)用的輸出數(shù)據(jù)傳遞到具有套接字目的 地址10.5.26.14的服務(wù)棧,其中所述地址對應(yīng)于遠(yuǎn)程設(shè)備中的目的地的企 業(yè)網(wǎng)IP地址(步驟701)。在服務(wù)棧的TCP和IP層中處理所述數(shù)據(jù),以 生成具有IP地址目的地10.5.26.14的一個或多個數(shù)據(jù)包(步驟702 )。
      對于IP路由選擇器306定義IP地址10.5.26.14,作為與虛擬適配器 308對應(yīng)的地址,從而路由選擇器306將包經(jīng)由棧間接口路由到虛擬適配 器308,即工作棧305 (步驟703)。在工作棧305中定義用于IP地址10.5.26.14的VPN過濾規(guī)則,指示工作棧的IPSec功能,以隨后加密所述 包并將其封裝到更大的包中,所述更大的包具有與遠(yuǎn)程設(shè)備對應(yīng)的全局可 路由(互聯(lián)網(wǎng))IP地址129.42.161.17 (步驟704 )。對于IP路由選擇器 307定義地址129.42.161.17作為與虛擬適配器308對應(yīng)的地址,從而路由 選擇器307經(jīng)由棧間接口將包路由到服務(wù)棧304 (步驟705)。
      在服務(wù)棧304中的IP路由選擇器306接收包,并識別IP地址為可路 由到網(wǎng)絡(luò)適配器驅(qū)動器302的外部地址。因此,IP路由選擇器306將包路 由到適配器驅(qū)動器302 (步驟706)。然后,網(wǎng)絡(luò)適配器接收包,并在網(wǎng)絡(luò) 上對其進(jìn)行發(fā)送(步驟707 )。
      盡管這里使用了 IPv4實施例的某些實例,但是可以理解,本發(fā)明可同 等地應(yīng)用于IPv6尋址以及IPv4尋址。
      在這里描述的技術(shù)的優(yōu)點中,優(yōu)選實施例是可以使用已經(jīng)可用的IP轉(zhuǎn) 發(fā)和路由設(shè)施在不同互聯(lián)網(wǎng)通信棧之間對包數(shù)據(jù)進(jìn)行路由。這種方式僅需 要對IP路由選擇器進(jìn)行最小量的配置,并且不需要大量的專用編程或功能 能力。此外,由于在互聯(lián)網(wǎng)通信中IP轉(zhuǎn)發(fā)是無處不在的,所以根據(jù)本發(fā)明 優(yōu)選實施例對棧間接口的j吏用可能具有廣泛的適用性,除了沒有作用的例 外。最后,不需要不同的棧實例使用共同代碼或具有共同開發(fā)源的代碼; 可有利地使用獨立開發(fā)的棧代碼避免使得每個棧實例感染相同的代碼錯 誤,因此提高故障容限度。
      一般地,被執(zhí)行以實現(xiàn)本發(fā)明所示實施例的例程(無論作為操作系統(tǒng) 的一部分實現(xiàn),還是作為具體應(yīng)用、程序、對象、模塊或指令序列實現(xiàn)) 在這里稱為"程序"或"計算機(jī)程序"。典型地,程序包括指令,所述指 令在由根據(jù)本發(fā)明的計算機(jī)系統(tǒng)中的設(shè)備或系統(tǒng)中的一個或多個處理器讀
      的各個方面的元素所必須的步驟。此外,盡管在全功能計算機(jī)系統(tǒng)的環(huán)境 中已經(jīng)描述以及在之后將描述本發(fā)明,但是本發(fā)明的各個實施例能夠以各 種形式作為程序產(chǎn)品分布,并且本發(fā)明可同樣應(yīng)用,而不管用于實際執(zhí)行 分布的信號承載介質(zhì)的特定類型。信號承載介質(zhì)的實例包括但不限于易失性和非易失性存儲設(shè)備、軟盤、硬盤驅(qū)動器、CD-ROM、 DVD、磁盤等。 此外,本發(fā)明應(yīng)用任意形式的信號承載介質(zhì),而不關(guān)心是否在傳輸網(wǎng)絡(luò)(包 括無線網(wǎng)絡(luò))上從一種形式的信號承載介質(zhì)向另一種交換數(shù)據(jù)。圖2中將 信號承栽介質(zhì)的實例示出為系統(tǒng)存儲器202,以及數(shù)據(jù)存^i殳備225-227。 盡管除了某些替換物之外已經(jīng)公開了本發(fā)明的具體實施例,但是本領(lǐng) 域普通技術(shù)人員可以認(rèn)識到,可以在以下權(quán)利要求的范圍內(nèi)在形式和細(xì)節(jié) 上進(jìn)行其他修改。
      具體地,參照所附權(quán)利要求,可將從屬權(quán)利要求的特征與獨立權(quán)利要 求的特征組合,并且可以以任意適合的方式組合各個獨立權(quán)利要求的特征, 而不限于在權(quán)利要求中列舉的特定組合中。
      為了免生疑問,在說明書和權(quán)利要求書中使用的術(shù)語"包括"不應(yīng)該 理解為"僅包含"的含義。
      權(quán)利要求
      1.一種計算機(jī)系統(tǒng),包括至少一個處理器;存儲器;操作系統(tǒng),作為能夠在所述至少一個處理器上執(zhí)行的多個指令實現(xiàn),所述操作系統(tǒng)支持多個進(jìn)程實例的并行執(zhí)行;多個應(yīng)用,能夠在所述至少一個處理器上執(zhí)行;至少一個網(wǎng)絡(luò)適配器,用于與網(wǎng)絡(luò)通信,所述網(wǎng)絡(luò)適配器在互聯(lián)網(wǎng)之間發(fā)送用于通信的數(shù)據(jù)包;第一互聯(lián)網(wǎng)通信棧實例和第二互聯(lián)網(wǎng)通信棧實例,每個所述互聯(lián)網(wǎng)通信棧實例與所述多個應(yīng)用中各自的至少一個應(yīng)用關(guān)聯(lián),所述第一和第二互聯(lián)網(wǎng)通信棧實例支持用于在所述第一和第二互聯(lián)網(wǎng)通信棧之間的至少一個方向上傳送數(shù)據(jù)包的棧間接口;其中根據(jù)與各自數(shù)據(jù)包關(guān)聯(lián)的各自互聯(lián)網(wǎng)協(xié)議(IP)地址,選擇地將所述棧間接口之間傳送的每個數(shù)據(jù)包路由到所述棧間接口之間的目的互聯(lián)網(wǎng)通信棧,所述IP地址匹配于與所述目的互聯(lián)網(wǎng)通信棧關(guān)聯(lián)的IP地址。
      2. 如權(quán)利要求1所述的計算機(jī)系統(tǒng),其中所述第二互聯(lián)網(wǎng)通信棧實 例支持由所述第一互聯(lián)網(wǎng)通信棧實例不支持的至少一個互聯(lián)網(wǎng)協(xié)議功能。
      3. 如權(quán)利要求2所述的計算機(jī)系統(tǒng),其中所述第二互聯(lián)網(wǎng)通信棧實 例是用于用戶應(yīng)用的通用支持的工作棧,并且所述第一互聯(lián)網(wǎng)通信棧是用 于支持所述計算機(jī)系統(tǒng)的管理功能的服務(wù)棧。
      4. 如權(quán)利要求l、 2或3所述的計算機(jī)系統(tǒng),其中所述棧間接口支持 在所述第 一和所述第二互聯(lián)網(wǎng)通信棧之間的包的雙向通信。
      5. 如任意先前權(quán)利要求所述的計算機(jī)系統(tǒng),其中通過將虛擬網(wǎng)絡(luò)適 配器設(shè)備驅(qū)動器指定為在所述第一棧實例中的至少一個IP地址的IP轉(zhuǎn)發(fā) 目的地來實現(xiàn)在所述棧間接口之間的數(shù)據(jù)包通信,所述虛擬網(wǎng)絡(luò)適配器設(shè) 備驅(qū)動器是對于所述第二棧實例的接口 。
      6. 如任意先前權(quán)利要求所述的計算機(jī)系統(tǒng),其中所述笫一和第二互 聯(lián)網(wǎng)通信棧共享共同網(wǎng)絡(luò)適配器,所述共同網(wǎng)絡(luò)適配器綁定至所述第一互 聯(lián)網(wǎng)通信棧實例。
      7. —種對互聯(lián)網(wǎng)通信數(shù)據(jù)包路由的方法,包括以下步驟在計算機(jī)系統(tǒng)中的互聯(lián)網(wǎng)通信棧的第一實例中接收用于表示多個數(shù)據(jù) 包的數(shù)據(jù),每個所述數(shù)據(jù)包與各自互聯(lián)網(wǎng)協(xié)議(IP)地址關(guān)聯(lián);從每個所迷數(shù)據(jù)包的各自IP地址確定其各自路由目的地,其中,對于 至少一些所述數(shù)據(jù)包,所述各自路由目的地對應(yīng)于在所述計算機(jī)系統(tǒng)中的 互聯(lián)網(wǎng)通信棧的第二實例,在互聯(lián)網(wǎng)通信棧的所述第一實例中執(zhí)行所述確 定步驟;和響應(yīng)于確定數(shù)據(jù)包的路由目的地對應(yīng)于互聯(lián)網(wǎng)通信棧的所述第二實 例,將所對應(yīng)的包轉(zhuǎn)發(fā)至互聯(lián)網(wǎng)通信棧的所述第二實例。
      8. 如權(quán)利要求7所述的對互聯(lián)網(wǎng)通信數(shù)據(jù)包路由的方法,其中在所 述接收步驟中接收的所述數(shù)據(jù)包中的至少一些是由所述計算機(jī)系統(tǒng)接收的 數(shù)據(jù)包,作為來自互聯(lián)網(wǎng)的輸入通信。
      9. 如權(quán)利要求7或8所述的對互聯(lián)網(wǎng)通信數(shù)據(jù)包路由的方法,其中 在所述接收步驟中接收的所述數(shù)據(jù)包中的至少 一些是從所述計算機(jī)系統(tǒng)內(nèi) 部執(zhí)行的至少一個應(yīng)用接收的數(shù)據(jù)包,作為用于互聯(lián)網(wǎng)上傳輸?shù)妮敵鐾ㄐ拧?br> 10. 根據(jù)權(quán)利要求7至9中任一項所述的對互聯(lián)網(wǎng)通信數(shù)據(jù)包路由的 方法,還包括以下步驟在互聯(lián)網(wǎng)通信棧的所述第一實例和互聯(lián)網(wǎng)通信棧的所述第二實例之一 中,對于所述數(shù)據(jù)包中的至少一些執(zhí)行封裝功能,所述封裝功能是包括以 下內(nèi)容的組中的一個(a)將具有第一IP地址的第一數(shù)據(jù)包封裝到具有 第二 IP地址的第二數(shù)據(jù)包中;和(b)從具有第二 IP地址的第二數(shù)據(jù)包中 提取先前封裝的具有第一 IP地址的第一數(shù)據(jù)包。
      11. 如權(quán)利要求10所述的對互聯(lián)網(wǎng)通信數(shù)據(jù)包路由的方法, 其中在將所對應(yīng)的包轉(zhuǎn)發(fā)到互聯(lián)網(wǎng)通信棧的所述第二實例的步驟之后,通過互聯(lián)網(wǎng)通信棧的所述第二實例執(zhí)行所述執(zhí)行封裝功能的步驟;和其中所述方法還包括以下步驟在執(zhí)行所述封裝功能之后確定每個數(shù)據(jù)包的各自路由目的地,從所述 各自包的IP地址確定所述路由目的地,其中對于至少一些所述數(shù)據(jù)包,所 述各自路由目的地對應(yīng)于在所述計算機(jī)系統(tǒng)中的互聯(lián)網(wǎng)通信棧的所述第一 實例,在互聯(lián)網(wǎng)通信棧的所述第二實例中執(zhí)行所述確定步驟;和響應(yīng)于確定數(shù)據(jù)包的路由目的地對應(yīng)于互聯(lián)網(wǎng)通信棧的所述第一實 例,將所對應(yīng)的包轉(zhuǎn)發(fā)到互聯(lián)網(wǎng)通信棧的所述第二實例。
      12. 根據(jù)權(quán)利要求7至11中任一項所述的對互聯(lián)網(wǎng)通信數(shù)據(jù)包路由 的方法,其中所述第一和第二互聯(lián)網(wǎng)通信棧實例共享共同網(wǎng)絡(luò)適配器,所 述共同網(wǎng)絡(luò)適配器綁定至所述第一互聯(lián)網(wǎng)通信棧實例和所述第二互聯(lián)網(wǎng)通 信棧實例的僅其中之一。
      13. —種對互聯(lián)網(wǎng)通信數(shù)據(jù)包路由的計算機(jī)程序產(chǎn)品,包括 在信號承載介質(zhì)上記錄的多個計算機(jī)可執(zhí)行指令,其中所述指令在由所述計算機(jī)系統(tǒng)執(zhí)行時使得所述計算機(jī)系統(tǒng)執(zhí)行以下步驟(a)在所述計算機(jī)系統(tǒng)中保持多個互聯(lián)網(wǎng)通信棧實例;(b )提供用于在至少一些所述互聯(lián)網(wǎng)通信棧實例之間的至少一個方向上傳送數(shù)據(jù)包的棧間接口,每個所述數(shù)據(jù)包與各自互聯(lián)網(wǎng)協(xié)議(IP)地址關(guān)聯(lián);(c) 在第一互聯(lián)網(wǎng)通信棧實例中,從所述數(shù)據(jù)包的各自IP地址確定 多個數(shù)據(jù)包中的每個數(shù)據(jù)包的各自路由目的地,其中,對于至少一些所述 數(shù)據(jù)包,所述各自路由目的地對應(yīng)于所述棧間接口;和(d) 對于經(jīng)過所述確定步驟(c)的所述數(shù)據(jù)包中的每個,如果所述 數(shù)據(jù)包的各自路由目的地對應(yīng)于所述棧間接口 ,則經(jīng)由所述棧間接口從所 述第 一互聯(lián)網(wǎng)通信棧實例將所述數(shù)據(jù)包路由到所述計算機(jī)系統(tǒng)中的第二互 聯(lián)網(wǎng)通信棧實例。
      14. 如權(quán)利要求13、 14或15所述的計算機(jī)程序產(chǎn)品,其中所述棧間 接口支持在所述第 一和所述第二互聯(lián)網(wǎng)通信棧之間的包的雙向通信。
      15. 如權(quán)利要求13或14所述的計算機(jī)程序產(chǎn)品,其中經(jīng)由所述棧間接口路由到所述第二互聯(lián)網(wǎng)通信棧實例的所述數(shù)據(jù)包中的至少一些是由所 述計算機(jī)系統(tǒng)接收的數(shù)據(jù)包,作為來自所述互聯(lián)網(wǎng)的輸入通信。
      16. 如權(quán)利要求13所述的計算機(jī)程序產(chǎn)品,其中經(jīng)由所述棧間接口 路由到所述第二互聯(lián)網(wǎng)通信棧實例的所述數(shù)據(jù)包中的至少一些是從所述計 算機(jī)系統(tǒng)內(nèi)部執(zhí)行的至少一個應(yīng)用接收的數(shù)據(jù)包,作為用于互聯(lián)網(wǎng)上傳輸 的輸出通信。
      17. 根據(jù)權(quán)利要求13至16中任一項所述的計算機(jī)程序產(chǎn)品,其中所 述指令還使得所述計算機(jī)執(zhí)行以下步驟(e )在所述第一互聯(lián)網(wǎng)通信棧實例和所述第二互聯(lián)網(wǎng)通信棧實例之一 中,對于所述數(shù)據(jù)包中的至少一些執(zhí)行封裝功能,所述封裝功能是包括以 下內(nèi)容的組中的一個(i)將具有第一 IP地址的第一數(shù)據(jù)包封裝到具有 第二 IP地址的第二數(shù)據(jù)包中;和(ii)從具有第二 IP地址的第二數(shù)據(jù)包中 提取先前封裝的具有第一 IP地址的第 一數(shù)據(jù)包。
      18. 如權(quán)利要求17所述的計算機(jī)程序產(chǎn)品,其中在所述步驟(d )之后通過所述第二互聯(lián)網(wǎng)通信棧實例執(zhí)行所述步 驟(e);和其中所述指令還使得所述計算機(jī)系統(tǒng)執(zhí)行以下步驟(f) 在執(zhí)行步驟(e)之后確定經(jīng)過步驟(e)的所述數(shù)據(jù)包中的每個 的各自路由目的地,其中對于至少一些所述數(shù)據(jù)包,所述各自路由目的地 對應(yīng)于所述棧間實例;和(g) 對于經(jīng)過所述確定步驟(f)的所述數(shù)據(jù)包中的每個,如果所述 數(shù)據(jù)包的各自路由目的地對應(yīng)于所述棧間接口 ,則經(jīng)由所述棧間接口從所 述第二互聯(lián)網(wǎng)通信棧實例將所述數(shù)據(jù)包路由至所述第一互聯(lián)網(wǎng)通信棧實 例。
      全文摘要
      一種計算機(jī)系統(tǒng)包含多個互聯(lián)網(wǎng)通信棧實例,其可以共享或可以不共享共同硬件網(wǎng)絡(luò)適配器。使用互聯(lián)網(wǎng)協(xié)議(IP)尋址在計算機(jī)系統(tǒng)中內(nèi)部的不同互聯(lián)網(wǎng)通信棧實例之間對包路由。使用IP轉(zhuǎn)發(fā),將到達(dá)一個棧并且具有與另一個棧關(guān)聯(lián)的目的IP地址的包轉(zhuǎn)發(fā)至其他棧。優(yōu)選地,包的棧間路由可使用全局定義的互聯(lián)網(wǎng)IP地址或局部內(nèi)聯(lián)網(wǎng)(封裝的)IP地址,并且可采用輸入或輸出包。示例性實施例是具有全范圍的TCP/IP功能的工作棧,以及具有有限范圍的TCP/IP功能的服務(wù)棧。可使用棧間接口來獲得改進(jìn)功能的操作,以用于來到的并且由綁定至服務(wù)棧的應(yīng)用發(fā)送的包。
      文檔編號H04L29/06GK101411160SQ200780010969
      公開日2009年4月15日 申請日期2007年3月12日 優(yōu)先權(quán)日2006年4月13日
      發(fā)明者D·A·克里斯坦松, T·E·小墨菲 申請人:國際商業(yè)機(jī)器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1