TWI407733B - 在高速網路應用上使用一個接收先進先出緩衝區來處理接收封包之系統與方法 - Google Patents
在高速網路應用上使用一個接收先進先出緩衝區來處理接收封包之系統與方法 Download PDFInfo
- Publication number
- TWI407733B TWI407733B TW094136609A TW94136609A TWI407733B TW I407733 B TWI407733 B TW I407733B TW 094136609 A TW094136609 A TW 094136609A TW 94136609 A TW94136609 A TW 94136609A TW I407733 B TWI407733 B TW I407733B
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- processing
- data
- packets
- network
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
本件發明與網路通訊有關,特別是關於處理接收(RX)封包。
傳輸卸載引擎(TOE)含有一種可以使傳輸量最佳化並且降低處理器利用率而在高速系統中愈來愈普及的技術。TOE元件經常被整合在各式印刷電路板中的其中之一,例如網路介面卡(NIC)、主機匯流排配接卡(HBA)、主機板或任何其他必要卸載設備。
近幾年,系統內通訊速度成長較處理器速度快,因此產生一種輸入/輸出(I/O)瓶頸。處理器之設計主要用於計算而非用於I/O,因此在傳統上無法跟上網路的資料流量。造成的結果是,資料流量的處理速度慢於網路速度,而TOE技術藉由從處理器及/或I/O子系統移除負擔(即卸載)的方式解決了這個問題。
一種處理經常卸載至TOE的形式,包括傳輸控制協定(TCP)封包處理。TCP是一組規則(通訊協定),配合網際網路協定(IP)使用,以便在網際網路上之各電腦間以訊息單位之格式傳送資料。當IP負責處理實際資料傳送之時,TCP會持續追蹤處理每一個別封包,使訊息被區分成有效率之路徑在網際網路上傳送。
在高速網路上處理TCP封包需要許多處理過程,封包在送達時可能不按順序,因此當資料必須依照順序被傳送
到一應用程式時,封包必須儲存起來。此外,接收封包之處理必須與網路連結之連線速率保持一致。
因此,需要一項技術以加速TCP與其它封包之處理。
一種透過網路處理接收封包之系統與方法。使用時,資料封包與控制封包會透過網路被接收,而且,資料封包會與控制封包並行被處理。
在一具體實施例中,控制封包可運用第一處理路徑處理,資料封包可運用第二處理路徑處理,而與第一處理路徑分隔。
在另一具體實施例中,封包之處理可包括並行使用一查詢表與一快取記憶體,以確認一與封包搭配之正確插座控制區塊。同樣地,資料封包之處理也可包括並行使用實質複製邏輯以便能夠確認一個與封包搭配之正確插座控制區塊。
而在另一具體實施例中,與封包搭配之控制區塊可與後續封包之處理並行更新。
更進一步可選擇的方式是,標籤資訊會被預定至資料封包。該標籤資訊在一個接收(RX)先進先出(FIFO)緩衝區被緩衝時,可更進一步被預定至資料封包。另一種方式是,標籤資料可包括對應封包之形式、搭配對應封包之插座處理、搭配對應封包之狀態資訊、及/或搭配對應封包之控制資訊。
使用時,資料封包可使用一RX FIFO緩衝區進行緩衝。
根據一個具體實施例,圖1說明一個網路系統100。如圖所示,提供一個網路102,在所呈現之網路系統100的情況中,網路102可以採用任何形式,包括但不限於區域網路(LAN)、廣域網路(WAN)例如網際網路等。
連結到網路102的是一個本地主機104和一個遠端主機106,它們能夠透過網路102進行通訊。在所呈現的情況中,這些主機104、106可包括網路伺服器、儲存裝置或伺服器、桌上型電腦、筆記型電腦、手提電腦、印表機或任何其他形式的硬體/軟體。應注意的是,前述每一個元件以及其他任何未說明之裝置都可以一個或多個網路互相連結。
圖2說明一個示範結構200,是一個具體實施例可以實施的結構。在該具體實施例中,結構200可以代表圖1主機104、106其中之一。當然,仍應注意的是,結構200可以在任何所需的情況中實施。
例如,結構200可以在下列情況實施:一般電腦系統、電路板系統、供娛樂目的使用之遊戲機系統、機上盒、路由器、網路系統、儲存系統、特定應用系統或與網路102相關之任何其他所需的系統。
如圖所示,結構200包括多個與一匯流排202相連結的元件,包括至少一個用於處理資料的處理器204,而該處理器204可以採用任何形式,在一個具體實施例中,處理器204可採用的形式有中央處理器(CPU)、繪圖模組、晶片組(即,用於執行相關功能而以一個單元運作及銷售所設計之積體
電路群組等等)、以上之組合,或任何相關之其它積體電路。在一繪圖模組之實施例中,該積體電路可包括變壓模組、照明模組、及光柵式模組。上述每一個模組都可在單一半導體平台上形成一繪圖處理器(GPU)。
另外,還包括一處理器系統記憶體206,其位於處理器204通訊通道中以儲存資料。該處理器系統記憶體206可採用的形式有內建式或外置式隨機存取記憶體(RAM),硬碟機,移動式儲存裝置(即軟碟機、磁碟機、光碟機等),及/或任何其他形式可儲存資料所需的記憶體。
使用時,程式或控制邏輯運算法則可選擇性地儲存在處理器系統記憶體206中,當執行該程式時,可使結構200執行各種功能。當然,結構200也可很單純地直接在固線式閘位電路中實施。
此外還顯示一個與處理器204及網路(例如圖2所示之網路202)通訊的傳輸卸載引擎212。在一個具體實施例中,傳輸卸載引擎212可以透過匯流排202與處理器204保持通訊。當然,傳輸卸載引擎212仍然可以透過任何提供互相通訊的設備與處理器204保持通訊。傳輸卸載引擎212可包括一個傳輸(即TCP/IP)卸載引擎(TOE)、系統、或任何能夠管理網路中傳送資料的積體電路。
雖然單一匯流排202被說明用以提供上述元件之間的通訊,但應注意任何數量之匯流排(或其他通訊裝置)亦可用於提供該元件之間的通訊。舉例來說,一異常匯流排可被用於提供處理器204與處理器系統記憶體206之間的通
訊。此外,在一具體實施例中,圖2中之任何二個或二個以上之元件可被整合至單一積體電路上。
在操作流程中,傳輸卸載引擎212,處理器204及/或軟體工作可透過一網路(即例如,參圖1之網路102等)以處理封包接收。依據一具體實施例,資料封包與控制封包會透過網路被接收。此外,資料封包與控制封包會被並行處理。
在本件發明說明的情況中,“資料封包”可參考任何可與資料通訊之封包,而“控制封包”可參考在網路通訊中可展示任何控制特性之封包。此外,“並行”可參考用於處理需要被處理之資料封包與控制封包之任何特性,至少有一部份會被同時處理,最後,接收封包的處理效能會被強化。
在另一具體實施例中,封包處理可包括使用、並行、實質複製邏輯及/或多重資料結構(即查詢表與快取記憶體等)以便能確認與封包搭配之正確插座控制區塊(CB)。另一個可選擇的方式是,在該搜尋模式中(即當控制區塊被確認時),如果正確的插座控制區塊不在快取記憶體中,則正確插座控制區塊可從一主要記憶體中回復,而在搜尋模式時,其中被回復之正確插座控制區塊不會被儲存在快取記憶體中。在本件發明說明的情況中,一CB可包括任何能夠追蹤一連結嘗試及/或連結之資訊。
藉由使用首先正確地確認CB資料結構之確認結果,上述確認處理便可被加速。另外,藉由使用實質複製邏輯,CB確認處理可在多個封包被同時執行,因此能更加快速度。
另一個可選擇的方式是,標籤資訊可被預定至封包(即資料封包及/或控制封包等),當該標籤資訊被緩衝在一個接收先進先出(FIFO)緩衝區中時,可進一步被預定至封包。藉由預定標籤資訊,當執行上述CB確認時,接收封包可被儲存。此外,另一個可選擇的方式是,可能不需要提供個別緩衝給標籤資訊。
但是,在另一具體實施例中,當異常封包被接收時,CB可被更新。因此,在使用上,與第一個封包搭配之CB可被更新。此外,至少在與第一個封包搭配之CB開始更新後而完成更新前,可以開始第二個封包的處理,因此強化處理效能。最後,封包處理可與CB更新並行執行,因此降低在處理流程之瓶頸而在其他流程產生瓶頸之可能性。
有關上述具體實施例,更多可選擇的特徵與具體實施細節將會被列出。應注意的是,以下細節是出於說明之目的,不應被認為是任何方式的限制。
根據一具體實施例,圖3說明一供處理接收封包之示範結構300。另一個可選擇之方式是,該結構300可在圖2中示範結構200之情況中執行。當然,仍然應該注意的是結構300也可在所需之任何情況中執行。
如圖所示,一多重媒體存取控制(MAC)接收緩衝區302,係用於接收來自一多重網路102之資料與控制封包。應注意的是,接收緩衝區302並不一定要提供給多重網路102使用。一具體實施例,可包括一供單一網路使用之緩衝區,例如MAC接收緩衝區302會饋送一乙太網路RX 306,
其會依順序饋送一網路通訊協定(IP)RX 310與一異常處置器314,所有IP封包會被送到IP RX 310,而且所有其它封包會被送到異常處置器314中。
在IP RX 310中,封包IP標頭會被解析,所有網路通訊協定安全(IPSEC)協定封包接著會被送至一IPSEC RX處置器308,並被儲存在一IPSEC RX緩衝區304,而且所有TCP或UDP封包都會被送至TCP RX前端模組316。所有其它封包則會被送到異常處置器314。一多工器312會從來自IP RX 310之正常TCP/UDP封包之間選擇,並且從IPSEC RX處置器308處理IPSEC封包。
使用時,TCP RX前端模組316會解析進入的TCP封包,以決定一接收封包是否包含TCP資料或是一TCP控制封包。然後分別的處理路徑會被提供給每一封包形式。到這個階段,封包處理已依上述方法被強化。此外,封包之處理可包括使用、並行、實質複製邏輯及/或多重資料結構〔即一查詢表(參考CB查詢表318)和一CB快取記憶體(參考CB資料快取記憶體324)等〕以確認與封包搭配之正確插座CB。
然而,基於上述原因,資料封包會被儲存在MAC RX FIFO緩衝區322,而同時搜尋與封包搭配之對應CB。在資料封包被儲存且CB查詢表完成之後,標籤資訊可預定至在MAC RX FIFO緩衝區322中之資料封包。此外,TCP RX前端模組316另一項特色是,與第一個封包搭配之CB會被更新。而至少在與第一個封包搭配之CB開始更新之後而完
成更新之前,可開始第二個封包之處理,因此強化處理效能。
在參考圖4及附屬說明時,更多有關該TCP RX前端模組316功能性與選擇性實施細節之資訊將會被更詳細地列出。
繼續參考圖3,TCP RX前端模組316會饋送一異常處置器314。所有被確認會造成任何邏輯異常之封包都會被送至異常處置器314。例如,符合一接收過濾器設定之封包,或是包含未支援選項之封包都會被送到異常處置器314中。如上所述,正常資料封包會透過一個RX緩衝控制器320被儲存在MAC RX FIFO緩衝區322中。該RX緩衝控制器320接收請求以儲存來自異常處置器314或是TCP RX前端模組316之封包,並在兩個來源之間作決定,更多相關互動資訊將會在以下更詳細地列出。
該RX緩衝控制器320會饋送異常的MAC RX FIFO緩衝區322,而依順序饋送至RX後端模組326。該MAC RX FIFO緩衝區322會因此在前端模組與後端模組之間連結,以提供其彼此間的界限且去耦合時亦同。
如圖3所示,TCP RX前端模組316指向封包可在MAC RX FIFO緩衝區322服務之RX後端模組326。很快地就會明白,該RX後端模組326負責應用層級處理,例如,網路小型電腦系統介面(iSCSI)協定或任何其它所需之協定[即RDMA(遠端資料記憶存取)等]。參考圖5與附屬說明,更多有關該RX後端模組326之功能性與選擇性實施細節的
資訊將會被更詳細地列出。
最後,RX後端模組326同時使用散射-聚集表(SGL)334〔及/或可能的記憶描述表(MDL)〕,與匿名緩衝表328,以及直接記憶存取(DMA)邏輯330,以便將接收封包儲存在主機記憶體中(即例如,圖2所示之處理器系統記憶體206、106)。在本件發明之情況中,一SGL可包括任何資料表物件,以提供在記憶體中描述最後儲存進入資料之各個位置。
依據一具體實施例,圖4說明一供處理接收封包之典型TCP RX前端模組316。另一個可選擇的方式是,該TCP RX前端模組316可在圖3之示範結構300情況中實施。當然,仍然應該注意TCP RX前端模組316可在任何所需之情況中實施。
如圖4所示,該TCP RX前端模組316接收來自IP層(即例如,透過圖3之IP RX 310等)之資料,以及處理該封包或將其作為一個異常。為完成此目的,一TCP RX解析器414與插座定位模組402會被提供。另一個可選擇之方式是,多重TCP RX解析器414與插座定位模組402會被提供。因此,此處所揭示之任何邏輯模組都可實質複製或甚至三倍複製以強化處理能力。
使用時,該TCP RX解析器414負責解析接收之TCP與用戶資料元協定(UDP)封包。另一個可選擇的方式是,所有的UDP封包可以異常方式傳送(即透過例如,圖3之異常處置器模組314等)或是可以類似之方法處理TCP資
料封包。更進一步可選擇的方式是,一UDP封包計算值可被驗證,如果該值是錯誤時,封包會被中斷。
對TCP封包而言,所有資料封包都被儲存在一RX FIFO緩衝區322中,而且所有控制封包被傳送至一控制封包佇列404,此項測定可藉由在TCP標頭以及封包長度檢查FLAG位元完成。因此,該控制封包可使用第一處理路徑來處理,而資料封包則可應用第二處理路徑來處理,與第一處理路徑分隔。
如果封包是一個資料封包,一插座雜湊會由插座定位模組402計算。藉由背景方法,每一資料封包都已搭配一對IP位址與一對TCP或UDP埠,雜湊可基於該IP位址與埠(即藉由使用“插座4變數組合”等)而被產生。
該雜湊接著可作為索引進入CB查詢表318,一CB查詢表318之實施例如表1所示:
表1
雜湊1/(在記憶體中位址1至插座CB1)
雜湊2/(在記憶體中位址2至插座CB2)
雜湊3/(在記憶體中位址3至插座CB3)
該CB位址可被用於確認在記憶體中適當CB之位置,並在與CB搭配作為插座處理辨識符時加倍。CB傳統上包括插座處理、以及其它資訊,例如插座狀態等。在CB結構之中有一欄位會指示到下一個包含產生相同雜湊值之CB。以此種方式,雜湊值衝突之插座便可被解決。
然後會基於一插座處理與搭配目前封包之實際插座的比較來決定與CB搭配的插座是否正確。例如,如果在封包中之4元組與插座CB中之參數相符時,便已發現正確之CB。如果不相符,則下一個連結之插座處理會從CB中被讀取,且插座CB接著會被提取。
回復下一個連結插座處理的過程會持續,直到發現正確的插座CB或是確定沒有出現可與接收封包搭配之CB。另一個可選擇之方式是,CB查詢表318之大小可以是支援插座最大數量之兩倍,使其能降低雜湊衝突之數量,而且可位於一外接記憶體中。
在並行使用CB查詢表318,在CB資料快取324中會執行一查詢動作,該CB資料快取324包括最近所使用的“n”插座CB(即大約32)。CB資料快取324可更進一步包括一雜湊組合表,以指示在CB資料快取324中所呈現每一CB輸入時所產生之雜湊。該插座定位模組402接著會查詢CB資料快取以決定在CB資料快取324中是否出現有相符之CB雜湊。最後,便可能在一段預定時間內(即產生雜湊之時間),決定在CB資料快取324中是否可能有相符之CB。
藉由使用資料結構之確認結果(即CB查詢表318或CB資料快取324)首先正確地確認CB,上述確認處理效能會被加速。例如,當CB不在CB資料快取324中時,發現正確插座所需記憶體讀取之最大數量便可藉由方程式# 1取得。
方程式# 1
時脈數目=1+ρ
(n
),其中:‧第1次讀取是由於CB查詢表318查詢,‧n
是供特定雜湊之CB雜湊衝突數目,且‧ρ
是為讀取來自一CB輸入之插座埠與IP位址時所需要時脈週期之數目。如果CB是在CB資料快取324中,為發現CB所需最大時脈數目可由方程式# 2取得。
方程式# 2
時脈數目=m
,其中‧m
指在具有特定雜湊之CB資料快取324中所參考之CB數目。
既然快取匯流排頻寬有理想的大小(即128位元等),參數便可很快地從CB資料快取324被讀取。
更進一步的特色是,當插座定位模組402藉由參考CB查詢表318搜尋CB時,CB資料快取324可透過模式允許一特殊讀取。在此特殊讀取模式中,被請求之CB首先會被檢查其是否在CB資料快取324中。如果在其中,其內容可被立即退回,但是,如果不在CB查詢表318中,則會從主要CB記憶體被讀取。但是在此模式中,該CB並未被拉至CB查詢表318,這是因為在此點之搜尋邏輯仍然在尋找與
接收封包搭配之CB。一旦找到正確之CB,與CB搭配之處理會被傳送到利用CB資料快取324讀取CB的TCP RX狀態控制器412,此時,CB會從主要CB記憶體中被回復並且放在CB資料快取324中。
當CB查詢被執行時,資料封包同時也被儲存在RX FIFO緩衝區322中。以此方式,因為資料封包會比預定的單位更大(即80位元等),平均花費在尋找適當CB之時間會最少,既然找出正確CB是一項時間上的重要工作,該邏輯(即TCP RX解析器414及/或插座定位模組402等)可被實質複製(或是甚至三倍複製)在TCP RX前端模組316中,因此所接收來自IP層之多重封包可被同時處理。
當第1個封包仍在處理時,其允許邏輯向前查詢並開始為下一個封包搜尋CB,一旦CB被發現而且內容被提取後,封包處理(即決定如何處理封包等)會在很少之時脈週期內完成。
回到接收處理,如果正確CB不在CB資料快取324中,它會從主要CB記憶體中被讀取,而且同時將會被放入CB資料快取324中。如果CB已在CB資料快取324中,它可被直接讀取,而插座狀態、控制位元、及參數(包括SEQ與ACK號碼等)都可使用CB被取得。
一旦當所有CB參數都被提取時,封包之處理會視插座之狀態而在一預定時間內完成(即大約二個時脈週期)。因此,因為資料封包會比預定單位更大(即平均300位元),處理便可藉由資料被儲存在RX FIFO緩衝區322之前完
成。即使CB需要從主要CB記憶體中提取時,亦可適用。如果CB已經存在於CB資料快取324中,即使較小資料封包亦可以所需最少額外時間以供封包處理。
在RX FIFO緩衝區322預定給每一封包的是標籤資訊,此標籤資訊可包括在封包形式的資訊(即異常、TCP資料封包等)、搭配之插座處理,及/或其它控制與狀態資訊,該標籤資訊可在整個封包被接收並確認為有效後才被填入。
該標籤資訊當被緩衝於一RX FIFO緩衝區322時,可更進一步地被預定至封包,藉由預定標籤資訊之方式,接收封包在當上述CB確認被執行後,可被儲存。另一個方式是,可能不需要單獨的緩衝供標籤資訊使用。
TCP解析器414之另一項功能就是確認TCP封包內容計算值。此可藉由當封包被解析並儲存在RX FIFO緩衝區322(供資料封包使用)或控制封包佇列404(供TCP控制封包使用)中時,窺探封包而完成。最後封包內容計算值的結果會結合由IP層提供之假標頭封包內容計算值以產生最終封包內容計算值。在來自IP模組之最後字元被讀取後,此項檢查會在一預定時間範圍內(即三個時脈)有效。如果封包被視為來自一TCP封包內容計算值錯誤或任何其它較低層的錯誤,該封包會從RX FIFO緩衝區322或控制封包佇列404中被丟棄。
繼續參考圖4,一TCP RX狀態控制器412會被提供。該TCP RX狀態控制器412負責決定接收TCP資料封包之
行動方向。該封包參數會相對於那些在插座CB而被檢查,包括檢查封包的序列號碼、插座的狀態等。
但是,如果是正常,封包就會被處理,因此,在整個封包被接收之後,所有的處理都已發生,而且最少的進一步計算是必要的。如果封包結果是錯的,則不會更新CB,而且封包會從RX FIFO緩衝區322或控制封包佇列404中被丟棄。在此實施例中,供每一緩衝寫入之指標會被重設至封包到達前的節點上。
一旦整個封包被儲存在RX FIFO緩衝區322中,TCP RX狀態控制器412可透過一TCP傳送模組(未顯示)排訂一個ACK,總共有四種ACK模式可被支援:正常立即ACKs,正常延遲ACKs,主機模式立即ACKs,及主機模式延遲ACKs。
在正常模式中,ACK或延遲ACK在資料封包被接收並確定為有效之後會立即被請求或佇列。在二個主機模式中,只有在主機透過RX DMA確定已接收到資料後,ACK才會被請求或佇列。
再次回到TCP RX解析器414中,該邏輯區塊會從資料封包中將單純TCP控制封包(即不含任何資料的封包)分隔,這是因為單純控制封包傳統上是比較短的封包,而且時間上不須緊急處理。這些TCP控制封包是藉由在TCP標頭中之FLAG位元設定,並結合封包的整體長度來偵測。如果在封包中無內含資料,而且沒有設定推送(PSH)位元時,該封包會被視為一個單純的控制封包。
這些封包會被轉向至圖4中之控制封包佇列404。當封包被轉向時,會計算每一個封包之內容計算值,而且錯誤封包會被丟棄。插座雜湊也會被計算並被預定至分隔部份的封包中。然後一控制封包處置器416會讀取來自佇列之封包並以相同方法處理,然後以下表2之操作流程會被執行以供控制封包使用。
表2
1.插座雜湊會在CB查詢表318被查詢。同時,該雜湊也會被檢查以確認CB是否已在CB資料快取324中。
2.假設CB已在CB資料快取324中,適當欄位會被讀取。
3.如果CB不在CB資料快取324中,它會從主要CB記憶體中被讀取並放在資料快取324中。
4.接著動作則是藉由所接收封包形式與插座目前狀態來決定,這些動作可以是但並不限於下列任何流程:
a.從TCP傳送器上請求一個回應
b.傳送一狀態訊息至主機
c.忽略封包
d.向上傳送封包作為一個異常
5.在所需流程被決定後,CB會因此被更新。
插座之查詢及讀取、處理封包,與CB更新,都是管線操作流程,因此可使處理器在前一個控制封包仍在處理
時,就可開始尋找下一個插座。
根據一具體實施例,圖5說明一供處理接收封包使用之RX後端模組326。另一個可選擇的方式是,該RX後端模組326,可在圖3結構300的情況中實施。當然,仍然應注意RX後端模組326可在任何所需之情況中執行。
一旦封包已經完全地被儲存在RXFIFO緩衝區322中,並且該封包緩衝標頭被填入時,RX後端模組326會開始以相同方法進行處理。RX後端模組會以解析與去除封包緩衝標頭、應用資料校正與RX緩衝標頭開始解析模組502,其會告知RX後端模組326封包形式(即異常或TCP資料封包)、與封包搭配之CB處理、以及其它狀態與控制資訊,如上所述。在一具體實施例中,標頭的長度可以是256位元。
在封包緩衝標頭被解析並去除之後,封包會再次校正,這個重新校正可能是必須的,因為它可供正常TCP(以及可選擇之UDP)資料封包使用;封包乙太網路、IP及TCP標頭亦會被去除,這些標頭之去除可能會導致資料成為非FIFO字元校正,而且重新校正使其對後續邏輯模組在資料封包上之操作流程更簡單。
在重新校正之後,封包可選擇性地通過應用特定處理邏輯504,該邏輯可包括但不限於實施iSCSI協定或遠端直接記憶體存取(RDMA)功能之邏輯。對於支援iSCSI,此模組可執行iSCSI週期備份檢查(CRC)確認、iSCSI協定資料單元(PDU)標頭解析,以及固定式間隔標誌(FIM)
移除。
所有異常封包(來自網路堆疊之每一層)會被傳送至主機記憶體而指定在一異常緩衝表(即暫時緩衝、保留緩衝、渦流緩衝等)。異常表(即例如,參考圖3表328等)會由主驅動器提供。當緩衝被使用時,該表可藉由主機持續地擴大。回復異常緩衝位址與異常緩衝表之管理是由SGL處理邏輯506負責管理。
到達插座之一般TCP資料通常使用一插座指定SGL以指定資料應儲存在主機記憶體的位置,該SGL(即例如,參考圖3之SGL 334等)是由主機驅動器提供,當該表被使用時,可藉由主機持續地擴大。在目前說明之情況中,一SGL可包括任何被提供之資料表物件,以描述進入資料最後儲存在記憶體中之各個位置。當資料在一插座被接收且該插座搭配之SGL並未包含任何有效之緩衝位址時,所接收之資料也會使用異常緩衝表而被傳送至主機記憶體中,SGL管理亦是由SGL處理邏輯506負責處理。
對於正常TCP資料封包,SGL輸入首先是從SGL記憶體334中回復,接收封包之一序列號碼指示在SGL中該資料應被放置之位置,其可以讓即使是失序(OOS)的資料亦可被正確地校正。對於依順序接收之資料,只需從SGL讀取一次便可取得儲存資料位置之主機位址。
然後請求直接記憶體存取資料進入處理器系統記憶體便可被完成,當該直接記憶體存取請求被同意時,資料會從RX FIFO緩衝區322被讀取而且被送至一主機直接記憶
體存取介面330(參考圖3),其被直接記憶體存取進入在特定位址的處理器系統記憶體206。多重SGL是被每一插座所支援,因此可具有一乒乓球模式之操作流程,其可使主機驅動器在一個SGL失效時,儘快提供下一個SGL,無須使任何資料轉向至匿名緩衝上。
如果其中單一資料封包擴展超過一SGL輸入,下一個SGL輸入可在封包之第一部分被直接記憶體存取時,被提取及處理。以此方式,後續之直接記憶體存取請求便可在每一個請求完成後立即執行。
一旦直接記憶體存取完成時,狀態訊息可選擇性地被產生以通知主機驅動器資料已經到達,此時,特定CB參數亦會使用一TCP RX CB更新與狀態訊息請求模組508來更新。
封包標頭之解析、提取SGL、直接記憶體存取資料,以及更新CB都可以是管線操作流程,其使RX後端模組326即使用在先前封包之直接記憶體存取仍未完成,便可開始處理下一個封包標頭,以確保最大資料傳輸。再一次,此處所揭示之任何邏輯模組都可以實質複製或甚至三倍複製以強化處理效能。
根據一具體實施例,圖6說明用於處理接收封包之一示範性前端方法600。另一種可選擇的方式是,方法600可在圖2中示範結構200之情況中實施,或者甚至是在圖3至圖5之示範架構。當然,仍然應該注意的是方法600也可在任何所需之情況實施。另外,雖然各種功能可歸功於
示範性元件(即如上所述),但是應瞭解各種功能可在任何所需之實體上執行是很重要的。
圖6說明接收封包上傳一RX緩衝的處理流程(即例如,參考圖3之RX FIFO緩衝區322),因此重點在於前端處理。
在操作流程602中,一網路協定(IP)層指示一接收封包是否可供使用,為回應該指示,在決策流程604中,會決定一RX解析器(即例如,參考圖4之RX解析器414)是否可供使用。
如果決定一RX解析器無法使用,方法600會等待一可供使用之RX解析器,標註為操作流程606。如果是可供使用,在操作流程608中,接收封包會被傳送至可供使用之RX解析器。
一旦RX解析器可供使用,操作流程624會基於封包標頭內含參數為封包產生一雜湊。然後該RX解析器會檢視TCP標頭以決定封包形式(參考決策操作流程610),並且解析出封包的參數。如果封包是一個單純TCP控制封包(即,不含TCP資料封包),則該封包會被傳送到一控制封包佇列上(即例如,參考圖4之控制封包佇列404)。請參考操作流程612。
如果封包並未包含TCP資料,在操作流程616與618中會開始一CB搜尋。該項搜尋可以並行方式透過雙資料結構被完成(即例如,參考CB查詢表318與CB資料快取324等)。不論那個路徑先完成,都會結束搜尋處理。但是,如
果搜尋CB資料快取無法找到一相符輸入時,邏輯會等待直到CB查詢表查詢結束,如操作流程620所示。在一具體實施例中,從來沒有一個情況是CB查詢表無法發現CB,而是CB在CB資料快取中被發現。
在並行尋找CB時,TCP資料被儲存在一RX緩衝區(即例如,參考RX FIFO緩衝區322等),注意操作流程614,一旦所有資料都被寫入時,在操作流程622中,在RX FIFO中之標籤區段會被預定至資料區段中。此標籤包括供封包使用之參數(即它是何種資料形式),以及一些從CB輸入所取得之狀態資訊(如果有被發現的話)。在標籤被寫入RX FIFO之後,特定解析器便可自由接受另一個接收封包。
根據一具體實施例,圖7說明一用於處理接收封包的後端方法700。另一個可選擇的方式是,該方法700可在圖2的示範結構200之情況中執行,或者甚至是圖3至圖5的示範結構。另外,方法700可結合圖6的前端方法600來執行。
當然,仍然應該注意的是,方法700可在任何所需之情況中實施。另外,雖然各種功能可歸功於實施例元件(即如上所述),但是應瞭解各種功能可在任何所需之實體上執行是很重要的。
圖7說明在一RX緩衝後以供接收封包使用之處理流程(即例如,參考圖3的RX FIFO緩衝區322),因此重點在於後端處理。
在圖7中的流程會在一RX FIPO緩衝區的輸出資料可
供使用時(即參考例如,RX FIFO緩衝區322等)開始。在初始時,於操作流程702與704中,如果封包可使用時,供RX FIFO緩衝區輸入使用的標頭區段會被讀取,其指向資料封包的後端邏輯形式,以及其它狀態資訊。
在封包緩衝標頭被解析之後,它會與乙太網路、IP及TCP/UDP一併被去除(以供在卸載連接所接收之封包使用),而且資料會被重新校正,請參考操作流程706。
資料然後會選擇性地通過選擇性分配特定處理邏輯,參考操作流程708,例如,該邏輯是iSCSI及RDMA支援處理被執行位置。
如果封包屬於一卸載連接(即,一CB輸入被發現符合封包參數),一項檢查會被執行以查看是否有任何SGL緩衝可供資料使用,標註為決策流程710。如果有緩衝可供使用,資料會被直接記憶體存取至處理器系統記憶體中之插座緩衝區。在資料被直接記憶體存取至處理器系統記憶體之後,其可藉由從在操作流程712中插座之SGL取得一主機緩衝位址來完成,參考操作流程716。
如果沒有插座緩衝可供使用,資料會從一全域性清單上使用一異常緩衝位址而被直接記憶體存取至一般異常緩衝區(亦可在處理器系統記憶體),參考操作流程714。然後一項通知也會被傳送至主機以指示有資料需要處理。
如果一CB已供封包使用(依決策流程718),該CB會在操作流程722被更新,如果未被使用,不需額外之操作流程(如操作流程720之標註)。以並行之方式,後端邏輯
可開始處理來自RX FIFO緩衝區的下一個封包。
根據一具體實施例,圖8說明一供處理接收封包之示範性控制封包處理方法800。另一個可選擇的方式是,方法800可在圖2之示範結構200的情況中執行,或者甚至是在圖3至圖5之示範結構。另外,方法800可分別與圖6之方法600與圖7之方法700結合執行。
當然,仍然應該注意的是,方法800可在任何所需之情況中實施。另外,雖然各種功能可歸功於示範性元件(即如上所述),但是應瞭解各種功能可在任何所需之實體上執行是很重要的。
圖8之方法800會在當一控制封包在一控制封包佇列的輸出可使用時開始(即例如,參考圖4之控制封包佇列404),標註為操作流程802。第一件要完成之事就是封包緩衝標頭被解析,參考操作流程804。此標頭包含已產生之封包雜湊,以及其它與控制封包搭配之狀態資訊。下一步,使用回復之雜湊值會開始搜尋一相符CB。近似於圖6中供資料封包使用的前端邏輯所使用之方法600,雙資料結構(即例如,參考CB查詢表318與CB資料快取324等)會被並行查詢。參考操作流程806與808,接著等待在操作流程810之結果。
依決策流程812,如果沒有發現CB符合接收TCP控制封包,則封包會透過在操作流程816的直接記憶體存取被安排傳送至主機,該RX控制邏輯可開始處理來自佇列之下一個控制封包,在邏輯繼續之前,不需要等待控制封包被
直接記憶體存取至操作流程824之主機。
依決策流程812,如果發現一符合的CB可供控制封包使用,則封包會在操作流程814被處理,然後會進行檢查以查看插座CB是否需要更新作為封包處理之結果,參考決策流程818。如果CB真的需要更新,CB在操作流程820與822,就會被排定進行更新,控制封包邏輯然後可開始處理來自佇列之下一個控制封包,以並行方式,CB可被更新以供目前控制封包使用,如前所述。
雖然各種具體實施例已被敘述如上,但應瞭解這些具體實施例係用於舉例說明,而非限制。因此,較佳的具體實施例的幅度與範圍不應被限制於上述任何的示範性具體實施例,而是應該依據下列申請專利範圍及其附屬範圍來決定。
100‧‧‧網路系統
102‧‧‧網路、多重網路
104‧‧‧本地主機
106‧‧‧遠端主機
200‧‧‧結構
202‧‧‧匯流排
204‧‧‧處理器
206‧‧‧處理器系統記憶體
212‧‧‧傳輸卸載引擎
300‧‧‧結構
302‧‧‧接收緩衝區
304‧‧‧IPSEC RX緩衝區
306‧‧‧乙太網路RX
308‧‧‧IPSEC RX處置器
310‧‧‧網路通訊協定(IP)RX
312‧‧‧多工器
314‧‧‧異常處置器、異常處置器模組
316‧‧‧TCP RX前端模組
318‧‧‧CB查詢表
320‧‧‧RX緩衝控制器
322‧‧‧MAC RX FIFO緩衝區
324‧‧‧CB資料快取
326‧‧‧RX後端模組
328‧‧‧匿名緩衝表
330‧‧‧直接記憶體存取邏輯、直接記憶體存取介面
332‧‧‧CB記憶體
334‧‧‧散射-聚集表(SGL)
402‧‧‧插座定位模組
404‧‧‧控制封包佇列
412‧‧‧TCP RX狀態控制器
414‧‧‧TCP RX解析器
416‧‧‧控制封包處置器
502‧‧‧模組
504‧‧‧應用特定處理邏輯
506‧‧‧SGL處理邏輯
508‧‧‧TCP RX CB更新與狀態訊息請求模組
600‧‧‧前端方法
602‧‧‧操作流程
604‧‧‧決策流程
606‧‧‧操作流程
608‧‧‧操作流程
610‧‧‧操作流程
612‧‧‧操作流程
614‧‧‧操作流程
616‧‧‧操作流程
618‧‧‧操作流程
620‧‧‧操作流程
622‧‧‧操作流程
624‧‧‧操作流程
700‧‧‧後端方法
702‧‧‧操作流程
704‧‧‧操作流程
706‧‧‧操作流程
708‧‧‧操作流程
710‧‧‧決策流程
712‧‧‧操作流程
714‧‧‧操作流程
716‧‧‧操作流程
718‧‧‧決策流程
720‧‧‧操作流程
722‧‧‧操作流程
800‧‧‧控制封包處理方法
802‧‧‧操作流程
804‧‧‧操作流程
806‧‧‧操作流程
808‧‧‧操作流程
810‧‧‧操作流程
812‧‧‧決策流程
814‧‧‧操作流程
816‧‧‧操作流程
818‧‧‧決策流程
820‧‧‧操作流程
822‧‧‧操作流程
824‧‧‧操作流程
圖1說明根據一具體實施例之網路系統。
圖2說明根據一具體實施例之可執行結構。
圖3說明根據一具體實施例用於處理接收封包之結構的具體範例。
圖4說明根據一具體實施例用於處理接收封包之一示範性前端模組。
圖5說明根據一具體實施例用於處理接收封包之一示範性後端模組。
圖6說明根據一具體實施例用於處理接收封包之一示範性前端方法。
圖7說明根據一具體實施例用於處理接收封包之一示範性
後端方法。
圖8說明根據一具體實施例用於處理接收封包之一示範性控制封包處理方法。
100‧‧‧網路系統
102‧‧‧網路
104‧‧‧本地主機
106‧‧‧遠端主機
Claims (21)
- 一種在高速網路應用上使用一個接收先進先出緩衝區來處理藉由一主機所接收封包之方法,該方法包括:藉由該主機透過網路接收資料封包與控制封包;且藉由該主機並行處理資料封包與處理控制封包;其中標籤資訊會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座(socket)處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中於該封包緩衝標頭自該其中之一資料封包解析並去除後,該其中之一資料封包被重新校正。
- 如申請專利範圍第1項所述之方法,其中該控制封包會使用第一處理路徑來處理,而資料封包會使用第二處理路徑來處理,與第一處理路徑分隔。
- 如申請專利範圍第1項所述之方法,其中該資料封包及該控制封包的處理包括並行地使用一查詢表與一快取記憶體以確認與該資料封包及該控制封包搭配的正確插座控制區塊。
- 如申請專利範圍第1項所述之方法,其中該資料封包處理包括並行使用實質複製邏輯以確認與封包搭配的正確插座控制區塊。
- 如申請專利範圍第1項所述之方法,其中控制區塊會與該 資料封包及該控制封包搭配,而與後續該資料封包及該控制封包處理並行更新。
- 如申請專利範圍第1項所述之方法,其中當被緩衝在一接收(RX)先進先出(FIFO)緩衝區時,該標籤資訊會被預定至資料封包。
- 一種透過網路以處理接收封包之方法,該方法包括:使用一前端模組以處理接收封包;且使用一後端模組以處理接收封包;其中一接收(RX)先進先出(FIFO)緩衝區會在該前端模組與該後端模組之間連結以提供其彼此間之界限;其中與該接收封包搭配之控制區塊與後續接收封包之處理並行更新;其中標籤資訊會被預定至該接收封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該接收封包其中之一被完全地緩衝時,一後端模組將一封包緩衝標頭自該其中之一接收封包解析並去除;其中於該封包緩衝標頭自該其中之一接收封包解析並去除後,該其中之一接收封包被重新校正。
- 一種透過網路以處理接收封包之子系統,該子系統包括:一卸載引擎,透過網路與一匯流排通訊以接收資料封包與控制封包,且並行處理該資料封包與該控制封包;其中該子系統可操作使得標籤資訊會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收 (RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中該子系統可操作使得在該封包緩衝標頭自該其中之一資料封包解析並去除後,該其中之一資料封包被重新校正。
- 一種透過網路以處理接收封包之系統,該系統包括:一匯流排;一與該匯流排通訊之記憶體;一與該匯流排通訊之處理器;一卸載引擎,透過網路與該匯流排通訊以接收資料封包與控制封包,且並行處理該資料封包與該控制封包;其中該系統可操作使得標籤資訊會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中該系統可操作使得在該封包緩衝標頭自該其中之一資料封包解析並去除後,該其中之一資料封包重新校正。
- 如申請專利範圍第9項所述之系統,其中該系統包括一般電腦。
- 如申請專利範圍第9項所述之系統,其中該系統包括一遊戲機。
- 如申請專利範圍第9項所述之系統,其中之處理器可從包括中央處理器、繪圖處理元件、以及晶片組中多數積體電路之一之群組中選擇。
- 如申請專利範圍第9項所述之系統,其中該系統包括一電路板。
- 一種透過網路以處理接收封包之方法,該方法包括:藉由該主機透過網路接收封包; 確認與該封包搭配的正確插座控制區塊,並行地使用一查詢表與一快取記憶體以加速正確插座控制區塊的確認;其中與該接收封包搭配之控制區塊與後續接收封包之處理並行更新;其中標籤資訊會被預定至該封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一封包解析並去除;其中於該封包緩衝標頭自該其中之一封包解析並去除後,該其中之一封包被重新校正。
- 一種透過網路以處理接收封包之方法,該方法包括:藉由該主機透過網路接收封包;確認與該封包搭配的正確插座控制區塊,並行地使用實質複製邏輯以加速正確插座控制區塊的確認;其中標籤資訊會被預定至該封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一封包解析並去除;其中於該封包緩衝標頭自該其中之一封包解析並去除後,該其中之一封包被重新校正。
- 一種透過網路以處理接收資料封包之方法,該方法包括:藉由該主機透過網路接收資料封包;藉由該主機透過網路處理該資料封包;其中標籤資訊在該資料封包被儲存在一接收(RX)先進先 出(FIFO)緩衝區後,會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中於該封包緩衝標頭自該其中之一資料封包解析並去除後,該其中之一資料封包被重新校正。
- 一種透過網路以處理接收封包之方法,該方法包括:藉由該主機透過網路接收第一封包;藉由該主機透過網路處理該第一封包;更新與該第一封包搭配的控制區塊;且在至少開始與該第一封包搭配之控制區塊的更新後與完成更新前,至少開始第二封包的處理;其中標籤資訊會被預定至該第一封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該第一封包被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該第一封包解析並去除;其中於該封包緩衝標頭自該第一封包解析並去除後,該第一封包被重新校正。
- 一種透過網路以處理接收封包之方法,該方法包括:藉由該主機透過網路接收資料封包與控制封包;且藉由該主機並行處理該資料封包與處理該控制封包;其中該資料封包使用一接收(RX)先進先出(FIFO)緩衝區進行緩衝; 其中一旦該資料封包其中之一使用該接收(RX)先進先出(FIFO)緩衝區被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中於該封包緩衝標頭自該其中之一資料封包解析並去除後,該其中之一資料封包被重新校正。
- 一種透過網路以處理接收封包之方法,該方法包括:藉由該主機透過網路接收資料封包與控制封包;且藉由該主機並行處理該資料封包與處理該控制封包;其中標籤資訊會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中該資料封包與控制封包的處理包含,在一搜尋模式中,使用一快取記憶體以確認搭配該資料封包與該控制封包的正確插座控制區塊,其中,如果該正確插座控制區塊不在該快取記憶體中,該正確插座控制區塊可從一主要記憶體中回復,但在該搜尋模式時,該正確插座控制區塊不會被儲存在該快取記憶體中。
- 一種透過網路以處理接收封包之子系統,包括:一卸載引擎,透過網路與匯流排通訊以接收資料封包與控制封包,且並行處理該資料封包與該控制封包;其中該子系統可操作使得標籤資訊會被預定至該資料封包; 其中該標籤資料包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中該卸載引擎可操作使得該資料封包與該控制封包的處理包含,在一搜尋模式中,使用一快取記憶體以確認搭配該資料封包與該控制封包的正確插座控制區塊,其中,如果該正確插座控制區塊不在該快取記憶體中,該正確插座控制區塊可從一主要記憶體中回復,但在該搜尋模式時,該正確插座控制區塊不會被儲存在該快取記憶體中。
- 一種透過網路以處理接收封包之系統,包括:一匯流排;一與該匯流排通訊之記憶體;一與該匯流排通訊之處理器;一卸載引擎,透過網路與該匯流排通訊以接收資料封包與控制封包,且並行處理該資料封包與該控制封包;其中該系統可操作使得標籤資訊會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中該卸載引擎可操作使得該資料封包與該控制封包的處理包含,在一搜尋模式中,使用一快取記憶體以確認搭配該資料封包與該控制封包的正確插座控制區塊,其中,如 果該正確插座控制區塊不在該快取記憶體中,該正確插座控制區塊可從一主要記憶體中回復,但在該搜尋模式時,該正確插座控制區塊不會被儲存在該快取記憶體中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/969,376 US7957379B2 (en) | 2004-10-19 | 2004-10-19 | System and method for processing RX packets in high speed network applications using an RX FIFO buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200629819A TW200629819A (en) | 2006-08-16 |
TWI407733B true TWI407733B (zh) | 2013-09-01 |
Family
ID=36180692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094136609A TWI407733B (zh) | 2004-10-19 | 2005-10-19 | 在高速網路應用上使用一個接收先進先出緩衝區來處理接收封包之系統與方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7957379B2 (zh) |
JP (1) | JP2008517565A (zh) |
KR (1) | KR101018575B1 (zh) |
CN (1) | CN101120424B (zh) |
TW (1) | TWI407733B (zh) |
WO (1) | WO2006045057A2 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8396981B1 (en) * | 2005-06-07 | 2013-03-12 | Oracle America, Inc. | Gateway for connecting storage clients and storage servers |
WO2007006146A1 (en) * | 2005-07-12 | 2007-01-18 | Advancedio Systems Inc. | System and method of offloading protocol functions |
US8621030B2 (en) * | 2006-09-28 | 2013-12-31 | Intel Corporation | Techniques to copy an operating system |
CN101272378B (zh) * | 2007-03-23 | 2011-05-11 | 国际商业机器公司 | 用于处理会话启动协议消息的方法和系统 |
FR2925190B1 (fr) * | 2007-12-18 | 2009-11-20 | Alcatel Lucent | Procede et dispositif de communication entre plusieurs interfaces de connexion |
JP5152201B2 (ja) * | 2008-01-21 | 2013-02-27 | 富士通株式会社 | パケット処理装置およびパケット処理プログラム |
JP5333200B2 (ja) * | 2009-12-25 | 2013-11-06 | 富士通株式会社 | パケット通信制御装置、メモリアクセス制御装置及び情報処理システム |
CN102006283B (zh) * | 2010-10-21 | 2013-07-17 | 意法·爱立信半导体(北京)有限公司 | 数据传输的方法和装置 |
US8774213B2 (en) | 2011-03-30 | 2014-07-08 | Amazon Technologies, Inc. | Frameworks and interfaces for offload device-based packet processing |
US8462780B2 (en) | 2011-03-30 | 2013-06-11 | Amazon Technologies, Inc. | Offload device-based stateless packet processing |
CA2831705C (en) * | 2011-03-30 | 2017-10-03 | Amazon Technologies, Inc. | Frameworks and interfaces for offload device-based packet processing |
US20130346274A1 (en) * | 2012-06-25 | 2013-12-26 | Liquid Holdings Group, Inc. | Electronic financial trading platform with real-time data analysis and reporting |
US10057387B2 (en) | 2012-12-26 | 2018-08-21 | Realtek Singapore Pte Ltd | Communication traffic processing architectures and methods |
CN105052081B (zh) * | 2012-12-26 | 2018-11-13 | 瑞昱新加坡有限公司 | 通信流量处理架构和方法 |
CN104657555A (zh) * | 2015-02-11 | 2015-05-27 | 北京麓柏科技有限公司 | 一种基于uvm验证方法学的toe的验证方法及平台 |
KR101854377B1 (ko) | 2016-11-10 | 2018-05-03 | 고려대학교 산학협력단 | 고속 패킷 처리 시스템 및 그 제어방법 |
US11075848B2 (en) | 2019-08-21 | 2021-07-27 | Hewlett Packard Enterprise Development Lp | Fast path for acknowledgement frames in wireless networks |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040062267A1 (en) * | 2002-03-06 | 2004-04-01 | Minami John Shigeto | Gigabit Ethernet adapter supporting the iSCSI and IPSEC protocols |
Family Cites Families (196)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US212889A (en) * | 1879-03-04 | Improvement in road-engines | ||
US4807111A (en) * | 1987-06-19 | 1989-02-21 | International Business Machines Corporation | Dynamic queueing method |
US4839851A (en) * | 1987-07-13 | 1989-06-13 | Idaho Research Foundation, Inc. | Programmable data path device |
US5012489A (en) * | 1988-11-07 | 1991-04-30 | Hayes Microcomputer Products, Inc. | Method for sending a plurality of data channels over a single communications line |
US5303344A (en) * | 1989-03-13 | 1994-04-12 | Hitachi, Ltd. | Protocol processing apparatus for use in interfacing network connected computer systems utilizing separate paths for control information and data transfer |
JP2986802B2 (ja) | 1989-03-13 | 1999-12-06 | 株式会社日立製作所 | プロトコル高速処理方法 |
US5687314A (en) | 1989-06-02 | 1997-11-11 | Tele Digital Development, Inc. | Method and apparatus for assisting data bus transfer protocol |
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US5161193A (en) | 1990-06-29 | 1992-11-03 | Digital Equipment Corporation | Pipelined cryptography processor and method for its use in communication networks |
US5251205A (en) | 1990-09-04 | 1993-10-05 | Digital Equipment Corporation | Multiple protocol routing |
US5367643A (en) * | 1991-02-06 | 1994-11-22 | International Business Machines Corporation | Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets |
WO1992016895A1 (en) * | 1991-03-18 | 1992-10-01 | Echelon Corporation | Networked variables |
US5307413A (en) * | 1991-07-19 | 1994-04-26 | Process Software Corporation | Method and apparatus for adding data compression and other services in a computer network |
US6098188A (en) | 1992-02-14 | 2000-08-01 | Lucent Technologies Inc. | Packet framer |
US5742760A (en) | 1992-05-12 | 1998-04-21 | Compaq Computer Corporation | Network packet switch using shared memory for repeating and bridging packets at media rate |
US5877764A (en) * | 1992-10-23 | 1999-03-02 | International Business Machines Corporation | Graphical user interface for managing text i/o between a user and a parallel program |
US5696899A (en) | 1992-11-18 | 1997-12-09 | Canon Kabushiki Kaisha | Method and apparatus for adaptively determining the format of data packets carried on a local area network |
EP0820008A3 (en) | 1992-12-01 | 2006-05-24 | Microsoft Corporation | A method and system for in-place interaction with embedded objects |
US5619650A (en) * | 1992-12-31 | 1997-04-08 | International Business Machines Corporation | Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message |
JPH0763161B2 (ja) | 1993-01-05 | 1995-07-05 | 日本電気株式会社 | マルチメディアパケット通信方式 |
AU6410994A (en) * | 1993-03-30 | 1994-10-24 | Ast Research, Inc. | Cache address strobe control logic for simulated bus cycle initiation |
US5596702A (en) * | 1993-04-16 | 1997-01-21 | International Business Machines Corporation | Method and system for dynamically sharing user interface displays among a plurality of application program |
US5495480A (en) * | 1993-06-21 | 1996-02-27 | Nec Corporation | Packet transmission system having timer for circuit disconnection |
US5621434A (en) * | 1993-08-11 | 1997-04-15 | Object Technology Licensing Corp. | Cursor manipulation system and method |
US5426694A (en) | 1993-10-08 | 1995-06-20 | Excel, Inc. | Telecommunication switch having programmable network protocols and communications services |
US5802287A (en) | 1993-10-20 | 1998-09-01 | Lsi Logic Corporation | Single chip universal protocol multi-function ATM network interface |
US5625825A (en) * | 1993-10-21 | 1997-04-29 | Lsi Logic Corporation | Random number generating apparatus for an interface unit of a carrier sense with multiple access and collision detect (CSMA/CD) ethernet data network |
JP3358254B2 (ja) | 1993-10-28 | 2002-12-16 | 株式会社日立製作所 | 通信制御装置および通信制御用回路装置 |
CA2169626A1 (en) | 1993-11-02 | 1995-05-11 | Arthur W. Cabral | Object-oriented graphic system |
BR9407962A (pt) | 1993-11-02 | 1996-12-03 | Paracom Corp | Aparelho para processamento acelerado de transaçoes com base de dados de computador |
US5524110A (en) | 1993-11-24 | 1996-06-04 | Intel Corporation | Conferencing over multiple transports |
WO1995015524A1 (en) * | 1993-12-02 | 1995-06-08 | Taligent, Inc. | Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system |
US5485455A (en) | 1994-01-28 | 1996-01-16 | Cabletron Systems, Inc. | Network having secure fast packet switching and guaranteed quality of service |
US5577105A (en) * | 1994-03-11 | 1996-11-19 | U.S. Robotics, Inc. | Telephone call routing and switching techniques for data communications |
US6185619B1 (en) * | 1996-12-09 | 2001-02-06 | Genuity Inc. | Method and apparatus for balancing the process load on network servers according to network and serve based policies |
US5519704A (en) * | 1994-04-21 | 1996-05-21 | Cisco Systems, Inc. | Reliable transport protocol for internetwork routing |
US5650941A (en) | 1994-09-07 | 1997-07-22 | Intel Corporation | Computer architecture for creating and manipulating displayable objects |
US5870549A (en) | 1995-04-28 | 1999-02-09 | Bobo, Ii; Charles R. | Systems and methods for storing, delivering, and managing messages |
US5675507A (en) | 1995-04-28 | 1997-10-07 | Bobo, Ii; Charles R. | Message storage and delivery system |
US5664162A (en) | 1994-05-23 | 1997-09-02 | Cirrus Logic, Inc. | Graphics accelerator with dual memory controllers |
US5577172A (en) | 1994-07-01 | 1996-11-19 | Lasermaster Corporation | High-capacity protocol for packet-based networks |
US5485460A (en) * | 1994-08-19 | 1996-01-16 | Microsoft Corporation | System and method for running multiple incompatible network protocol stacks |
US5905582A (en) * | 1994-11-14 | 1999-05-18 | Canon Kabushiki Kaisha | Image processing apparatus for processing image data in response to signals from an external apparatus |
US5726769A (en) * | 1994-11-14 | 1998-03-10 | Canon Kabushiki Kaisha | Image processing apparatus capable of connecting external information processing terminal, and including printer unit and data processing unit |
US5812951A (en) | 1994-11-23 | 1998-09-22 | Hughes Electronics Corporation | Wireless personal communication system |
JPH08180006A (ja) * | 1994-12-22 | 1996-07-12 | Hitachi Ltd | ネットワークインタフェースおよび計算機ネットワークシステム |
US5598410A (en) * | 1994-12-29 | 1997-01-28 | Storage Technology Corporation | Method and apparatus for accelerated packet processing |
US5566170A (en) | 1994-12-29 | 1996-10-15 | Storage Technology Corporation | Method and apparatus for accelerated packet forwarding |
US5577237A (en) | 1995-01-23 | 1996-11-19 | Tandem Computers, Incorporated | Protocol timer and method of using same |
US5680605A (en) | 1995-02-07 | 1997-10-21 | Torres; Robert J. | Method and apparatus for searching a large volume of data with a pointer-based device in a data processing system |
US5802278A (en) | 1995-05-10 | 1998-09-01 | 3Com Corporation | Bridge/router architecture for high performance scalable networking |
US5625678A (en) * | 1995-05-24 | 1997-04-29 | Microsoft Corporation | Method and system for allowing switched voice and data communication among multiple application programs |
US5734865A (en) * | 1995-06-07 | 1998-03-31 | Bull Hn Information Systems Inc. | Virtual local area network well-known port routing mechanism for mult--emulators in an open system environment |
US5870622A (en) * | 1995-06-07 | 1999-02-09 | Advanced Micro Devices, Inc. | Computer system and method for transferring commands and data to a dedicated multimedia engine |
US5636371A (en) * | 1995-06-07 | 1997-06-03 | Bull Hn Information Systems Inc. | Virtual network mechanism to access well known port application programs running on a single host system |
US5754540A (en) * | 1995-07-18 | 1998-05-19 | Macronix International Co., Ltd. | Expandable integrated circuit multiport repeater controller with multiple media independent interfaces and mixed media connections |
US5918051A (en) * | 1995-07-19 | 1999-06-29 | Ricoh Company, Ltd. | Object-oriented communication system with support for multiple remote machine types |
US5666362A (en) | 1995-07-25 | 1997-09-09 | 3Com Corporation | Method and apparatus for asynchronous PPP and synchronous PPP conversion |
US5701316A (en) | 1995-08-31 | 1997-12-23 | Unisys Corporation | Method for generating an internet protocol suite checksum in a single macro instruction |
US5699350A (en) | 1995-10-06 | 1997-12-16 | Canon Kabushiki Kaisha | Reconfiguration of protocol stacks and/or frame type assignments in a network interface device |
US5802306A (en) | 1995-10-31 | 1998-09-01 | International Business Machines Corporation | Supporting multiple client-server sessions from a protocol stack associated with a single physical adapter through use of a plurality of logical adapters |
US5778178A (en) | 1995-11-13 | 1998-07-07 | Arunachalam; Lakshmi | Method and apparatus for enabling real-time bi-directional transactions on a network |
US5826032A (en) | 1996-02-12 | 1998-10-20 | University Of Southern California | Method and network interface logic for providing embedded checksums |
US5809235A (en) | 1996-03-08 | 1998-09-15 | International Business Machines Corporation | Object oriented network event management framework |
US5909546A (en) * | 1996-03-08 | 1999-06-01 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | Network interface having support for allowing remote operations with reply that bypass host computer interaction |
US5894557A (en) * | 1996-03-29 | 1999-04-13 | International Business Machines Corporation | Flexible point-to-point protocol framework |
US5901287A (en) * | 1996-04-01 | 1999-05-04 | The Sabre Group Inc. | Information aggregation and synthesization system |
US5815516A (en) | 1996-04-05 | 1998-09-29 | International Business Machines Corporation | Method and apparatus for producing transmission control protocol checksums using internet protocol fragmentation |
US5946487A (en) | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
US5983332A (en) | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture |
US5920732A (en) | 1996-07-01 | 1999-07-06 | Apple Computer, Inc. | System for preallocating additional larger buffer sizes in accordance with packet sizes of discarded packets that can't be stored in existing preallocated buffer sizes |
US5754556A (en) * | 1996-07-18 | 1998-05-19 | Teradyne, Inc. | Semiconductor memory tester with hardware accelerators |
US5956034A (en) | 1996-08-13 | 1999-09-21 | Softbook Press, Inc. | Method and apparatus for viewing electronic reading materials |
US5968161A (en) | 1996-08-29 | 1999-10-19 | Altera Corporation | FPGA based configurable CPU additionally including second programmable section for implementation of custom hardware support |
US5748905A (en) * | 1996-08-30 | 1998-05-05 | Fujitsu Network Communications, Inc. | Frame classification using classification keys |
US5854750A (en) | 1996-09-03 | 1998-12-29 | Insession, Inc. | System and method for processing transactions in an environment containing a number of object oriented applications |
US5847698A (en) | 1996-09-17 | 1998-12-08 | Dataventures, Inc. | Electronic book device |
US5987582A (en) | 1996-09-30 | 1999-11-16 | Cirrus Logic, Inc. | Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device |
US6092229A (en) | 1996-10-09 | 2000-07-18 | Lsi Logic Corporation | Single chip systems using general purpose processors |
US6101543A (en) | 1996-10-25 | 2000-08-08 | Digital Equipment Corporation | Pseudo network adapter for frame capture, encapsulation and encryption |
US6230193B1 (en) * | 1996-10-31 | 2001-05-08 | 3Com Corporation | Method and apparatus supporting network communications |
US6034963A (en) | 1996-10-31 | 2000-03-07 | Iready Corporation | Multiple network protocol encoder/decoder and data processor |
US7035291B2 (en) | 2001-05-02 | 2006-04-25 | Ron Grinfeld | TCP transmission acceleration |
US6046980A (en) * | 1996-12-09 | 2000-04-04 | Packeteer, Inc. | System for managing flow bandwidth utilization at network, transport and application layers in store and forward network |
US5941988A (en) | 1997-01-27 | 1999-08-24 | International Business Machines Corporation | Session and transport layer proxies via TCP glue |
US6377570B1 (en) * | 1997-02-02 | 2002-04-23 | Fonefriend Systems, Inc. | Internet switch box, system and method for internet telephony |
US6172990B1 (en) * | 1997-06-19 | 2001-01-09 | Xaqti Corporation | Media access control micro-RISC stream processor and method for implementing the same |
US6076115A (en) * | 1997-02-11 | 2000-06-13 | Xaqti Corporation | Media access control receiver and network management system |
US6247068B1 (en) * | 1997-03-07 | 2001-06-12 | Advanced Micro Devices Inc. | Winsock-data link library transcoder |
US5818935A (en) | 1997-03-10 | 1998-10-06 | Maa; Chia-Yiu | Internet enhanced video system |
US6157956A (en) | 1997-03-28 | 2000-12-05 | Global Maintech, Inc. | Heterogeneous computing interface apparatus and method using a universal character set |
US5974518A (en) | 1997-04-10 | 1999-10-26 | Milgo Solutions, Inc. | Smart buffer size adaptation apparatus and method |
US5943481A (en) | 1997-05-07 | 1999-08-24 | Advanced Micro Devices, Inc. | Computer communication network having a packet processor with subsystems that are variably configured for flexible protocol handling |
US5872919A (en) * | 1997-05-07 | 1999-02-16 | Advanced Micro Devices, Inc. | Computer communication network having a packet processor with an execution unit which is variably configured from a programmable state machine and logic |
US6081846A (en) * | 1997-05-08 | 2000-06-27 | Microsoft Corporation | Method and computer program product for reducing intra-system data copying during network packet processing |
US6330659B1 (en) | 1997-11-06 | 2001-12-11 | Iready Corporation | Hardware accelerator for an object-oriented programming language |
JP2000514944A (ja) | 1997-05-08 | 2000-11-07 | アイレディー コーポレイション | オブジェクト指向プログラミング言語のためのハードウェア加速器 |
US6012961A (en) * | 1997-05-14 | 2000-01-11 | Design Lab, Llc | Electronic toy including a reprogrammable data storage device |
US5935268A (en) | 1997-06-03 | 1999-08-10 | Bay Networks, Inc. | Method and apparatus for generating an error detection code for a modified data packet derived from an original data packet |
US6208651B1 (en) * | 1997-06-10 | 2001-03-27 | Cornell Research Foundation, Inc. | Method and system for masking the overhead of protocol layering |
US5966534A (en) | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
US6173333B1 (en) * | 1997-07-18 | 2001-01-09 | Interprophet Corporation | TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols |
US6397316B2 (en) * | 1997-07-24 | 2002-05-28 | Intel Corporation | System for reducing bus overhead for communication with a network interface |
US6078736A (en) * | 1997-08-28 | 2000-06-20 | Xilinx, Inc. | Method of designing FPGAs for dynamically reconfigurable computing |
US6014699A (en) * | 1997-08-29 | 2000-01-11 | International Business Machines Corporation | Internet protocol assists for high performance LAN connections |
US5999974A (en) | 1997-08-29 | 1999-12-07 | International Business Machines Corporation | Internet protocol assists for high performance LAN connections |
US6151625A (en) | 1997-09-10 | 2000-11-21 | Schneider Automation Inc. | Internet web interface including programmable logic controller for controlling output devices based on status of input devices |
US6172980B1 (en) * | 1997-09-11 | 2001-01-09 | 3Com Corporation | Multiple protocol support |
US5991299A (en) | 1997-09-11 | 1999-11-23 | 3Com Corporation | High speed header translation processing |
US6094657A (en) | 1997-10-01 | 2000-07-25 | International Business Machines Corporation | Apparatus and method for dynamic meta-tagging of compound documents |
US6061742A (en) * | 1997-10-10 | 2000-05-09 | Nortel Networks Corporation | Computer network adaptor |
US7133940B2 (en) | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
US6757746B2 (en) | 1997-10-14 | 2004-06-29 | Alacritech, Inc. | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory |
US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US6389479B1 (en) * | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
US6687758B2 (en) | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
US6591302B2 (en) | 1997-10-14 | 2003-07-08 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US7167927B2 (en) * | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
US6092110A (en) | 1997-10-23 | 2000-07-18 | At&T Wireless Svcs. Inc. | Apparatus for filtering packets using a dedicated processor |
US5923892A (en) | 1997-10-27 | 1999-07-13 | Levy; Paul S. | Host processor and coprocessor arrangement for processing platform-independent code |
US5937169A (en) | 1997-10-29 | 1999-08-10 | 3Com Corporation | Offload of TCP segmentation to a smart adapter |
US6061368A (en) | 1997-11-05 | 2000-05-09 | Xylan Corporation | Custom circuitry for adaptive hardware routing engine |
JP3042615B2 (ja) | 1997-12-09 | 2000-05-15 | 瑞麟 蕭 | 中間ステーション型のマルチメディア情報処理装置と方法 |
US6567855B1 (en) * | 1998-01-02 | 2003-05-20 | Intel Corporation | Portable processing system with always on, always connected capability |
US6058421A (en) * | 1998-02-04 | 2000-05-02 | 3Com Corporation | Method and system for addressing network host interfaces from a cable modem using DHCP |
JPH11313091A (ja) | 1998-02-24 | 1999-11-09 | Canon Inc | データ通信システム、装置及び方法並びに記憶媒体 |
US6341129B1 (en) * | 1998-04-03 | 2002-01-22 | Alteon Networks, Inc. | TCP resegmentation |
US6765901B1 (en) | 1998-06-11 | 2004-07-20 | Nvidia Corporation | TCP/IP/PPP modem |
US6157955A (en) | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6480494B1 (en) * | 1998-06-15 | 2002-11-12 | Nokia High Speed Access Products, Inc. | Switching system data interface |
US6182228B1 (en) * | 1998-08-17 | 2001-01-30 | International Business Machines Corporation | System and method for very fast IP packet filtering |
JP3542103B2 (ja) | 1998-09-08 | 2004-07-14 | 富士通株式会社 | ネットワーク制御方式 |
US6233626B1 (en) * | 1998-10-06 | 2001-05-15 | Schneider Automation Inc. | System for a modular terminal input/output interface for communicating messaging application layer over encoded ethernet to transport layer |
US6363418B1 (en) * | 1998-10-16 | 2002-03-26 | Softbook Press, Inc. | On-line image caching control for efficient image display |
US6331865B1 (en) | 1998-10-16 | 2001-12-18 | Softbook Press, Inc. | Method and apparatus for electronically distributing and viewing digital contents |
US6430628B1 (en) | 1998-12-08 | 2002-08-06 | Intel Corporation | Method and apparatus for reducing direct memory access transfers using smart coalescing |
US6480852B1 (en) | 1998-12-11 | 2002-11-12 | International Business Machines Corporation | Method and system for rating bookmarks in a web browser |
KR100577076B1 (ko) | 1998-12-16 | 2006-05-08 | 실버브룩 리서치 피티와이 리미티드 | 2중 잉크젯 인쇄 시스템 |
JP2000196669A (ja) | 1998-12-25 | 2000-07-14 | Hitachi Ltd | 情報中継装置 |
US6347337B1 (en) * | 1999-01-08 | 2002-02-12 | Intel Corporation | Credit based flow control scheme over virtual interface architecture for system area networks |
US6345301B1 (en) * | 1999-03-30 | 2002-02-05 | Unisys Corporation | Split data path distributed network protocol |
US6389537B1 (en) * | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
US6510458B1 (en) * | 1999-07-15 | 2003-01-21 | International Business Machines Corporation | Blocking saves to web browser cache based on content rating |
US6347347B1 (en) * | 1999-07-15 | 2002-02-12 | 3Com Corporation | Multicast direct memory access storing selected ones of data segments into a first-in-first-out buffer and a memory simultaneously when enabled by a processor |
US6449656B1 (en) * | 1999-07-30 | 2002-09-10 | Intel Corporation | Storing a frame header |
US6427169B1 (en) | 1999-07-30 | 2002-07-30 | Intel Corporation | Parsing a packet header |
TW448407B (en) | 1999-11-18 | 2001-08-01 | Iready Corp | Hardware accelerator for an object-oriented programming language |
TW447205B (en) | 1999-11-18 | 2001-07-21 | Iready Corp | Multiple network protocol encoder/decoder and date processor |
US6327625B1 (en) | 1999-11-30 | 2001-12-04 | 3Com Corporation | FIFO-based network interface supporting out-of-order processing |
US6530061B1 (en) * | 1999-12-23 | 2003-03-04 | Intel Corporation | Method and apparatus for offloading checksum |
US6773344B1 (en) | 2000-03-16 | 2004-08-10 | Creator Ltd. | Methods and apparatus for integration of interactive toys with interactive television and cellular communication systems |
US6701316B1 (en) * | 2000-04-07 | 2004-03-02 | Nec Corporation | Method and apparatus for intelligent network bandwidth and system resource utilization for web content fetch and refresh |
JP3614082B2 (ja) * | 2000-04-12 | 2005-01-26 | 日本電気株式会社 | 通信網接続装置 |
NL1015702C2 (nl) * | 2000-07-13 | 2002-01-15 | Dia Services B V | Systeem voor het registreren van een beschrijfbaar medium, systeem voor het authentiseren van een beschrijfbaar medium, alsmede servers en cliÙntsysteem voor dergelijke systemen. |
US20020085562A1 (en) | 2000-12-13 | 2002-07-04 | International Business Machines Corporation | IP headers for remote direct memory access and upper level protocol framing |
US6609225B1 (en) | 2000-12-21 | 2003-08-19 | Cisco Technology, Inc. | Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a multi-byte CRC generator on a variable number of bytes |
US7149817B2 (en) * | 2001-02-15 | 2006-12-12 | Neteffect, Inc. | Infiniband TM work queue to TCP/IP translation |
GB2372680B (en) | 2001-02-27 | 2003-02-19 | 3Com Corp | Calculation and transmission of error check codes |
US7065702B2 (en) * | 2001-04-12 | 2006-06-20 | Siliquent Technologies Ltd. | Out-of-order calculation of error detection codes |
US8218555B2 (en) * | 2001-04-24 | 2012-07-10 | Nvidia Corporation | Gigabit ethernet adapter |
WO2002097580A2 (en) * | 2001-05-31 | 2002-12-05 | Espeed, Inc. | Securities trading system with multiple levels-of-interest |
US6933086B2 (en) * | 2001-06-01 | 2005-08-23 | Seiko Epson Corporation | Color filter, display device and electronic equipment, manufacturing method thereof, and apparatus for manufacturing display device |
JP3749458B2 (ja) | 2001-06-06 | 2006-03-01 | コナミ株式会社 | 遊戯拡張システムと玩具システムとを備えたシステム |
US7194766B2 (en) * | 2001-06-12 | 2007-03-20 | Corrent Corporation | Method and system for high-speed processing IPSec security protocol packets |
US20030003117A1 (en) * | 2001-06-18 | 2003-01-02 | Michael Marenick | Hydrolyzed whole egg products & related methods |
US7165112B2 (en) * | 2001-06-22 | 2007-01-16 | Motorola, Inc. | Method and apparatus for transmitting data in a communication system |
WO2003005672A2 (en) | 2001-07-06 | 2003-01-16 | Livedevices Limited | Improvements relating to reduction of resource usage in tcp/ip implementation |
US7426729B2 (en) * | 2001-07-11 | 2008-09-16 | Sun Microsystems, Inc. | Distributed processing framework system |
US6980551B2 (en) * | 2001-07-12 | 2005-12-27 | International Business Machines Corporation | Full transmission control protocol off-load |
JP4154874B2 (ja) * | 2001-07-30 | 2008-09-24 | カシオ計算機株式会社 | 指紋読取装置および指紋読取方法 |
US7020716B2 (en) * | 2001-08-31 | 2006-03-28 | Adaptec, Inc. | Method and system for verifying the hardware implementation of TCP/IP |
US7162630B2 (en) * | 2001-08-31 | 2007-01-09 | Adaptec, Inc. | Systems and methods for implementing host-based security in a computer network |
DE10143366A1 (de) * | 2001-09-04 | 2003-03-20 | Kiekert Ag | Kraftfahrzeugtürverschluss |
US20030046330A1 (en) * | 2001-09-04 | 2003-03-06 | Hayes John W. | Selective offloading of protocol processing |
US8255567B2 (en) * | 2001-09-06 | 2012-08-28 | Broadcom Corporation | Efficient IP datagram reassembly |
US7620692B2 (en) * | 2001-09-06 | 2009-11-17 | Broadcom Corporation | iSCSI receiver implementation |
US7953093B2 (en) | 2001-09-06 | 2011-05-31 | Broadcom Corporation | TCP/IP reordering |
US6713201B2 (en) * | 2001-10-29 | 2004-03-30 | Hewlett-Packard Development Company, L.P. | Systems including replaceable fuel cell apparatus and methods of using replaceable fuel cell apparatus |
US7124198B2 (en) * | 2001-10-30 | 2006-10-17 | Microsoft Corporation | Apparatus and method for scaling TCP off load buffer requirements by segment size |
US20030081599A1 (en) * | 2001-10-30 | 2003-05-01 | Chui-Tsang Wu | System and method for data transmission control |
US20030095567A1 (en) * | 2001-11-20 | 2003-05-22 | Lo Man Kuk | Real time protocol packet handler |
US20030115350A1 (en) * | 2001-12-14 | 2003-06-19 | Silverback Systems, Inc. | System and method for efficient handling of network data |
US6760814B2 (en) * | 2001-12-17 | 2004-07-06 | Lsi Logic Corporation | Methods and apparatus for loading CRC values into a CRC cache in a storage controller |
US6800013B2 (en) | 2001-12-28 | 2004-10-05 | Shu-Ming Liu | Interactive toy system |
US7315976B2 (en) | 2002-01-31 | 2008-01-01 | Lsi Logic Corporation | Method for using CRC as metadata to protect against drive anomaly errors in a storage array |
US7543087B2 (en) | 2002-04-22 | 2009-06-02 | Alacritech, Inc. | Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device |
JP4004389B2 (ja) * | 2002-11-27 | 2007-11-07 | 富士通株式会社 | バッファメモリ管理方法及びシステム |
US8477780B2 (en) * | 2003-03-26 | 2013-07-02 | Alcatel Lucent | Processing packet information using an array of processing elements |
KR100490433B1 (ko) | 2003-06-10 | 2005-05-17 | 삼성전자주식회사 | 광주사장치의 에프쎄타 렌즈 및 광주사장치 |
US7287092B2 (en) * | 2003-08-11 | 2007-10-23 | Sharp Colin C | Generating a hash for a TCP/IP offload device |
CN1836411A (zh) * | 2003-08-20 | 2006-09-20 | 日本电气株式会社 | 会话中继设备和中继方法 |
US7483434B2 (en) * | 2003-12-01 | 2009-01-27 | International Business Machines Corporation | Parallel TCP sender implementation |
US6996070B2 (en) * | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
US20050223110A1 (en) | 2004-03-30 | 2005-10-06 | Intel Corporation | Heterogeneous building block scalability |
JP4058014B2 (ja) | 2004-04-08 | 2008-03-05 | 株式会社日立製作所 | パケット転送装置 |
-
2004
- 2004-10-19 US US10/969,376 patent/US7957379B2/en active Active
-
2005
- 2005-10-19 WO PCT/US2005/037941 patent/WO2006045057A2/en active Application Filing
- 2005-10-19 JP JP2007538074A patent/JP2008517565A/ja active Pending
- 2005-10-19 TW TW094136609A patent/TWI407733B/zh active
- 2005-10-19 KR KR1020077008944A patent/KR101018575B1/ko active IP Right Grant
- 2005-10-19 CN CN2005800357446A patent/CN101120424B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040062267A1 (en) * | 2002-03-06 | 2004-04-01 | Minami John Shigeto | Gigabit Ethernet adapter supporting the iSCSI and IPSEC protocols |
Also Published As
Publication number | Publication date |
---|---|
JP2008517565A (ja) | 2008-05-22 |
US7957379B2 (en) | 2011-06-07 |
KR20070085272A (ko) | 2007-08-27 |
CN101120424A (zh) | 2008-02-06 |
KR101018575B1 (ko) | 2011-03-03 |
TW200629819A (en) | 2006-08-16 |
US20060083246A1 (en) | 2006-04-20 |
CN101120424B (zh) | 2011-09-21 |
WO2006045057A3 (en) | 2006-11-30 |
WO2006045057A2 (en) | 2006-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI407733B (zh) | 在高速網路應用上使用一個接收先進先出緩衝區來處理接收封包之系統與方法 | |
US20240121181A1 (en) | System and method for facilitating efficient message matching in a network interface controller (nic) | |
US20200296058A1 (en) | Heterogeneous Packet-Based Transport | |
US7849208B2 (en) | System and method for TCP offload | |
US7383483B2 (en) | Data transfer error checking | |
US7243284B2 (en) | Limiting number of retransmission attempts for data transfer via network interface controller | |
US7177941B2 (en) | Increasing TCP re-transmission process speed | |
US9411775B2 (en) | iWARP send with immediate data operations | |
US7441006B2 (en) | Reducing number of write operations relative to delivery of out-of-order RDMA send messages by managing reference counter | |
EP1732285B1 (en) | Apparatus and methods for a high performance hardware network protocol processing engine | |
US20050165985A1 (en) | Network protocol processor | |
US7912979B2 (en) | In-order delivery of plurality of RDMA messages | |
US20050129039A1 (en) | RDMA network interface controller with cut-through implementation for aligned DDP segments | |
US20060034283A1 (en) | Method and system for providing direct data placement support | |
US11201838B2 (en) | System, apparatus and method for increasing efficiency of link communications | |
US7404040B2 (en) | Packet data placement in a processor cache | |
US20080235484A1 (en) | Method and System for Host Memory Alignment | |
US11281453B1 (en) | Methods and systems for a hitless rollback mechanism during software upgrade of a network appliance | |
US20070019661A1 (en) | Packet output buffer for semantic processor | |
US9559857B2 (en) | Preprocessing unit for network data | |
US7016354B2 (en) | Packet-based clock signal |