專利名稱:網絡接口設備的制作方法
技術領域:
這里討論的實施例涉及一種網絡接口設備。
技術背景
已知具有經由網絡連接的多個示例性操作節點的并行計算機。針對這種并行計算 機中的節點間的低延遲通信,可以在所有節點間維持用于通信控制的連接。并行計算機中的每個節點具有用于與網絡建立連接的網絡接口設備。網絡接口設 備可以包括網絡接口控制器或者網絡接口卡(在下文中被稱為“NIC”)。每個節點使用網 絡接口設備來經由網絡與其它節點進行通信。因此,具有幾萬個節點的大規模并行計算機 需要能夠維持幾萬個通信連接的網絡接口設備。Web (網絡)服務器、數據庫服務器等的計算機可以使用頻繁地連接和斷開與終端 的通信的通信協議(諸如HTTP(超文本傳輸協議))。為了在這種計算機中實現較高的處理 速度,需要減少用于建立和切斷通信連接的處理器上的協議處理負荷。近年來,例如,正如在千兆位以太網中所見到的那樣,網絡通信速度已經極大地提 高。在這種趨勢下,通信處理占據了由計算機處理器進行的大部分處理,并且較低比例的應 用程序處理的問題變得更嚴重。術語“應用程序”在下文中將被稱為術語“應用”。因此,卸 載(offloading)功能的安裝變得更普遍,以將通常由處理器執行的部分通信處理卸載到 網絡接口設備。日本專利申請公布2006-191537號和2003-333076號公開了有關卸載功能的技 術。日本專利申請公布2006-191537號公開了一種NIC使用其來執行通信處理的卸載引擎。日本專利申請公布2003-333076號公開了一種方法,該方法通過在處理器建立通 信連接之后將通信上下文移到NIC來基于連接單元選擇性地卸載通信處理。使用日本專利申請公布2006-191537號中公開的NIC,安裝在卸載引擎中的存儲 器的容量小于每個處理器的主存儲裝置的容量。因此,根據日本專利申請公布2006-191537 號,節點間的最大通信連接數是有限的。使用日本專利申請公布2003-333076號中公開的NIC,用于建立通信連接的每個 處理器上的處理負荷較大。因此,根據日本專利申請公布2003-333076號,每個處理器的應 用處理能力較低。
發明內容
這里討論的實施例的一方面是提供一種網絡接口,該網絡接口能夠經由網絡來執行在節點間的通信中通常由處理器執行的通信連接建立和斷開的示例性操作,并且能夠維 持節點間的大量通信連接。上述方面可以通過連接到計算機并且經由網絡執行通信的網絡接口設備來實現, 該網絡接口設備包括第一管理單元,其通過端口號來識別通信連接,并且通過存儲在存儲 單元中并且與端口號相關聯的上下文來管理每個端口的通信連接狀態;第二管理單元,其 管理上下文的存儲狀態;以及控制單元,其參考上下文,并且在端口間執行建立通信連接的 示例性操作和切斷通信連接的示例性操作。上述方面可以通過能夠維持大量通信連接的網絡接口設備來實現。另外,通過執 行通常由處理器執行的通信連接建立和斷開的示例性操作,所公開的網絡接口設備降低了 處理器上的通信處理負荷。隨后將清楚的這些以及其它方面和優點存在于下文中參照構成其部分的附圖來 更充分地描述和聲明的結構和示例性操作的細節中,其中相同標號始終指示相同部件。
圖1示出了并行計算機的示例性實施例;圖2示出了示例性OTC ;圖3示出了處理器的示例性主存儲裝置;圖4示出了示例性實施例中的端口定義;圖5示出了端口上下文的示例性數據結構;圖6A、6B和6C示出了要由處理器寫入傳送命令隊列中的描述符的示例性數據結 構;圖7A、7B和7C示出了要由NIC的傳送完成通知隊列控制器寫入傳送完成通知隊 列中的傳送完成狀態的描述符的示例性數據結構;圖8A、8B、8C和8D示出了要由NIC的接收完成通知隊列控制器寫入接收通知隊列 中的接收狀態的描述符的數據結構;圖9示出了控制分組的示例性數據結構;圖10示出了傳輸數據分組的示例性數據結構;圖11示出了實施例中的單向通信示例性操作;圖12示出了要由源處理器執行的、用于指示相應的源NIC發出“連接請求”的示 例性操作;圖13示出了要由目標NIC執行的、用于從源NIC接收連接請求分組并且將“連接 許可”響應分組傳送到源NIC的示例性操作;圖14示出了在接收到來自目標NIC的“連接許可”響應分組時要由源NIC執行的 示例性操作;圖15示出了用于從源端口傳送傳輸數據的示例性操作;圖16示出了要由目標端口執行的、用于接收從源端口傳送的傳輸數據的示例性 操作;
圖17示出了要由源端口執行的、用于將斷開通知傳送到目標端口的示例性操作; 以及圖18示出了要由目標端口執行的、用于從源端口接收斷開通知的示例性操作。
具體實施例方式有關通信連接的術語可定義如下。“端口 ”被定義為具有下面的屬性1)端口位于通信連接的兩端;2)存在兩種類型的端口 源端口,其被指定為通信連接的發起者;以及目標端口, 其被指定為通信連接的目標;3)端口是與應用等價,并且由各個節點的處理器來執行的程序。“應用”被定義為通過屬于OSI (開放式系統互連)參考模型的會話層的通信程序 來實現的通信資源。“應用”可以是屬于應用層并且建立或者取消用于傳送和接收數據的虛 擬連接的應用。 “端口號”被定義為要由應用用于識別端口的標識信息。端口號可以是用于識別由各個節點的處理器執行的應用所建立的通信連接的數 字。每個端口號被唯一地分配給通信連接。根據示例性實施例,“0”、“1”、“2”、... "η" (η 是正整數)的序列號作為端口號被分配給各個端口。根據示例性實施例,“通信連接管理”被定義為與端口號相關聯的通信連接的管理。通信連接表示通信和連接的形式,并且可以是在OSI參考模型的傳輸層的節點間 通信連接(端到端通信連接)。根據示例性實施例,使用端口號來控制端到端通信。根據示例性實施例,要支持的 通信連接可以是在OSI參考模型的傳輸層的協議通信連接、iSCSI (互聯網小型計算機系統 接口)協議通信連接等。圖1示出了根據示例性實施例的并行計算機系統。圖1所示的并行計算機系統1包括(n+1)個節點10 (10-0、10-1.....10-49、
10-50、10-51.....10-n)以及網絡20。這里,“η”是正整數。(n+1)個節點10經由網絡20彼此進行通信。網絡20是互連網絡、LAN(局域網) 等。節點10中的每個例如基于MPI (消息傳遞接口)傳送和接收命令、數據等。要在節點 10間傳送和接收的命令和數據例如采用分組的形式。節點10-i (i = 0到η)中的每個包括處理器11 (處理器0到處理器η)、主存儲裝 置12以及網絡接口控制器(NIC) 13。每個處理器11包括微處理器、芯片集等。每個主存儲裝置12是半導體存儲器(諸 如ROM(只讀存儲器)或者RAM(隨機存取存儲器))。每個NIC 13例如是網絡接口控制器 或者網絡接口卡。每個主存儲裝置12包括用于存儲軟件(諸如要由處理器執行的操作系統(OS)、中 間件以及應用程序)的區域。除了軟件存儲區之外,每個主存儲裝置12還具有用于存儲端 口上下文的區域(端口上下文存儲區),以及用于存儲管理端口上下文的端口表(端口管理表)的區域,其中端口上下文是在通信處理(諸如通信連接建立和斷開)中使用的信息。 稍后將詳細地描述端口上下文和端口表。每個NIC 13能夠卸載處理器的通信處理。每個相應的NIC 13從每個主存儲裝置12讀取要從相應的處理器11傳送到其他 節點10的處理器11的命令和數據。NIC 13將所讀取的命令和數據經由網絡20傳送到其 他節點10的NIC 13。NIC 13還經由網絡20接收從其他節點10的NIC 13傳送的命令和 數據,并且將所接收的命令和數據存儲到主存儲裝置12中。例如,使用分組來執行命令和 數據的傳送和接收。圖1示出了如下示例性實施例其中在節點10中的每個的主存儲裝置12中提供 具有四個端口條目(端口 0到端口 3)的端口表121。在圖1中,示意性地示出了節點10-0 的端口 0(具有端口號“0”的端口,同樣適用于下面的示例))和節點10-51的端口 2之間 的通信連接30。通信連接30例如是在0SI參考模型的傳輸層的通信連接。如圖1所示,根 據實施例的每個端口表121按端口號的降序來存儲與端口號對應的端口條目。圖2示出了圖1的每個NIC 13的示例性實施例。如圖2所示,每個NIC 13包括PIO(Programmed Input/Output,程控輸入/輸出) 控制器131、DMA(Direct Memory Access,直接存儲器訪問)控制器132、傳送命令隊列控制 器133、分組傳送處理器134、傳送完成通知隊列控制器135、分組接收處理器136以及接收 完成通知隊列控制器137。DMA控制器132經由總線138連接到傳送命令隊列控制器133、 傳送完成通知隊列控制器135、分組傳送處理器134、分組接收處理器136以及接收完成通 知隊列控制器137。PI0控制器131和傳送命令隊列控制器133通過信號線139彼此連接。傳送命令 隊列控制器133和分組傳送處理器134通過信號線140彼此連接。分組傳送處理器134和 傳送完成通知隊列控制器135通過信號線141彼此連接。分組接收處理器136和接收完成 通知隊列控制器137通過信號線142彼此連接。圖3示出了每個處理器11的主存儲裝置12的示例性實施例。如圖3所示,主存儲裝置12具有端口表121、端口上下文123、端口緩沖器125、傳 送命令隊列127、傳送完成通知隊列128以及接收通知隊列129。稍后將詳細地描述端口表 121、端口上下文123、端口緩沖器125、傳送命令隊列127、傳送完成通知隊列128以及接收 通知隊列129的結構和功能。PI0控制器131電連接到處理器11。PI0控制器131與處理器11進行命令和數據 的傳送和接收。PI0控制器131還根據需要中斷處理器11。DMA控制器132直接訪問處理 器11的主存儲裝置12而無需處理器11的干預,并且與主存儲裝置12進行數據傳輸。傳送命令隊列控制器133經由DMA控制器132從處理器11的主存儲裝置12中提 供的傳送命令隊列127中讀取“傳送命令”的描述符。然后,傳送命令隊列控制器133經由 信號線140將在所讀取的描述符中描述的用于創建傳送分組的必要信息發送到分組傳送 處理器134。在接收到來自傳送命令隊列控制器133的信息時,分組傳送處理器134基于所接 收的信息生成控制分組或者傳輸數據分組(也被稱為“數據通信分組”)。然后,分組傳送 處理器134經由網絡20將所生成的分組傳送到由傳送命令指定的節點10的NIC 13。在完成分組傳送之后,分組傳送處理器134經由信號線141向傳送完成通知隊列控制器135通 知所傳送的分組的類型。在接收到來自分組傳送處理器134的通知時,傳送完成通知隊列控制器135創建 “傳送完成通知”的描述符。然后,傳送完成通知隊列控制器135經由DMA控制器132將所 創建的描述符寫入處理器11的主存儲裝置12中提供的傳送完成通知隊列128中。分組接收處理器136經由網絡20接收從目標節點10的NIC 13傳送的分組。如果 所接收的分組是數據通信分組,則分組接收處理器136從分組提取傳輸數據,并且經由DMA 控制器132將所提取的傳輸數據寫入處理器11的主存儲裝置12中提供的端口緩沖器125 中。當從網絡20接收到分組時,分組接收處理器136經由信號線142向接收完成通知隊列 控制器137通知所接收的分組的類型。在接收到來自分組接收處理器136的通知時,接收完成通知隊列控制器137創建 “接收通知”的描述符,并且經由DMA控制器132將所寫入的描述符寫入處理器的主存儲裝 置12中提供的接收通知隊列129中。圖4示出了根據示例性實施例的端口定義。根據示例性實施例,結合端口號來管理通信連接。使用端口表121、端口上下文 123以及端口緩沖器125來管理通信連接。端口上下文123是用于管理相應端口的通信連接狀態的信息。端口緩沖器125是 存儲要傳送的傳輸數據或者所接收的傳輸數據的緩沖器。端口表121是管理每個端口的端口上下文123和端口條目1211的表。端口表121 管理各個端口的端口上下文123以及與端口號相關聯的端口條目1211。端口表121中的端 口條目1211的條目號對應于端口號。因此,具有端口號“n”(n是0或者正整數)的端口條目1211被登記在端口表121 中具有條目號“n”的條目中。如圖4所示,端口條目1211存儲包含項目“啟用”、“類型”、“上下文地址”、“緩沖器 地址”以及“緩沖器大小”的信息。項目“啟用”是表示端口條目1211是否有效的標志。如 果端口條目1211有效,則“啟用”標志為“1”,而如果無效,則“啟用”標志為“0”。項目“類 型”是表示“接收”或者“傳送”的信息。項目“上下文地址”是在主存儲裝置12中存儲相應 端口的端口上下文123的地址。項目“緩沖器地址”表示相應端口的端口緩沖器125的頂 端地址。項目“緩沖器大小”是表示端口緩沖器125的大小的信息,諸如在端口緩沖器125 中可以存儲的字節數。圖5示出了每個端口上下文123的示例性數據結構。如圖5所示,端口上下文123包括以下信息協議類型1231和通信狀態1232。協 議類型1231是表示在端口間的通信中使用的通信協議的類型的信息。通信狀態1232是表 示端口間的通信連接的狀態的信息。通信狀態1232表示“待機狀態”、“連接狀態”、“請求連 接狀態”、“完成斷開通知接收狀態”等。公開了在每個隊列中設置的描述符的內容。根據示例性實施例,將每個處理器11的通信處理卸載到每個相應的NIC 13。將 “通信連接建立”、“通信斷開”以及“數據通信(數據傳輸)”的處理卸載到NIC 13。使用傳 送命令隊列127、傳送完成通知隊列128以及接收通知隊列129來執行卸載處理。處理器11和NIC 13通過對這些隊列執行描述符的讀取/寫入來交換信息,并且實現卸載。傳送命令隊列127是由處理器11用來指示NIC 13“建立通信連接(連接請求)”、 “傳送數據(傳輸數據),,以及“斷開通信線路”的隊列。處理器11將所述三個命令寫入傳 送命令隊列127中,并且NIC 13讀取寫入傳送命令隊列127中的命令。通過這么做,處理 器11向NIC 13通知所述三個命令。在經由傳送命令隊列127接收到來自處理器11的命令時,NIC 13根據命令創建 傳送分組,并且經由網絡20將傳送分組傳送到通信目標的NIC 13。傳送分組例如是“連接 請求分組”、“連接響應分組”、“傳輸數據分組”或者“斷開通知分組”。圖6A到6C示出了要由處理器11寫入傳送命令隊列127中的描述符的數據結構。 如圖6A到6C所示,在本實施例中存在三種要寫入傳送命令隊列127中的描述符。圖6A所示的連接請求命令描述符1331是要由處理器11寫入傳送命令隊列127中 以指示NIC 13 “請求連接”的描述符。連接請求命令描述符1331具有設置如下信息的字 段所述信息包括命令ID 1331a、源端口號1331b、目標地址1331c以及目標端口號1331d。命令ID 1331a是分配給要從處理器11發送到NIC 13的“連接請求”命令的ID (標識 符)。源端口號1331b是通信中的源端口的端口號。目標地址1331c是在通信中由目標節點10 使用的、0SI參考模型的網絡層的地址。目標端口號1331d是通信中的目標端口的端口號。端口號等于分配給分組源的應用程序的端口號,其中由具有目標地址的節點10d 執行該應用程序。這里,節點10d是通信的目標。圖6B所示的數據傳輸命令描述符1332包括以下信息命令ID1332a、源端口號 1332b、數據頂端地址1332c以及數據長度1332d。數據傳輸命令描述符1332是要由處理器11寫入傳送命令隊列127中以指示NIC 13 “傳輸數據”的描述符。命令ID 1332a是被分配給要從處理器11發送到NIC 13的“數 據傳輸”命令的ID。源端口號1332b是通信中的源端口的端口號。數據頂端地址1332c是 存儲要設置在傳輸數據分組(數據通信分組)中的傳送數據的端口緩沖器125的頂端地 址。數據長度1332d是存儲在端口緩沖器125中的數據的大小。圖6C所示的斷開通知傳送命令描述符1333包括命令ID 1333a和源端口號 1333b。斷開通知傳送命令描述符1333是要由處理器11寫入傳送命令隊列127中以指示 NIC 13 “斷開通信線路”的描述符。命令ID 1333a是分配給要從處理器11發送到NIC 13 的“斷開通知傳送”命令的ID。源端口號1333b是通信中的源端口的端口號。傳送完成通知隊列128是由NIC 13用來向處理器11通知完成從處理器11請求 的分組傳送的隊列。當完成從處理器11請求的分組傳送時,NIC13將“傳送完成狀態”的描 述符寫入傳送完成通知隊列128中。處理器11從傳送完成通知隊列128讀取傳送完成狀 態,以確認由處理器11指定的分組已經被傳送到通信目標的NIC 13。圖7A到7C示出了要由傳送完成通知隊列控制器135寫入傳送完成通知隊列128 中的傳送完成狀態的描述符的數據結構。圖7A所示的連接請求傳送命令完成描述符1351 是表示由NIC 13響應于來自處理器11的“連接請求傳送”命令執行的處理的結果的描述 符。連接請求傳送命令完成描述符1351包括狀態代碼1351a。狀態代碼1351a是表示由 NIC 13執行的處理是成功還是失敗的代碼,S卩,“成功”或者“失敗”。由NIC 13的傳送完成 通知隊列控制器135將連接請求傳送命令完成描述符1351作為連接請求傳送的“傳送完成狀態”寫入傳送完成通知隊列128中。NIC 13讀取由處理器11寫入傳送命令隊列127中的“連接請求”,并且經由網絡 20將連接請求分組傳送到連接目標的NIC 13。然后,NIC13創建具有設置在狀態代碼1351a 中的連接請求分組的傳送結果的連接請求傳送命令完成描述符1351,并且將所創建的連接 請求傳送命令完成描述符1351寫入傳送完成通知隊列128中。當正確地完成了連接請求分組的傳送時,將連接請求傳送命令完成描述符1351 的狀態代碼1351a設置為表示處理成功的代碼(例如,“0”)。當連接請求分組的傳送失敗 時,將連接請求傳送命令完成描述符1351的狀態代碼1351a設置為表示處理失敗的代碼 (例如,“1”)。處理器11從傳送完成通知隊列128讀取連接請求傳送命令完成描述符1351。 然后,處理器11參考連接請求傳送命令完成描述符1351的狀態代碼1351a,以檢查處理器 11指示NIC 13傳送的連接請求分組是否已經被正確地傳送到目標節點10的NIC 13。圖7B所示的數據傳輸命令完成描述符1352是表示由NIC 13響應于從處理器11 發出到OTC 13的“數據傳輸”命令而執行的處理的結果的描述符。數據傳輸命令完成描述 符1352包括狀態代碼1352a和傳送數據長度1352b。狀態代碼1352a是表示由NIC 13執 行的處理是成功還是失敗的代碼。傳送數據長度1352b是表示傳輸數據長度的信息。由 NIC 13的傳送完成通知隊列控制器135將數據傳輸命令完成描述符1352作為傳輸數據傳 送的“傳送完成狀態”寫入傳送完成通知隊列128中。NIC 13從傳送命令隊列127讀取由處理器11寫入的“數據傳輸”命令,然后確認 數據要被傳送到的端口處于“請求連接狀態”。在確認端口的狀態之后,NIC 13從端口緩沖 器125讀取傳輸數據。NIC 13生成其中設置有所讀取的傳輸數據的傳輸數據分組,并且經 由網絡20將所創建的傳輸數據分組傳送到目標節點10的NIC 13。在完成傳輸數據分組的 傳送之后,NIC 13創建數據傳輸命令完成描述符1352。在數據傳輸命令完成描述符1352中,傳輸數據分組的傳送結果被設置在狀態代 碼1352a中,而傳輸數據的數據長度被設置在傳送數據長度1352b中。NIC 13將所創建的 數據傳輸命令完成描述符1352寫入傳送完成通知隊列128中。圖7C所示的斷開通知傳送完成描述符1353是表示由NIC 13響應于從處理器11 發出到NIC 13的“斷開通知傳送”命令而執行的處理的結果的描述符。斷開通知傳送完成 描述符1353包括狀態代碼1353a。狀態代碼1353a是表示由NIC 13響應于從處理器11發 出到NIC 13的“斷開通知傳送”命令而執行的處理的結果的代碼。由NIC 13將斷開通知傳 送完成描述符1353作為斷開通知傳送的“傳送完成狀態”寫入傳送完成通知隊列128中。NIC 13從傳送命令隊列127讀取由處理器11寫入的“斷開通知傳送”命令,并且 經由網絡20將斷開通知分組傳送到連接目標的NIC 13。當完成斷開通知分組的傳送時, NIC 13創建具有設置在狀態代碼1353a中的傳送結果的斷開通知傳送完成描述符1353,并 且將所創建的斷開通知傳送完成描述符1353寫入傳送完成通知隊列128中。如果正確地完成斷開通知分組的傳送,則將斷開通知傳送完成描述符1353中的 狀態代碼1353a設置為表示傳送成功的代碼(例如,“0”)。如果斷開通知分組的傳送失敗, 則將斷開通知傳送完成描述符1353中的狀態代碼1353a設置為表示傳送失敗的代碼(例 如,“1,,)。處理器11從傳送完成通知隊列128讀取斷開通知傳送完成描述符1353。然后,處理器11參考斷開通知傳送完成描述符1353,并且檢查處理器指示NIC 13傳送的斷開通知 分組是否已經被正確地傳送到目標節點10的NIC 13。接收通知隊列129是由NIC 13用來向處理器11通知從通信連接目標的NIC 13 接收到的分組的類型的隊列。在接收到來自通信連接目標的NIC 13的分組時,NIC 13將 與所接收的分組的類型對應的接收狀態寫入接收通知隊列129中。處理器11從接收通知隊列129讀取接收狀態,并且分析所讀取的接收狀態的內 容,以確定從通信連接目標節點10的處理器11傳送的通知的內容。存在以下類型的接收分組“連接請求分組”類型、“連接響應分組”類型、“傳輸數 據分組”類型、“斷開通知分組”類型等。這些類型的分組被歸類為控制分組。圖8A到8D示出了表示要由NIC 13的接收完成通知隊列控制器137寫入接收通 知隊列129中的接收狀態的描述符的數據結構。如圖8A到8D所示,存在四種要寫入分組 傳送或者接收方的NIC 13的接收通知隊列129中的描述符。圖8A所示的連接請求描述符1371是當NIC 13接收到連接請求分組時,由NIC 13 寫入接收通知隊列129中以向節點10中的處理器11通知來自通信連接目標的“連接請求” 的描述符。連接請求描述符1371包括以下信息接收通知ID 1371a、端口號1371b、請求者地 址1371c以及請求者端口號1371d。接收通知ID 1371a是分配給“連接請求”的接收通知的ID。端口號1371b等于設 置在控制分組中的“目標端口號”。請求者地址1371c等于設置在連接請求分組中的“發起 者地址”。請求者端口號1371d等于設置在連接請求分組中的“源端口號”。圖8B所示的連接響應描述符1372是當NIC 13接收到連接響應分組時,由NIC 13 寫入接收通知隊列129中以向處理器11通知接收到“連接響應分組”的描述符。連接響應描述符1372包括以下信息接收通知ID 1372a、端口號1372b、響應者地 址1372c以及響應端口號1372d。接收通知ID 1372a是分配給“連接響應”的接收通知的ID。端口號1372b是設置 在連接響應分組中的字段“目標端口號”中的端口號。響應者地址1372c是設置在連接響 應分組中的字段“發起者地址”中的地址。響應端口號1372d是設置在連接響應分組中的 字段“源端口號”中的端口號。稍后將詳細地描述連接響應分組。圖8C所示的數據傳輸描述符1373是當NIC 13接收到傳輸數據分組時,由NIC 13 寫入接收通知隊列129以向處理器11通知接收到“數據傳輸分組”的描述符。數據傳輸描 述符1373包括以下信息接收通知ID1373a、端口號1373b、數據頂端地址1373c以及數據 長度1373d。接收通知ID 1373a是分配給“傳輸數據”的接收通知的ID。端口號1373b等于設 置在傳輸數據分組中的“目標端口號”。數據頂端地址1373c是表示端口緩沖器125中的傳 輸數據的頂端位置的地址。由NIC 13從傳輸數據分組提取傳輸數據并且將其存儲到端口 緩沖器125中。數據長度1373d是存儲在端口緩沖器125中的傳輸數據的數據長度。稍后 將詳細地描述傳輸數據分組。圖8D所示的斷開通知描述符1374是當NIC 13接收到分組時,由NIC 13寫入接 收通知隊列129中以向處理器11通知接收到“斷開通知分組”的描述符。
接收通知ID 1374a是分配給“斷開通知”的接收通知的ID。端口號1374b是斷開 通知發送者的端口號(源端口號)。端口號1374b等于設置在斷開通知分組中的“源端口號”。圖9示出了每個控制分組的數據結構。如圖9所示,控制分組50包括網絡層報頭510和傳輸層報頭520。網絡層報頭510 是相當于OSI參考模型的網絡層報頭的報頭。傳輸層報頭520是相當于OSI參考模型的傳 輸層報頭的報頭。網絡層報頭510包括分組長度511、目標地址512以及發起者地址513。分組長度 511是整個控制分組50的大小(諸如字節長度)。目標地址512是控制分組50要被傳送 到的目標節點10的網絡層地址(諸如IP地址)。發起者地址513是傳送控制分組50的節 點10的網絡層地址(諸如IP地址)。傳輸層報頭520包括目標端口號521、源端口號522、協議類型523以及分組類型 524。目標端口號521是通信連接的目標的應用程序的端口號。源端口號522是通信連 接的發起者的應用程序的端口號。協議類型523是表示在通信連接中使用的傳輸層協議的 類型的信息。分組類型524是表示在通信連接中使用的控制分組的類型的信息。本實施例中使用的控制分組例如包括“連接請求分組”、“連接響應分組”以及“斷 開通知分組”。分組類型524表示控制分組類型之一。換句話說,當接收到控制分組50時, 可以通過參考設置在分組類型524中的信息來確定控制分組50的類型。圖10示出了傳輸數據分組的數據結構。如圖10所示,傳輸數據分組60包括網絡層報頭610、傳輸層報頭620以及傳輸層 數據630。網絡層報頭610包括分組長度611、目標地址612以及發起者地址613。分組長度611是表示整個傳輸數據分組的大小的信息。目標地址612和發起者地 址613分別與控制分組50的網絡層報頭510的目標地址512和發起者地址513相同。傳輸層報頭620包括目標端口號621、源端口號622、協議類型623以及分組類型 624。目標端口號621、源端口號622以及協議類型623分別與控制分組50的傳輸層報頭 520的目標端口號521、源端口號522以及協議類型523相同。分組類型624是表示傳輸數 據分組60的類型的信息。傳輸層數據630是關于由傳輸數據分組60運載的傳輸層協議(諸如TCP (傳輸控 制協議))的數據。公開了示例性操作。圖11示出了單向通信示例性操作。圖11示出了在本實施例的系統中將數據從圖1所示的源節點10 (在下文中被稱 為“源節點10s”)傳輸到圖1所示的目標節點10(在下文中被稱為“目標節點10d”)的示 例性操作的序列。在圖11中,源節點IOs的處理器11和NIC 13分別被示出為處理器lis 和NIC 13s。同樣,目標節點IOd的處理器11和NIC 13分別被示出為處理器Ild和NIC 13d。通過以下過程來執行從在源節點IOs的處理器lis處執行的端口到在目標節點IOd的處理器lid處執行的端口的數據傳輸(1)源節點IOs的處理器lis (在下文中處理器lis將被稱為“源處理器lis”)向 源節點IOs的NIC 13s (在下文中NIC 13s將被稱為“源NIC13s”)通知“連接請求命令”。
(2)在接收到來自源處理器lis的連接請求命令時,源NIC 13s將“連接請求”傳 送到目標節點IOd的NIC 13d(在下文中NIC 13d將被稱為“目標NIC 13d”)。(3)在接收到來自源NIC 13s的連接請求時,目標NIC 13d將連接許可響應返回到 源 NIC 13s。(4)然后,目標NIC 13d向目標節點IOd的處理器Ild(在下文中處理器Ild將被 稱為“目標處理器lid”)通知接收到連接請求。(5)在接收到來自目標NIC 13d的連接許可響應時,源NIC 13s向源處理器lis通 知接收到連接許可響應。(6)在接收到來自源NIC 13s的連接響應接收的通知時,源處理器lis指示源NIC 13s執行“數據傳輸”。(7)在接收到來自源處理器lis的數據傳輸命令時,源NIC 13s將由源處理器lis 指定的“傳輸數據”傳送到目標NIC 13d。(8)在接收到來自源NIC 13s的傳輸數據時,目標NIC 13d向目標處理器Ild通知 接收到傳輸數據。重復以上過程(6)到(8)直至源處理器lis將所有傳輸數據傳送到目標 處理器lid。(9)在將所有傳輸數據傳送到目標處理器Ild之后,源處理器lis指示源NIC 13s 傳送“斷開通知”。(10)在接收到來自源處理器lis的斷開通知傳送命令時,源NIC 13s將“斷開通 知”傳送到目標NIC 13d。(11)在接收到來自源NIC 13s的斷開通知時,目標NIC 13d向目標處理器Ild通 知接收到斷開通知。執行示例性過程(1)到(11),以便在源NIC 13s和目標NIC 13d之間建立通信連 接,并且將數據從源處理器lis傳送到目標處理器lid。在源處理器lis將所有傳輸數據傳 送到目標處理器Ild之后,切斷源NIC13s和目標NIC 13d之間的通信連接。通信連接是在 OSI參考模型的傳輸層的通信連接。如上所述,根據本實施例,源NIC 13s和目標NIC 13d執行處理來建立用于傳輸數 據的通信連接。使用端口表121、端口上下文123以及端口緩沖器125來發送處理器11和 NIC 13之間的每個命令和通知。結合端口號來管理這些部件121、123和125。公開了連接請求傳送。圖12示出了要由源處理器lis執行的、用于指示源NIC 13s發出“連接請求”的 示例性操作,以便建立通信連接。下面描述圖12所示的過程。(1)初始設置源處理器lis在相應主存儲裝置12 (在下文中被稱為“主存儲裝置 12s”)中取得端口上下文123,并且將端口上下文123中的通信狀態1232設置為“待機狀 態”((I)-I)。然后,源處理器lis將端口上下文123登記在主存儲裝置12s的端口表121
中(α)-2)。(2)連接請求命令源處理器lis將連接請求傳送命令的描述符1331寫入傳送命令隊列127中。(3)連接請求傳送命令讀出源NIC 13s從傳送命令隊列127讀取連接請求傳送命令的描述符1331。(4)端口表讀出源NIC 13s從連接請求傳送命令的描述符1331讀取源端口號 1331b。然后,源NIC 13s根據所讀出的端口號1331b從端口表121中的端口條目1211讀 取源端口的端口上下文123的存儲地址。(5)端口上下文讀出源NIC 13s從所讀出的存儲地址讀取端口上下文123,并且 檢查寫入端口上下文123中的通信狀態1232是否被設置為“待機狀態”。(6)連接請求分組傳送源NIC 13s創建要發送到目標NIC 13d的連接請求分組 50cd,并且將所創建的連接請求分組50cd傳送到網絡20。連接請求分組50cd是具有圖9 所示格式的控制分組50,并且其分組類型624被設置為“連接請求”。(7)端口上下文更新源NIC 13s將端口上下文123中的通信狀態1232更新為“請 求連接狀態”。(8)傳送完成通知寫入源NIC 13s將“傳送完成狀態”的描述符寫入傳送完成通 知隊列128中。“傳送完成狀態”的描述符是具有圖7A所示格式的描述符1351。(9)傳送完成通知讀出源處理器lis從傳送完成通知隊列128讀取傳送完成狀 態的描述符。參考傳送完成狀態的描述符,源處理器lis檢查連接請求分組50cd是否已經 被正確地傳送到目標處理器lid。如果傳送完成狀態被設置為“成功”,則源處理器lis確定 連接請求分組50cd已經被正確地傳送到目標處理器lid。如果傳送完成狀態被設置為“失 敗”,則源處理器lis確定源NIC 13s未能傳送連接請求分組50cd。公開了連接請求接收。圖13示出了在接收到來自源NIC 13s的連接請求分組50cd之后,由目標NIC 13d 執行的、用于將“連接許可”的響應分組傳送到源NIC 13s的示例性操作。下面描述圖13所 示的示例性過程。(1)初始設置目標NIC 13d在相應主存儲裝置12 (在下文中被稱為“主存儲裝置 12d”)中取得端口上下文123,并且將端口上下文123中的通信狀態1232設置為“待機狀 態”((1)_1)。然后,目標NIC 13d將端口上下文123登記在主存儲裝置12d的端口表121
中(α)-2)。(2)連接請求分組接收目標NIC 13d經由網絡20接收從源NIC 13s傳送的連接 請求分組50cd。(3)端口表讀出目標NIC 13d從寫入連接請求分組50cd中的字段目標端口號 1331d讀取端口號,并且參考端口表121中與端口號對應的端口條目1211。然后,目標NIC 13d讀取設置在主存儲裝置12d中的端口條目1211的“上下文地址”中的地址。該地址是 目標端口的端口上下文123的存儲地址(上下文存儲地址),該目標端口具有在主存儲裝置 12d中分配給其的端口號。(4)端口上下文讀出目標NIC 13d從主存儲裝置12d中的目標端口的上下文存 儲地址讀取端口上下文123,并且檢查端口上下文123中的通信狀態1232是否被設置為“待 機狀態”。(5)連接響應分組傳送在檢查通信狀態之后,目標NIC 13d創建連接許可響應分組50ca,并且將所創建的連接許可響應分組50ca傳送到網絡20。連接許可響應分組50ca 是具有圖9所示格式的控制分組50,并且其分組類型624被設置為“連接許可”。(6)端口上下文更新目標NIC 13d將端口上下文123更新為“請求連接狀態”(7)接收通知寫入目標NIC 13d將“接收狀態”的描述符寫入主存儲裝置12d中 的接收通知隊列129中。該描述符是圖8A所示的描述符1371。(8)接收通知讀出目標處理器Ild從接收通知隊列129讀取接收狀態的描述符。 目標處理器Iid檢查接收狀態是否被設置為“成功”。如果接收狀態被設置為“成功”,則目 標處理器Ild確定目標NIC 13d已經正確地接收到從源處理器IlS傳送的連接請求分組 50cd。如果接收狀態被設置為“失敗”,則目標處理器Ild確定目標OTC 13d未能接收連接 請求分組50cd。如果目標NIC 13d在過程(4)中識別目標端口的端口上下文123中的通信狀態 1232不是“待機狀態”,則目標NIC 13d在過程(5)中將連接拒絕響應分組傳送到網絡20。公開了連接請求響應接收。圖14示出了在接收到來自目標NIC 13d的“連接許可”響應分組50ca時由源NIC 13s執行的示例性操作。下面描述圖14所示的過程。(1)連接響應分組接收源NIC 13s從網絡20接收“連接許可”響應分組50ca。(2)端口表讀出源NIC 13s從所接收的響應分組50ca中的字段目標端口號 1331d讀取端口號。然后,源NIC 13s讀取設置在與所讀取的端口號對應的、主存儲裝置12s 的端口表121中的端口條目1211的字段“上下文地址”中的地址。(3)端口上下文讀出源NIC 13s訪問主存儲裝置12s中的所讀取的地址,并且從 該地址讀取端口上下文123。然后,源NIC 13s檢查所讀取的端口上下文123中的通信狀態 1232是否被設置為“請求連接狀態”。(4)端口上下文更新在檢查通信狀態之后,源NIC 13s將主存儲裝置12s的端口 上下文123中的通信狀態1232更新為“連接狀態”。(5)接收通知寫入源NIC 13s將“接收狀態”的描述符寫入主存儲裝置12s的接 收通知隊列129中。該接收狀態的描述符是具有圖8A所示格式的描述符1371。(6)接收通知讀出源處理器lis從接收通知隊列129讀取“接收狀態”的描述符。 源處理器lis檢查接收狀態是否被設置為“成功”。如果接收狀態被設置為“成功”,則源處 理器lis確定目標NIC 13d已經允許“連接請求”。因此,在源端口和目標端口之間建立通 信連接。源NIC 13s可以在上面的過程(1)中接收連接拒絕響應分組,并且可以在過程(3) 中確認與目標端口號1331d對應的端口上下文123中的通信狀態1232為“連接狀態”。在 這種情況下,源NIC 13s將端口上下文123的通信狀態1232返回到“待機狀態”。這里,目 標NIC 13d不向源NIC 13s傳送“連接許可”響應分組。圖15示出了用于從連接端口(源端口 )傳送傳輸數據的示例性操作。下面描述 圖15所示的過程。(1)傳輸數據寫入源處理器lis將“傳輸數據”存儲到主存儲裝置12s的端口緩 沖器125中。(2)數據傳輸命令源處理器lis將數據傳輸命令描述符1332 (參見圖6B)寫入主存儲裝置12s的傳送命令隊列127中。(3)傳送命令讀出源NIC 13s從寫入傳送命令隊列127中的傳送命令隊列127讀取數據傳輸命令描述符1332。(4)端口表讀出源NIC 13s基于設置在描述符1332的字段源端口號1332b中的 源端口號,從端口表121讀取主存儲裝置12s中的目標端口的端口上下文123的地址。更 具體地,源MC 13s從端口表121讀取與端口號對應的端口條目1211的內容。設置在端口 條目1211的字段“上下文地址”中的地址被視為目標端口的端口上下文123的存儲地址。(5)端口上下文讀出源NIC 13s從主存儲裝置12s中的存儲地址讀取端口上下 文123,并且檢查通信狀態1232是否被設置為“連接狀態”。(6)傳輸數據讀出源NIC 13s基于設置在端口條目1211中的字段“緩沖器地址” 中的地址以及設置在字段“緩沖器大小”中的緩沖器大小,從主存儲裝置12s中的端口緩沖 器125讀取傳輸數據。(7)傳輸數據分組傳送源NIC 13s創建具有圖10所示格式的傳輸數據分組60, 并且將所創建的傳輸數據分組60傳送到網絡20。(8)傳送完成通知寫入源NIC 13s將傳送完成狀態描述符寫入傳送完成通知隊 列128中。該傳送完成狀態描述符是具有圖7B所示格式的描述符1352。(9)傳送完成通知讀出源處理器lis從傳送完成通知隊列128讀取傳送完成狀 態。然后,源處理器lis檢查傳送完成狀態是否被設置為“成功”。如果傳送完成狀態被設 置為“成功”,則源處理器lis確定源NIC 13s正確地傳送了傳輸數據分組60。在這種情況 下,正確地完成了從源端口到目標端口的傳輸數據的傳送。如果傳送完成狀態被設置為“失敗”,則源處理器lis確定源NIC 13s未能傳送傳 輸數據分組60。在這種情況下,從源端口到目標端口的傳輸數據分組60的傳送失敗。圖16示出了要由所連接的目標端口執行的、用于接收從源端口傳送的傳輸數據 的示例性操作。下面描述圖16所示的過程。(1)傳輸數據分組接收目標NIC 13d經由網絡20接收從源NIC 13s傳送的傳輸 數據分組60。(2)端口表讀出目標NIC 13d從傳輸數據分組60提取目標端口號621,并且從主 存儲裝置12d的端口表121中與目標端口號621對應的端口條目1211讀取“上下文地址”。(3)端口上下文讀出目標NIC 13d從主存儲裝置12d中的上下文存儲地址讀取 端口上下文123。參考端口上下文123中的通信狀態1232,目標NIC 13d檢查接收到傳輸 數據分組60的端口是否處于“連接狀態”。(4)傳輸數據寫入目標NIC 13d讀取存儲在傳輸數據分組60中的傳輸數據630, 并且將所讀取的傳輸數據630存儲在主存儲裝置12d的端口緩沖器125中。(5)接收通知寫入目標NIC 13d將接收狀態寫入主存儲裝置12d的接收通知隊 列129中。該接收狀態是圖8B所示的數據傳輸描述符1373。(6)接收通知讀出目標處理器Ild從接收通知隊列129讀取接收狀態。(7)傳輸數據讀出目標處理器Ild參考接收狀態中的數據頂端地址1373c和數 據長度1332d,并且從端口緩沖器125讀取傳輸數據。以此方式,目標端口接收從源端口傳 送的傳輸數據。
公開了斷開通知傳送。圖17示出了要由所連接的源端口執行的、用于將斷開通知傳送到目標端口的示 例性操作。下面描述圖17所示的過程。(1)斷開通知傳送命令源處理器lis將“斷開通知傳送命令”的描述符寫入主存 儲裝置12s的傳送命令隊列127中。斷開通知傳送命令的描述符與圖6C所示的斷開通知 傳送命令描述符1333相同。
(2)斷開通知傳送命令讀出源NIC 13s從傳送命令隊列127讀取斷開通知傳送 命令描述符1333。(3)端口表讀出源NIC 13s從所讀取的斷開通知傳送命令描述符1333讀取源端 口號1333b,并且從端口表121中與源端口號1333b對應的端口條目1211讀取“上下文地址”。(4)端口上下文讀出源NIC 13s從主存儲裝置12s中的上下文存儲地址讀取端 口上下文123,并且檢查所讀取的端口上下文123中的通信狀態1232是否處于“連接狀態”。(5)斷開通知分組傳送源NIC 13s創建斷開通知分組50dc,并且將所創建的斷開 通知分組50dc傳送到網絡20。斷開通知分組50dc是具有圖9所示格式的控制分組50,并 且其分組類型624被設置為“斷開通知”。(6)端口上下文更新源NIC 13s將端口上下文123中的通信狀態1232更新為“完 成斷開通知狀態”。(7)傳送完成通知寫入源NIC 13s將“傳送完成狀態”寫入主存儲裝置12s的傳 送命令隊列127中。該傳送完成狀態與圖7C所示的斷開通知傳送完成描述符1353相同。(8)傳送完成通知讀出源處理器lis從傳送命令隊列127讀取傳送完成狀態。如 果傳送完成狀態被設置為“成功”,則源處理器lis確定源NIC 13s已經正確地將斷開通知 分組50dc傳送到目標NIC 13d。在這種情況下,正確地完成了從源端口到目標端口的斷開 通知的傳送。如果傳送完成狀態被設置為“失敗”,則源處理器lis確定源NIC 13s未能傳 送斷開通知分組50dc。在這種情況下,斷開通知未從源端口傳送到目標端口。公開了斷開通知接收。圖18示出了要由所連接的目標端口執行的、用于從源端口接收斷開通知的示例 性操作。下面描述圖18所示的過程。(1)斷開通知分組接收目標NIC 13d從網絡20接收斷開通知分組50dc。(2)端口表讀出目標NIC 13d從所接收的斷開通知分組50dc讀取目標端口號 621,并且從主存儲裝置12d的端口表121中與目標端口號621對應的端口條目1211讀取 “上下文地址”。(3)端口上下文讀出目標NIC 13d從主存儲裝置12d中的上下文存儲地址讀取 端口上下文123 (目標端口的上下文),并且檢查端口上下文123中的通信狀態1232是否被 設置為“連接狀態”。(4)端口上下文更新目標NIC 13d將端口上下文123中的通信狀態1232更新為 “完成斷開通知接收狀態”。(5)接收通知寫入目標NIC 13d將“接收狀態”寫入主存儲裝置12d的接收通知 隊列129中。該接收狀態描述符與圖8C所示的描述符1374相同。
(6)接收通知讀出目標處理器Ild從接收通知隊列129讀取接收狀態。如果接 收狀態被設置為“成功”,則目標處理器Ild確定目標NIC 13d已經正確地接收到斷開通知 分組50dc。因此,源端口和目標端口之間的通信連接被切斷。如果接收狀態被設置為“失 敗”,則目標處理器Ild確定目標NIC 13d未能接收斷開通知分組50dc。在這種情況下,源 端口和目標端口之間的通信連接未被切斷。根據示例性實施例,每個OTC 13建立單向通信連接。在使用本實施例的OTC 13 執行雙向通信的情況下,處理器僅僅需要使用NIC 13來建立兩個單向通信連接。與使用常 規NIC的情況比較,當使用本實施例的NIC 13來執行雙向通信時,處理器上的處理負荷減 小。此外,根據示例性實施例,每個端口上下文123可以定義通信連接被切斷的狀態。因此,通過參考每個相應的端口上下文123,每個處理器11可以延遲高負荷示例 性操作(諸如采集通信資源),并且可以在適當的時機集體執行這些示例性操作。根據示例性實施例,基于在每個處理器11的主存儲裝置12中提供的端口上下文 123執行通信連接建立示例性操作。因此,與使用具有卸載引擎并且執行通信處理的傳統 NIC的情況相比,可以維持更多的通信連接數。更具體地,由于端口上下文123被保存在每 個具有較大存儲容量的主存儲裝置12中,因此可以維持的通信連接數變得更多。另外,本實施例的每個NIC 13使用相應處理器11的主存儲裝置12來管理端口間 的通信連接。因此,本實施例的NIC 13具有硬件成本低于具有卸載引擎的傳統OTC的優點。 此外,在將本實施例應用于經常具有通信連接建立和斷開的應用(諸如Web應用)的情況 下,可以預期,與具有卸載引擎的傳統NIC的情況一樣,主機處理器上的處理負荷也減小。本發明不限于以上實施例,并且可以對實施例進行各種修改而不背離本發明的范 圍。例如,在實施例中,在每個處理器11的主存儲裝置12中提供端口上下文123和端 口表121。然而,本發明不限于該結構。例如,可在每個相應處理器中的專用寄存器或者存 儲器中提供每個端口上下文和每個端口表。在這種情況下,期望可以從網絡接口設備直接 訪問專用寄存器或者存儲器。可以在計算硬件(計算裝置)和/或軟件中實現實施例,諸如(在非限制性示例 中)可以存儲、取回、處理和/或輸出數據和/或與其它計算機進行通信的任何計算機。可 以在計算硬件的顯示器上顯示所產生的結果。實現實施例的程序/軟件可以記錄在包括計 算機可讀記錄介質的計算機可讀介質上。實現實施例的程序/軟件也可以通過傳輸通信介 質進行傳送。計算機可讀記錄介質的例子包括磁記錄裝置、光盤、磁光盤、和/或半導體存 儲器(例如,RAM、R0M等等)。磁記錄裝置的示例包括硬盤設備(HDD)、軟盤(FD)以及磁帶 (MT)。光盤的示例包括DVD (數字多功能盤)、DVD-RAM、CD-ROM (致密盤-只讀存儲器)以 及⑶_R(可記錄)/RW。通信介質的示例包括載波信號。此外,根據實施例的一方面,可以提供所述特征、功能和/或操作的任意組合。實施例的許多特征和優點根據詳細說明書是清楚的,并且因此,所附權利要求意欲覆蓋落入其真實精神和范圍內的實施例的所有這些特征和優點。此外,由于本領域的技 術人員將容易地進行大量修改和改變,因此不期望將本發明實施例限于所示出和描述的具 體結構和操作,并且因此可以采用落入其范圍的所有適當的修改和等同方案。
權利要求
一種連接到計算機并且經由網絡執行通信的網絡接口設備,所述網絡接口設備包括第一管理單元,其通過端口號來識別通信連接,并且通過存儲在存儲單元中并且與端口號相關聯的上下文來管理每個端口的通信連接狀態;第二管理單元,其管理所述上下文的存儲狀態;以及控制單元,其參考所述上下文,并且在端口間執行建立通信連接的操作和切斷通信連接的操作。
2.根據權利要求1所述的網絡接口設備,其中,當所述計算機的處理器發出傳送連接請求分組的命令時,所述控制單元檢查與所述命 令中被指定為發起者的端口號對應的上下文,并且當所述上下文被設置為“待機狀態”時, 所述控制單元將所述連接請求分組傳送到所述網絡。
3.根據權利要求2所述的網絡接口設備,其中,在傳送所述連接請求分組之后,所述控制單元向所述處理器通知傳送完成。
4.根據權利要求2所述的網絡接口設備,其中,當接收到所述連接請求分組時,所述控制單元檢查與所述分組中被指定為目標的端口 號對應的上下文;當所述上下文被設置為“待機狀態”時,所述控制單元將連接許可響應分組傳送到所述 網絡,并且將所述上下文更新為“連接狀態”;并且當所述上下文未被設置為“待機狀態”時,所述控制單元將連接拒絕響應分組傳送到所 述網絡。
5.根據權利要求4所述的網絡接口設備,其中,所述控制單元接收所述連接請求分組并傳送所述響應分組,根據需要更新所述上下 文,并且向所述處理器通知接收到所述連接請求分組。
6.根據權利要求4所述的網絡接口設備,其中,當接收到所述連接許可響應分組時,所述控制單元檢查與所述響應分組中被指定為發 起者的端口號對應的上下文,并且,當所述上下文被設置為“請求連接狀態”時,所述控制單 元將所述上下文更新為“連接狀態”。
7.根據權利要求4所述的網絡接口設備,其中,當接收到所述連接拒絕響應分組時,所述控制單元檢查與所述響應分組中被指定為發 起者的端口號對應的上下文,并且,當所述上下文被設置為“連接狀態”時,所述控制單元將 所述上下文返回到“待機狀態”。
8.根據權利要求6所述的網絡接口設備,其中,在接收所述響應分組并且更新所述上下文之后,所述控制單元向所述處理器通知接收 到所述響應分組。
9.根據權利要求1所述的網絡接口設備,其中,當所述計算機的處理器發出傳送斷開通知分組的命令時,所述控制單元檢查與所述命 令中被指定為發起者的端口號對應的上下文,并且,當所述上下文被設置為“連接狀態”時, 所述控制單元將所述斷開通知分組傳送到所述網絡。
10.根據權利要求9所述的網絡接口設備,其中,當接收到所述斷開通知分組時,所述控制單元檢查與所述分組中被指定為目標的端口 號對應的上下文,并且,當所述上下文被設置為“連接狀態”時,所述控制單元將所述上下文 更新為“完成斷開通知接收狀態”。
11.根據權利要求1所述的網絡接口設備,其中,在所述處理器的主存儲裝置中提供所述上下文以及管理機制。
12.根據權利要求1所述的網絡接口設備,其中,所述上下文以及管理機制存儲在所述處理器的專用寄存器中;并且 所述第一管理單元訪問所述專用寄存器,以管理每個端口的連接狀態。
13.根據權利要求1所述的網絡接口設備,其中,在所述處理器的專用存儲器中提供所述上下文以及管理機制;并且 所述第一管理單元訪問所述專用存儲器,以管理每個端口的連接狀態。
14.根據權利要求11所述的網絡接口設備,其中, 所述管理機制是表;所述第二管理單元通過所述表來管理所述上下文;并且 所述表中的條目至少包括關于所述上下文的存儲位置的信息。
15.根據權利要求1所述的網絡接口設備,其中,所述上下文至少包括關于協議類型的信息以及關于所述端口的通信狀態的信息。
16.一種網絡接口設備,其包括第一管理單元,其能夠通過存儲在存儲單元中并且與端口號相關聯的上下文來管理端 口的連接狀態;第二管理單元,其管理所述上下文的存儲狀態;以及 控制單元,其基于所述上下文控制端口間的連接。
全文摘要
本發明提供了一種網絡接口設備。所述網絡接口設備連接到計算機并且經由網絡執行通信,其包括第一管理單元,其通過端口號來識別通信連接,并且通過存儲在存儲單元中并且與端口號相關聯的上下文來管理每個端口的通信連接狀態;第二管理單元,其管理上下文的存儲狀態;以及控制單元,其參考上下文,并且在端口間執行建立通信連接的示例性操作和切斷通信連接的示例性操作。
文檔編號H04L12/56GK101827019SQ20101011271
公開日2010年9月8日 申請日期2010年2月4日 優先權日2009年2月6日
發明者井上智宏, 安島雄一郎, 平本新哉 申請人:富士通株式會社