專利名稱:有效處理網(wǎng)絡(luò)數(shù)據(jù)的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明公開內(nèi)容講授了涉及管理命令(它們與網(wǎng)絡(luò)管理系統(tǒng)的較高層有關(guān))的新技術(shù)。更具體地說,本發(fā)明公開內(nèi)容的講授涉及經(jīng)過網(wǎng)絡(luò)系統(tǒng)傳輸?shù)膽?yīng)用數(shù)據(jù)單元的有效處理。
I.B背景技術(shù)經(jīng)過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量已經(jīng)有了顯著的增長。為便于這種傳輸,對可以有效存儲和檢索數(shù)據(jù)的網(wǎng)絡(luò)存儲系統(tǒng)的需求也增長了。已經(jīng)出現(xiàn)了幾種傳統(tǒng)性的嘗試消除與網(wǎng)絡(luò)系統(tǒng)中的數(shù)據(jù)傳輸以及數(shù)據(jù)存儲有關(guān)的瓶頸。
在產(chǎn)生用于通過分組網(wǎng)絡(luò)(例如以太網(wǎng))或信元網(wǎng)絡(luò)(例如ATM)來傳輸數(shù)據(jù)的分組或信元中涉及幾個處理步驟。應(yīng)當(dāng)指出,本說明書中的術(shù)語“分組化”通常指的是形成分組和信元。無論哪種傳輸模式,都希望實現(xiàn)高速的存儲與檢索。當(dāng)主機開始存儲與檢索時,在數(shù)據(jù)存儲情況下的數(shù)據(jù)傳輸從主機流到存儲裝置。同樣,在數(shù)據(jù)檢索的情況下,數(shù)據(jù)從存儲裝置流到主機。必要的是至少像特定系統(tǒng)所要求的那樣高效而且有效地處理這兩種情況。
主機所發(fā)送的、準(zhǔn)備在網(wǎng)絡(luò)存儲單元中存儲的數(shù)據(jù)必定會通過通信模型的多層。這類通信模型被用來產(chǎn)生高級數(shù)據(jù)表示,并且將其分解成能夠通過指定物理網(wǎng)絡(luò)的可管理信息塊。數(shù)據(jù)從通信模型的一層到另一層的移動導(dǎo)致其相對于前一層添加或去除了某些部分的信息。在這種數(shù)據(jù)移動中,主要的難題涉及大量數(shù)據(jù)從物理存儲器的一個區(qū)域到另一個區(qū)域的傳輸。任何用于數(shù)據(jù)移動的方案都應(yīng)該確保相關(guān)的實用工具或設(shè)備可以依照要求來訪問和處理數(shù)據(jù)。
圖1顯示了標(biāo)準(zhǔn)的七層通信模型。開頭兩個層,物理(PHY)層和媒介訪問控制(MAC)層處理對物理網(wǎng)絡(luò)硬件的訪問,并產(chǎn)生基礎(chǔ)分組形式。然后,數(shù)據(jù)向上移動到通信模型的不同的其它層,直到分組在應(yīng)用層中被描述成主機可用的數(shù)據(jù)部分。類似地,當(dāng)需要從網(wǎng)絡(luò)上的主機中發(fā)送數(shù)據(jù)時,數(shù)據(jù)向通信模型的下層移動,在途中被分成較小的數(shù)據(jù)塊,最后產(chǎn)生由MAC和PHY層處理的數(shù)據(jù)分組以便在網(wǎng)絡(luò)上傳輸數(shù)據(jù)。
在圖1示出的通信模型中,為了正確地執(zhí)行其功能,每個較低層在其直接的上層指示下執(zhí)行任務(wù)。更詳細的說明可以在Andrew S.Tanenbaum的《Computer Networks(計算機網(wǎng)絡(luò))》(第三版)中找到,其中的內(nèi)容通過引用結(jié)合于此。在稱作光纖通道(FC)的常規(guī)硬件解決方案中,過去在軟件中處理的一部分較低級層在硬件中處理。然而,F(xiàn)C不如通常所使用的以太網(wǎng)/網(wǎng)際協(xié)議技術(shù)具有吸引力。與可比的FC實施方案相比,以太網(wǎng)/網(wǎng)際協(xié)議提供了更低成本的所有權(quán)、更容易的管理、在來自不同供應(yīng)商的設(shè)備之間的更好的互操作性和更好的數(shù)據(jù)和存儲資源的共享。此外,F(xiàn)C還被優(yōu)化用于傳輸大數(shù)據(jù)塊而不是更普遍的動態(tài)低延時交互使用。
隨著來自網(wǎng)絡(luò)的數(shù)據(jù)傳輸需求的增長,減少至少一個與網(wǎng)絡(luò)上數(shù)據(jù)移動有關(guān)的瓶頸是有利的。更具體地說,減少存儲器內(nèi)的數(shù)據(jù)移動量、直到數(shù)據(jù)被分組或直到該數(shù)據(jù)被主機描述成可用的信息為止是有利的。
II.發(fā)明內(nèi)容本發(fā)明公開內(nèi)容講授的目的在于實現(xiàn)上面所提到的優(yōu)點。
根據(jù)本發(fā)明公開內(nèi)容的一方面,提供了一種包括主機的網(wǎng)絡(luò)系統(tǒng)。一個數(shù)據(jù)流部件(data streamer)與所述主機連接。使用存儲單元而不移動存儲單元內(nèi)的數(shù)據(jù),上述數(shù)據(jù)流部件即能夠在主機和網(wǎng)絡(luò)資源之間傳輸數(shù)據(jù)。通信鏈路連接數(shù)據(jù)流部件和網(wǎng)絡(luò)資源。
在一種具體增強方案中,上述通信鏈路是一個專用的通信鏈路。
在另一種具體增強方案中,上述主機被單獨地用于使計算機初始化。
在又一種具體增強方案中,上述網(wǎng)絡(luò)資源包括網(wǎng)絡(luò)存儲裝置。
再具體地說,專用通信鏈路是網(wǎng)絡(luò)通信鏈路。
更具體地說,從包含個人計算機接口(PCI)、PCI-X、3GIO、InfiniBand、SPI-3或SPI-4的群中選擇專用通信鏈路。
進一步具體地說,其中網(wǎng)絡(luò)通信鏈路是局域網(wǎng)(LAN)鏈路。
進一步具體地說,其中網(wǎng)絡(luò)通信鏈路是基于以太網(wǎng)的。
進一步具體地說,網(wǎng)絡(luò)通信鏈路是廣域網(wǎng)(WAN)。
進一步具體地說,網(wǎng)絡(luò)通信鏈路使用網(wǎng)際協(xié)議(IP)。
進一步具體地說,上述網(wǎng)絡(luò)通信鏈路使用異步傳輸模式(ATM)協(xié)議。
在另一種具體增強方案中,所述數(shù)據(jù)流部件還包括至少一個與所述主機連接的主機接口;至少一個與網(wǎng)絡(luò)資源連接的網(wǎng)絡(luò)接口;至少一個處理節(jié)點,其能夠產(chǎn)生網(wǎng)絡(luò)層操作所需的輔助數(shù)據(jù)和命令;一個最初處理數(shù)據(jù)的接納和分類單元;一個支持?jǐn)?shù)據(jù)處理的事件隊列管理器;一個支持?jǐn)?shù)據(jù)處理的調(diào)度器;一個管理存儲器的存儲器管理器;一個從所述接納和分類單元接收數(shù)據(jù)的數(shù)據(jù)互連單元;以及一個控制集線器。
具體地說,上述處理節(jié)點還被連接到一個擴展存儲器。
更具體地說,上述擴展存儲器是代碼存儲器。
更具體地說,上述處理節(jié)點是網(wǎng)絡(luò)事件處理節(jié)點。
更具體地說,上述網(wǎng)絡(luò)事件處理節(jié)點是分組處理節(jié)點。
更具體地說,上述網(wǎng)絡(luò)事件處理節(jié)點是報頭處理節(jié)點。
更具體地說,從包含PCI、PCI-X、3GIO、InfiniBand、SPI-3和SPI-4的群中選擇主機接口。
更具體地說,上述網(wǎng)絡(luò)接口是以太網(wǎng)。
更具體地說,上述網(wǎng)絡(luò)接口是ATM。
更具體地說,上述主機接口與網(wǎng)絡(luò)接口是結(jié)合在一起的。
更具體地說,上述事件隊列管理器至少能夠管理一個目標(biāo)隊列;一個應(yīng)用隊列。
更具體地說,當(dāng)?shù)谝粋€報頭被處理時,目標(biāo)隊列指向第一描述符。
更具體地說,報頭是在第二通信層中被處理的。
更具體地說,報頭是在第三通信層中被處理的。
更具體地說,報頭是在第四通信層中被處理的。
更具體地說,如果第二個報頭相應(yīng)于第一個報頭具有相同的元組,則目標(biāo)隊列指向第二個描述符。
更具體地說,目標(biāo)隊列對于報頭信息至少保留開始地址。
更具體地說,目標(biāo)隊列對于報頭信息至少保留結(jié)束地址。
更具體地說,如果至少一個應(yīng)用報頭可用,則應(yīng)用隊列指向所述描述符而不是所述目標(biāo)隊列。
更具體地說,描述符至少指向應(yīng)用報頭的開始。
更具體地說,應(yīng)用隊列保存所述應(yīng)用報頭的開始的地址。
更具體地說,描述符至少指向所述應(yīng)用報頭的結(jié)束。
更具體地說,應(yīng)用隊列保存所述應(yīng)用報頭的結(jié)束的地址。
更具體地說,當(dāng)所有的應(yīng)用報頭都可用時,數(shù)據(jù)在連續(xù)操作中被傳送給所述主機。
更具體地說,連續(xù)的操作是基于存儲在所述應(yīng)用隊列中的指針信息的。
更具體地說,本系統(tǒng)適合于從網(wǎng)絡(luò)資源接收至少一個具有報頭的數(shù)據(jù)分組,并且如果該報頭不屬于先前已打開的描述符,則打開一個新的描述符。
更具體地說,本系統(tǒng)適合于在目標(biāo)隊列中存儲報頭的開始和結(jié)束地址。
更具體地說,如果有至少一個應(yīng)用報頭可用,則本系統(tǒng)適合于把描述符的控制轉(zhuǎn)移到應(yīng)用隊列,并且本系統(tǒng)還適合于在應(yīng)用隊列中存儲應(yīng)用報頭的開始和結(jié)束地址。
更具體地說,本系統(tǒng)適合于基于所存儲的應(yīng)用報頭把數(shù)據(jù)傳送到主機。
更具體地說,本系統(tǒng)適合于從主機接收數(shù)據(jù)和目標(biāo)地址,而且進一步的是,其中本系統(tǒng)還適合于在傳輸隊列中使數(shù)據(jù)排隊。
更具體地說,本系統(tǒng)適合于更新較早產(chǎn)生的描述符以使之指向接下來將要被傳送的數(shù)據(jù)部分。
更具體地說,本系統(tǒng)適合于產(chǎn)生報頭和把數(shù)據(jù)部分附加于報頭以及通過網(wǎng)絡(luò)傳送它們。
本發(fā)明公開內(nèi)容講授的另一方面是在網(wǎng)絡(luò)中使用的一種數(shù)據(jù)流部件,該數(shù)據(jù)流部件包括至少一個與上述主機連接的主機接口;至少一個與網(wǎng)絡(luò)資源連接的網(wǎng)絡(luò)接口;至少一個處理節(jié)點,其能夠產(chǎn)生網(wǎng)絡(luò)層操作所需的輔助數(shù)據(jù)和命令;一個最初處理數(shù)據(jù)的接納和分類單元;一個支持?jǐn)?shù)據(jù)處理的事件隊列管理器;一個支持?jǐn)?shù)據(jù)處理的調(diào)度器;一個管理存儲器的存儲器管理器;一個從所述接納和分類單元接收數(shù)據(jù)的數(shù)據(jù)互連單元;和一個控制集線器。
本發(fā)明公開內(nèi)容講授的又一方面是一種用于把來自網(wǎng)絡(luò)的應(yīng)用數(shù)據(jù)傳送到主機的方法,該方法包括從網(wǎng)絡(luò)資源接收數(shù)據(jù)報頭;如果這些報頭不屬于先前已打開的描述符,則打開一個新的描述符;在一個目標(biāo)隊列中存儲各報頭的開始的地址和結(jié)束的地址;如果有至少一個應(yīng)用報頭可用,則把描述符的控制轉(zhuǎn)移到應(yīng)用隊列;在應(yīng)用隊列中存儲各應(yīng)用報頭的開始和結(jié)束地址;重復(fù)上述步驟,直到所有的應(yīng)用報頭都可用為止;而且基于所述應(yīng)用報頭把數(shù)據(jù)傳送到所述主機。
本發(fā)明公開內(nèi)容講授的再一方面是一種用于把來自主機的應(yīng)用數(shù)據(jù)傳送到網(wǎng)絡(luò)資源的方法,該方法包括從主機接收數(shù)據(jù);從主機接收目標(biāo)地址;在傳輸隊列中使傳送信息排隊;更新指向接下來將要被發(fā)送的應(yīng)用數(shù)據(jù)部分的描述符;產(chǎn)生用于傳送的報頭;把應(yīng)用數(shù)據(jù)部分附加到上述報頭上;通過網(wǎng)絡(luò)傳輸應(yīng)用數(shù)據(jù)部分和報頭部分;重復(fù)上述步驟,直到所有的應(yīng)用數(shù)據(jù)都被傳送為止;并指示主機傳輸已完成。
III.
通過優(yōu)選實施例的詳細描述并參考附圖,本發(fā)明公開內(nèi)容講授的上述目的和優(yōu)點將變得更加明顯,其中圖1是常規(guī)的標(biāo)準(zhǔn)七層通信模型的一個框圖。
圖2是根據(jù)本發(fā)明公開內(nèi)容講授的數(shù)據(jù)流部件的典型實施例的一個示意框圖。
圖3是具有根據(jù)本發(fā)明公開內(nèi)容講授的、具有數(shù)據(jù)流部件的典型網(wǎng)絡(luò)系統(tǒng)的一個示意框圖。
圖4顯示了應(yīng)用數(shù)據(jù)的入口處理。
圖5A~5I示范了根據(jù)本發(fā)明公開內(nèi)容講授的應(yīng)用數(shù)據(jù)管理技術(shù)的圖6顯示了應(yīng)用數(shù)據(jù)的出口處理。
IV.具體實施方式
圖2示出了根據(jù)本發(fā)明公開內(nèi)容講授的數(shù)據(jù)流部件的典型實施例的一個示意圖。數(shù)據(jù)流部件(DS)200可作為單個集成電路、或由兩個或更多的電路元件構(gòu)成的電路來實現(xiàn)。諸如存儲器250和擴展碼280之類的元件可以用獨立器件來實現(xiàn),而大多數(shù)其它元件可以被集成在單個IC上。主機接口(HI)210把數(shù)據(jù)流部件連接到主機。主機能夠接收和傳送數(shù)據(jù)到DS 200,以及發(fā)送高級命令來指示DS 200執(zhí)行數(shù)據(jù)存儲或數(shù)據(jù)檢索。經(jīng)由連接到主機接口(HI)210的主機總線(HB)212,數(shù)據(jù)和命令被傳送給主機和從主機傳送。HB 212可以是諸如外設(shè)部件互連(PCI)之類的標(biāo)準(zhǔn)接口,但不局限于這類標(biāo)準(zhǔn)接口,還可以使用允許主機和DS 200之間通信的專用接口??梢允褂玫牧硪粋€標(biāo)準(zhǔn)是PCI-X,它是PCI總線的后繼總線,并且它具有明顯更快的數(shù)據(jù)傳輸速度。如果數(shù)據(jù)流部件可以使用3GIO總線,則還有一種替換實施方案提供了甚至比PCI-X總線更高的性能。在又一個替換實施方案中,可以使用系統(tǒng)分組接口第3級(System Packet Interface Level 3,SPI-3)或系統(tǒng)分組物理接口第4級(System Packet Physical Interface Level 4,SPI-4)。在另一個替換實施方案中,還可以使用InfiniBand總線。
當(dāng)命令被傳送到事件隊列管理器和調(diào)度器(EQMS)260時,從主機接收到的數(shù)據(jù)由HI 210通過總線216傳送到數(shù)據(jù)互連和存儲管理器(DIMM)230。從主機接收的數(shù)據(jù)將被存儲在存儲器250中等候進一步處理。對這類從主機到達數(shù)據(jù)的處理是在DIMM 230、控制集線器(CH)290和EQMS 260的控制下執(zhí)行的。然后,數(shù)據(jù)在其中一個處理節(jié)點(PN)270中被處理。上述處理節(jié)點是網(wǎng)絡(luò)處理器,該網(wǎng)絡(luò)處理器能夠管理用來產(chǎn)生網(wǎng)絡(luò)層操作所必需的數(shù)據(jù)和命令的接口。至少一個處理節(jié)點可以是網(wǎng)絡(luò)事件處理節(jié)點。具體地說,網(wǎng)絡(luò)事件處理節(jié)點可以是分組處理節(jié)點或報頭處理節(jié)點。
在處理之后,數(shù)據(jù)被傳送到網(wǎng)絡(luò)接口(NI)220。NI 220取決于其將被連接的接口類型和目的地,通過總線222而以其網(wǎng)絡(luò)層格式路由數(shù)據(jù)??偩€222可以是以太網(wǎng)、ATM或任何其它專用或標(biāo)準(zhǔn)網(wǎng)絡(luò)接口。PN270可以依靠其嵌入碼來處理一種或多種類型的通信接口,并且在某些情況下它可以使用擴展碼(EC)存儲器280來擴展。
DS 200能夠進一步處理在網(wǎng)絡(luò)上發(fā)送的數(shù)據(jù),并且這些數(shù)據(jù)的目標(biāo)是通過HB 212連接到DS 200的主機。在任何一個NI 222上接收的數(shù)據(jù)都通過NI 220來路由,并且最初由接納和分類(AC)單元240來處理。數(shù)據(jù)被傳送到DIMM 230,而控制則被轉(zhuǎn)移到EQMS 260。DIMM 230把數(shù)據(jù)放置在存儲器250中,以便在EQMS 260、DIMM 230和HC 290的控制下作進一步的處理。DIMM 230、EQMS 260和CH 290的功能將在此描述。
應(yīng)當(dāng)指出,DIMM 230的基本功能是控制存儲器250和管理在存儲器250以及DS 200的其它單元之間的所有數(shù)據(jù)業(yè)務(wù),例如涉及HI 210和NI 220的數(shù)據(jù)業(yè)務(wù)。具體地說,DIMM 230集合所有指向存儲器250的服務(wù)請求。還應(yīng)當(dāng)進一步指出,EQMS 260的功能是控制多個PN 270的操作。EQMS 260經(jīng)由CH 290接收網(wǎng)絡(luò)業(yè)務(wù)到達的通知,或稱之為事件。EQMS 260優(yōu)先化不同事件和組織它們,并且當(dāng)所有事件的數(shù)據(jù)在對應(yīng)的PN 270的局部存儲器中都可用時,把事件分配到所需的PN 270。CH290的功能是處理在DS 200的各單元之間傳輸?shù)目刂葡?相對于數(shù)據(jù)報文)。例如,PN 270可以發(fā)送一個由CH 290處理的控制消息,其中CH290產(chǎn)生控制分組,該控制分組隨后會被發(fā)送到預(yù)期目的地。DS 200的上述這些單元及其它單元的使用,根據(jù)對它們的使用(結(jié)合以下所述的方法)的描述會更加清楚。
圖3示出了一個根據(jù)本發(fā)明公開講授內(nèi)容的示范性網(wǎng)絡(luò)系統(tǒng)300的示意圖,其中使用了DS 200。DS 200借助于HB 212連接到主機310。當(dāng)主機310需要從網(wǎng)絡(luò)存儲器讀取數(shù)據(jù)時,就將命令經(jīng)由HB 212發(fā)送到DS 200。DS 200處理“讀取”請求并且有效地處理從網(wǎng)絡(luò)存儲器(NS)320中檢索數(shù)據(jù)。當(dāng)來自基本網(wǎng)絡(luò)塊中的NS 320的數(shù)據(jù)被接收時,它們被有效地組合在對應(yīng)于DS 200的存儲器250中。把數(shù)據(jù)組合成所請求讀取的信息不是通過移動數(shù)據(jù)來完成的,而是通過一種高級指向系統(tǒng)來完成的,下面給出該系統(tǒng)的更詳細解釋。
具體地說,當(dāng)數(shù)據(jù)沿著通信模型移動時,指針被用來指向通信模型的每層所需要的數(shù)據(jù),而不是在存儲器中把數(shù)據(jù)從一個位置移植或者說移動到另一位置。類似地,當(dāng)主機310命令DS 200把數(shù)據(jù)寫入NS320時,DS 200處理這個請求的做法是把數(shù)據(jù)存儲在存儲器250中,并且向下處理通過通信模型,而不是實際上移動存儲器250內(nèi)的數(shù)據(jù)。這導(dǎo)致更快速的操作。此外,主機的計算負擔(dān)更少,存儲器使用率也得到了相當(dāng)大的節(jié)省。
雖然主機310被顯示為通過HB 212連接到數(shù)據(jù)流部件200,但是使用其中一個網(wǎng)絡(luò)接口222來連接主機310和數(shù)據(jù)流部件200也是可能的,該網(wǎng)絡(luò)接口222要能夠支持用于與主機310通信的特定通信協(xié)議。在本發(fā)明公開技術(shù)的另一個替代性實施方案中,主機310僅僅用于初始時配置所述系統(tǒng)。其后,所有的操作都在網(wǎng)絡(luò)222上執(zhí)行。
圖4示意性地描述了入口400的處理,示意性地說明了從網(wǎng)絡(luò)到系統(tǒng)的數(shù)據(jù)流。在每個步驟中,數(shù)據(jù)(最初作為分組流被接收)被合并或描述(delineated)成要被傳送到主機的有意義的信息單元。用于數(shù)據(jù)組幀的入口步驟包括NI 220提供的鏈路接口410、AC 240提供的接納420、DIMM 230和EQMS 260提供的緩沖和排隊430、各PN 270提供的層3和層4處理440、EQMS 260提供的字節(jié)流排隊450。上層協(xié)議(ULP)描述和恢復(fù)460和ULP處理470也由各PN 270支持。被指定用來將數(shù)據(jù)傳送到主機480、490的各種其它類型的控制和握手操作由HI 210和總線212提供,而被指定用來將數(shù)據(jù)傳送到網(wǎng)絡(luò)485、495的操作則由NI 220和接口222支持。應(yīng)當(dāng)進一步指出,在入口400的所有步驟中都涉及CH 290。
ULP符合七層通信模型的第五、第六和第七層的協(xié)議。所有這類操作都由數(shù)據(jù)流部件200來執(zhí)行。對本發(fā)明公開講授內(nèi)容的效率有貢獻的因素是以一種不需要像在常規(guī)技術(shù)中那樣移動數(shù)據(jù)的方式來管理數(shù)據(jù)的描述(delineation)。
圖5示出了用以訪問數(shù)據(jù)的技術(shù),其中該數(shù)據(jù)是由從每個分組接收的有效載荷數(shù)據(jù)來描述的。當(dāng)接收到由其唯一元組所標(biāo)識的屬于唯一過程的分組時,各PN270上的EQMS260使得一個目標(biāo)隊列和一個應(yīng)用隊列成為可用的。這展示于圖5A中,其中,由于一個數(shù)據(jù)分組的到達,提供了目標(biāo)隊列520以及描述符指針540。描述符指針540指向存儲器250中的存儲單元552A,其中,相對于層2的分組報頭被放置在存儲單元552A中。這被重復(fù)用于相對于層3和層4的報頭。它們分別被放置在存儲單元553A和554A中。然后,應(yīng)用報頭被放置在555A中。這個操作是通過DIMM 230來執(zhí)行的。
與打開的目標(biāo)隊列520相結(jié)合,應(yīng)用隊列530也被有效地用于所有與處理流程有關(guān)的有效載荷。每當(dāng)關(guān)于通信層的信息被接受,包含在描述符540中的指針就被提前,因此這類報頭被置于552A、553A、554A中而且555A可用于將來的檢索。所屬技術(shù)領(lǐng)域的專業(yè)人員可以容易地實現(xiàn)隊列(或其它類似的數(shù)據(jù)結(jié)構(gòu))以用于檢索這類數(shù)據(jù)。
在圖5B中,所示的系統(tǒng)500是它已經(jīng)從層2、層3和層4接收了全部信息并且準(zhǔn)備接受對應(yīng)于分組的應(yīng)用報頭的時候。因此,對描述符540的控制被轉(zhuǎn)移到應(yīng)用隊列530。應(yīng)用隊列530保存與應(yīng)用報頭的開始地址(在存儲器250中)相關(guān)的信息。
在圖5C中,所示的系統(tǒng)500已經(jīng)接收了上述應(yīng)用報頭。描述符540現(xiàn)在指向有效載荷557A在其到達時所放置的位置。數(shù)據(jù)在PN 270和CH290的控制下經(jīng)由DIMM 230被傳送到存儲器250。因為有效載荷還沒有被接收,所以此時沒有指向有效載荷末尾的指針。一旦最終將要被傳送到主機的有用的有效載荷數(shù)據(jù)可用,則指針就將被更新。應(yīng)用數(shù)據(jù)的開始和結(jié)束指針被保留在應(yīng)用隊列中,確保當(dāng)數(shù)據(jù)被傳送到主機時易于對其定位。另外,不需要把數(shù)據(jù)從存儲器的一部分移動到另一部分,從而節(jié)省了時間和存儲空間,這導(dǎo)致更高的總體性能。
圖5D顯示另一個分組,該分組被接受且由此提供了新的描述符指針540B,它具有來自目標(biāo)隊列520的一個指針。最初,描述符540B指向第二層552B存儲單元的開始的地址。
在圖5E中,層2、3和4的信息已經(jīng)被接收,并且該元組被系統(tǒng)標(biāo)識為屬于前面已接收分組的同一元組。因此,描述符540A現(xiàn)在指向描述符540B,并且描述符540B指向存儲在存儲器250中的第四層信息的結(jié)束地址。在本例所描述的情況中,不存在處于完全可接受情況下的應(yīng)用報頭。應(yīng)當(dāng)指出,當(dāng)所有的分組都具有有效載荷時,并非所有的分組都有應(yīng)用報頭,如本例所示。在圖5示出的例子中,第一分組有應(yīng)用報頭,第二分組沒有應(yīng)用報頭,而第三分組有應(yīng)用報頭。所有3個分組全都具有有效載荷。
如圖5F所示,當(dāng)另一個分組被接收時,在存儲器250中會添加一個新的描述符指針540C,它指向?qū)?、3、4和潛在應(yīng)用報頭的報頭信息集合的開始位置。
在圖5G中,在DIMM 230和被標(biāo)識為屬于已接收的相同分組的元組的控制下,分別對應(yīng)于552C、553C、554C和555C的層2、層3、層4和應(yīng)用報頭的信息被存儲在存儲器250中。因此,描述符540B指向描述符540C。
如圖5H所示,這個分組包含一個應(yīng)用報頭,由此描述符540C指向在存儲器250中放置此報頭的開始的地址,而圖5I示出整個應(yīng)用報頭被接收之后的情況。正如上面所解釋的,應(yīng)用報頭的開始和結(jié)束地址被存儲在應(yīng)用隊列530中,因此很容易把它們以及有效載荷傳送到主機310。在一些協(xié)議如iSCSI中,只有數(shù)據(jù)有效載荷會被傳送到主機,而在其它情況下,ULP有效載荷和報頭都可以被傳送到主機。為了以一種適于將數(shù)據(jù)和報頭傳送到主機310的方式進行系統(tǒng)配置,數(shù)據(jù)流部件200可以使用內(nèi)置固件或者使用通過擴展碼280提供的附加碼。
圖6顯示了出口600,數(shù)據(jù)通過這個處理從主機傳送到網(wǎng)絡(luò)。應(yīng)用數(shù)據(jù)在將其發(fā)送給目標(biāo)網(wǎng)絡(luò)位置的上層請求下,從主機310被接收到存儲器250。數(shù)據(jù)流部件200被設(shè)計成它無需多次移動數(shù)據(jù)就能夠處理主機數(shù)據(jù)以符合每個通信層的需要。這樣就減少了數(shù)據(jù)傳輸數(shù)量,使得內(nèi)存需求更小并且使得總體性能得到提高。事件隊列管理器和調(diào)度器260管理來自主機310而現(xiàn)在被存儲在存儲器250中的數(shù)據(jù)的分解,數(shù)據(jù)被分解成被附著于分組報頭上的有效載荷數(shù)據(jù),這可以被認為適合于具體的網(wǎng)絡(luò)業(yè)務(wù)。為了指向一個地址,而這個地址接下來將被用為附著于分組的數(shù)據(jù),使用了指向存儲在存儲器250中的數(shù)據(jù)的指針,這些指針使用了一個排隊系統(tǒng)。一旦存儲在存儲器中的所有數(shù)據(jù)都被發(fā)送到其目的地,主機310就得到一個數(shù)據(jù)傳輸完成的指示。
通過上述公開內(nèi)容和講授,本發(fā)明的其它修改和變化對于所屬領(lǐng)域的技術(shù)人員會變得顯而易見。因此,雖然在此只具體描述了本發(fā)明的某些實施例,但是顯然可以在不背離本發(fā)明精神和范圍的前提下額外作出很多修改。
權(quán)利要求
1.一種網(wǎng)絡(luò)系統(tǒng),包括一個主機;一個連接到所述主機的數(shù)據(jù)流部件,通過使用存儲單元而不在該存儲單元內(nèi)移動數(shù)據(jù),所述數(shù)據(jù)流部件能夠在所述主機和網(wǎng)絡(luò)資源之間傳輸數(shù)據(jù);一個通信鏈路,其連接所述數(shù)據(jù)流部件和所述網(wǎng)絡(luò)資源。
2.根據(jù)權(quán)利要求1的系統(tǒng),其中所述通信鏈路是專用通信鏈路。
3.根據(jù)權(quán)利要求1的系統(tǒng),其中所述主機被單獨地用來初始化該計算機。
4.根據(jù)權(quán)利要求1的系統(tǒng),其中所述網(wǎng)絡(luò)資源包括網(wǎng)絡(luò)存儲裝置。
5.根據(jù)權(quán)利要求2的系統(tǒng),其中所述專用通信鏈路是網(wǎng)絡(luò)通信鏈路。
6.根據(jù)權(quán)利要求3的系統(tǒng),其中,所述專用通信鏈路是從包含個人計算機接口(PCI)、PCI-X、3GIO、InfiniBand、SPI-3或SPI-4的群中選擇的。
7.根據(jù)權(quán)利要求5的系統(tǒng),其中所述網(wǎng)絡(luò)通信鏈路是局域網(wǎng)(LAN)鏈路。
8.根據(jù)權(quán)利要求5的系統(tǒng),其中所述網(wǎng)絡(luò)通信鏈路基于以太網(wǎng)。
9.根據(jù)權(quán)利要求5的系統(tǒng),其中所述網(wǎng)絡(luò)通信鏈路是廣域網(wǎng)(WAN)。
10.根據(jù)權(quán)利要求5的系統(tǒng),其中所述網(wǎng)絡(luò)通信鏈路使用網(wǎng)際協(xié)議(IP)。
11.根據(jù)權(quán)利要求5的系統(tǒng),其中所述網(wǎng)絡(luò)通信鏈路使用異步傳輸模式(ATM)協(xié)議。
12.根據(jù)權(quán)利要求1的系統(tǒng),其中所述數(shù)據(jù)流部件進一步包括至少一個與所述主機連接的主機接口;至少一個與所述網(wǎng)絡(luò)資源連接的網(wǎng)絡(luò)接口;至少一個處理節(jié)點,其能夠產(chǎn)生網(wǎng)絡(luò)層操作所需的輔助數(shù)據(jù)和命令;一個最初處理數(shù)據(jù)的接納和分類單元;一個支持?jǐn)?shù)據(jù)處理的事件隊列管理器;一個支持?jǐn)?shù)據(jù)處理的調(diào)度器;一個管理存儲器的存儲管理器;一個從所述接納和分類單元接收數(shù)據(jù)的數(shù)據(jù)互連單元;和一個控制集線器。
13.根據(jù)權(quán)利要求12的系統(tǒng),其中所述處理節(jié)點進一步被連接到一個擴展存儲器。
14.根據(jù)權(quán)利要求13的系統(tǒng),其中所述擴展存儲器是代碼存儲器。
15.根據(jù)權(quán)利要求12的系統(tǒng),其中所述處理節(jié)點是網(wǎng)絡(luò)事件處理節(jié)點。
16.根據(jù)權(quán)利要求15的系統(tǒng),其中所述網(wǎng)絡(luò)事件處理節(jié)點是分組處理節(jié)點。
17.根據(jù)權(quán)利要求15的系統(tǒng),其中所述網(wǎng)絡(luò)事件處理節(jié)點是報頭處理節(jié)點。
18.根據(jù)權(quán)利要求12的系統(tǒng),其中所述主機接口是從包含PCI、PCI-X、3GIO、InfiniBand、SPI-3和SPI-4的群中選擇的。
19.根據(jù)權(quán)利要求12的系統(tǒng),其中所述網(wǎng)絡(luò)接口是以太網(wǎng)。
20.根據(jù)權(quán)利要求12的系統(tǒng),其中所述網(wǎng)絡(luò)接口是ATM。
21.根據(jù)權(quán)利要求12的系統(tǒng),其中所述主機接口與所述網(wǎng)絡(luò)接口結(jié)合。
22.根據(jù)權(quán)利要求12的系統(tǒng),其中所述事件隊列管理器至少能夠管理一個目標(biāo)隊列;和一個應(yīng)用隊列。
23.根據(jù)權(quán)利要求22的系統(tǒng),其中當(dāng)?shù)谝粋€報頭被處理時,所述目標(biāo)隊列指向第一描述符。
24.根據(jù)權(quán)利要求23的系統(tǒng),其中被處理的報頭是在第二通信層中。
25.根據(jù)權(quán)利要求23的系統(tǒng),其中被處理的報頭是在第三通信層中。
26.根據(jù)權(quán)利要求23的系統(tǒng),其中被處理的報頭是在第四通信層中。
27.根據(jù)權(quán)利要求23的系統(tǒng),其中如果第二個報頭有相應(yīng)于第一個報頭的相同元組,則所述目標(biāo)隊列指向第二描述符。
28.根據(jù)權(quán)利要求22的系統(tǒng),其中所述目標(biāo)隊列對于報頭信息至少保留開始地址。
29.根據(jù)權(quán)利要求22的系統(tǒng),其中所述目標(biāo)隊列對于報頭信息至少保留結(jié)束地址。
30.根據(jù)權(quán)利要求23的系統(tǒng),其中如果有至少一個應(yīng)用報頭可用,則所述應(yīng)用隊列指向所述描述符而不是所述目標(biāo)隊列。
31.根據(jù)權(quán)利要求23的系統(tǒng),其中所述描述符至少指向所述應(yīng)用報頭的開始。
32.根據(jù)權(quán)利要求31的系統(tǒng),其中所述應(yīng)用隊列保存所述應(yīng)用報頭的開始的地址。
33.根據(jù)權(quán)利要求23的系統(tǒng),其中所述描述符至少指向所述應(yīng)用報頭的結(jié)束。
34.根據(jù)權(quán)利要求33的系統(tǒng),其中所述應(yīng)用隊列保存所述應(yīng)用報頭的結(jié)束的地址。
35.根據(jù)權(quán)利要求30的系統(tǒng),其中當(dāng)所有的應(yīng)用報頭都可用時,數(shù)據(jù)在連續(xù)操作中被傳送到所述主機。
36.根據(jù)權(quán)利要求35的系統(tǒng),其中所述連續(xù)操作基于存儲在所述應(yīng)用隊列中的指針信息。
37.根據(jù)權(quán)利要求22的系統(tǒng),其中所述系統(tǒng)適合于從網(wǎng)絡(luò)資源中接收至少一個具有報頭的數(shù)據(jù)分組,并且如果該報頭不屬于已打開的描述符,則打開一個新的描述符。
38.根據(jù)權(quán)利要求37的系統(tǒng),其中所述系統(tǒng)適合于在所述目標(biāo)隊列中存儲所述報頭的開始和結(jié)束地址。
39.根據(jù)權(quán)利要求37的系統(tǒng),其中如果有至少一個所述應(yīng)用報頭可用,則所述系統(tǒng)適合于把所述描述符的控制轉(zhuǎn)移到所述應(yīng)用隊列,并且所述系統(tǒng)進一步適合于在所述應(yīng)用隊列中存儲所述應(yīng)用報頭的開始和結(jié)束地址。
40.根據(jù)權(quán)利要求39的系統(tǒng),其中所述系統(tǒng)適合于基于所存儲的應(yīng)用報頭而把數(shù)據(jù)傳輸?shù)剿鲋鳈C。
41.根據(jù)權(quán)利要求22的系統(tǒng),其中所述系統(tǒng)適合于從所述主機接收數(shù)據(jù)和目標(biāo)地址,并且其中所述系統(tǒng)還適合于在傳輸隊列中使該數(shù)據(jù)排隊。
42.根據(jù)權(quán)利要求41的系統(tǒng),其中所述系統(tǒng)適合于更新較早產(chǎn)生的描述符,以使之指向接下來將要被傳送的數(shù)據(jù)部分。
43.根據(jù)權(quán)利要求42的系統(tǒng),其中所述系統(tǒng)適合于產(chǎn)生報頭,并把所述數(shù)據(jù)部分附加于該報頭而且通過網(wǎng)絡(luò)傳送它們。
44.一種在網(wǎng)絡(luò)中使用的數(shù)據(jù)流部件,所述數(shù)據(jù)流部件包括至少一個與所述主機連接的主機接口;至少一個與網(wǎng)絡(luò)資源連接的網(wǎng)絡(luò)接口;至少一個處理節(jié)點,其能夠產(chǎn)生網(wǎng)絡(luò)層操作所需的輔助數(shù)據(jù)和命令;一個最初處理數(shù)據(jù)的接納和分類單元;一個支持?jǐn)?shù)據(jù)處理的事件隊列管理器;一個支持?jǐn)?shù)據(jù)處理的調(diào)度器;一個管理存儲器的存儲管理器;一個從所述接納和分類單元接收數(shù)據(jù)的數(shù)據(jù)互連單元;和一個控制集線器。
45.根據(jù)權(quán)利要求44的數(shù)據(jù)流部件,其中所述處理節(jié)點進一步被連接到一個擴展存儲器。
46.根據(jù)權(quán)利要求45的數(shù)據(jù)流部件,其中所述擴展存儲器是代碼存儲器。
47.根據(jù)權(quán)利要求44的數(shù)據(jù)流部件,其中所述處理節(jié)點是網(wǎng)絡(luò)事件處理節(jié)點。
48.根據(jù)權(quán)利要求47的數(shù)據(jù)流部件,其中所述網(wǎng)絡(luò)事件處理節(jié)點是分組處理節(jié)點。
49.根據(jù)權(quán)利要求47的數(shù)據(jù)流部件,其中所述網(wǎng)絡(luò)事件處理節(jié)點是報頭處理節(jié)點。
50.根據(jù)權(quán)利要求44的數(shù)據(jù)流部件,其中所述主機接口是從包含PCI、PCI-X、3GIO、InfiniBand、SPI-3和SPI-4的群中選擇的。
51.根據(jù)權(quán)利要求44的數(shù)據(jù)流部件,其中所述網(wǎng)絡(luò)接口是以太網(wǎng)。
52.根據(jù)權(quán)利要求44的數(shù)據(jù)流部件,其中所述網(wǎng)絡(luò)接口是ATM。
53.根據(jù)權(quán)利要求44的數(shù)據(jù)流部件,其中所述主機接口與所述網(wǎng)絡(luò)接口結(jié)合。
54.根據(jù)權(quán)利要求44的數(shù)據(jù)流部件,其中所述事件隊列管理器至少能夠管理一個目標(biāo)隊列;一個應(yīng)用隊列。
55.根據(jù)權(quán)利要求54的數(shù)據(jù)流部件,其中當(dāng)?shù)谝粋€報頭被處理時,所述目標(biāo)隊列指向第一描述符。
56.根據(jù)權(quán)利要求55的數(shù)據(jù)流部件,其中被處理的報頭是在第二通信層中。
57.根據(jù)權(quán)利要求55的數(shù)據(jù)流部件,其中被處理的報頭是在第三通信層中。
58.根據(jù)權(quán)利要求55的數(shù)據(jù)流部件,其中被處理的報頭是在第四通信層中。
59.根據(jù)權(quán)利要求55的數(shù)據(jù)流部件,其中如果第二個報頭有相應(yīng)于第一個報頭的相同元組,則所述目標(biāo)隊列指向第二描述符。
60.根據(jù)權(quán)利要求54的數(shù)據(jù)流部件,其中所述目標(biāo)隊列對于報頭信息至少保留開始地址。
61.根據(jù)權(quán)利要求54的數(shù)據(jù)流部件,其中所述目標(biāo)隊列對于報頭信息至少保留結(jié)束地址。
62.根據(jù)權(quán)利要求55的數(shù)據(jù)流部件,其中如果有至少一個應(yīng)用報頭可用,則所述應(yīng)用隊列指向所述描述符而不是所述目標(biāo)隊列。
63.根據(jù)權(quán)利要求55的數(shù)據(jù)流部件,其中所述描述符至少指向應(yīng)用報頭的開始。
64.根據(jù)權(quán)利要求63的數(shù)據(jù)流部件,其中所述應(yīng)用隊列保存所述應(yīng)用報頭的開始的地址。
65.根據(jù)權(quán)利要求55的數(shù)據(jù)流部件,其中所述描述符至少指向所述應(yīng)用報頭的結(jié)束。
66.根據(jù)權(quán)利要求65的數(shù)據(jù)流部件,其中所述應(yīng)用隊列保存應(yīng)用報頭的結(jié)束的地址。
67.根據(jù)權(quán)利要求62的數(shù)據(jù)流部件,其中當(dāng)所有的應(yīng)用報頭都可用時,數(shù)據(jù)在連續(xù)操作中被傳送到所述主機。
68.根據(jù)權(quán)利要求67的數(shù)據(jù)流部件,其中所述連續(xù)操作基于存儲在所述應(yīng)用隊列中的指針信息。
69.根據(jù)權(quán)利要求54的數(shù)據(jù)流部件,其中所述數(shù)據(jù)流部件適合于從網(wǎng)絡(luò)資源中接收至少一個具有報頭的數(shù)據(jù)分組,并且如果該報頭不屬于已打開的描述符,則打開一個新的描述符。
70.根據(jù)權(quán)利要求69的數(shù)據(jù)流部件,其中所述數(shù)據(jù)流部件適合于在所述目標(biāo)隊列中存儲所述報頭的開始和結(jié)束地址。
71.根據(jù)權(quán)利要求70的數(shù)據(jù)流部件,其中如果有至少一個應(yīng)用報頭可用,則所述數(shù)據(jù)流部件適合于把所述描述符的控制轉(zhuǎn)移到所述應(yīng)用隊列,并且該數(shù)據(jù)流部件進一步適合于在所述應(yīng)用隊列中存儲應(yīng)用報頭的開始和結(jié)束地址。
72.根據(jù)權(quán)利要求71的數(shù)據(jù)流部件,其中所述數(shù)據(jù)流部件適合于基于所存儲的應(yīng)用報頭而把數(shù)據(jù)傳送到所述主機。
73.根據(jù)權(quán)利要求54的數(shù)據(jù)流部件,其中所述數(shù)據(jù)流部件適合于從所述主機接收數(shù)據(jù)和目標(biāo)地址,并且其中所述數(shù)據(jù)流部件還適合于在傳輸隊列中使該數(shù)據(jù)排隊。
74.根據(jù)權(quán)利要求73的數(shù)據(jù)流部件,其中所述數(shù)據(jù)流部件適合于更新較早產(chǎn)生的描述符以使之指向接下來將要被傳送的數(shù)據(jù)部分。
75.根據(jù)權(quán)利要求74的數(shù)據(jù)流部件,其中所述數(shù)據(jù)流部件適合于產(chǎn)生報頭,并把所述數(shù)據(jù)部分附加于該報頭而且通過網(wǎng)絡(luò)傳送它們。
76.一種把應(yīng)用數(shù)據(jù)從網(wǎng)絡(luò)傳送到主機的方法,包括a)從網(wǎng)絡(luò)資源中接收數(shù)據(jù)的報頭;b)如果所述報頭不屬于已打開的描述符,則打開一個新的描述符;c)在一個目標(biāo)隊列中存儲所述報頭的開始地址和結(jié)束地址;d)如果有至少一個應(yīng)用報頭可用,則把所述描述符的控制轉(zhuǎn)移到一個應(yīng)用隊列;e)在應(yīng)用隊列中存儲所述應(yīng)用報頭的開始和結(jié)束地址;f)重復(fù)a到e的各步驟,直到所有應(yīng)用報頭都是可用的為止;和g)基于所述應(yīng)用報頭把數(shù)據(jù)傳送到所述主機。
77.一種把應(yīng)用數(shù)據(jù)從主機傳送到網(wǎng)絡(luò)資源的方法,包括a)從所述主機接收數(shù)據(jù);b)從所述主機接收目標(biāo)地址;c)在一個傳輸隊列中使傳送信息排隊;d)更新一個描述符,該描述符指向接下來將要被傳送的應(yīng)用數(shù)據(jù)部分;e)產(chǎn)生用于傳輸?shù)膱箢^;f)把所述應(yīng)用數(shù)據(jù)部分附加到所述報頭上;g)在網(wǎng)絡(luò)上傳輸所述的應(yīng)用數(shù)據(jù)部分和報頭;h)重復(fù)d到g的各步驟,直到所有的應(yīng)用數(shù)據(jù)都被發(fā)送為止;和i)向所述主機指示該傳輸已經(jīng)完成。
全文摘要
一種包括主機的網(wǎng)絡(luò)系統(tǒng)。一個數(shù)據(jù)流部件被連接到主機。通過使用存儲單元而不移動存儲單元內(nèi)的數(shù)據(jù),所述數(shù)據(jù)流部件能夠在主機和網(wǎng)絡(luò)資源之間傳輸數(shù)據(jù)。一個通信鏈路連接上述數(shù)據(jù)流部件和網(wǎng)絡(luò)資源。
文檔編號H04L29/06GK1628296SQ02828001
公開日2005年6月15日 申請日期2002年12月16日 優(yōu)先權(quán)日2001年12月14日
發(fā)明者O·烏扎萊德-納里, S·古普塔 申請人:賽爾沃拜克系統(tǒng)公司