国产精品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>

      用于操作系統(tǒng)分區(qū)的網(wǎng)絡(luò)通信的制作方法

      文檔序號:7636731閱讀:137來源:國知局
      專利名稱:用于操作系統(tǒng)分區(qū)的網(wǎng)絡(luò)通信的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)中的通信,并更具體地涉及在操作系統(tǒng)分區(qū)和 計(jì)算機(jī)網(wǎng)絡(luò)之間的通信。
      背景技術(shù)
      計(jì)算機(jī)系統(tǒng)通過建立和使用網(wǎng)絡(luò)連接而在網(wǎng)絡(luò)上彼此通信,所述網(wǎng)絡(luò) 連接使用諸如以太網(wǎng)的公知標(biāo)準(zhǔn)。典型地,在系統(tǒng)上運(yùn)行的多個(gè)實(shí)體或過 程可以各自獨(dú)立地在網(wǎng)絡(luò)上通信。為了幫助使能在對于系統(tǒng)的多個(gè)連接上 的高效通信,提供了網(wǎng)絡(luò)端口用于系統(tǒng)的輸入和輸出。例如,系統(tǒng)可包4舌 網(wǎng)絡(luò)適配器接口卡,其包括一個(gè)或多個(gè)到網(wǎng)絡(luò)的物理端口。某些計(jì)算機(jī)系統(tǒng)允許多個(gè)操作系統(tǒng)(OS)并行和獨(dú)立運(yùn)行。例如,IBM 公司的某些服務(wù)器系統(tǒng)運(yùn)行多個(gè)操作系統(tǒng),這是通過在該服務(wù)器上在每個(gè) 操作系統(tǒng)自己的分區(qū)中提供該操作系統(tǒng)。例如,Linux分區(qū)、AIX分區(qū)以 及不同的Unix分區(qū)可以同時(shí)在服務(wù)器上運(yùn)行。為了允許所有這些OS分區(qū) 在網(wǎng)絡(luò)上通信,可以使用不同的方法。在一種方法中,服務(wù)器的I/O托管 分區(qū)必須處理在系統(tǒng)上運(yùn)行的所有分區(qū)的通信需求。不過,這創(chuàng)建了到OS
      分區(qū)的較慢通信,因?yàn)槎鄠€(gè)分區(qū)通過單個(gè)I/O托管分區(qū)在網(wǎng)絡(luò)上進(jìn)行其I/O 通信成為瓶頸,例如每個(gè)分區(qū)必須通過單個(gè)I/O托管分區(qū)轉(zhuǎn)發(fā)和接收其數(shù)據(jù),所述i/o托管分區(qū)包括連接于單個(gè)網(wǎng)絡(luò)適配器的包轉(zhuǎn)發(fā)器。在另一配置中,為了允許較快通信,可以對同一機(jī)器上的每個(gè)OS分區(qū)提供網(wǎng)絡(luò)適配器和物理網(wǎng)絡(luò)端口。這樣,例如,向五個(gè)不同os分區(qū)的 每個(gè)提供其自己的專用網(wǎng)絡(luò)適配器和物理端口。不過,這種配置的費(fèi)用可 能變得過高,特別是當(dāng)實(shí)現(xiàn)了較大數(shù)量的os分區(qū)時(shí)。使多個(gè)OS分區(qū)在系統(tǒng)上運(yùn)行還需要由系統(tǒng)接收以及由系統(tǒng)發(fā)送的 信息被路由到所有適當(dāng)?shù)木W(wǎng)絡(luò)目的地,并且分區(qū)能夠?qū)⑿畔l(fā)送到在同一 服務(wù)器上運(yùn)行的其它分區(qū)以及從所述其它分區(qū)接收信息。其它OS分區(qū)可 能被指定為用于數(shù)據(jù)包的專用目的地,或者可以被包括在對于包的若干目 的地的組中。例如,在以太網(wǎng)網(wǎng)絡(luò)上的廣播(BC)和多播(MC)網(wǎng)絡(luò)功 能允許多個(gè)目的地接收由特定系統(tǒng)或分區(qū)發(fā)送的信息。如果一個(gè)分區(qū)將廣 播信息發(fā)送到網(wǎng)絡(luò)上的所有可用目的地,則系統(tǒng)上的所有其它OS分區(qū)需 要接收該廣播信息。在現(xiàn)有系統(tǒng)中,通過使用若干可用方法中的任一種,向和從不同OS 分區(qū)提供網(wǎng)絡(luò)流量。在一種方法中,通過在服務(wù)器系統(tǒng)外部的路由器來實(shí) 施層3路由,其中所有數(shù)據(jù)包衫L發(fā)送到系統(tǒng)外部,并初L發(fā)送回系統(tǒng)中到達(dá) 適當(dāng)?shù)腛S分區(qū)。不過,由于花費(fèi)較長時(shí)間的外部路徑,此方法可能是低 效的,并且可能不支持所有想要的功能,諸如層2協(xié)議支持。在另一方法 中,可以在網(wǎng)絡(luò)適配器上嵌入完全以太網(wǎng)交換機(jī)。該交換機(jī)在需要時(shí)在不 同分區(qū)之間進(jìn)行交換以向適當(dāng)?shù)哪康牡靥峁┌2贿^,此方法是昂貴的, 因?yàn)橐蕴W(wǎng)交換機(jī)在適配器上的現(xiàn)有電路的外部,并且還可能需要非標(biāo)準(zhǔn) 的、定制特征和功能。服務(wù)器系統(tǒng)的另一網(wǎng)絡(luò)通信問題包括對數(shù)據(jù)包排隊(duì)。傳統(tǒng)上,提供單 個(gè)隊(duì)列來存儲(chǔ)從操作系統(tǒng)發(fā)送出或者由操作系統(tǒng)接收的數(shù)據(jù)包,其中在操 作系統(tǒng)的內(nèi)核中的棧處理隊(duì)列中的包。在某些其它系統(tǒng)中,可以使用其它 類型的排隊(duì)。不過,現(xiàn)有排隊(duì)方法未解決具有多個(gè)分區(qū)的系統(tǒng)的需求,或 者具有用戶-空間隊(duì)列以及OS內(nèi)核隊(duì)列二者的可能性。因而,所需要的是一種用于與操作系統(tǒng)分區(qū)和計(jì)算機(jī)網(wǎng)絡(luò)高效和廉價(jià) 地進(jìn)行通信的裝置和方法,包括在具有有限數(shù)量的物理端口、可配置線速 度、分配資源的高效方式以及不同類型的包隊(duì)列的計(jì)算機(jī)系統(tǒng)上對多個(gè)os 分區(qū)的^f吏用。本發(fā)明解決了這樣的需求。發(fā)明內(nèi)容本應(yīng)用發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)中的通信,以及在操作系統(tǒng)分區(qū)和計(jì)算機(jī) 網(wǎng)絡(luò)之間的通信。在本發(fā)明的一方面中, 一種用于在計(jì)算機(jī)系統(tǒng)上提供的多個(gè)操作系統(tǒng)分區(qū)之間分布網(wǎng)絡(luò)通信的裝置包括至少一個(gè)耦合于網(wǎng)絡(luò)的 物理端口,所述物理端口允許所述網(wǎng)絡(luò)與所述計(jì)算^li系統(tǒng)之間的通信。包 括了關(guān)聯(lián)于所述至少一個(gè)物理端口的邏輯端口 ,其中每個(gè)邏輯端口關(guān)聯(lián)于 所述操作系統(tǒng)分區(qū)之一 。每個(gè)邏輯端口使能在相關(guān)聯(lián)的物理端口和相關(guān)聯(lián) 的操作系統(tǒng)分區(qū)之間的信息傳送,以及允許所述系統(tǒng)的網(wǎng)絡(luò)資源的可配置 性。在本發(fā)明的另 一方面中, 一種用于在計(jì)算機(jī)系統(tǒng)上提供的多個(gè)操作系 統(tǒng)分區(qū)之間分布網(wǎng)絡(luò)通信的方法包括在操作系統(tǒng)分區(qū)和至少 一個(gè)關(guān)聯(lián)于 所述操作系統(tǒng)分區(qū)的邏輯端口之間傳送信息。多個(gè)操作系統(tǒng)分區(qū)中的每一 個(gè)可以與相關(guān)聯(lián)的至少一個(gè)邏輯端口通信。所述方法還包括在所述至少 一個(gè)關(guān)聯(lián)于所述操作系統(tǒng)分區(qū)的邏輯端口和關(guān)聯(lián)于所述至少一個(gè)邏輯端口 的至少一個(gè)物理端口之間傳送信息,其中所述物理端口耦合于網(wǎng)絡(luò)。在本發(fā)明的另 一方面中, 一種用于在計(jì)算機(jī)系統(tǒng)上分布網(wǎng)絡(luò)通信的方 法包括在所述計(jì)算機(jī)系統(tǒng)中的邏輯交換機(jī)處接收數(shù)據(jù)包,所述計(jì)算才幾系 統(tǒng)運(yùn)行多個(gè)操作系統(tǒng)分區(qū)。當(dāng)來自所述計(jì)算機(jī)系統(tǒng)的 一個(gè)操作系統(tǒng)分區(qū)的 數(shù)據(jù)包中的信息指示出返轉(zhuǎn)路徑時(shí),將所述數(shù)據(jù)包通過在所述計(jì)算機(jī)系統(tǒng) 內(nèi)部的硬件路徑返轉(zhuǎn)到所述計(jì)算機(jī)系統(tǒng)的另 一個(gè)操作系統(tǒng)分區(qū)。當(dāng)從操作 系統(tǒng)分區(qū)接收的數(shù)據(jù)包中的信息指示出非返轉(zhuǎn)路徑時(shí),將所述數(shù)據(jù)包發(fā)送 到耦合于外部網(wǎng)絡(luò)的物理端口,或者當(dāng)從外部網(wǎng)絡(luò)接收的數(shù)據(jù)包中的信息
      指示出非返轉(zhuǎn)路徑時(shí),將所述數(shù)據(jù)包發(fā)送到操作系統(tǒng)分區(qū)。在本發(fā)明的另 一方面中, 一種用于在計(jì)算機(jī)系統(tǒng)上提供的多個(gè)操作系統(tǒng)分區(qū)之間分布網(wǎng)絡(luò)通信的裝置包括至少一個(gè)耦合于外部網(wǎng)絡(luò)的物理端 口,所述物理端口允許所述外部網(wǎng)絡(luò)與所述計(jì)算機(jī)系統(tǒng)之間的通信。所包 括的邏輯端口的每個(gè)關(guān)聯(lián)于所述操作系統(tǒng)分區(qū)之一。在所述計(jì)算機(jī)系統(tǒng)內(nèi) 部實(shí)現(xiàn)的邏輯交換機(jī)選擇物理端口和邏輯端口 ,以及使能把信息傳送到所 述操作系統(tǒng)分區(qū)和所述物理端口 。在本發(fā)明的另 一方面中, 一種用于提供用于計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)通信的 裝置包括至少一個(gè)耦合于網(wǎng)絡(luò)的物理端口,所述物理端口允許所述網(wǎng)絡(luò) 與所述計(jì)算機(jī)系統(tǒng)之間的通信。包括了多個(gè)連接隊(duì)列,用于存儲(chǔ)將從所述 計(jì)算機(jī)系統(tǒng)的至少一個(gè)用戶空間中的至少一個(gè)過程發(fā)送或由其接收的數(shù)據(jù) 包,其中每個(gè)連接隊(duì)列關(guān)聯(lián)于所述至少 一個(gè)過程之一和所述網(wǎng)絡(luò)之間的不同的網(wǎng)絡(luò)連接。還包括了默認(rèn)操作系統(tǒng)隊(duì)列,用于存儲(chǔ)將從由所述計(jì)算機(jī) 系統(tǒng)實(shí)現(xiàn)的操作系統(tǒng)分區(qū)的內(nèi)核發(fā)送或由其接收的數(shù)據(jù)包。在本發(fā)明的另 一方面中, 一種用于提供用于計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)通信的 方法包括在網(wǎng)絡(luò)適配器處接收數(shù)據(jù)包。所述數(shù)據(jù)包被存儲(chǔ)在連接隊(duì)列中,一個(gè)用戶空間中的至少一個(gè)過程發(fā)送或由其接收的數(shù)據(jù)包。如果無法找到 對于所述數(shù)據(jù)包的網(wǎng)絡(luò)連接,則將所述數(shù)據(jù)包存儲(chǔ)在默認(rèn)操作系統(tǒng)隊(duì)列中, 其中所述默認(rèn)操作系統(tǒng)隊(duì)列存儲(chǔ)將從由所述計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)的操作系統(tǒng)分 區(qū)的內(nèi)核發(fā)送或由其接收的數(shù)據(jù)包。本發(fā)明允許對于在服務(wù)器系統(tǒng)上提供的多個(gè)操作系統(tǒng)(OS )分區(qū)的快 速和高效通信。通過使用對軟件透明的本發(fā)明的網(wǎng)絡(luò)適配器,可以實(shí)現(xiàn)如 同每個(gè)分區(qū)具有其自己的專用以太網(wǎng)適配器那樣的相同性能,而不必非要 為每個(gè)分區(qū)提供適配器,以及使用標(biāo)準(zhǔn)適配器硬件。本發(fā)明的邏輯交換機(jī) 允許所有類型的數(shù)據(jù)包(包括單播、廣播和多播包)被高效提供給網(wǎng)絡(luò)和 OS分區(qū),并且本發(fā)明的包隊(duì)列允許例如在具有多個(gè)OS分區(qū)的系統(tǒng)中支持 多種類型的排隊(duì)。本發(fā)明提供了一種虛擬化以太網(wǎng)或類似網(wǎng)絡(luò)、分配資源 以及配置線速度和其它資源的高效方式。


      圖l是適于與本發(fā)明一起使用的系統(tǒng)的示例的框圖;圖2是由圖1所示的適配器實(shí)現(xiàn)的、被提供用于使用的本發(fā)明的邏輯 端口系統(tǒng)的圖示;圖3是包括邏輯交換機(jī)的本發(fā)明的通信系統(tǒng)的框圖;圖4是說明了用于向和從計(jì)算機(jī)系統(tǒng)上的多個(gè)操作系統(tǒng)分區(qū)發(fā)送包的 方法的流程圖;圖5是說明了用于管理在或從計(jì)算機(jī)系統(tǒng)中分發(fā)的多播或廣播包的本 發(fā)明的方法的流程圖;圖6是包括邏輯交換機(jī)的本發(fā)明的通信系統(tǒng)的框圖;圖7是包括邏輯交換機(jī)的本發(fā)明的通信系統(tǒng)的框圖;圖8是包括邏輯交換機(jī)的本發(fā)明的通信系統(tǒng)的框圖;圖9是用于給網(wǎng)絡(luò)包排隊(duì)的本發(fā)明的排隊(duì)系統(tǒng)的圖示;以及圖10是說明用于選擇用于包存儲(chǔ)的隊(duì)列的本發(fā)明的方法的流程圖。
      具體實(shí)施方式
      本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)中的通信,并更具體地涉及在操作系統(tǒng)分區(qū)和 計(jì)算機(jī)網(wǎng)絡(luò)之間的通信。所呈現(xiàn)的以下描述使得本領(lǐng)域技術(shù)人員能夠制造 和使用本發(fā)明,并且在專利申請及其要求的上下文中提供以下描述。這里 描述的 一般原理和特征以及對優(yōu)選實(shí)施例的各種修改對于本領(lǐng)域技術(shù)人員 將顯而易見。因此,本發(fā)明并未意在被限制為所示出的實(shí)施例,而是將符 合與這里描述的原理和特征相一致的最廣泛范圍。本發(fā)明主要根據(jù)在特定實(shí)現(xiàn)中提供的系統(tǒng)來描述。不過,本領(lǐng)域普通 技術(shù)人員將容易地認(rèn)識到,此方法和系統(tǒng)將在其它實(shí)現(xiàn)中有效工作。例如, 可與本發(fā)明一起使用的系統(tǒng)體系結(jié)構(gòu)和
      和系統(tǒng)可以有效工作于具有與本發(fā)明不一致的不同的和/或額外的步驟的 其它方法。為了更具體地描述本發(fā)明的特征,請結(jié)合以下討論來參考圖i至io。在IEEE 802.3以太網(wǎng)網(wǎng)絡(luò)協(xié)議和傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)客 戶端-服務(wù)器系統(tǒng)的上下文中描述了本發(fā)明。其它協(xié)議(諸如用戶數(shù)據(jù)報(bào)協(xié) 議(UDP))和配置可以在其它實(shí)施例中使用(例如UDP5元組可以^皮映 射到隊(duì)列)。圖1是適于與本發(fā)明一起使用的系統(tǒng)10的框圖。系統(tǒng)10是計(jì)算機(jī)系 統(tǒng),諸如服務(wù)器、大型機(jī)、臺(tái)式客戶端計(jì)算機(jī)、工作站、或其它計(jì)算機(jī)或 電子設(shè)備。在此處所述的實(shí)施例中,系統(tǒng)10—般被稱為服務(wù)器系統(tǒng)。如所 公知的,在系統(tǒng)10中提供一個(gè)或多個(gè)微處理器、存儲(chǔ)器(RAM和/或ROM ) 以及其它組件。在所述實(shí)施例中,服務(wù)器系統(tǒng)10可以經(jīng)由網(wǎng)絡(luò)連接14與多種其它計(jì) 算機(jī)系統(tǒng)12通信。計(jì)算機(jī)系統(tǒng)12可以是服務(wù)器、客戶端機(jī)器、或其它計(jì) 算機(jī)或電子設(shè)備。例如,服務(wù)器系統(tǒng)10可以使用連網(wǎng)協(xié)議(諸如以太網(wǎng)、 TCP/IP、和/或其它類型的協(xié)議)與計(jì)算機(jī)系統(tǒng)12通信。對于此處所述的若干實(shí)施例,服務(wù)器系統(tǒng)IO包括多個(gè)操作系統(tǒng)(OS) 分區(qū)16。操作系統(tǒng)可以在每個(gè)分區(qū)16中獨(dú)立運(yùn)行。例如,操作系統(tǒng)(諸 如Unix、 Linux、 IBM公司的AIX、微軟公司的Windows、蘋果計(jì)算才幾/〉 司的MacOS、或者其它操作系統(tǒng))可以各自在分區(qū)16中運(yùn)行,并且某種 類型的OS的多個(gè)實(shí)例可以在獨(dú)立分區(qū)16中運(yùn)行。每個(gè)OS分區(qū)16可以在網(wǎng)絡(luò)14上發(fā)送和接收信息,并且可以充當(dāng)數(shù) 據(jù)包在網(wǎng)絡(luò)上的源和/或目的地。例如,在分區(qū)16中運(yùn)行的OS可以在"用 戶空間"中提供服務(wù)器應(yīng)用或過程,例如將網(wǎng)頁數(shù)據(jù)提供給計(jì)算機(jī)系統(tǒng)12 和/或提供由一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)12所提交的數(shù)據(jù)庫數(shù)據(jù)或過程數(shù)據(jù)的 web服務(wù)器應(yīng)用。每個(gè)活動(dòng)分區(qū)16通過網(wǎng)絡(luò)適配器20向/從網(wǎng)絡(luò)14發(fā)送和接收數(shù)據(jù)。 適配器20處理向適當(dāng)?shù)腛S分區(qū)16提供在網(wǎng)絡(luò)上從計(jì)算機(jī)系統(tǒng)12接收的
      數(shù)據(jù)包。網(wǎng)絡(luò)適配器20也從OS分區(qū)16接收包,并控制向適當(dāng)?shù)哪康牡?發(fā)送該信息,所述目的地是網(wǎng)絡(luò)14上的計(jì)算機(jī)系統(tǒng)12或者是另一 OS分 區(qū)16。網(wǎng)絡(luò)適配器提供將進(jìn)入數(shù)據(jù)流的適當(dāng)數(shù)據(jù)發(fā)送到不同OS分區(qū)的多 路分解功能。網(wǎng)絡(luò)適配器20可以是硬件接口適配器,其提供一個(gè)或多個(gè)物 理端口 22作為到網(wǎng)絡(luò)14的硬件連接。適配器20可以包括硬件邏輯、微處 理器、存儲(chǔ)器(RAM和/或ROM)、和/或?qū)嵤┍景l(fā)明功能的其它適當(dāng)組 件,如下文更詳細(xì)描述的。適配器20可以作為被插入服務(wù)器系統(tǒng)并可從中 移除的獨(dú)立卡而提供,或者可以被并入其它服務(wù)器系統(tǒng)組件中。在其它實(shí) 施例中,適配器20的功能可以用軟件、或用硬件和軟件的組合來實(shí)施。如在整個(gè)本說明書中所描述的、可以與本發(fā)明的特征一起使用的系統(tǒng) 組件的示例可以在2005年4月1日提交的、題為"Host Ethernet Adapter for a Networking Offload in a Server Environment" ( RPS 9 2005 0059 USl/3485)的共同待決的有關(guān)于多路分解的專利申請中找到和描述,在此通過參考將其整體引入。圖2是由圖1所示的適配器20實(shí)現(xiàn)的、被提供用于使用的本發(fā)明的邏 輯端口系統(tǒng)50的圖示。在系統(tǒng)10中實(shí)現(xiàn)OS分區(qū)16,如參考圖l所描述 的。在圖2的示例中,有32個(gè)可用OS分區(qū)。在圖2中示出兩個(gè)邏輯端口 58的組54和56。本發(fā)明的邏輯端口 58 是系統(tǒng)10上的OS分區(qū)16到物理端口 22的映射。在圖2的示例中,五個(gè) 物理端口22a、 22b、 22c、 22d和22e在網(wǎng)絡(luò)適配器20上可用。這些物理 端口優(yōu)選地可以關(guān)于多少帶寬可被分配給它們中的每個(gè)而進(jìn)行配置。在圖 2的示例中,四個(gè)物理端口 22a-d各自已經(jīng)4皮分配了 1吉比特/秒,而物理 端口 22e已經(jīng)被分配了 10吉比特/秒。在其它實(shí)施例中可以4吏用其它分配; 優(yōu)選地,終端用戶能夠在需要時(shí)在網(wǎng)絡(luò)適配器20的物理限制之內(nèi)配置帶寬 分配。每個(gè)邏輯端口 58將物理端口 22映射到OS分區(qū)16之一,從而相關(guān)聯(lián) 的OS分區(qū)"擁有"該特定邏輯端口。在所示的示例中,邏輯端口58a將分 區(qū)16a中的OS2映射到物理端口 22a,邏輯端口 58b將分區(qū)16b中的OS4 映射到物理端口 22a,等等。如所示,多個(gè)邏輯端口 58可以將單個(gè)OS分 區(qū)16映射到一個(gè)或多個(gè)物理端口。因此,總共三個(gè)邏輯端口 58被示出將 OS 4映射到總共四個(gè)物理端口 22。每個(gè)物理端口和,皮分配給該物理端口的 邏輯端口由邏輯交換機(jī)進(jìn)行選擇,下文參考圖3描述。每個(gè)邏輯端口可以在 邏輯交換機(jī)上具有獨(dú)立的端口 。從在每個(gè)OS分區(qū)16上運(yùn)行的OS的視角看來,該OS獲得對可用物理 端口22的獨(dú)占使用。邏輯端口 58被建立以對OS分區(qū)透明,使得OS分區(qū) 不知道邏輯端口的虛擬化和組織,即,每個(gè)OS分區(qū)將其所分配的每個(gè)邏輯 端口看成物理端口 (對于OS,邏輯端口看上去不是特別像物理端口結(jié)構(gòu))。 OS例如看到關(guān)聯(lián)于每個(gè)邏輯端口的隊(duì)列(參考圖9描述),并且與關(guān)聯(lián)于 每個(gè)邏輯端口的資源相交互。邏輯端口 58可以械i且織為端口組,諸如端口組54和56。每個(gè)端口組 中的邏輯端口被分配給它們可以引用的物理端口的特定集合;這些物理端口 也被認(rèn)為是在該端口組中。例如,端口組54中的邏輯端口 58可以被分配給 物理端口 22a-d,而不是物理端口 22e。同樣,端口組56中的邏輯端口 58 可以^皮分配給物理端口 22e,而不是物理端口 22a-d。每個(gè)端口組54或56被指定具有N個(gè)可用邏輯端口 ,所述端口組是系 統(tǒng)管理器在配置系統(tǒng)時(shí)可以按需要命令進(jìn)行分配的資源池。每個(gè)邏輯端口可 以被分配給該端口組中的任意物理端口 。這允許用戶、系統(tǒng)管理員或程序按 照需要配置每個(gè)端口組中的資源,諸如將帶寬分布到端口組中的物理端口 、 對分區(qū)訪問的分布等等。系統(tǒng)約束(存儲(chǔ)器等)可限制每個(gè)端口組中的邏輯 端口的數(shù)量;例如,在圖2的示例中,每個(gè)端口組可被限于13個(gè)邏輯端口 。端口組54或56的使用允許為每個(gè)端口組分配大致相同的固定數(shù)量的資 源使用,諸如帶寬。例如,端口組54 (其可以具有四個(gè)1吉比特的物理端 口 )可以被限于與端口組56 (其具有一個(gè)10吉比特的物理端口 )大致相同 的帶寬資源。(其它因素也可以對于管理資源分配起作用,諸如用于更多數(shù) 量的物理端口(例如多于四個(gè)l吉比特的物理端口 )所需的i/o引腳的數(shù)量。) 在每個(gè)較小帶寬的物理端口 (例如l吉比特)上的網(wǎng)絡(luò)吞吐量優(yōu)選地不會(huì)與
      較大帶寬的端口 (例如10吉比特)上的吞吐量被共享同樣多,以減少在物 理端口處的瓶頸。因此,在圖2的示例中,在準(zhǔn)備將OS帶寬使用分布在所 有四個(gè)物理端口 22a-d之中時(shí),每個(gè)l吉比特的端口 22a-d被分配來處理最 多五個(gè)OS分區(qū)。相對地,單個(gè)10吉比特的端口 22e在端口組56中的所有 13個(gè)邏輯端口 58之間共享帶寬。每個(gè)邏輯端口 58可以被分配一個(gè)標(biāo)識值或指示,從而進(jìn)入包可以被分 配給邏輯端口 。例如, 一實(shí)施例可以向每個(gè)邏輯端口 58分配不同的々某體訪 問控制(MAC)地址以標(biāo)識邏輯端口。 MAC地址是唯一地標(biāo)識網(wǎng)絡(luò)中的 節(jié)點(diǎn)的硬件地址。由此,到達(dá)物理端口的每個(gè)包被分配給下述邏輯端口,該 邏輯端口具有的MAC地址匹配于該包中的目的地(DA) MAC地址。每個(gè)邏輯端口還可以與默認(rèn)邏輯端口隊(duì)列相關(guān)聯(lián),并使得用于傳送和接 收操作的過程排隊(duì)。這在下文參考圖9和10更詳細(xì)描述。每個(gè)邏輯端口 58優(yōu)選地具有其自己的關(guān)聯(lián)資源集合以及通常關(guān)聯(lián)于每 個(gè)物理端口 22的配置參數(shù)。這些資源和配置參數(shù)允許每個(gè)邏輯端口實(shí)施功 能,就如同它是物理端口那樣。例如,每個(gè)邏輯端口 58可以具有其自己的 管理信息庫(MIB )計(jì)數(shù)器的集合,所述計(jì)數(shù)器對由該邏輯端口所傳送和接 收的包和字節(jié)的數(shù)量、在該邏輯端口處檢測到的每種類型的錯(cuò)誤的數(shù)量等等 進(jìn)行計(jì)數(shù)。每個(gè)邏輯端口可以具有其自己的過濾表,這允許每個(gè)邏輯端口獨(dú) 立地實(shí)施過濾過程,諸如使用針對每個(gè)邏輯端口的獨(dú)立準(zhǔn)則基于包類型或者 虛擬局域網(wǎng)(VLAN)類型等過濾某些類型的包;和/或過濾多播地址。其 它過濾配置包括用于過濾以太網(wǎng)的"SNAP"幀、"JUMBO"(大型) 幀、或用于包的其它幀格式的準(zhǔn)則。配置可以包括VLAN提取配置,其允 許從iiA包的幀中提取VLAN標(biāo)志。此外,配置可以祐:設(shè)置為針對于可以 在找到檢查和錯(cuò)誤(例如針對IP或TCP協(xié)議)時(shí)采取的動(dòng)作,諸如允許包 通過,或者在沒有發(fā)現(xiàn)錯(cuò)誤的情況下不采取動(dòng)作。同樣,配置資源可以包括 對本發(fā)明的其它特征的使能設(shè)置,諸如預(yù)連接排隊(duì)(下文參考圖9描述)。邏輯端口 58允許多個(gè)OS分區(qū)共享可以在單個(gè)網(wǎng)絡(luò)適配器20上提供的 單個(gè)物理端口 22集合。通過本發(fā)明,潛在大量的OS分區(qū)(例如25個(gè))可
      以在使用數(shù)量少得多的物理端口 (例如5個(gè))之時(shí)全部訪問網(wǎng)絡(luò)。另一優(yōu)點(diǎn) 是端口組的可配置性,從而一個(gè)組的端口可以在物理級纟皮設(shè)置于例如lx 10G或4xlG的帶寬,而不會(huì)影響邏輯或級別視圖。因此,當(dāng)物理端口帶 寬分配改變時(shí),端口的OS分區(qū)視圖不需要改變。此外,OS分區(qū)可以被分 配邏輯端口,其可以出于更高效率和速度被分布,以便分布帶寬,即,每個(gè) 端口組被限于大致相同的帶寬總數(shù),從而允許快速通信,而無需為每個(gè)OS 分區(qū)提供專用網(wǎng)絡(luò)適配器和物理端口。圖3是包括邏輯交換機(jī)的本發(fā)明的通信系統(tǒng)100的框圖。OS分區(qū)16 在服務(wù)器系統(tǒng)10上提供,并被邏輯端口 58映射到端口組102。物理端口 22也被包括在端口組102中。邏輯端口 58通過邏輯交換機(jī)104連接于相關(guān)聯(lián)的物理端口 22。這些 邏輯交換機(jī)是優(yōu)選地在網(wǎng)絡(luò)適配器20中用硬件實(shí)現(xiàn)的邏輯交換機(jī),并且確 定用于由OS分區(qū)16發(fā)送和接收的包的路徑。邏輯端口和物理端口全部成 為連接到邏輯交換機(jī)的虛擬端口 ,其中邏輯交換機(jī)可以交換到這些虛擬端 口中的任一個(gè),以通過該端口發(fā)送數(shù)據(jù)或從該端口接收數(shù)據(jù)。如圖3所示,邏輯交換機(jī)104可以被提供用于網(wǎng)絡(luò)適配器的每個(gè)物理 端口 22,并且將該物理端口鏈接到關(guān)聯(lián)于該物理端口 22的邏輯端口 58。 因此,物理端口 105關(guān)聯(lián)于邏輯交換機(jī)108,邏輯交換機(jī)108連接到邏輯 端口 109a-c和分區(qū)112、 114和116。同樣地,物理端口 106關(guān)聯(lián)于邏輯交 換才幾110,邏輯交換機(jī)110連接到邏輯端口 llla-c和分區(qū)118、 120和122。外部交換機(jī)124可以耦合于物理端口 22,以在網(wǎng)絡(luò)14和物理端口之 間進(jìn)行接口 。此交換機(jī)是典型在網(wǎng)絡(luò)適配器20和系統(tǒng)10外部的硬件組件。 例如,外部交換機(jī)124可以將進(jìn)入包路由到適當(dāng)?shù)奈锢矶丝?(例如,其保 持目的地MAC地址到端口的表),以及可以將從所有物理端口輸出的包 路由到網(wǎng)絡(luò)14。外部交換機(jī)124可以是層2或?qū)?外部交換機(jī),或者處理 這兩層。邏輯交換機(jī)104不僅可以將進(jìn)入包發(fā)送到正確的OS分區(qū)16以及將外 出包從OS分區(qū)16發(fā)送到相關(guān)聯(lián)的物理端口,而且可以將適當(dāng)?shù)陌鼜囊粋€(gè) OS分區(qū)16發(fā)送到同一服務(wù)器系統(tǒng)IO中的一個(gè)或多個(gè)其它OS分區(qū)16。 當(dāng)一個(gè)包將在內(nèi)部從一個(gè)OS分區(qū)^L^送到另一 OS分區(qū)時(shí),在此被稱為 "返轉(zhuǎn)(wrap)"路徑,這指示出該包在服務(wù)器中返轉(zhuǎn)。"非返轉(zhuǎn)"路徑 是其中在OS分區(qū)和外部網(wǎng)絡(luò)14之間傳送包的路徑。因此,邏輯交換機(jī)104 可以在服務(wù)器系統(tǒng)IO和外部網(wǎng)絡(luò)之間路由包,如路徑128所指示的;在位 于同一邏輯交換機(jī)104的兩個(gè)OS分區(qū)之間路由包,如路徑130所指示的; 以及在位于不同邏輯交換機(jī)的兩個(gè)OS分區(qū)之間路由包,如路徑132所指 示的。路徑132示出了兩個(gè)邏輯交換機(jī)18之間的路徑可以通過適當(dāng)?shù)奈锢?端口 22以及通過外部交換機(jī)124。圖4是說明了用于向和從服務(wù)器系統(tǒng)上的多個(gè)OS分區(qū)發(fā)送包的方法 200的流程圖。此過程是當(dāng)網(wǎng)絡(luò)適配器20獲得來自O(shè)S分區(qū)16、通過物理 端口 22來自網(wǎng)絡(luò)14、或者來自多播/廣播管理器(以下描述)的信息包時(shí) 來自網(wǎng)絡(luò)適配器20的視角。因此,過程200描述了被傳送到網(wǎng)絡(luò)的包以及 從網(wǎng)絡(luò)接收的包。本領(lǐng)域普通技術(shù)人員將理解,此過程可以被分為兩個(gè)不 同過程, 一個(gè)用于將包傳送到網(wǎng)絡(luò)14,以及一個(gè)用于從網(wǎng)絡(luò)和返轉(zhuǎn)路徑接 收包。所述方法優(yōu)選地用硬件實(shí)現(xiàn),諸如邏輯電路和門、處理器等,但可 替換地可以用軟件或軟件和硬件的組合來實(shí)現(xiàn)。所述方法開始于202,并且在步驟204中,在網(wǎng)絡(luò)適配器20處獲得包。 在一種情形中,包從OS分區(qū)16或服務(wù)器系統(tǒng)的多播/廣播管理器(以下 描述)獲得,用于跨網(wǎng)絡(luò)14進(jìn)行傳送或傳送到另一OS分區(qū)16。在另一種 情形中,包通過網(wǎng)絡(luò)適配器的物理端口 22經(jīng)由網(wǎng)絡(luò)14從計(jì)算機(jī)系統(tǒng)12 或其它設(shè)備獲得(接收)。在步驟206,所述過程檢查與所接收的包一起獲得的包控制描述符, 以確定包的狀態(tài)。在所述實(shí)施例中,包控制描述符可以具有三個(gè)可能值之 一,其中每個(gè)值指示出包的不同狀態(tài)。 一個(gè)值指示出包具有"正常"狀態(tài), 即,所述包尚未被修改用于與本發(fā)明一起使用。這一類包被OS分區(qū)16正 常發(fā)送出或在網(wǎng)絡(luò)14上^J^送/接收。第二值指示出該包具有"擠出(force out)"狀態(tài),即,所述包已經(jīng)被修改用于與本發(fā)明一起使用(如圖5中詳
      細(xì)描述的),以便自動(dòng)凈議送出網(wǎng)絡(luò)適配器的物理端口 22。第三值指示出 該包具有"再循環(huán)(recirculate),,狀態(tài),即,所述包已經(jīng)被 修改(如圖5 中詳細(xì)描述的),以便自動(dòng)被返轉(zhuǎn)到服務(wù)器系統(tǒng)IO中的OS分區(qū)16。在步驟208,所述過程確定所述包是具有正常狀態(tài)還是非正常狀態(tài)。 如果所述包是正常包,則所述過程繼續(xù)到步驟210,其中所述過程檢查所 述包是單播(UC)包還是多播(MC) /廣播(BC)包。如所公知的,單 播包具有單個(gè)指定目的地,多播包具有多個(gè)指定目的地,而廣播包將^J^ 送到所有可用目的地。如果所述包是UC包,則所述過程繼續(xù)到步驟212, 其中所述過程檢查所述包的目的地(DA) MAC地址是否指示出所述包是 應(yīng)該被發(fā)送到內(nèi)部目的地,諸如服務(wù)器10的OS分區(qū)16,還是應(yīng)該經(jīng)由物 理端口22被傳送出網(wǎng)絡(luò)。所述包的目的地可以從該MAC地址確定。系統(tǒng) IO的每個(gè)邏輯端口 58已經(jīng)被分配了 MAC地址;因此,在經(jīng)由物理端口 22從網(wǎng)絡(luò)接收到包時(shí),將所獲得的包的DA MAC與關(guān)聯(lián)于接收了該包的 物理端口的邏輯交換機(jī)的每個(gè)邏輯端口的每個(gè)MAC進(jìn)行比較。如果所述包將^皮發(fā)送到內(nèi)部目的地,則所述過程繼續(xù)到步驟214,其 中所述包例如在內(nèi)部凈iL^送到位于下述邏輯端口的OS分區(qū)16,所述邏輯 端口具有在所述包中發(fā)現(xiàn)的目的地地址MAC。如上所述,目的地MAC地 址被用于找到具有被映射到所想要的OS分區(qū)的相同MAC地址的邏輯端 口 58。當(dāng)所述包處在返轉(zhuǎn)路徑上時(shí),即,它從OS分區(qū)或MC/BC管理器 獲得,并^J^送到不同的OS分區(qū),則所述包被注入網(wǎng)絡(luò)適配器20的接收 端多路分解邏輯,就好像所述包立即從網(wǎng)絡(luò)和物理端口接收到一樣。接著 所述過程在218完成。如果在步驟212所述包未在內(nèi)部,iC^送,即,所述包將在網(wǎng)絡(luò)上進(jìn)行 傳送,則在步驟216,所述包從適當(dāng)?shù)奈锢矶丝?22輸出,以在網(wǎng)絡(luò)14上 凈^送到目的地。如上所述,所述包通過關(guān)聯(lián)于下述端口組的物理端口 22 被發(fā)送出,所述端口組包括在步驟204從其獲得所述包的OS分區(qū)的邏輯 端口。接著所述過程在218完成。如果在步驟210發(fā)現(xiàn)所述包是多播或廣播(MC/BC)包,則所述過程
      繼續(xù)到步驟220,其中所述包從網(wǎng)絡(luò)適配器20發(fā)送到服務(wù)器系統(tǒng)10的內(nèi) 部MC/BC管理器。如果在步驟204 OS分區(qū)16提供包,則所述包在返轉(zhuǎn) 路徑上被發(fā)送到網(wǎng)絡(luò)適配器20的接收端多路分解邏輯,就好像所述包立即 從網(wǎng)絡(luò)接收到,并跟隨到MC/BC管理器的多路分解流。所述過程接著在 218完成。MC/BC管理器可以是在服務(wù)器系統(tǒng)10上提供的軟件過程,并 且可以比使用硬件更慢,但是由于MC或BC包典型地只占所有網(wǎng)絡(luò)流量 的很小百分比,所以這不會(huì)顯著降低系統(tǒng)性能。下文參考圖5描述了 MC/BC管理器當(dāng)接收包時(shí)的過程。如果在步驟208發(fā)現(xiàn)所接收的包不具有正常狀態(tài),則所述包從MC/BC 管理器獲得。MC/BC管理器已經(jīng)修改了在步驟220的之前迭代中被發(fā)送到 它的包的狀態(tài),這是通過修改所述包的包控制描述符,或者M(jìn)C/BC管理 器已經(jīng)創(chuàng)建了具有非正常狀態(tài)的復(fù)制包,如下文參考圖5描述的。所述過 程200在步驟222檢查所述包控制描述符,以確定所接收的非正常包具有 "擠出"狀態(tài)還是"再循環(huán)"狀態(tài)。如果所述包是擠出包,則所述過程繼 續(xù)到步驟224,其中所述包經(jīng)由物理端口被傳送出到網(wǎng)絡(luò)14,以祐發(fā)送到 由其多播/廣播MAC地址所指示的目的地,即,此包已被MC/BC管理器 指定發(fā)送到外部。接著所述過程在218完成。如果在步驟222所述包是再循環(huán)包,則所述過程繼續(xù)到步驟226,其 中所述包被發(fā)送到由伴隨所述包的目的地標(biāo)志所指示的內(nèi)部邏輯端口 (所 述標(biāo)志優(yōu)選地與包分離)。所述標(biāo)志和包控制描述符與被返轉(zhuǎn)的包一起沿 著內(nèi)部返轉(zhuǎn)路徑被傳遞到接收端多路分解邏輯。所述目的地標(biāo)志被MC/BC 管理器添加到所述包,以提供指向所述包將被路由到的內(nèi)部邏輯端口 58 的指針,并且由此適配器20在此步驟中忽略所述包的DAMAC地址,并 將所述包路由到位于在所述標(biāo)志中指定的邏輯端口的OS分區(qū)。接著所述 過程在218完成。在本發(fā)明中對目的地標(biāo)志的使用允許所述包的初始DA MAC地址在包中保持未4I"改,從而允許所述包的DA MAC地址被需要它 的任意其它之后的網(wǎng)絡(luò)過程所使用,這是當(dāng)前實(shí)現(xiàn)的重要優(yōu)點(diǎn)。圖5是說明了用于管理在或從服務(wù)器系統(tǒng)10中分發(fā)的多播或廣播包的
      本發(fā)明的方法250的流程圖。此方法優(yōu)選地由MC/BC管理器(圖7中示 出)實(shí)施,其由服務(wù)器系統(tǒng)10的軟件實(shí)現(xiàn),并且其可以與網(wǎng)絡(luò)適配器20 進(jìn)行接口。所述方法在252開始,并且在步驟254中,MC/BC包由MC/BC管理 器從網(wǎng)絡(luò)適配器20接收。在圖4的方法200的步驟220中由適配器將 MC/BC包發(fā)送到管理器。多播或廣播包具有指示出該包的該MC或BC 狀態(tài)的MAC地址。在步驟256,所述過程檢查此包是否將被返轉(zhuǎn)到MC/BC 管理器駐留在其中的系統(tǒng)10的OS分區(qū)16。由于MC或BC包將祐發(fā)送 到多個(gè)目的地,管理器可以檢查所有的目的地。在此確定中,MC/BC管理 器檢查任何其余的OS分區(qū)是否需要接收所述包或者最初接收的包的副本。 廣播包將總是需要被返轉(zhuǎn)以及在網(wǎng)絡(luò)14上從物理端口輸出到可用目的地; 按照需要,返轉(zhuǎn)或外部傳送均可以被首先實(shí)施(被復(fù)制的包將最終被發(fā)送 到所有目的地,如下所述)。取決于由多播MAC提供的指定目的地(MC 目的地通過使用所維護(hù)的針對具體MC地址進(jìn)行登記的分區(qū)的數(shù)據(jù)庫來確 定),多播包可能需要被返轉(zhuǎn)到一個(gè)或多個(gè)內(nèi)部OS分區(qū),和/或被傳送到 外部目的地。如果管理器所接收的包由OS分區(qū)16在內(nèi)部發(fā)出,則管理器將總是把 包發(fā)送出以被傳送到網(wǎng)絡(luò)。適配器20的傳送端邏輯將包提供給管理器。管 理器通過比較所述包的源MAC以及系統(tǒng)10的內(nèi)部MAC并找到匹配而知 道所述包在內(nèi)部發(fā)出;在此情形中,所述管理器將總是把包發(fā)送出物理端 口,并且該包的特定外部目的地稍后被確定(例如,通過外部交換機(jī);管 理器在系統(tǒng)10內(nèi)部,并且不知道哪些特定的外部目的地應(yīng)該接收多播包)。 不過,如果管理器并未將所述包的源MAC匹配于系統(tǒng)10的內(nèi)部MAC之 一,則它知道所述包從網(wǎng)絡(luò)14接收,并通過適配器20的接收端多路分解 邏輯,并且它將不會(huì)發(fā)送出任何包以被傳送到外部網(wǎng)絡(luò)。如果對于此包的拷貝將不實(shí)施返轉(zhuǎn),則所述過程繼續(xù)到步驟258,其 中管理器通過把適當(dāng)值寫入所述包的包控制描述符中而將包的狀態(tài)設(shè)為 "擠出"。接著所述過程繼續(xù)到步驟260,其中管理器將所述包發(fā)送到網(wǎng) 絡(luò)適配器20。如上所述,在方法200的步驟204網(wǎng)絡(luò)適配器接收包,并且 將其發(fā)送出物理端口 22。如果對于此包將實(shí)施返轉(zhuǎn),則所述過程繼續(xù)到步驟262,其中管理器 通過把適當(dāng)值寫入所述包的包控制描述符中而將包的狀態(tài)設(shè)為"再循環(huán)"。 此外,管理器添加再循環(huán)標(biāo)志以伴隨所述包,其中所述標(biāo)志包括對所述包 將被發(fā)送到的邏輯端口的指定。這允許網(wǎng)絡(luò)適配器20通過讀取不同于 MAC地址的信息而將再循環(huán)包路由到邏輯端口,從而允許所述包的初始 多播MAC地址保持為未修改。接著所述過程繼續(xù)到步驟260,其中管理 器將所述包(以及標(biāo)志)發(fā)送到網(wǎng)絡(luò)適配器20。在步驟258或步驟262之后,步驟264被實(shí)施,其中所述過程檢查是 否存在要發(fā)送的包的另 一拷貝。由于多播和廣播包將凈議送到多個(gè)目的地, MC/BC管理器確定哪些目的地被指定,并且在此步驟檢查是否存在任何目 的地尚未被發(fā)送包的副本。如果存在要發(fā)送的另一個(gè)包,則在步驟266, 管理器復(fù)制初始接收的包,并且所述過程返回步驟256,以便在將已復(fù)制 包發(fā)送到網(wǎng)絡(luò)適配器20用于正確路由之前相應(yīng)地修改已復(fù)制包。如果在步 驟264不存在需要被發(fā)送的任何復(fù)制包,則所述過程在268完成。在所述 實(shí)施例中,MC/BC管理器不需要復(fù)制擠出包,因?yàn)橥獠拷粨Q機(jī)124可以復(fù) 制將在網(wǎng)絡(luò)上被發(fā)送到外部目的地的包。應(yīng)該注意,在其它實(shí)施例中,所述步驟可以用不同于在過程250中所 示出的順序來實(shí)施。例如,管理器可以創(chuàng)建所接收包的副本,并在緩沖器 中保持所有已復(fù)制包,直到所有包都經(jīng)由步驟258和/或262進(jìn)行準(zhǔn)備為止, 并且接著在類似于步驟260的步驟中將它們?nèi)苛⒖贪l(fā)送到網(wǎng)絡(luò)適配器。圖6是說明了如上參考圖4所述的單播(UC)包流的本發(fā)明的系統(tǒng) 300的框圖。被示為以太網(wǎng)適配器的網(wǎng)絡(luò)適配器20包括邏輯交換機(jī)302, 其引用邏輯端口 304a-c以及物理端口 306。 OS分區(qū)308、 310和312耦合 于邏輯端口 304a-c。在一個(gè)示例中,分區(qū)308、 310和312可以與網(wǎng)絡(luò)14 上的計(jì)算機(jī)系統(tǒng)324和326在相同子集上。例如,分區(qū)308可以具有MAC 地址11以及TCP/IP地址9.1.1.1,分區(qū)310可以具有MAC地址12以及 TCP/IP地址9.1.1.2,分區(qū)312可以具有MAC地址13以及TCP/IP地址 9.1.1.3,計(jì)算機(jī)系統(tǒng)324可以具有MAC地址31以及TCP/IP地址9.1.1.13, 以及計(jì)算機(jī)系統(tǒng)326可以具有MAC地址41以及TCP/IP地址9.1.1.14。在返轉(zhuǎn)由OS分區(qū)傳送的包的示例中,分區(qū)308在路徑318上發(fā)送出 正常的單播包,并且所述包一旦由網(wǎng)絡(luò)適配器20的邏輯交換機(jī)302接收就 進(jìn)行UC目的地MAC地址查找過程212a。在以上圖4的步驟212中描述 了UCMAC查找。MAC查找指示出所述包應(yīng)該被返轉(zhuǎn),于是所述包被邏 輯交換機(jī)發(fā)送,以在路徑318上繼續(xù)到達(dá)目的地,所述目的地是經(jīng)由邏輯 端口 304b到達(dá)的OS分區(qū)310。如果分區(qū)310發(fā)出具有目的地為分區(qū)308 的正常單播包,則在反方向?qū)l(fā)生類似過程。在非返轉(zhuǎn)包傳送或接收的不同示例中,分區(qū)312在路徑320上發(fā)送出 正常UC包,并且所述包一旦由邏輯交換機(jī)302接收就類似地進(jìn)行UC目 的地MAC地址查找過程212b。 MAC查找指示出所述包應(yīng)該^J^送出外 部,于是邏輯交換機(jī)在路徑320上將所述包發(fā)送通過物理端口 306、通過 外部交換機(jī)322、以及到達(dá)目的地計(jì)算機(jī)系統(tǒng)324。如果計(jì)算機(jī)系統(tǒng)324 發(fā)出由網(wǎng)絡(luò)適配器20通過物理端口 306接收的正常單播包,則在反方向?qū)?發(fā)生類似過程;所述包將進(jìn)行位于邏輯交換機(jī)的DAMAC查找,并通過邏 輯端口被提供給其目的地,例如通過邏輯端口 304c到達(dá)分區(qū)312。圖7是"^兌明了如上參考圖4和5所述的多播/廣4番(MC/BC)包外出 流(傳送)的本發(fā)明的系統(tǒng)350的框圖。被示為以太網(wǎng)適配器的網(wǎng)絡(luò)適配 器20包括邏輯交換機(jī)302,其引用邏輯端口 304a-c以及物理端口 306。 OS 分區(qū)308、 310和312耦合于邏輯端口 304a-c。在一個(gè)示例中,分區(qū)308、 310和312可以與網(wǎng)絡(luò)14上的計(jì)算機(jī)系統(tǒng)324和326在相同子集上,類似 于以上對于圖6所描述的那樣。在此示例中,包的外出流從OS分區(qū)提供給其它目的地。分區(qū)308在 路徑352上發(fā)送出正常的MC或BC包,并且所述包一旦由邏輯交換機(jī)302 接收就進(jìn)行MC目的地MAC地址檢查210a,如以上圖4的步驟210中描 述的。MAC檢查指示出所述包為MC或BC包,于是所述包在路徑352
      上被發(fā)送到在服務(wù)器系統(tǒng)10中實(shí)現(xiàn)的MC/BC管理器354。MC/BC管理器354確定所述包的目的地,產(chǎn)生復(fù)制包,改變包描述符, 以及添加再循環(huán)標(biāo)志,如上文參考圖5所描述的。在此示例中,管理器354 已確定所述包是具有三個(gè)目的地的MC包,并且四個(gè)包將被發(fā)送出去兩 個(gè)返轉(zhuǎn)到OS分區(qū),兩個(gè)發(fā)送到外部目的地。因此,管理器354在路徑358 上發(fā)送出再循環(huán)MC包以及再循環(huán)標(biāo)志356到適配器20,所述適配器20 讀取標(biāo)志356以找到邏輯端口 304c,并將所述包返轉(zhuǎn)到分區(qū)312。類似地, 管理器354在路徑362上發(fā)送出再循環(huán)MC包以及再循環(huán)標(biāo)志360到適配 器20,所述適配器20讀取標(biāo)志360以找到邏輯端口 304b,并將所述包返 轉(zhuǎn)到分區(qū)310。管理器354還在路徑364上發(fā)送出擠出MC包到適配器20, 所述適配器20將這些包發(fā)送出物理端口 306并通過外部交換機(jī)322。外部 交換機(jī)322復(fù)制所述包,從而通過網(wǎng)絡(luò)14所述包的副本之一,皮提供給外部 計(jì)算機(jī)系統(tǒng)324,另一副本;f皮提供給外部計(jì)算機(jī)系統(tǒng)326。圖8是說明了如上參考圖4和5所述的多播/廣播(MC/BC)包進(jìn)入 流(接收)的本發(fā)明的系統(tǒng)370的框圖。被示為以太網(wǎng)適配器的網(wǎng)絡(luò)適配 器20包括邏輯交換機(jī)302,其引用邏輯端口 304a-c以及物理端口 306。 OS 分區(qū)308、 310和312耦合于邏輯端口 304a-c。與上文類似,在一個(gè)示例中, 分區(qū)308、 310和312可以與網(wǎng)絡(luò)14上的計(jì)算機(jī)系統(tǒng)324和326在相同子 集上。在此示例中,來自外部目的地(諸如計(jì)算機(jī)系統(tǒng)326)的包的進(jìn)入流 被提供給內(nèi)部OS分區(qū)。計(jì)算機(jī)系統(tǒng)326在路徑372上發(fā)送出正常的MC 或BC包,并且在適當(dāng)時(shí)外部交換機(jī)322將所述包的一個(gè)拷貝發(fā)送到網(wǎng)絡(luò) 14上的其它目的地,諸如外部計(jì)算機(jī)系統(tǒng)324。交換機(jī)322將另一個(gè)包拷 貝通過物理端口 306發(fā)送到系統(tǒng)10,并且所述包在路徑374上被路由到邏 輯交換機(jī)。所述包一旦由邏輯交換機(jī)302接收就進(jìn)行MC目的地MAC地 址檢查210a,如以上圖4的步驟210中描述的。MAC檢查指示出所述包 為MC或BC包,于是所述包在路徑374上#1發(fā)送到MC/BC管理器354。MC/BC管理器354確定所述包的目的地,產(chǎn)生復(fù)制包,改變包描述符,
      以及添加再循環(huán)標(biāo)志,如上參考圖5所描述的。在此示例中,管理器354 已確定所述包是具有三個(gè)內(nèi)部目的地的MC包,并且該三個(gè)包將被發(fā)送到 內(nèi)部OS分區(qū)。因此,管理器354在路徑378上發(fā)送出再循環(huán)MC包以及 再循環(huán)標(biāo)志376到適配器20,所述適配器20讀取標(biāo)志376以找到邏輯端 口 304c,并將所述包返轉(zhuǎn)到分區(qū)312 (從管理器354到內(nèi)部OS分區(qū)的路 徑也被稱為"返轉(zhuǎn)")。類似地,管理器354在路徑382上發(fā)送出再循環(huán) MC包以及再循環(huán)標(biāo)志380,其^皮返轉(zhuǎn)到邏輯端口 304b以及分區(qū)310,以 及管理器354在路徑386上發(fā)送出再循環(huán)MC包以及再循環(huán)標(biāo)志384,其 被返轉(zhuǎn)到邏輯端口 304a以及分區(qū)308。圖9是用于給網(wǎng)絡(luò)包排隊(duì)的本發(fā)明的排隊(duì)系統(tǒng)400的圖示。服務(wù)器系 統(tǒng)10可以包括隊(duì)列集合,其用于保有將由OS分區(qū)內(nèi)核接收、或者直接由 每個(gè)OS分區(qū)的用戶空間中的應(yīng)用/過程接收的包,以及用于保有將由分區(qū) 或用戶空間過程傳送到物理端口 22的包。下述隊(duì)列可以在系統(tǒng)10的主存 儲(chǔ)器中實(shí)現(xiàn),其可以由網(wǎng)絡(luò)適配器20訪問以在隊(duì)列中存儲(chǔ)包,以及由協(xié)議 棧和設(shè)備驅(qū)動(dòng)程序訪問以從隊(duì)列中檢索包。在系統(tǒng)400中包括的笫一類隊(duì)列是連接隊(duì)列402。這些隊(duì)列提供用于 被發(fā)送到在服務(wù)器系統(tǒng)的用戶空間中的過程404的包的緩沖區(qū),以及從過 程404通過網(wǎng)絡(luò)發(fā)送到目的地(諸如其它過程、OS分區(qū)或外部計(jì)算機(jī)系統(tǒng)) 的包的緩沖區(qū)。用戶空間是提供下述過程的OS分區(qū)中的軟件空間,在所 述過程中應(yīng)用運(yùn)行,并且應(yīng)用通過網(wǎng)絡(luò)連接與網(wǎng)絡(luò)14通信。典型在OS的 內(nèi)核中運(yùn)行的某些或全部TCP/IP棧被遷移到每個(gè)用戶空間,并且具有其 自己的連接隊(duì)列。這允許高效率,因?yàn)閷τ谠S多TCP/IP發(fā)送和接收操作, 內(nèi)核可以被繞過。到用戶空間中的過程/應(yīng)用404的每個(gè)網(wǎng)絡(luò)連接具有其自 己的用于存儲(chǔ)包的連接隊(duì)列402。例如,當(dāng)接收到TCP/IP包時(shí),TCP/IP 棧過程可以在連接直接表中查找連接信息,以找到連接隊(duì)列號,從而所接 收的包可以被放置在適當(dāng)?shù)倪B接隊(duì)列中并最終由所述棧處理。從隊(duì)列中的 包處理的信息凈皮發(fā)送到用戶空間中的過程(例如每個(gè)過程中的應(yīng)用)。所 接收的包被網(wǎng)絡(luò)適配器20中的硬件指引到正確的隊(duì)列(在2005年4月1 日提交的題為"Host Ethernet Adapter for a Networking Offload in a Server Environment" (RPS 9 2005 0059 US1/3485 )的相關(guān)專利申請中描 述),并且接著用戶空間中的TCP棧接管了對訪問隊(duì)列的控制。在一個(gè)示例中,連接隊(duì)列可以最佳地適于長時(shí)間連接,其中不期望出 現(xiàn)IP包的碎片,并且期望低等待時(shí)間。用戶空間應(yīng)用或過程可以利用用戶 -空間套接字庫(user-space socket library ),其支持由網(wǎng)絡(luò)適配器10提供 的連接排隊(duì)機(jī)制。在系統(tǒng)400中包括的第二類隊(duì)列是默認(rèn)邏輯端口 (LP)隊(duì)列406。這 些隊(duì)列提供用于^L1送到服務(wù)器系統(tǒng)10的OS分區(qū)16的內(nèi)核408的包的 緩沖區(qū)。向每個(gè)OS分區(qū)16提供其自己的默認(rèn)LP隊(duì)列406,從而每個(gè)默 認(rèn)LP隊(duì)列可以關(guān)聯(lián)于與期望的OS分區(qū)相關(guān)聯(lián)的單個(gè)邏輯端口 58。因此, 每個(gè)邏輯端口通過其自己的默認(rèn)隊(duì)列對應(yīng)于邏輯以太網(wǎng)接口。典型地,默 認(rèn)LP隊(duì)列中的包被相關(guān)聯(lián)的操作系統(tǒng)的內(nèi)核408所處理,即,操作系統(tǒng) 的內(nèi)核連網(wǎng)棧處理用于該操作系統(tǒng)的默認(rèn)隊(duì)列406。在本發(fā)明中,如果對 于包的MAC地址未使能預(yù)連接查找(預(yù)連接查找使能可以是可由系統(tǒng)管 理器或操作者配置的邏輯端口配置資源之一),或者如果包為再循環(huán)多播/ 廣播包,則當(dāng)對于包無法找到連接隊(duì)列402時(shí),默認(rèn)LP隊(duì)列406存儲(chǔ)所 述包,如下文參考圖10更詳細(xì)描述的。默認(rèn)LP隊(duì)列406 (以及下述的特殊默認(rèn)隊(duì)列410)中的每一個(gè)可以被 分配屬性,類似于上文參考圖2描述的、邏輯端口 58可以被分配屬性的方 式。例如,對每個(gè)隊(duì)列的過濾可以被使能或禁用。屬性可以具有相同格式, 用以進(jìn)行配置以允許更容易的包管理。由于所述配置在隊(duì)列類型之間相同, 還可以共享某種^/f牛邏輯。在系統(tǒng)400中包括的第三類隊(duì)列是特殊默認(rèn)隊(duì)列410。這些隊(duì)列;故用 于存儲(chǔ)未被存儲(chǔ)在其它可用隊(duì)列中的包。在本發(fā)明中,提供了三種特殊默 認(rèn)隊(duì)列單播默i人隊(duì)列412、多播默認(rèn)隊(duì)列414、以及廣播默認(rèn)隊(duì)列416。 當(dāng)針對包無法找到默認(rèn)LP隊(duì)列406時(shí),單播默認(rèn)隊(duì)列412存儲(chǔ)所述包。 多播默認(rèn)隊(duì)列414以及廣播默認(rèn)隊(duì)列416分別存儲(chǔ)多播和廣播包,所述包 不匹配(位于網(wǎng)絡(luò)適配器20的硬件中的)MAC查找表中的MAC地址之 一,或者所述包是再循環(huán)的。這些在下文參考圖IO更詳細(xì)描述。以上列舉的每類隊(duì)列優(yōu)選地關(guān)聯(lián)于在網(wǎng)絡(luò)適配器20上提供的每個(gè)物 理端口。因此,每個(gè)物理端口優(yōu)選地具有連接隊(duì)列402的集合、關(guān)聯(lián)于針 對該物理端口的邏輯端口 58的默認(rèn)LP隊(duì)列406的集合、以及特殊默i人隊(duì) 列410的集合。圖10是說明用于選擇用于包存儲(chǔ)的隊(duì)列的本發(fā)明的方法450的流程 圖。此方法由網(wǎng)絡(luò)適配器20上的硬件所實(shí)現(xiàn),針對從網(wǎng)絡(luò)14中或在返轉(zhuǎn) 路徑上接收的包??商鎿Q地,其可以用軟件和/或服務(wù)器系統(tǒng)10的不同組 件來實(shí)現(xiàn)。所述方法開始于452,并且在步驟454,由網(wǎng)絡(luò)適配器從網(wǎng)絡(luò)14中或 經(jīng)由內(nèi)部返轉(zhuǎn)路徑接收包。在步驟456,所述過程檢查其是否是再循環(huán)包, 即,已經(jīng)被MC/BC管理器354指定用于返轉(zhuǎn)路徑的包,如上文參考圖4 和5所描述的。再循環(huán)包已經(jīng)被管理器處理,并由此可以,iL良送到其目的 地;因此,如果所述包是再循環(huán)包,則所述過程繼續(xù)到步驟470,以在默 認(rèn)LP隊(duì)列中存儲(chǔ)包,如下所述。如果所述包不是再循環(huán)包,則在步驟457 所述過程檢查所述包是單播(UC)包還是多播(MC) /廣播(BC)包。 這可以例如從所述包的MAC地址中確定。如果所述包是MC/BC包,則 在步驟458所述過程分別在關(guān)聯(lián)于接收了所述包的物理端口的特殊默認(rèn) MC/BC隊(duì)列414或416中存儲(chǔ)包。所述過程接著在460完成。默i人MC 和BC隊(duì)列414和416中的包最終^皮提供給MC/BC管理器354用于處理, 如上文參考圖5所描述的。如果所述包已經(jīng)到達(dá)專用于單個(gè)OS分區(qū)的物 理端口上,則MC和BC隊(duì)列中的包可以被提供給中央OS隊(duì)列,例如, 用于該分區(qū)的默j人LP隊(duì)列406。如果在步驟457確定所述包是UC包,則所述過程繼續(xù)到步驟462, 其中實(shí)施連接查找。(在一實(shí)現(xiàn)中,即使存儲(chǔ)在連接隊(duì)列中,也可以實(shí)施 對邏輯端口的MAC地址查找,例如可以實(shí)施6元組查找,其中第6元組 是邏輯端口號;這允許相同的5元組連接信息在每個(gè)邏輯端口 58上出現(xiàn)且 不會(huì)重疊。)在所述實(shí)施例中,適配器20上的硬件采用包中的連接信息的 2元組、3元組或5元組模式,并且當(dāng)連接成為可用或被建立時(shí)嘗試將該模 式與存儲(chǔ)在連接表中的連接信息相匹配。所述方法的一實(shí)施例在2005年4 月 1 日提交的題為 "Method and Apparatus for Providing a Network Connection Table" (RPS920050061US1/3487 )的共同待決的專利申請中 描述,在此通過參考將其整體引入。在下一步驟464,所述過程檢查是否找到對于連接查找的匹配。例如, 是否在連接表中找到匹配的連接信息模式。如果是,則所述過程在關(guān)聯(lián)于 匹配連接的連接隊(duì)列中存儲(chǔ)所述包。例如,引用所想要的連接隊(duì)列的多個(gè) 指針可以與匹配的連接信息一起被存儲(chǔ)在連接表中。所述包可以最終從連 接隊(duì)列中進(jìn)行處理,并被提供給適當(dāng)?shù)挠脩艨臻g中的過程404。接著所述 過程在460完成。如果在步驟464未找到對于所述包的匹配模式(或者如果對于所述包 中的MAC地址未使能預(yù)連接排隊(duì)),則所述過程在步驟468檢查是否找 到對于所述包的默認(rèn)LP隊(duì)列。如上所述,每個(gè)邏輯端口 58都具有相關(guān)聯(lián) 的默認(rèn)LP隊(duì)列406。通過實(shí)施在邏輯端口 MAC地址(如上所述,每個(gè)邏 輯包58被分配了 MAC地址)的列表或表中對所述包的目的地MAC地址 的查找,確定默認(rèn)隊(duì)列。因此,在此步驟中,如果邏輯端口的MAC地址 匹配所述包中的目的地MAC地址,則在步驟470所述過程在該邏輯端口 的默認(rèn)LP隊(duì)列406中存儲(chǔ)包,并且所述過程在460完成。在默認(rèn)LP隊(duì)列 406中的包被路由到關(guān)聯(lián)于這些隊(duì)列的OS分區(qū)16的內(nèi)核連網(wǎng)棧。如果沒有找到對于所述包的默認(rèn)LP隊(duì)列406,則所述過程繼續(xù)到步驟 472,以在關(guān)聯(lián)于接收了所述包的物理端口的特殊默認(rèn)UC隊(duì)列412中存儲(chǔ) 所述包(如果特殊隊(duì)列412被使能的話),并且所述過程在460完成。一 個(gè)包可能并非意在發(fā)送到系統(tǒng)10的邏輯端口 58和MAC地址中的任一個(gè), 并因此該包將不會(huì)匹配已配置邏輯端口 MAC地址中的任一個(gè);因此,它 可以被存儲(chǔ)在默認(rèn)隊(duì)列412中。例如,如果系統(tǒng)處于"混雜模式 (promiscuous mode)"或具有"檢漏(sniffer)"功能,其中所傳送的
      每個(gè)數(shù)據(jù)包可以被網(wǎng)絡(luò)適配器接收和讀取,例如以便監(jiān)視網(wǎng)絡(luò)活動(dòng),從而針對其它目的地的包以及意在發(fā)送到系統(tǒng)10的包都被分析,則上述內(nèi)容可 能出現(xiàn)?;蛘?,如果由系統(tǒng)IO實(shí)現(xiàn)網(wǎng)絡(luò)橋接功能,其中網(wǎng)絡(luò)14被連接到 另一網(wǎng)絡(luò),并且每個(gè)包被分析以確定它是被傳遞到網(wǎng)絡(luò)14中的目的地、還 是被轉(zhuǎn)發(fā)到已知在另一互連網(wǎng)絡(luò)上的目的地,則上述內(nèi)容可能出現(xiàn)。默認(rèn)UC隊(duì)列412是可選的,從而在其它實(shí)施例中,或者如果隊(duì)列412 被禁用,則不實(shí)施步驟472;相反,如果沒有找到對于所述包的默認(rèn)LP 隊(duì)列,則所述包被丟棄。例如,如果"混雜模式"被禁用,則特殊隊(duì)列412 可能被禁用。本發(fā)明的方法450允許兩種極端情況之間的靈活性,即,對于每個(gè)連 接排隊(duì)以及對于每個(gè)邏輯端口排隊(duì)(OS隊(duì)列)。在本發(fā)明中,這兩種模型 可以與具有其自己的排隊(duì)的某些連接以及通過默認(rèn)邏輯端口隊(duì)列進(jìn)行排隊(duì) 的某些連接一起工作。方法450還提供了多個(gè)OS分區(qū),并支持在分區(qū)之 間的以太網(wǎng)的層2交換,包括多播/廣播包(例如IEEE 802.3 )。盡管已經(jīng)根據(jù)所示實(shí)施例描述了本發(fā)明,但是本領(lǐng)域普通技術(shù)人員將 容易地認(rèn)識到,將存在對實(shí)施例的變體,并且這些變體將落在本發(fā)明的精 神和范圍中。從而,本領(lǐng)域普通技術(shù)人員可以做出許多修改,而不會(huì)脫離 權(quán)利要求的精神和范圍。
      權(quán)利要求
      1.一種用于在計(jì)算機(jī)系統(tǒng)上提供的多個(gè)操作系統(tǒng)分區(qū)之間分布網(wǎng)絡(luò)通信的裝置,所述裝置包括至少一個(gè)耦合于網(wǎng)絡(luò)的物理端口,所述物理端口允許所述網(wǎng)絡(luò)與所述計(jì)算機(jī)系統(tǒng)之間的通信;以及關(guān)聯(lián)于所述至少一個(gè)物理端口的多個(gè)邏輯端口,其中每個(gè)邏輯端口關(guān)聯(lián)于所述操作系統(tǒng)分區(qū)之一,并且其中每個(gè)邏輯端口使能在相關(guān)聯(lián)的物理端口和相關(guān)聯(lián)的操作系統(tǒng)分區(qū)之間的信息傳送,以及允許所述裝置的網(wǎng)絡(luò)資源的可配置性。
      2. 根據(jù)權(quán)利要求l所述的裝置,其中所述至少一個(gè)物理端口是多個(gè)物 理端口 ,并且其中多個(gè)邏輯端口關(guān)聯(lián)于每個(gè)物理端口 。
      3. 根據(jù)權(quán)利要求2所述的裝置,其中所述物理端口和所述關(guān)聯(lián)于每個(gè) 物理端口的多個(gè)邏輯端口被組織成端口組,從而大致固定數(shù)量的資源被分 配^^個(gè)端口組。
      4. 根據(jù)權(quán)利要求3所述的裝置,其中對資源的分布包括被分配給每個(gè) 端口組的物理端口的可配置的帶寬。
      5. 根據(jù)權(quán)利要求3所述的裝置,其中每個(gè)端口組具有預(yù)定數(shù)量的可用 邏輯端口 ,每個(gè)邏輯端口能夠被分配給相同端口組中的任意物理端口 。
      6. 根據(jù)權(quán)利要求l所述的裝置,其中每個(gè)邏輯端口由相關(guān)聯(lián)的媒體訪 問控制地址標(biāo)識,從而到達(dá)所述物理端口的每個(gè)包被分配到下述邏輯端口 , 所述邏輯端口具有的媒體訪問控制地址匹配該包中的媒體訪問控制地址。
      7. 根據(jù)權(quán)利要求l所述的裝置,其中每個(gè)物理端口和邏輯端口可以由 邏輯交換機(jī)進(jìn)行選擇用于通信。
      8. 根據(jù)權(quán)利要求l所述的裝置,其中每個(gè)邏輯端口關(guān)聯(lián)于默認(rèn)邏輯端 口隊(duì)列,其用于存儲(chǔ)被關(guān)聯(lián)于該邏輯端口的操作系統(tǒng)分區(qū)所傳送或接收的 包。
      9. 根據(jù)權(quán)利要求l所述的裝置,其中每個(gè)邏輯端口關(guān)聯(lián)于被用于監(jiān)視 或控制通過該邏輯端口傳送的信息的獨(dú)立資源集合。
      10. 根據(jù)權(quán)利要求9所述的裝置,其中所述資源集合包括管理信息庫 計(jì)數(shù)器,其用于監(jiān)視通過相關(guān)聯(lián)的邏輯端口傳遞的信息以及在相關(guān)聯(lián)的邏輯 端口處發(fā)生的錯(cuò)誤。
      11. 根據(jù)權(quán)利要求9所述的裝置,其中所述資源集合包括至少一個(gè)過 濾表,其用于過濾通過相關(guān)聯(lián)的邏輯端口傳遞的某些類型的網(wǎng)絡(luò)包。
      12. 根據(jù)權(quán)利要求1所述的裝置,其中多個(gè)邏輯端口可以關(guān)聯(lián)于單個(gè) 操作系統(tǒng)分區(qū)。
      13. —種用于在計(jì)算機(jī)系統(tǒng)上提供的多個(gè)操作系統(tǒng)分區(qū)之間分布網(wǎng)絡(luò) 通信的方法,所述方法包括在操作系統(tǒng)分區(qū)和至少 一個(gè)關(guān)聯(lián)于所述操作系統(tǒng)分區(qū)的邏輯端口之間 傳送信息,其中多個(gè)操作系統(tǒng)分區(qū)中的每一個(gè)可以與相關(guān)聯(lián)的至少 一個(gè)邏 輯端口通信;以及在所述至少一個(gè)關(guān)聯(lián)于所述操作系統(tǒng)分區(qū)的邏輯端口和關(guān)聯(lián)于所述至 少一個(gè)邏輯端口的至少一個(gè)物理端口之間傳送信息,其中所述物理端口耦 合于網(wǎng)絡(luò)。
      14. 根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括在所述至少一個(gè)邏輯端 口處從網(wǎng)絡(luò)接收信息,以及其中,在所述至少一個(gè)邏輯端口和至少一個(gè)物 理端口之間傳送信息包括將信息提供給關(guān)聯(lián)于所述物理端口的多個(gè)邏輯 端口中的至少一個(gè),以及其中,在操作系統(tǒng)分區(qū)和至少一個(gè)邏輯端口之間傳送信息包括將信息從所述至少一個(gè)邏輯端口提供給關(guān)聯(lián)于所述至少一 個(gè)邏輯端口的操作系統(tǒng)分區(qū)。
      15. 根據(jù)權(quán)利要求13所述的方法,其中,在操作系統(tǒng)分區(qū)和至少一個(gè) 邏輯端口之間傳送信息包括在所述至少一個(gè)相關(guān)聯(lián)的邏輯端口處從所述 操作系統(tǒng)分區(qū)接收信息,以及其中,在所述至少一個(gè)邏輯端口和至少一個(gè) 物理端口之間傳送信息包括將信息從關(guān)聯(lián)于所述物理端口的至少一個(gè)邏 輯端口提供給所述至少一個(gè)物理端口 ,其中被提供給所述至少一個(gè)物理端口的信息祐發(fā)送出到網(wǎng)絡(luò)。
      16. 根據(jù)權(quán)利要求13所述的方法,其中多個(gè)邏輯端口關(guān)聯(lián)于每個(gè)物理 端口。
      17. 根據(jù)權(quán)利要求16所述的方法,其中所述物理端口和所述關(guān)聯(lián)于每 個(gè)物理端口的多個(gè)邏輯端口被組織成端口組,從而大致固定數(shù)量的帶寬被 分配給每個(gè)端口組。
      18. 根據(jù)權(quán)利要求17所述的方法,其中每個(gè)端口組具有預(yù)定數(shù)量的可 用邏輯端口 ,每個(gè)邏輯端口能夠被分配給相同端口組中的任意物理端口 。
      19. 根據(jù)權(quán)利要求14所述的方法,其中每個(gè)邏輯端口由相關(guān)聯(lián)的媒體 訪問控制地址標(biāo)識,從而在所述物理端口處接收的每個(gè)包包括媒體訪問控 制地址,并,皮分配到下述邏輯端口,所述邏輯端口具有的媒體訪問控制地 址匹配該包中的媒體訪問控制地址。
      20. 根據(jù)權(quán)利要求16所述的方法,進(jìn)一步包括使用邏輯交換機(jī)選擇每 個(gè)物理端口和相關(guān)聯(lián)的邏輯端口用于通信。
      21. 根據(jù)權(quán)利要求13所述的方法,其中每個(gè)邏輯端口關(guān)聯(lián)于默認(rèn)邏輯 端口隊(duì)列,并且進(jìn)一步包括存儲(chǔ)被關(guān)聯(lián)于邏輯端口的操作系統(tǒng)分區(qū)所傳送 或接收的包。
      22. 根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括在多個(gè)邏輯端口中的每 個(gè)邏輯端口處提供資源,所述資源用于監(jiān)視通過相關(guān)聯(lián)的邏輯端口傳遞的 信息以;SJ&視在相關(guān)聯(lián)的邏輯端口處發(fā)生的錯(cuò)誤。
      23. 才艮據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括在多個(gè)邏輯端口中的每 個(gè)邏輯端口處提供資源,所述資源用于過濾通過相關(guān)聯(lián)的邏輯端口傳遞的 某些類型的網(wǎng)絡(luò)包。
      24. —種用于在計(jì)算機(jī)系統(tǒng)上分布網(wǎng)絡(luò)通信的方法,所述方法包括 在所述計(jì)算機(jī)系統(tǒng)中的邏輯交換機(jī)處接收數(shù)據(jù)包,所述計(jì)算機(jī)系統(tǒng)運(yùn)行多個(gè)操作系統(tǒng)分區(qū);當(dāng)來自所述計(jì)算機(jī)系統(tǒng)的 一個(gè)操作系統(tǒng)分區(qū)的數(shù)據(jù)包中的信息指示出 返轉(zhuǎn)路徑時(shí),將所述數(shù)據(jù)包通過在所述計(jì)算機(jī)系統(tǒng)內(nèi)部的硬件路徑返轉(zhuǎn)到 所述計(jì)算機(jī)系統(tǒng)的另一個(gè)操作系統(tǒng)分區(qū);以及 當(dāng)從操作系統(tǒng)分區(qū)接收的數(shù)據(jù)包中的信息指示出非返轉(zhuǎn)路徑時(shí),將所 述數(shù)據(jù)包發(fā)送到耦合于外部網(wǎng)絡(luò)的物理端口,或者當(dāng)從外部網(wǎng)絡(luò)接收的數(shù) 據(jù)包中的信息指示出非返轉(zhuǎn)路徑時(shí),將所述數(shù)據(jù)包發(fā)送到操作系統(tǒng)分區(qū)。
      25. 根據(jù)權(quán)利要求24所述的方法,其中所述計(jì)算機(jī)系統(tǒng)包括至少一個(gè)耦合于外部網(wǎng)絡(luò)的物理端口,以及其中每個(gè)操作系統(tǒng)分區(qū)具有用于發(fā)送和接收數(shù)據(jù)的一個(gè)或多個(gè)邏輯端口 ,從而所述邏輯端口和相關(guān)聯(lián)的物理端口 充當(dāng)由邏輯交換機(jī)進(jìn)行選擇以通過其發(fā)送數(shù)據(jù)包的虛擬端口 。
      26. 根據(jù)權(quán)利要求24所述的方法,其中所述數(shù)據(jù)包中的信息包括目的 地地址和包控制描述符。
      27. 根據(jù)權(quán)利要求26所述的方法,其中所述數(shù)據(jù)包是單播包、多播包 和廣#"包中的一個(gè)。
      28. 根據(jù)權(quán)利要求27所述的方法,其中,如果所述數(shù)據(jù)包是單播包, 則所述數(shù)據(jù)包的目的地地址被檢查,以確定是將所述數(shù)據(jù)包發(fā)送到內(nèi)部操 作系統(tǒng)分區(qū)還是發(fā)送到外部網(wǎng)絡(luò)上的目的地。
      29. 根據(jù)權(quán)利要求27所述的方法,其中,如果所述數(shù)據(jù)包是多播包或 廣播包,則將所述數(shù)據(jù)包發(fā)送到在所述計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)的多播/廣播管理 器。
      30,根據(jù)權(quán)利要求29所述的方法,其中所述多播/廣播管理器對于所 述數(shù)據(jù)包的任意額外目的地復(fù)制所述數(shù)據(jù)包,并且改變所述數(shù)據(jù)包和任意 已復(fù)制數(shù)據(jù)包的包控制描述符以指示出它們已經(jīng)由所述多播/廣播管理器 處理,并且將所述數(shù)據(jù)包和任意已復(fù)制數(shù)據(jù)包輸出,從而它們被發(fā)送到所述計(jì)算機(jī)系統(tǒng)和外部網(wǎng)絡(luò)的適當(dāng)目的地。
      31,根據(jù)權(quán)利要求30所述的方法,其中,如果由所述多播/廣播管理 器接收的數(shù)據(jù)包將^J^送到所述計(jì)算機(jī)系統(tǒng)的操作系統(tǒng)分區(qū),則所述多播/ 廣播管理器把指示出將把所述數(shù)據(jù)包發(fā)送到的具體操作系統(tǒng)分區(qū)的標(biāo)志添 加到所述數(shù)據(jù)包。
      32.根據(jù)權(quán)利要求29所述的方法,其中,如果所接收的數(shù)據(jù)包是多播 包或廣播包,并且如所述多播/廣播管理器所指定的那樣,所述包控制描述符指示出所述數(shù)據(jù)包是擠出包,則所述數(shù)據(jù)包#^送到所述外部網(wǎng)絡(luò)上的 目的地。
      33. 根據(jù)權(quán)利要求29所述的方法,其中,如果所接收的數(shù)據(jù)包是多播 包或廣播包,并且如所述多播/廣播管理器所指定的那樣,所述包控制描述 符指示出所述數(shù)據(jù)包是再循環(huán)包,則所述數(shù)據(jù)包被發(fā)送到如關(guān)聯(lián)于所述數(shù) 據(jù)包并由所述多播/廣播管理器提供的標(biāo)志所指示的所述計(jì)算機(jī)系統(tǒng)的操 作系統(tǒng)分區(qū)。
      34. —種用于在計(jì)算機(jī)系統(tǒng)上提供的多個(gè)操作系統(tǒng)分區(qū)之間分布網(wǎng)絡(luò) 通信的裝置,所述裝置包括至少一個(gè)耦合于外部網(wǎng)絡(luò)的物理端口 ,所述物理端口允許所述外部網(wǎng) 絡(luò)與所述計(jì)算機(jī)系統(tǒng)之間的通信;多個(gè)邏輯端口,其中每個(gè)邏輯端口關(guān)聯(lián)于所述操作系統(tǒng)分區(qū)之一;以及在所述計(jì)算機(jī)系統(tǒng)內(nèi)部實(shí)現(xiàn)的邏輯交換機(jī),其選擇物理端口和邏輯端 口 ,以及使能把信息傳送到所述操作系統(tǒng)分區(qū)和所述物理端口 。
      35. 根據(jù)權(quán)利要求34所述的裝置,其中,當(dāng)所述邏輯交換機(jī)接收數(shù)據(jù) 包時(shí),當(dāng)來自所述操作系統(tǒng)分區(qū)之一的數(shù)據(jù)包中的信息指示出返轉(zhuǎn)路徑時(shí), 所述邏輯交換機(jī)將所述數(shù)據(jù)包通過在所述計(jì)算機(jī)系統(tǒng)內(nèi)部的硬件路徑返轉(zhuǎn) 到另一個(gè)操作系統(tǒng)分區(qū),以及其中,當(dāng)來自操作系統(tǒng)分區(qū)的數(shù)據(jù)包中的信 息指示出非返轉(zhuǎn)路徑時(shí),所述邏輯交換機(jī)將所述數(shù)據(jù)包發(fā)送到外部網(wǎng)絡(luò)上的目的地,或者當(dāng)來自外部網(wǎng)絡(luò)的數(shù)據(jù)包中的信息指示出非返轉(zhuǎn)路徑時(shí), 所述邏輯交換機(jī)將所述數(shù)據(jù)包發(fā)送到所述操作系統(tǒng)分區(qū)之一 。
      36. 根據(jù)權(quán)利要求35所述的裝置,其中所述數(shù)據(jù)包中的信息包括目的 地地址和包控制4笛述符。
      37. 根據(jù)權(quán)利要求36所述的裝置,其中所述數(shù)據(jù)包是單播包、多播包 和廣^"包中的一個(gè)。
      38. 根據(jù)權(quán)利要求37所述的裝置,其中,如果所述數(shù)據(jù)包是單播包, 則所述邏輯交換^L檢查所述數(shù)據(jù)包的目的地地址,以確定是將所述數(shù)據(jù)包 發(fā)送到操作系統(tǒng)分區(qū)還是發(fā)送到外部網(wǎng)絡(luò)上的目的地。
      39. 根據(jù)權(quán)利要求37所述的裝置,其中,如果所述數(shù)據(jù)包是多播包或 廣播包,則所述邏輯交換機(jī)將所述數(shù)據(jù)包發(fā)送到在所述計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn) 的多播/廣播管理器。
      40. 根據(jù)權(quán)利要求39所述的裝置,其中所述多播/廣播管理器對于所 述數(shù)據(jù)包的任意額外目的地復(fù)制所述數(shù)據(jù)包,并且改變所述數(shù)據(jù)包和任意 已復(fù)制數(shù)據(jù)包的包控制描述符以指示出它們已經(jīng)由所述多播/廣播管理器 處理,并且將所述數(shù)據(jù)包和任意已復(fù)制數(shù)據(jù)包輸出,從而它們被發(fā)送到所 述計(jì)算機(jī)系統(tǒng)和外部網(wǎng)絡(luò)的適當(dāng)目的地。
      41. 根據(jù)權(quán)利要求40所述的裝置,其中,如果由所述多播/廣播管理 器接收的數(shù)據(jù)包將被發(fā)送到所述計(jì)算機(jī)系統(tǒng)的操作系統(tǒng)分區(qū),則所述多播/ 廣播管理器把指示出將把所述數(shù)據(jù)包發(fā)送到的具體操作系統(tǒng)分區(qū)的標(biāo)志添 加到所述數(shù)據(jù)包。
      42. 根據(jù)權(quán)利要求39所述的裝置,其中,如果由所述邏輯交換機(jī)接收 的數(shù)據(jù)包是多播包或廣播包,并且如所述多播/廣播管理器所指定的那樣, 所述包控制描述符指示出所述數(shù)據(jù)包是擠出包,則所述數(shù)據(jù)包4^送到所 述外部網(wǎng)絡(luò)上的目的地。
      43. 根據(jù)權(quán)利要求39所述的裝置,其中,如果由所述邏輯交換機(jī)接收 的數(shù)據(jù)包是多播包或廣播包,并且如所述多播/廣播管理器所指定的那樣, 所述包控制描述符指示出所述數(shù)據(jù)包是再循環(huán)包,則所述數(shù)據(jù)包被發(fā)送到 如關(guān)聯(lián)于所述數(shù)據(jù)包并由所述多播/廣播管理器提供的標(biāo)志所指示的所述 計(jì)算機(jī)系統(tǒng)的操作系統(tǒng)分區(qū)。
      44. 一種用于提供用于計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)通信的裝置,所述裝置包括 至少一個(gè)耦合于網(wǎng)絡(luò)的物理端口 ,所述物理端口允許所述網(wǎng)絡(luò)與所述計(jì)算機(jī)系統(tǒng)之間的通信;多個(gè)連接隊(duì)列,用于存儲(chǔ)將從所述計(jì)算機(jī)系統(tǒng)的至少一個(gè)用戶空間中 的至少一個(gè)過程發(fā)送或由其接收的數(shù)據(jù)包,其中每個(gè)連接隊(duì)列關(guān)聯(lián)于所述 至少一個(gè)過程之一和所述網(wǎng)絡(luò)之間的不同的網(wǎng)絡(luò)連接;以及 默認(rèn)操作系統(tǒng)隊(duì)列,用于存儲(chǔ)將從由所述計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)的操作系統(tǒng) 分區(qū)的內(nèi)核發(fā)送或由其接收的數(shù)據(jù)包。
      45. 根據(jù)權(quán)利要求44所述的裝置,進(jìn)一步包括多個(gè)操作系統(tǒng)分區(qū)和關(guān) 聯(lián)于所述操作系統(tǒng)分區(qū)中的每個(gè)的邏輯端口 ,其中每個(gè)邏輯端口具有相關(guān) 聯(lián)的默認(rèn)操作系統(tǒng)隊(duì)列,從而存儲(chǔ)在默認(rèn)操作系統(tǒng)隊(duì)列中的數(shù)據(jù)包將從相 關(guān)聯(lián)的操作系統(tǒng)分區(qū)的內(nèi)核發(fā)送或由其接收。
      46. 根據(jù)權(quán)利要求45所述的裝置,進(jìn)一步包括在所述計(jì)算機(jī)系統(tǒng)內(nèi)部 實(shí)現(xiàn)的邏輯交換機(jī),其選擇物理端口和邏輯端口,以及使能把信息傳送到 所述操作系統(tǒng)分區(qū)和所述物理端口 。
      47. 根據(jù)權(quán)利要求44所述的裝置,其中,當(dāng)無法找到對于數(shù)據(jù)包的網(wǎng) 絡(luò)連接時(shí),所述默認(rèn)操作系統(tǒng)隊(duì)列存儲(chǔ)該數(shù)據(jù)包。
      48. 根據(jù)權(quán)利要求44所述的裝置,其中所述用戶空間中的至少一個(gè)過 程具有多個(gè)網(wǎng)絡(luò)連接,并且由關(guān)聯(lián)于這些網(wǎng)絡(luò)連接的連接隊(duì)列所服務(wù)。
      49. 根據(jù)權(quán)利要求44所述的裝置,進(jìn)一步包括特殊默認(rèn)隊(duì)列,用于存 儲(chǔ)未存儲(chǔ)在所述連接隊(duì)列或默認(rèn)操作系統(tǒng)隊(duì)列中的數(shù)據(jù)包。
      50. 根據(jù)權(quán)利要求44所述的裝置,進(jìn)一步包括特殊多播和廣播默認(rèn)隊(duì) 列,用于分別存儲(chǔ)多播和廣播數(shù)據(jù)包。
      51. 根據(jù)權(quán)利要求50所述的裝置,其中所述多播和廣播特殊默認(rèn)隊(duì)列 中的數(shù)據(jù)包被提供給在所述計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)的多播/廣播管理器,其中所 述多播/廣播管理器復(fù)制所述數(shù)據(jù)包,并將所述數(shù)據(jù)包和復(fù)制數(shù)據(jù)包輸出, 以祐發(fā)送到多個(gè)目的地。
      52. —種用于提供用于計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)通信的方法,所述方法包括 在網(wǎng)絡(luò)適配器處接收數(shù)據(jù)包;在多個(gè)連接隊(duì)列中之一中存儲(chǔ)所述數(shù)據(jù)包,所述連接隊(duì)列用于存儲(chǔ)將 經(jīng)由相關(guān)聯(lián)的網(wǎng)絡(luò)連接從所述計(jì)算機(jī)系統(tǒng)的至少 一個(gè)用戶空間中的至少一 個(gè)過程發(fā)送或由其接收的數(shù)據(jù)包;以及如果無法找到對于所述數(shù)據(jù)包的網(wǎng)絡(luò)連接,則將所述數(shù)據(jù)包存儲(chǔ)在默 認(rèn)操作系統(tǒng)隊(duì)列中,所述默認(rèn)操作系統(tǒng)隊(duì)列用于存儲(chǔ)將從由所述計(jì)算機(jī)系 統(tǒng)實(shí)現(xiàn)的操作系統(tǒng)分區(qū)的內(nèi)核發(fā)送或由其接收的數(shù)據(jù)包。
      53. 根據(jù)權(quán)利要求52所述的方法,其中所述網(wǎng)絡(luò)連接在所述至少一個(gè) 過程和網(wǎng)絡(luò)之間提供,其中所述計(jì)算機(jī)系統(tǒng)的至少 一個(gè)物理端口耦合于所 述網(wǎng)絡(luò),所述至少一個(gè)物理端口允許所述網(wǎng)絡(luò)與所述計(jì)算機(jī)系統(tǒng)之間的通
      54. 根據(jù)權(quán)利要求52所述的方法,其中所述計(jì)算機(jī)系統(tǒng)提供多個(gè)操作 系統(tǒng)分區(qū)和關(guān)聯(lián)于所述操作系統(tǒng)分區(qū)中的每個(gè)的邏輯端口,其中每個(gè)邏輯 端口具有相關(guān)聯(lián)的默認(rèn)操作系統(tǒng)隊(duì)列,從而存儲(chǔ)在默認(rèn)操作系統(tǒng)隊(duì)列中的 數(shù)據(jù)包將從相關(guān)聯(lián)的操作系統(tǒng)分區(qū)的內(nèi)核發(fā)送或由其接收。
      55. 根據(jù)權(quán)利要求52所述的方法,進(jìn)一步包括如果所述數(shù)據(jù)包無法 存儲(chǔ)在連接隊(duì)列或默認(rèn)操作系統(tǒng)隊(duì)列中,則將所述數(shù)據(jù)包存儲(chǔ)在特殊默認(rèn) 隊(duì)列中。
      56. 根據(jù)權(quán)利要求52所述的方法,進(jìn)一步包括如果所述數(shù)據(jù)包是多 播或廣播包,則分別將所述數(shù)據(jù)包存儲(chǔ)在特殊多播或廣播默認(rèn)隊(duì)列中。
      57. 根據(jù)權(quán)利要求56所述的方法,其中所述多播和廣播特殊默認(rèn)隊(duì)列 中的數(shù)據(jù)包被提供給在所述計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)的多播/廣播管理器,其中所 述多播/廣播管理器復(fù)制所述數(shù)據(jù)包,并將所述數(shù)據(jù)包和復(fù)制數(shù)據(jù)包輸出, 以被發(fā)送到多個(gè)目的地。
      58. 根據(jù)權(quán)利要求52所述的方法,其中所述用戶空間中的至少一個(gè)過 程具有多個(gè)網(wǎng)絡(luò)連接,并且由關(guān)聯(lián)于這些網(wǎng)絡(luò)連接的連接隊(duì)列所服務(wù)。
      全文摘要
      提供在操作系統(tǒng)分區(qū)和計(jì)算機(jī)網(wǎng)絡(luò)之間的通信。在一方面中,用于在多個(gè)操作系統(tǒng)分區(qū)之間分布網(wǎng)絡(luò)通信的裝置包括允許所述網(wǎng)絡(luò)與所述計(jì)算機(jī)系統(tǒng)之間的通信的物理端口,以及關(guān)聯(lián)于所述物理端口的邏輯端口,其中每個(gè)邏輯端口關(guān)聯(lián)于所述操作系統(tǒng)分區(qū)之一。每個(gè)邏輯端口使能在物理端口和相關(guān)聯(lián)的操作系統(tǒng)分區(qū)之間的通信,以及允許所述系統(tǒng)的網(wǎng)絡(luò)資源的可配置性。其它方面包括用于邏輯和物理端口的邏輯交換機(jī),以及用于每個(gè)連接和用于每個(gè)邏輯端口的包隊(duì)列。
      文檔編號H04L29/06GK101156408SQ200680011080
      公開日2008年4月2日 申請日期2006年3月15日 優(yōu)先權(quán)日2005年4月1日
      發(fā)明者A·K·盧克, C·B·韋里利, C·巴索, C-J·常, F·韋普朗肯, H·G·基爾, J·卡爾維納克, N·瓦伊達(dá)亞納塔, P·達(dá)蒙, R·E·富斯 申請人:國際商業(yè)機(jī)器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1