TWI339055B - Apparatus and methods for a high performance hardware network protocol processing engine - Google Patents
Apparatus and methods for a high performance hardware network protocol processing engine Download PDFInfo
- Publication number
- TWI339055B TWI339055B TW095119846A TW95119846A TWI339055B TW I339055 B TWI339055 B TW I339055B TW 095119846 A TW095119846 A TW 095119846A TW 95119846 A TW95119846 A TW 95119846A TW I339055 B TWI339055 B TW I339055B
- Authority
- TW
- Taiwan
- Prior art keywords
- network
- data
- module
- tcp
- packet
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
1339055 九、發明說明: f發明所屬之技術領域】 本發明涉及電腦網路的訪問,更具體地說,涉及一種高性 月b硬體網路協定處理引擎的方法和系統。 【先前技術】 國際標準化組織建立了開放式系統互連(〇Sl)參考模型。 該OSI參考模型提供了一種網路設計架構,該架構可使不同提 供商的設備能夠相互通信。更具體地說,0;51參考模型將通信 /4私按分層順序分成了七個獨立、不同而又相互關聯的類別。 層1是物理層。它以物理方式發送資料。層2是資料連結層。 匕與操作通信鏈路的規程和協定相關,包括消息錯誤的檢測和 糾錯。層3是網路層。它決定資料是如何在電腦間傳輸的。層 4是傳輸層。它定義了資訊交換的規則,並管理消息在網路内 邵和網峪之間噼到蠕的傳送,包栝錯誤恢復和流童控制。層5 是會話屠。它處理對話管理並控制由層4提供的基本通信設備 的使用。層6是表示層。它與資料格式化、代碼的轉換和壓縮 /解壓縮相關。層7是應用層,它處理與特定應用服務,如文 件傳輸、遠端文件訪問和虛擬終端相關的功能。 各種電子αχ備如電|自、無線通信設備和個人數位助理 4,爲了 flb相互通彳§可能訪問各種網路。例如,這些設備爲了 方便通過__信,可能傳輸控㈣綱特網協定 (TCP/IP )。TCP允許兩個應用建立連接並交換資料流程。Tcp 1339055 能保證資料的傳送,同時也可保證這些資料包能按順序傳送到 TCP以上的各層。與諸如用戶資料報協定(UDP)等協定相比, TCP可用于將資料包按與發送時相同的順序傳送到最終目的 地’且不會出現包丟失的情況。TCP同時還可區分不同應用裎 式的資料,例如,同一電腦上的Web伺服器和郵件伺服器。 相應地,TCP協定經常用於因特網通信。執行〇SI棧和 TCP/IP處理的傳贿決方案可能要使収快更強的處理器。 例如’研究表明’ TCP輸W輸出處理的普通路徑大約需要3〇〇 條指令。在最大速率條件下,對於l〇Gbit/s連接而言,每秒大 約可接收—千五百萬條的最小包長的資料包。目此,輸入路徑 的處理大約需要每秒4,5〇〇百萬條指令(Mips)。當還需要 添加類似數目的MBPS用於處理輸出連接時,每秒的總指令數 可能接近於-個新式處理器的極限。例如,高㈣4电搜器可 有大概1_G MIPS的處理能力。但是,在處理器可能要處理 整個協定_設計中,該處理器可能成爲瓶頸。 隨著網速的提高’某些設計可通過使用更快速的處理器或 添加更多的處理器來緩解處理器的瓶_題。然而,當訪問 DRAM等記憶體時’處理器仍然可能減速。對此問題的一種 解決方案是高速緩衝記憶體。但是,當發生緩存缺失時,在等 待將慢記題的資料填_緩存的過財,處理雜能可能會 嚴重下降。 此外’三如容可奴記憶體(TCAM)設備可麟加速 6 (S > TCP會話查詢等操作。之所以可使用T-CAM存儲,因爲其搜 索速率可能高於基於軟體的演算法搜索。不過,T_CAM記憶 體的缺點在於其消耗的功率。 通過將這些系統與本發明某些方面進行比較,可進一步看 出傳統解決方案的更多局限和缺點,下麟結合實施例和附圖 對本發明作進一步描述。 【發明内容】 一種高性能硬體網路協定處理引擎的系統和/或方法,結 δ下过至^田彳附圖進行了充分說明,且在權利要求中進行了 更完整的闡明。 根據本發明的一方面,提供了一種處理網路資料的方法, 該方法包含在單網路晶片上使用多個管線硬體級處理下述中 的至少一項:接收到的TCp資料包和要傳輸的Tcp資料包。 優選地,該方法進一步包括,在所述單網路晶片内,在所 述並行官線硬體級的第一級,解析接收到的Tcp資料包的報 頭。 優選地,該方法進一步包括,在所述單網路晶片内,在所 述並行管線硬體級的所述第一級,驗證接收到的所述丁匸卩資 料包的乙太網幀CRC摘要(digest)、ip報頭校驗和以及TCP 校驗和。 優選地,該方法進一步包括,在所述單網路晶片内,在所 述並行官線硬體級的所述第一級,確認接收到的所述TCp資 7 1339055 料包的ip位址。 優選地’該方法進一步包括,在所述單網路晶片内,在所 述並行管線硬體級的第二級’查詢所述接收到的所述TCP資 料包TCB索引。 優選地,該方法進一步包括,在所述單網路晶片内、在所 述並行管線硬體級的第三級,對下列中的至少一項的TCB資 料查詢排序:所述接收到的TCP資料包和所述要傳輸的TCP 資料包。 優選地’該方法進一步包括’在所述並行管線硬體級的所 述第三級中,在所述單網路晶片内,至少爲下列中的一項:所 述接收到的TCP資料包和所述要傳輸的TCP資料包,存儲所 述TCB資料。 優選地,該方法進一步包括,將輿所述已處理TCp資料 包相對應的的所述TCB資料的至少一部分存儲在所述單網路 晶片的外部記憶體中。 優選地,該方法進一步包括,將由所述網路晶片處理的活 動網路連接的TCB資料的至少一部分緩存到所述單網路晶片 中。 優达地,該方法進一步包括,在所述並行管線硬體級的第 四級’在所述單網路晶片内執行所述TCp資料包的接收處理。 優選地,5亥方法進一步包括,在所述並行管線硬體級的第 五級,在所述單網路晶片中,開始將所述已處理的接收到的 (S > 8 TCP資料包傳輸到應用層中。 優選地’違方法進一步包括,在所述並行管線硬體級的第 五級,在所述單網路晶片中,在開始所述傳輸之前,將無序接 收到的TCP資料包進行重新組合。 優選地’該方法進一步包括,在所述並行管線硬體級的第 五級,在所述單網路晶片中,根據來自應用程式的資料,開始 創建所述的要傳輸的TCP資料包。 優選地’該方法進一步包括,在所述並行管線硬體級的第 一級,在所述單網路晶片内部,將TCP和JP報頭附加在所述 的最初創建的要傳輸的TCP資料包上。 優選地’該方法進一步包括,在所述並行管線硬體級的第 級,在所述單網路晶片内部,生成乙太網幀,所述乙太網幀 至少包含附加在所述的最初創建的TCP資料包上的TCP和IP 報頭。 根據本發明的另一方面’還提供了一種處理網路資料的系 、’先該系統包含單網路晶片,該單網路晶片包含處理下述項中 的至少一個的多個片上管線硬體級:接收到的TCP資料包, 和要傳輸的TCP資料包。 優選地,所述多個並行的管線硬體級的第一級,在所述單 網路晶片上解析所述接收到的TCP資料包的報頭。 優選地,所述多個並行的管線硬體級的所述第一級,在所 述單網路晶片上驗證所述接收到的TCP資料包的乙太網幀 1339055 優選地,所述多個並行的管線硬體級的所述第五級,在開 始所述傳輸之前’在所述單網路晶片内將無序接收到的TCP 資料包重新組合。 優選地,所述多個並行的管線硬體級的第五級,在所述單 網路晶片内開始根據從應用程式接收而來的資料創建所述的 要傳輸的TCP資料包。 優選地,該系統進一步包括,在所述單網路晶片内的所述 多個並行的管線硬體級的第一級,將TCP和IP報頭附加到所 述初始創建的要傳輸的TCP資料包上。 優選地,該系統進一步包括生成乙太網幀,所述乙太網幅 包括在所述單網路晶片内的所述多個並行的管線硬體級的所 述第一級’將所述TCP和IP報頭中的至少一個附加到所述的 初始創建的TCP資斜句· _卜。 本發明的各優點、方面和創新點,以及具體實施方式,可 以通過下文及附圖得到充分說明。 【實施方式】 本發明的實施例涉及一種單網路晶片上的多管線硬體 級,用於處理接收到的TCP資料包和/或要傳輸的tcp數高性 能硬體網路協定處理引擎的方法和系統。該方法可包括單網路 晶片上的上的多個管線硬體級’所述單網路晶片用來處理所接 收的TCP資料包和待發送的TCP資料包。在並行f線硬體級 的第-級,可解析接收到的TCP資料包的報頭,並可驗證所 S ) 1339055 接收到的TCP資料包的乙太網幀CRC。在第一級同時也可驗 證所接收到的TCP資料包的IP位址。在並行管線硬體級的第 二級,可查詢所接收到的TCP資料包的TCB索引。爲了能對 TCB資料進行查詢,對接收到的Tcp資料包和/或要傳輸的 TCP資料包進行排序,並可在並行管線硬體級的第三級獲取 TCB資料。 對於接收到的TCP資料包和/或要傳輸的tcp資料包, TCB資料可在並行管線硬體級的第三級進行保存。對應於已 處理的TCP資料包的至少一部分TCB資料存儲于單網路晶片 外部的記憶體中和/或緩存在單網路晶片内部。可在並行管線 硬體級的第四級進行TCP資料包的接收處理。並行管線硬體 級的第五級可用於開始將所接收的已處理TCP資料包傳送到 應用層。在開始僂送之前’在眭行管·緯歸體钵的笛5纫蔣那此 • · » ' '. -i- 無序接收的TCP資料包進行重新組合。 並行管線硬體級的第五級可用于根據來自應用程式的資 料,開始創建要傳輸的TCP資料包。在並行管線硬體級的第 一級可將TCP和IP資料包報頭預先添加到初始創建的要傳輸 的TCP資料包的前面。並行管線硬體級的第一級可用于生成 乙太網Φ貞,其中至少包含預先添加到在單網路晶片内初始創建 的TCP資料包之前的TCP和IP資料包報頭。 圖la是典型通信系統的方框圖,該系統可與本發明的實 施例一起使用。如圖la所示’其中包含主機1〇〇和1〇1以及
S 12 1339055 網路115。主機101可包含中央處理單元(cpu) 1〇2、存儲介 面(MCH) 104、存儲模組106、輸入/輸出(1〇)介面(ICH) 108和網路介面卡(NIC) 110。 存儲介面(MCH) 104可包括適當的電路和/或邏輯,可 用於在存儲模組106和其他設備如cpu 1〇2之間傳輸資料。 輸入/輸出介面(ICH) 108可包括適當的電路和/或邏輯, 可用於在IO设備間、1〇設備與存儲模組1〇6間或設備與 CPU 102間傳輸資料。 網路介面卡(NIC) 110可包括適當的電路、邏輯和/或代 碼,可用於傳輸和接收來自網路的資料,如來自乙太網的資料 等。NIC 11〇可處理已接收資料和/或要傳輸的資料。處理量 可依賴於其設計和/或設備。一般地,NIC 11〇可能包括單個晶 片,該晶片也可使用片上記憶體和/或片外記憶體。 在操作中,主機100和主機101可通過例如網路115實現 相互通信。網路115可以是乙太網。因此,主機100和/或101 可通過網路介面卡,如NIC 100,發送和/或接收包。例如,cpu 102可獲取來自存儲模組106的指令並執行這些指令。CPU 1〇2 可進一步將資料存儲到存儲模組1〇6上和/或從存儲模組1〇6 獲取資料。例如,運行在CPU 102中的軟體應用程式可讓資 料傳达到網路中’如傳送到網路115中等。軟體應用程式的實 】可以疋用於在主機和101之間發送郵件的郵件應用程 式。 13 1339055 相應地,主機101内的CPU 102可處理郵件中的資料並 將已處理的資料傳送到NIC 110。該資料可由CPU 1〇2直接傳 送到NIC 110。選擇性地’該資料也可存儲在存儲模組1〇6中。 已存儲的資料可通過直接記憶體存取(DMA)進程等傳送到 NIC 110。DMA所需的各種參數,如,源開始地址、待傳送比 特數和目的開始位址可由CPU 1〇2寫入到例如存儲介面 (MCH) 104中。根據開始命令,存儲介面(MCH) 1〇4可啓 動DMA進程。在此情形下,存儲介面(MCH) 1〇4可看成是 DMA控制器。 NIC 110可進-步處理郵件資料,並將郵件資料以適合於 在與之相連的網路115上傳送的資料包的形式發送出去。類似 地,NIC 110可從與之相連的網路115中接收資料包。u〇 可處理所接收資料包中的資料,並將已處理的資料僂送到可進 一步處理該資料的更尚層協定程式。已處理資料可通過1〇介 面(ICH) 108和記憶體介面(MCH) 1〇4存儲在存儲模組1〇6 中。存儲模組106中的資料可由在cpu 1〇2中運行的郵件應 用程式進一步處理,並最終以例如文本郵件消息的形式顯示給 主機101的用戶。 圖lb是未卸載(non_offloaded)因特網協定棧的典型系統 方框圖,它可與本發明的實施例一起使用。如圖lb所示,主 機 101 可包含 CPU 102、MCH 104、存儲模組 106、ICH 108 和NIC110。圖1顯示了應用層120、套接字(S0Cket)122、 14 1339055 傳輸層124、網路層126和資料連結層128。 應用層120、傳輸層124、網路層126和資料連結層128 可是協定棧的一部分,用於接收和傳送來自網路的資料。協定 棧可以是例如因特網所使用協定的因特網協定(Ip)族。協定 IP族可包含應用層協定、傳輸層協定、網路層協定、資料連結 層協定和物理層協定^套接字122可包含軟體程式,該程式可 允許在兩個其他軟體程式間傳送資料。因此,套接字122可看 成是在應用層120和傳輸層124間傳送資料的管線。物理層可 以是將網路中的一個主機與其他主機相連的媒介。例如,該媒 介可以是用於在網路中傳導如乙太網等網路信號的電纜。 例如,接收郵件時,NIC 110可從乙太網媒介等物理層 中以一系列資料包的形式接收郵件。該NIC 11 〇可將接收到的 資料包存儲到存儲模組106中^ CPU 102可運行資料達結厝 128協定’從而將各包的物理層幀(framjng)去除。該幀可包 含節點地址和指示各資料包的起始及結束的比特類型。接著 CPU 102可進一步執行協定棧中下一個OSI層的協定。該〇SI 層可以是例如網路層126,且可包括去除各資料包的網路相關 資訊’該資訊用於將資料包從一個網路路由到另一個網路。接 著要執行的下一層協定可爲傳輸層124。傳輸層124可確保文 件的所有資料包都已被接收’並可將各資料包按順序組合。 接著’已組合好的文件可由應用層120協定處理。應用層 120協定可以是應用程式的一部分,如郵件應用程式等。應用
15 1339055 層120協定可破保資料格式是應用程式使用的格式。例如,郵 件消息的字元編碼使用ASCII格式而不是EBCDIC格式進行 編碼。 將貪料傳送到網路時,協定棧的運行方向相反。例如,從 應用層120到傳輸層m,然後到網路層⑼,接著到資料連 結層128,最後到物理層。應用層12〇可將應用程式文件編碼 爲該應用程式類型的標準格式。傳輸層124可將該文件分解爲 資料包’且各資料包被標識,從而使接收主機的對應傳輸層能 將接收到的包按順序重新組合。網路層126可將來自傳輸層 124的資料包進行封裝,從而能把資料包路由到可能位於不同 網路中的目的地址。資料連結層可爲包提供報頭,從而使他們 能指定到網路中的特定節點。 圖lc是帶有智慧型網路介面+的因特絪協定蜉的|刑备 統方框圖,它可與本發明的實施例一起使用。如圖lc所示, 該方框圖與圖lb類似。不過,協定棧可以是獨立的。例如, 傳輸層124、網路層126和資料連結層128可由NIC 110執行, 而不是由圖lb中的CPU102執行。該NIC 110可看成是智慧 網卡’因爲它可進行某些協定棧處理,例如,傳輸層124、網 路層126的因特網協定(IP)、資料連結層128的乙太網協定。 這樣,CPU 102可以只需處理套接字122和應用層120協定, 而不必將更多的處理資源分配給應用程式軟體。因此,可提高 處理器性能’從而可更高效地執行應用程式軟體。智慧N!C, 16 1339055 如mc no等’可能依賴於嵌入式處理器和固件來處理網路協 定棧。 、 ® 2是在贼電織統顿行τανιΡ_料圖,它可 與本發明的實施例-起使用。如圖2所示,其中示出了 tcmp 協定機中的物理層202、資料連結層204、IP層2〇6、TCP層 208和應用層21〇。圖2中還給出了在時間點(time • T〇到時間點㈣乃期間,Tcp/Ip協定機中各層2〇2、 2〇4、2〇6、2G8和210進行的步驟。協賴中的各步驟可由主 機處理器執行,如CPU 102。 在時間點TG之後,鱗控制器例如Nic m可從網路如 乙太網處獲取資料。如果由聰11〇接收到的資料包中的說 /址與NIC 11G的MAC位址相同,則這些資料包的目的地爲 NIC 110 。 _ 在時間.點Tl,NIC 110可能中斷cpu 1〇2以告知其已接收 到資料包。這個對CPU 102的中斷可能觸發上下文切換其 中可能包括保存當前正在執行以及中斷的進程的各種資訊,同 時爲各寄存器載入新資訊。上下文切換中涉及的寄存器中的資 „包括例如CPU 102中的通用寄存器、程式計二器、機 扣軚等。必須載入新資訊進而爲中斷提供服務。從這點上來 看上下文切換可能消耗寶貴的CPU處理時間。 作爲中斷服務程式的_部分,乙太網驅動器204可以是資 料連結層128 (圖1b)的—部分,該驅動器可以去除例如乙
(.S 17 1339055 太網幀資訊。乙太網驅動器204可以分配第二控制緩存以跟蹤 接收到的資料包。控制緩存的分配和初始化可能導致許多緩存 的缺失。當發生緩存缺失時,在等待來自外部記憶體的資料期 間,處理器性能可能會嚴重下降。乙太網驅動器2〇4同樣需要 用接收緩存對網路適配器進行補充,從而可使接收到的資料包 得到進一步的協定處理。乙太網驅動器204接著可將接收到的 資料包插入到接收緩存的輸入佇列中,並確定軟體中斷的時 間,這樣協定處理可稍後繼續進行。可在例如時間點T2處安 排軟體中斷。 乙太網驅動器204在時間點Τ2處設置的軟體中斷可啓動 IP層206的執行,IP層206可以是網路層126 (圖比)〇 IP 層206包括驗證本地主機,如主機1〇1,是否爲目的地層 206也可根攄傳輪層協定將資料包解複用到協定棧中的上一 層’例如’傳輸層124。傳輸層124可能包括多個協定,如Tcp 和用戶資料報協定(UDP)。TCP可以保證某個主機,如主機 100等,發送的資料能被另一個主機,如主機1〇1等,以相同 順序接收且沒有任何資料包丟失。而UDP可能無法提供由 TCP層提供的可靠性和順序保證。資料包到達時可能無序或者 可能無預警的丟失。因此,UDP可爲許多羽量級或對時間敏 感的應用提供更快更高效的資料傳輸。使用Uj^p的—些資料 傳輸包括流媒體應用程式、IP電話和/或在線遊戲。 在時間點T3,TCP層208可以是例如傳輸層124,它從 18 1339055 TCP控制模組(TCB)的會話查詢操作開始。與網路節點相關 的各傳輸層124可能包含各TCP連接的狀態資訊。該資訊通 私可此在資料結構中,該資料結構包含連接狀態資訊、相關本 地進程和關於連接傳輸特性的反饋參數。該TCB通常按每個 連接進行維護。一旦發現或者爲新連接生成資料包的TCB資 訊,接收主機的TCP層208,如主機1〇1,可對資料包的接收 進行確認。 在一段時間之後,如果接收主機尚未發送某個資料包的確 認資訊,則發送主機,如主機100,將重新發送該資料包。例 如,當接收主機101的TCP層208判定某個文件已根據協定 元成,匕可將接收到的資料包重新組合排列到套接字接收緩存 中。套接子接收緩存本質上可能是鏈結列表,該列表可能包含 所有按正破順序的已接收資料包^套接字接收緩存中的資料可 能通過利用時間點T4上的套接字122與應用層進行通信。套 接字接收緩存中的資料可由應用層120複製到應用程式記憶 體中。 在時間點T3到時間點T4的時間段内,接收主機可以進 行報頭預測,從而可爲各自的TCP會話的下一個接收TCP資 料包實現快速處理。如果接收到的TCP資料包不是所預測的 資料包’則可能需要進行附加處理。例如,在序列號達到最大 值之後已經折回(wraparound)的情況下’可能需要防止折回 的(wrapped)序列處理。此外’多個資料包可能包含重復或 19 重豐的貝讯’例如’如果發送主機因爲沒有收到已發送資料包 的確涊貧訊而發送另外的資料包。爲了避免冗餘,可能需要對 重復的資料進行整理。 可爲各接收到的資料包生成時間戳,從而有助於追縱TCP 資料包。對於接收到的TCP資料包,也可有確認處理。此外, 如果發送主機請求結束TCp會話,則應有進程結束 TCP會 話。最後’可對接收到的資料進行重新排列並對接收的資料按 順序重新組合。 圖3a疋根據本發明實施例、其中包含帶有多個管線硬體 級的網路晶片的典型系統方框圖。如圖3a所示,主機1〇1包 括CPU 102、記憶體介面(MCH) 104、存儲模組1〇6、輸入 輸出(IO)介面(ICH) 108和網路介面卡(nk:) 11〇。Mc 11() 包含多個可並行運行的管線硬體級3〇1、3〇2、303、304和305。 官線硬體級301可接收來自網路的資料,如網路U5,同 時可將資料傳送到網路115中。管線硬體級301接收得到的資 料可由管線硬體級301、302、303、304和305進行處理。管 線硬體級305可將載荷資料傳送到主機記憶體中,如存儲模組 1〇6,從而使應用程式可以使用該資料。應用程式可由C]pUi〇2 執行,如郵件程式。從網路115處接收並傳送至存儲模組1〇6 的資料可以是,例如來自主機100的郵件。 管線硬體級301、302、303、304和305也可處理資料並 將其傳送到網路115中。管線硬體級305可以接收來自應用程 1339055 式的應用層的資料。爲了生成可傳送到網路115中的資料包, 可在管線硬體級305、304、303、302和301中進行處理。例 如’郵件程式用戶生成的郵件可能傳送到管線硬體級305。該 郵件可通過管線硬體級305、304、303、302和301傳送到主 機1〇1中。 管線硬體級301、302、303、304和305將參照圖3b、4a、 4b、5、6、7、8、9a和9b進行更詳細地描述。 圖3b是根據本發明實施例、典型管線硬體級的示意圖。 如圖3b所示’可在管線硬體級3〇1、302、303、304和305中 並行處理網路協定。管線硬體級3〇1可包含MAC介面模組 310、報頭模組312和IP模組314。管線硬體級302可包含TCP 傳輸模組320和TCB查詢模組322。管線硬體級303可包含 調度模組330、上下文緩存模組332和上下文存儲模組334。 官線硬體級304可包含TCP接收模組340。管線硬體級3〇5 可包含DMA引擎模組350、資料包存儲模組352、佇列模組 354和協定處理器模組356。 MAC介面模組310可包括適當的可用於接收和/或傳送如 乙太網幀等的電路和/或邏輯塊。當接收乙太網幀時,MAC介 面模組310驗證MAC目的地址是否爲與MAC介面模組31〇 相關的本地MAC位址。如果MAC目的地址與本地MAC目 的地址不相匹配,該乙太網幀將被丟棄。否則,MAC介面模 組310將從接收到的乙太網幀中分離出資料連結層128資訊、 21 (:S ) 1339055 TCP傳輸模組320可包含適當的電路和/或邏輯,用於生 成ip和tcp報頭。所生成的報頭被發送給MAC介面模組31〇。 TCB查詢模組322可包含適當的電路和邏輯塊,用於爲 接收到的乙太網幀查詢那些包括TCP會話資訊的TCB資料。 因爲各應用程式有多個正在運行的Tcp會話,TCB資料可用 於將接收到的乙太網幀與適當的Tcp會話相關聯。例如,應 用私式可以是郵件、劇覽器和JP語音電話通信等。 調度模組330可包含適當的電路和/或邏輯,用於爲要傳 送到網路中或從網路中接收得到的資料提供適當的TCB資 訊。例如,該資訊可來自上下文緩存模組332或上下文存儲模 組 334 » 上下文緩存模組332包含適當的緩存,可用於緩存Tcp 會話資訊。上下文緩存模組332可與上下文存错模組334聯合 使用。 TCP接收模組340可包含適當的電路和/或邏輯,用於已 接收TCP資料包的接收處理》已接收Tcp資料包的接收處理 可能包含下一個tcp資料包的報頭預測、防止已接收TCp資 料包的序列號折回、以及當多個TCP資料包包含冗餘數據時 進行重疊資料清理。已接收TCP資料包的接收處理還包含讀 取已接收TCP資料包的時間戳、對TCP資料包的接收進行確 認以及結束TCP會話。TCP接收模組340也可用於將DMA 資訊存儲到佇列模組354中,從而可將接收到的資料傳送到應 23 1339055 用層120中。 DMA引擎模組350可包含適當的電路和/或邏輯塊,用於 將源資料傳送到目的地’且無需CPU的干涉。例如,dma引 擎模組350可將來自資料包存儲模組说的資料傳送到存儲模 組106,反之亦然。 資料包存儲模組352可包含適當的記憶體,用於存儲從網 路處接收得到的資料或等待被傳送到網路中的資料。 仵列模組354可包含適當的電路和/或邏輯,用於存儲各 TCP資料包中進行DMA傳送的資訊,同時可爲合適的資料傳 輸設置DMA引擎模組350。仵列模組354同時還可用于對來 自調度模組330的外發資料包請求排序。 協定處理器模組356可包含適當的電路、邏輯和/或代碼, 用於與應用層120通信’從而接收與需要你存儲糍组丨%傳送 到資料包存儲模組352的資料相關的資訊,同時也可接收與需 要從資料包存儲模組352傳送到存儲模組1〇6的資料相關^資 訊。協定處理器模組356也可用於判斷在傳送之前,是否需要 將來自存儲模組106的資料分解爲多個Tcp資料包。此外, 協定處理器模組356也可將從多個Tcp資料包接收並通過 DMA傳送到存舰,组1〇6的資料進行重新組合。該重新組合 後的資料資訊可發送到應用層12〇。 相應地’當運行在主機上的應用程式通過網路將資料發送 到另一台主機上時,應用層12〇可用於與協定處理器模組356 24 父流適畲賴‘。翻層12()告㈣目的地魏雜定處理器模 組356可啓動與目的主機的Tcp會話。協定處理器模組祝 也可接收關於要傳輸的資料比賊和資料位置的相關資訊。在 管線硬體級305,協定處理器模組356可將適當資訊存儲到仔 列模組354中。作列模組354可設置DMA引擎模組35〇,從 而將貝料從存儲模組1〇6傳送到資料包存儲模組352 引擎模組350可將合適的資料傳送到資料包存儲模組352。符 歹J模、、且354也可凊求來自調度模組33〇的調度,從而可將資料 傳送到網路中。協疋處理II模組356也可將各資料的適當tcb 資料或tcp會話資訊存儲到上下文存儲模組334中。 在官線硬體級303,調度模組33〇可接收存儲在資料包存 儲模組352中的各資料的TCB資料。TCB資料可來自上下文 緩存模組332或_L下文存儲楛紐334。盆由讦白冬田你Trp ,, · · μ :、.··, - ·-—
和IP報頭的資訊的TCB資料,可被傳送到Tcp傳輸模組32〇。 在官線硬體級302中,TCP傳輸模組32〇可爲資料包存儲模組 352中的相應-貝料生成TCP和ip報頭,同時這些報頭可被傳 遞到mac介面模組310。在管線硬體級3〇1中,MAC介面模 組310可將該報頭附加到來自資料包存儲模組352的資料中, 以形成資料報。MAC介面模組310接著可將MAC報頭和CRC
摘要附加到〇>資料報中’進而可形成可在乙太網中傳輸的乙 太網幀。如果MAC介面模組310不知道目的MAC位址,MAC "面杈組310可在因特網上發送查詢資訊。網路中的其他系統 25 1339055 到調度模組330,而調度模組330可從上下文緩存模組332或 上下文存儲模組334中獲得TCB資料。TCB資料可用於例如 組合TCP資料包等,包含組合那些可能無序的資料包。 在管線硬體級304中,TCP接收模組340的接收處理功能 可能包含對下一個tcp資料包的報頭預測、防止已接收Tcp 資料包的序列號折回、衫個TCP資料包包含冗餘數據時對 重疊資料進行清理、記錄已接收資料包的時間戳、對Tcp資 料包的接收進行確認以及結束TCP會話。對各Tcp資料包的 資料,TCP接收模組340也可將DMA傳輸的資訊存儲在佇列 模組354中。管線硬體級304中的佇列模組354可設置dma 引擎模組350,從而可將適當資料傳送到應用層12〇中。 管線硬體級305可以是TCP後(_·τα>)處理級。在 管線硬體級305中’ DMA引擎模組35〇可將存儲在資料包存 儲模組352中的資料存儲到存儲模組1〇6中。協定處理器模組 356可將已從資料包存儲模組352傳送到例如存儲模組ι〇6中 的資料的相關資訊發送到應用層120。協定處理器模組356發 送的資訊可能包含來自不同TCP資料包的已傳送諸的位址 以及各資料的比特數。 選擇性地’當TCP報頭指示該資料可用于RDMA時,協 疋處理器模組356可對TCP資料包資料進行進一步處理eTCp 資料包中的RDMA資料等的資料協定處理在美國專利申請號 (代理案號:16591US02)中有詳細說明。 (.S ) 27 1339055 級的方框圖。如圖5所示,TCB查詢模組322可包括TCB控 制器502和查詢表504。 TCB控制器502可包括適當的邏輯、電路和/或代碼,可
用於在管線硬體級301中接收來自報頭模組312的TCP和IP 報頭。TCB控制器502解析該報頭以獲得源和目的正地址以 及源和目的tcp埠號。這四項可稱爲一個元組(tuple),且可 用於查詢查詢表504中的相應TCB索引。TCB控制器5〇2可 將該TCB索引和TCP及!p報頭傳送到調度模組33〇,如圖6 所示。 圖6疋根據本發明實施例的多個並行管線硬體級中第三 級的方框圖。如圖6所示,其中包括調度模組33〇、佇列模組 354、TCP傳輪模組320、Tcp接收模組34〇和上下文存儲模 且334調度模組330可包括上下文緩存模組332、寫入邏鞋 模組602、讀取邏輯模組6〇4、報頭寄存器模組6〇6、tcb寄 存器模組608和612以及回寫寄存器模組61〇和614。 向網路傳送資料時,關於要傳送資料的各資訊可從佇列模 組354傳送到讀取邏輯模组6〇4中。該資訊可包括資料的初始 序列號、要傳送資料的比特數、要傳送資料可存儲的緩存位址 和TCB索引。該資訊可由協定處理器模组放置在件列模 組354中。讀取邏輯模植6〇4可使用TCB索引以從上下文緩 存模組332或上下文存儲模組334令獲取TCB f料。讀取邏 輯模組604接著可將TCB #料放置到TCB寄存器模組612 30 1339055 中’且TCB f料可被傳送到Tcp傳輸模組no中。TCp傳輸 模組可根據需要修改某些資訊,如序列號等,並將修改的tcb 資料傳送到寫入邏輯模組602。寫入邏輯模組6〇2可將TCB 鞅料寫入到上下文緩存332或上下文存儲模組334中。 當從網路中接收資料時,來自TCB查詢模組322的 TCB 索引以及TCP和IP報頭可被傳送到讀取邏輯模組6〇4中。讀 取邏輯模組604可使用TCB索引以讀取上下文緩存模組332 或上下文存儲模組334中的相應TCB資料。接著讀取邏輯模 組604可將TCB資料放置到TCB寄存器模組6〇8中,且將 TCP和IP報頭放置到報頭寄存器模組6〇6中。Τ(:Β寄存器模 、’且608和報頭寄存器模組606中的資訊可被傳送到tcp接收 模組340中。TCP接收模組340可將資訊傳送到佇列模組354 中,將已接收資料傳送到例如CPUi〇2中時需要該佇列模組 354。該資訊可以是開始序列號、資料的比特數、資料存儲位 址和TCB索引。TCP接收模組340可根據需要修改某些資訊, 如確認號等,並將已修改的TCB資料傳送到回寫寄存器模組 610中。已修改的TCB資料接著可被傳送到寫入邏輯模組6〇2 中。寫入邏輯模組602可將TCB資料寫入到上下文緩存332 或上下文存儲模組334中。 圖7是根據本發明實施例的多個並行管線硬體級中第二 級和第四級的方框圖。該方框圖可表示例如Tcp傳送模組32〇 和/或TCP接收模組34卜如圖7所示,有限狀態機可包 C S > 31 1339055 括複用器7〇2、TCB寄存器模組7〇4、組合邏輯模组μ、狀 恶寄存模組708和本地控制寄存器模組71〇。有限狀態機7〇〇 可從-錄態轉換到下-個狀態,如在輸入時鐘信號CLK的 上升沿處進行轉換。 TCB寄存器模組7〇4可包括適當邏輯和/或電路,用於在 輸入時鐘信號CLK的上升沿處存儲TCB和/或Tcp及正報頭 資料。狀態寄存器模組708可包括適當邏輯和/或電路,用於 在輸入時鐘健CLK的上升沿處如可指補定狀態的比特 數。本地控制寄存器模組710可包括適當邏輯和/或電路,用 於在輸入時鐘健CLK的上升沿處輸出特定狀祕控制比特 數。 當有限狀態機700開始進行傳送或接收操作時,複用器從 狀態寄存器模組708中選擇信號和從調度模組33〇等處選擇查 詢信號。狀態寄存器模組708可用於選擇輸入TCB資料、TCp 和IP報頭。來自複用器702的資料可保存在TCB寄存器模組 704中。組合邏輯模組706可使用TCB寄存器模組7〇4的輸 出資料、狀態寄存器模組708的輪出和本地控制寄存器模組 710的輸出,生成輸入資料。在第一級可能選擇調度模組33〇 中的貧料之後,接下來的狀態可選擇複用器702資料,該資料 可從組合邏輯模組706中反饋得到。 對於從網路中接收得到的資料包,有限狀態機7〇〇生成的 輸出可爲報頭預測,該預測可用於對各TCP會話的下一個接 32 1339055 收TCP貢料包進行快速處理。如果接收到的TCp資料包不是 已預測的貪料包’則需要進行附加處理。例如在序列號達到最 大值之後可flb出現折回(wrap )的情況下,可能需要防 止折回的序列處理。此外,有限狀態機7⑻可能去除多個資料 包中的重復或重φ資訊。例如,如果發送主機因爲沒有收到已 發送-貝料包的確認資訊而發送另外的資料包。爲了避免冗餘, 可能需要對重復資料進行整理。有限狀態機7〇〇也可爲各接收 到的-貝料包生成時間戮,從而有助於追蹤Tcp資料包。對於 接收到的tcp·包和結束TCp會話,當傳送主機請求時有 限狀態機700也應進行確認處理。 對於要傳送到網路中的資料,有限狀態機7⑻可能生成 TCP和IP報頭。如’對於從網路中接收得到的資料包,生成 的輸出可被傳送到如件列模組354 ;對於要傳送到網路中的資 料,生成的輸出可被傳送到MAC介面模組31〇中。 圖8是根據本發明實施例的多個並行管線硬體級的第五 級的典型流程圖。在步驟8〇〇中,對於需要傳送到網路中的資 料’或者已從網路中接收得到並傳送到主機記憶體的資料,在 cpu 1〇2和協定處理器模組356之間交換資訊。在步驟_ 中’可设置仵列模,组354進而將資料傳送到網路中。在步驟 82〇中可向DMA引擎模組35〇提供用於DMa傳輸的源和 目的地址以及要傳輸的比特數。在步驟咖中,資料可從 記憶體模組1〇6經DMA傳送至資料包記憶體模組352中。在 33 < S ) 1339055 步驟840令,可爲從網路中接收得到的資料設置佇列模組 354。在步驟850中,可向DMA引擎模組35〇提供用於dma 傳輸的源和目的地址以及要傳輸的比特數。在步驟86〇中,接 收到的資料可從資料包存儲模組352經DMA傳送到主機記憶 體模組106中。 如圖8所示,同時參考圖lc和圖3,步驟800和860可 在本發明的多個並行管線硬體級的第五級進行。第五級可能包 括資料包存儲模組352、DMA引擎模組350、佇列模組354 和協定處理器模組356。在步驟800中,協定處理器模組356 可能與如CPU 102交換資訊❶來自CPU 1〇2的資訊可能包括 TCP流ID、資料比特數和資料位址。Tcp流仍可能等於如 TCB索引。協定處理器模組356可接收來自cpu 1〇2的消息 資訊並增加佇列模組354,從而將資料傳送到網路中。下一步 是將資料傳送到網路的步驟81〇。 接收資料時,消息可能從協定處理器模組356傳送到例如 CPU 102中。該消息可指示傳送到主存儲模組1〇6中的資料資 訊。該資訊可包括地址位置和各資料的比特數。即便TCp資 料包尚未按序接收,該資料資訊可將資料按序重新組合。下一 步疋從網路中接收資料的步驟84〇。此外,例如,(:;1>1;1〇2傳 送的/肖息可能是關於主存儲模組1〇6中各位址的資訊,而主存 儲模組106可用作DMA目的緩存。 在步驟810中’協定處理器模組356可將適當資訊傳送到 34 ^^055 佇列模組354巾’以進行DMA傳送。作列模組354可設置資 • 料的DMA傳送’例如’從綠顚組1G6職料包存儲模組 352。資成可包括例如源地址、目的地址、傳送的比特數。相 應地’在步驟820中,件列模組354可設置源DMA位址、目 的DMA位址、和在DMA引擎模組35〇中傳送的比特數。在 步驟830中,# DMA引擎模組350結束DMA傳送之後,可 修 ^不DMA傳送到件列模、组354的結束。仵列模組354可將此 傳送到調度模組330中。 在步驟840中’TCP接收模,组34〇可將適當資訊傳送到仔 列模組354中以進行DMA傳送,列模组可設置資料的 DMA傳送’例如’從資料包存儲模組352到主存儲模組106。 該資訊可能包括源地址、目的地址和傳送的比特數。相應地, 在步驟850中,件列模組354可設置源dma位址目的 • 位址、和在DMA引擎模組35〇中傳送的比特數。在步驟86〇 中’ DMA⑽模組35G結束DMA傳送之後可指示dma 傳达到仔列模組354的結束。仵列模組354可將此傳送到協定 處理器模組356中。 圖9a疋根據本發明實施例的通過多個並行管線硬體級將 資料傳輸到網路的典型流程圖。在步驟9〇〇中,將主存儲模組 1〇6中的資料傳送到資料包存儲模組352巾。在步驟91〇中, 貝料調度凊求與傳輸到網路中的資料相對應。在步驟娜 可從TCB資料中生成TCP和ip報頭。在步驟93〇中, 35 1339055 可生成乙;Μ賴且該乙太嶋可發送到網路中。 如圖9a所不’同時參考圖1c和3b,來自主機的資料可能 通過在單網路晶片上的多個並行管線硬體級中執行的步驟_ 到930傳送到網路中。在步驟9〇〇巾在多個並行的管線硬體 級的第五、級協疋處理益模組356可將適當資訊存儲在多個並 行的官線硬體級的第五級的件列模组354 _,以進行Ο·傳 送。仵列模、组354接著可設置DMA引擎模組35〇,並開始將 對待傳送酬路巾哺料進行DMA傳送。該資料可能是從主 存儲模組106經DMA傳送到資料包存儲模組352的。 在步驟910 t ’在多個並行的管線硬體級的第三級,佇列 模組354可將TCB索引傳送到調度模組33〇且請求資料傳輸 的調度。調度模組330可查詢對應於該TCB索引的7(:3資料。 該TCB資料可被傳送到TCB傳送模組32〇中。在步驟92〇中, 在多個並行的管線硬體級的第二級,TCB傳送模組32〇可從 TCB資料中生成TCP和!p報頭。該Tcp和正報頭可被傳送 到MAC介面模組310中。 在步驟930中’在多個並行的管線硬體級的第一級,MAC 介面模組310可將TCP和IP報頭附加到資料包存儲模組352 中的適當資料中,進而形成IP資料報。MAC介面模組31〇接 著可通過將乙太網報頭附加到IP資料報中、插入已計算的正 校驗和以及TCP校驗和、以及將CRC摘要附加到Ip資料報 中’以形成乙太網幀。最終的乙太網幀可傳送到網路中。 36 1339055 應用層120中。這可以是後TCp處理級。DMA引擎模組35〇 可將存儲在資料包存儲模組352中的資料DMA傳送到存儲模 組106中。協定處理器模組356可將已從資料包存儲模組352 傳送到存儲模組106中的資料相關資訊發送到應用層12〇β協 定處理器模組356發送的資訊可能包含來自不同Tcp資料包 的已傳送資料的位址以及各資料的比特數。即使接收到的Tcp 資料包是無序的’則該資料資訊也可將資料按序重新組合。 儘管在圖9a和%中分別描述了從網路接收資料過程以及 向網路發送資料過程,但本發明不應看成是僅限於傳送或接 收。爲了支援傳送和接收的某些功能,步驟9〇〇到930和步驟 950到990中至少有一些步驟是同時發生的M列如,在步驟9〇〇 中’在多個並行的管線硬體級的第五級,傳送到網路中的資料 可能是從主存儲模組106經DMA傳送到資料包存儲模組352 中。同時’在步驟950中’在多個並行的管線硬體級的第一級, MAC介面310可能正在接收乙太網幀。 此外’儘管本發明實施例描述的是TCP資料的處理,本 發明並不局限於此。例如,當tcp資料報頭指示說明該TCp 資料包資料可用於RDMA或iSCSI,則協定處理器模組356 可對該TCP資料包資料進行進一步處理。協定處理器模組 接著可進一步解析TCP資料包資料並分離出rdma或iscsi 資料。 對於每秒10兆比特的乙太網(10G)網路而言,Tcp資 39 1339055 料包吞吐量速率可爲每秒一千五百萬資料包。這是因爲TCP 資料包内嵌在乙太網幀中,而乙太網幀的最小大小爲72位元 組。由於乙太網幀的最小幀間間隔爲12位元組,所以有一些 額外的開銷。因此’典型的最大資料包到達速率爲每67.2納 秒(ns) —個資料包。因此,傳輸層124、網路層126和資料 連結層128的的硬體管線協定棧,如管線硬體級3〇1、302、 303、304和305,各管線硬體級的設計目標時間爲67.2ns。儘 管連續描述了各功能’本發明無需受此限制《例如,報頭模組 312的校驗和操作以及ip模組314的ip位址驗證操作可以並 行進行。 儘管本發明實施例涉及TCP傳輸層和π>網路層,但本發 明無需受此限制。因此,本發明實施例可用於帶jp網路層的 其他傳輪層’如用戶資料耜協定(UDP)。類似地,本發明實 施例也可支援其他網路層’如Appletalk和IPX,以及由其他 網路層支援的傳輸層。此外,本發明的其他實施例在管線硬體 級的數目和/或各管線硬體級的功能上可能有所差異。 因此,本發明可用硬體、軟體或軟硬體結合來實現。本發 明可在至少-纟電腦系統的集巾式環境下實現,也可在各元件 分佈在不同相互連接的電腦系統的分散式環境下實現士何種 類的電腦m其他適合於執行本判所述方法的設備都適 合使用本發明。軟硬體結合的範例可爲帶有某電腦程式的通用 電腦系統,但載人並運行該電齡式時,可控制電職統執行 40 (S ) 本發明所述的方法。 g《月也可内置在電腦程式產品中’其中包含可實現本發 述方法的所有性能,且當其載人到電㈣統時可執行這些 方法t本上下文巾的電齡式是指贿何語言代碼或符號編 寫的指令集的任何運算式,可使帶有資tfl處理功能的系統直接 2仃特疋功錢者在完成下列—項或㈣之麟行特定功 月《=* a)轉換爲其他語言、代碼或符號;b)以其他形式重新生 成。 本發明是根據特定實施靖行描述的,但本領域的技術人 員應明白在不脫離本發明範圍時,可進行各種變化和等同替 換。此外’爲適應本發明技術的特定場合或材料,可對本發明 進行諸多修改科齡其保護制。因此,本㈣並不限於在 此公開的特定實關,心括料紅繼解植賴圍的 實施例。 【圖式簡單說明】 圖la是典型通統的方框圖,它可與本發明的實施例 一起使用。 圖lb是未卸載(non_offl〇aded)因特網協定棧的典型系統 的方框圖,它可與本發明的實施例一起使用。 圖lc是帶有智慧型網路介面卡的因特網協定機的典型系 統的方框圖,它可與本發明的實施例一起使用。 圖2是在現代電腦系統中執行TCP/IP協定機的示意圖, 1339055 它可與本發明的實施例一起使用。 圖3a是根據本發明實施例的包含帶有多個管線硬體級的 典型網路晶片的方框圖。 圖3b是根據本發明實施例的典型管線硬體級的示意圖。 圖4a是根據本發明實施例的多個並行管線硬體級的第一 級接收網路資料的典型流程圖。
圖4b是根據本發明實施例的在多個並行管線硬體級的第 一級中傳輸網路資料的典型流程圖。 圖5是根據本發明實施例的多個並行管線硬體級的第二 級的方框圖。 圖6是根據本發明實施例的多個並行管線硬體級的第三 級的方框圖。 圖7是根據本發明實施例的多個並行管線硬體級中第二 級和第四級的方框圖。
圖8是根據本發明實施例的多個並行管線硬體級的第五 級的典型流程圖。 圖9a是根據本發明實施例的通過多個並行管線硬體級將 資料傳輸到網路的典型流程圖。 圖9b是根據本發明實施例的通過多個並行管線硬體級從 網路接收資料的典型流程圖。 中央處理單元(CPU) 102 【主要元件符號說明】 主機 100、101
42 1339055
存儲介面(MCH) 104 輸入/輸出(ΙΟ)介面(ICH) 網路115 套接字(socket) 122 網路層126 物理層202 因特網協定(IP)層206 應用層210 管線硬體級301、302、303、 MAC介面模組310 IP模組314 TCB查詢模組322 上下文緩存模組332 TCP接收模組34〇 資料包存儲模組352 協定處理器模組356 查詢表504 讀取邏輯模組604 TCB寄存器模組608、612 有限狀態機700 TCB寄存器模組7〇4 狀態寄存器模組708 存儲模組106 108網路介面卡(NIC) 110 應用層120 傳輸層124 資料連結層128 資料連結層204 傳輸控制協定(TCP)層208 504 ^ 305 報頭模組312 TCP傳輸模組320 調度核組330 上下文存儲模組334 DMA引擎模組350 佇列模組354 TCB控制器502 寫入邏輯模組602 報頭寄存器模組606 回寫寄存器模組610、614 複用器702 組合邏輯模組706 本地控制寄存器模組710 43
Claims (1)
1339055 十、申請專職 】、一種處理網路資料的方*,其特徵在於 ,該方法包含在單網 路曰曰片上使用多個管線硬體級處理下述中的至少-項:接收 至J的傳輸控制協定資料包和要傳輸的傳輸控制協定資料包,· 將由所述網路晶片處理的活動網路連接的TCB資料的 至少一部分緩存到所述單網路晶片中。 2、 如申請專利範圍第丨項所述的方法,其中,進—步包括,在 所述單網路晶片内’在所述並行管線硬體級的第一級,解析 接收到的所述傳輸控制協定資料包的報頭。 3、 如申請專利範圍第2項所述的方法,其中,進一步包括,在 所述單網路晶Μ ’在所賴行管線硬體級賴述第一級, 驗證接收到的所述傳輸控制協定資料包的乙太網幢迴圈冗餘 校驗摘要、因特網協歧頭校驗和以及傳輸控制協定校驗和。 4、 如申請專利範圍第2項所述的方法,其中,進一步包括,在 所述單網路晶片内,在所述並行管線硬體級的所述第一級, 確認接收到的所述傳輸控制協定資料包的因特網協定位址。 5、 如申請專利範圍第1項所述的方法,苴中 τ延—步包括,在 所述單網路晶片内,在所述並行管線硬體級的第二級杳詢 所述接收到的所述傳輸控制協定資料包的傳輪控制協定控制 模組索引。 6、如申請專利範圍第1項所述的方法,其中,4 ^ 、r進―步包括,在 所述單網路晶片内、在所述並行管線硬體級的第^級對下 44 l339〇55 列中的至少-補雜㈣齡控戰_:賴查·^ 所述接收到的傳輸控制協定資料包和所述要傳輸的傳輸控制 .-‘νί>::ν·Ά: 替換頁 協定資料包。 、-種處理娜資·_,雜徵在於,H統包含單網路 晶片’該單網路晶片包含處理下述财的至少―個的多個片 上管線硬體級:接㈣的傳輸控_定資料包,和要傳輸的 傳輸控制協定資料包; 所述夕個並行的官線硬體級的至少一個級中,在所述單 網路晶片上存儲由所述網路晶片處理的活動網路連接的TCB 資料的至少一部分。 8、 如申請專利範圍第7項所述的系統,其中,所述多個並行的 管線硬體級的第一級,在所述單網路晶片上解析所述接收到 的傳輸控制協定資料包的報頭。 9、 如申請專利範圍第8項所述的系統,其中,所述多個並行的 f線硬體級的所述第一級,在所述單網路晶片上驗證所述接 收到的傳輸控制協定資料包的乙太網幀迴圈冗餘校驗摘要、 因特網協定核對總和以及傳輸控制協定校驗和。 10、 如申請專利範圍第8項所述的系統,其中,所述多個並行 的管線硬體級的所述第一級,在所述單網路晶片上確認所述 接收到的傳輪控制協定資料包的因特網協定位址。 45 1339055 qgi〇 2~^—---年月_日修正替換頁
圖la 應用層I2Q 運行在主處理器 上的網路協定棧 套接字122 CPU 102
傳輸層 存儲介面1M Η 存儲觀迦 網 a&ss 1% Ί1 / ca --- 資料連結層m 10介面ΙΜ 10匯流排
面卡是被動設備 > 圖lb 1339055 39年1腎11正替換頁
溫行亦锃替網卡l·的網路協宙榇 圖lc
網路適配器 乙太網驅動器 IP層 TCP層 套接字/ 202 204 206 208 應用層 網路適配器 緩存: 過濾/複用 TCP輸入 210 接收資料包 檢査地址 TCB査詢 將資料複製 載入TCB 報頭預測 PAWS/RST 處理 處理重叠資料 記錄時間戳 ACK處理 FIN處理 重排列和重組合 到瞄田葙计 TO Tl T2 Τ3 Τ4 Τ5 圖2 1339055
ΓΕ3"Ϊ ,
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68826605P | 2005-06-07 | 2005-06-07 | |
US11/228,863 US20060274789A1 (en) | 2005-06-07 | 2005-09-16 | Apparatus and methods for a high performance hardware network protocol processing engine |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200715783A TW200715783A (en) | 2007-04-16 |
TWI339055B true TWI339055B (en) | 2011-03-11 |
Family
ID=36932378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095119846A TWI339055B (en) | 2005-06-07 | 2006-06-05 | Apparatus and methods for a high performance hardware network protocol processing engine |
Country Status (5)
Country | Link |
---|---|
US (1) | US20060274789A1 (zh) |
EP (1) | EP1732285B1 (zh) |
CN (1) | CN101047714B (zh) |
DE (1) | DE602006007913D1 (zh) |
TW (1) | TWI339055B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7460550B2 (en) * | 2004-06-21 | 2008-12-02 | Industrial Technology Research Institute | Storage structure and method utilizing multiple protocol processor units |
CN101204070A (zh) * | 2005-06-21 | 2008-06-18 | Nxp股份有限公司 | 用于pci express设备的并行数据完整性校验的方法 |
US20070239897A1 (en) * | 2006-03-29 | 2007-10-11 | Rothman Michael A | Compressing or decompressing packet communications from diverse sources |
JP5094482B2 (ja) * | 2008-03-07 | 2012-12-12 | キヤノン株式会社 | 処理装置及びその処理方法 |
TWI420869B (zh) * | 2008-05-09 | 2013-12-21 | Hon Hai Prec Ind Co Ltd | 消息發送系統及方法 |
US8638790B2 (en) * | 2008-06-23 | 2014-01-28 | Qualcomm Incorporated | Method and apparatus for managing data services in a multi-processor computing environment |
JPWO2010032533A1 (ja) * | 2008-09-19 | 2012-02-09 | 日本電気株式会社 | ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法 |
US8572187B2 (en) * | 2009-04-27 | 2013-10-29 | International Business Machines Corporation | Automated duplicate message content detection |
US8571031B2 (en) * | 2009-10-07 | 2013-10-29 | Intel Corporation | Configurable frame processing pipeline in a packet switch |
US9141831B2 (en) | 2010-07-08 | 2015-09-22 | Texas Instruments Incorporated | Scheduler, security context cache, packet processor, and authentication, encryption modules |
US20120173952A1 (en) | 2010-12-29 | 2012-07-05 | Kumar K Venkat Praveen | Parallel crc computation with data enables |
US9154413B2 (en) * | 2012-06-21 | 2015-10-06 | Breakingpoint Systems, Inc. | High-speed CLD-based pipeline architecture |
US10404625B2 (en) | 2013-10-29 | 2019-09-03 | Intel Corporation | Ethernet enhancements |
CN103631593A (zh) * | 2013-12-03 | 2014-03-12 | 上海新浩艺软件有限公司 | 一种用于苹果计算机系统的无盘引导控制方法以及系统 |
WO2017004814A1 (zh) * | 2015-07-08 | 2017-01-12 | 华为技术有限公司 | 一种用户及网络侧设备、确定对数据包的处理模式的方法 |
US9606959B1 (en) | 2015-11-12 | 2017-03-28 | International Business Machines Corporation | Indicating a sending buffer and receiving buffer in a message to use to validate the message in the receiving buffer |
KR102523418B1 (ko) * | 2015-12-17 | 2023-04-19 | 삼성전자주식회사 | 프로세서 및 프로세서에서 데이터를 처리하는 방법 |
CN110704361A (zh) * | 2019-08-28 | 2020-01-17 | 阿里巴巴集团控股有限公司 | Rdma数据发送及接收方法、电子设备及可读存储介质 |
US10817460B2 (en) | 2019-08-28 | 2020-10-27 | Advanced New Technologies Co., Ltd. | RDMA data sending and receiving methods, electronic device, and readable storage medium |
CN114827300B (zh) * | 2022-03-20 | 2023-09-01 | 西安电子科技大学 | 硬件保障的数据可靠传输系统、控制方法、设备及终端 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088356A (en) * | 1997-06-30 | 2000-07-11 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
US7089326B2 (en) * | 1997-10-14 | 2006-08-08 | Alacritech, Inc. | Fast-path processing for receiving data on TCP connection offload devices |
US8949471B2 (en) * | 2000-11-02 | 2015-02-03 | Oracle America, Inc. | TCP/UDP acceleration |
US20020107971A1 (en) * | 2000-11-07 | 2002-08-08 | Bailey Brian W. | Network transport accelerator |
US6781990B1 (en) * | 2002-02-11 | 2004-08-24 | Extreme Networks | Method and system for managing traffic in a packet network environment |
KR20030080443A (ko) * | 2002-04-08 | 2003-10-17 | (주) 위즈네트 | 하드웨어 프로토콜 프로세싱 로직으로 구현된 인터넷 통신프로토콜 장치 및 상기 장치를 통한 데이터 병렬 처리 방법 |
US7324540B2 (en) * | 2002-12-31 | 2008-01-29 | Intel Corporation | Network protocol off-load engines |
US20050165985A1 (en) * | 2003-12-29 | 2005-07-28 | Vangal Sriram R. | Network protocol processor |
-
2005
- 2005-09-16 US US11/228,863 patent/US20060274789A1/en not_active Abandoned
-
2006
- 2006-04-28 DE DE602006007913T patent/DE602006007913D1/de active Active
- 2006-04-28 EP EP06008960A patent/EP1732285B1/en not_active Not-in-force
- 2006-06-05 TW TW095119846A patent/TWI339055B/zh not_active IP Right Cessation
- 2006-06-06 CN CN2006100915152A patent/CN101047714B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101047714A (zh) | 2007-10-03 |
CN101047714B (zh) | 2011-12-14 |
DE602006007913D1 (de) | 2009-09-03 |
US20060274789A1 (en) | 2006-12-07 |
EP1732285B1 (en) | 2009-07-22 |
EP1732285A1 (en) | 2006-12-13 |
TW200715783A (en) | 2007-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI339055B (en) | Apparatus and methods for a high performance hardware network protocol processing engine | |
TWI306711B (en) | Message context based tcp transmission | |
EP3220606B1 (en) | Reducing network latency | |
US9049218B2 (en) | Stateless fibre channel sequence acceleration for fibre channel traffic over Ethernet | |
EP1702273B1 (en) | Increasing tcp re-transmission process speed | |
US9003053B2 (en) | Message acceleration | |
US8006169B2 (en) | Data transfer error checking | |
TWI411279B (zh) | 封包聚合的方法與系統 | |
US7243284B2 (en) | Limiting number of retransmission attempts for data transfer via network interface controller | |
US7441006B2 (en) | Reducing number of write operations relative to delivery of out-of-order RDMA send messages by managing reference counter | |
US7912979B2 (en) | In-order delivery of plurality of RDMA messages | |
TWI407733B (zh) | 在高速網路應用上使用一個接收先進先出緩衝區來處理接收封包之系統與方法 | |
US20050135395A1 (en) | Method and system for pre-pending layer 2 (L2) frame descriptors | |
US6760304B2 (en) | Apparatus and method for receive transport protocol termination | |
US9473405B2 (en) | Concurrent hashes and sub-hashes on data streams | |
US20070291782A1 (en) | Acknowledgement filtering | |
US8406298B2 (en) | Method and apparatus to transmit data on PLC network by aggregating data | |
EP2201740B1 (en) | High speed packet processing in a wireless network | |
JP4415391B2 (ja) | データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |