TWI407733B - 在高速網路應用上使用一個接收先進先出緩衝區來處理接收封包之系統與方法 - Google Patents

在高速網路應用上使用一個接收先進先出緩衝區來處理接收封包之系統與方法 Download PDF

Info

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
Application number
TW094136609A
Other languages
English (en)
Other versions
TW200629819A (en
Inventor
Shigeto Minami John
Yasu Uyeshiro Robin
E Ooi Thien
Ward Johnson Michael
Kanuri Mrudula
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of TW200629819A publication Critical patent/TW200629819A/zh
Application granted granted Critical
Publication of TWI407733B publication Critical patent/TWI407733B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program 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/128Program 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program 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)

  1. 一種在高速網路應用上使用一個接收先進先出緩衝區來處理藉由一主機所接收封包之方法,該方法包括:藉由該主機透過網路接收資料封包與控制封包;且藉由該主機並行處理資料封包與處理控制封包;其中標籤資訊會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座(socket)處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中於該封包緩衝標頭自該其中之一資料封包解析並去除後,該其中之一資料封包被重新校正。
  2. 如申請專利範圍第1項所述之方法,其中該控制封包會使用第一處理路徑來處理,而資料封包會使用第二處理路徑來處理,與第一處理路徑分隔。
  3. 如申請專利範圍第1項所述之方法,其中該資料封包及該控制封包的處理包括並行地使用一查詢表與一快取記憶體以確認與該資料封包及該控制封包搭配的正確插座控制區塊。
  4. 如申請專利範圍第1項所述之方法,其中該資料封包處理包括並行使用實質複製邏輯以確認與封包搭配的正確插座控制區塊。
  5. 如申請專利範圍第1項所述之方法,其中控制區塊會與該 資料封包及該控制封包搭配,而與後續該資料封包及該控制封包處理並行更新。
  6. 如申請專利範圍第1項所述之方法,其中當被緩衝在一接收(RX)先進先出(FIFO)緩衝區時,該標籤資訊會被預定至資料封包。
  7. 一種透過網路以處理接收封包之方法,該方法包括:使用一前端模組以處理接收封包;且使用一後端模組以處理接收封包;其中一接收(RX)先進先出(FIFO)緩衝區會在該前端模組與該後端模組之間連結以提供其彼此間之界限;其中與該接收封包搭配之控制區塊與後續接收封包之處理並行更新;其中標籤資訊會被預定至該接收封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該接收封包其中之一被完全地緩衝時,一後端模組將一封包緩衝標頭自該其中之一接收封包解析並去除;其中於該封包緩衝標頭自該其中之一接收封包解析並去除後,該其中之一接收封包被重新校正。
  8. 一種透過網路以處理接收封包之子系統,該子系統包括:一卸載引擎,透過網路與一匯流排通訊以接收資料封包與控制封包,且並行處理該資料封包與該控制封包;其中該子系統可操作使得標籤資訊會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收 (RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中該子系統可操作使得在該封包緩衝標頭自該其中之一資料封包解析並去除後,該其中之一資料封包被重新校正。
  9. 一種透過網路以處理接收封包之系統,該系統包括:一匯流排;一與該匯流排通訊之記憶體;一與該匯流排通訊之處理器;一卸載引擎,透過網路與該匯流排通訊以接收資料封包與控制封包,且並行處理該資料封包與該控制封包;其中該系統可操作使得標籤資訊會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中該系統可操作使得在該封包緩衝標頭自該其中之一資料封包解析並去除後,該其中之一資料封包重新校正。
  10. 如申請專利範圍第9項所述之系統,其中該系統包括一般電腦。
  11. 如申請專利範圍第9項所述之系統,其中該系統包括一遊戲機。
  12. 如申請專利範圍第9項所述之系統,其中之處理器可從包括中央處理器、繪圖處理元件、以及晶片組中多數積體電路之一之群組中選擇。
  13. 如申請專利範圍第9項所述之系統,其中該系統包括一電路板。
  14. 一種透過網路以處理接收封包之方法,該方法包括:藉由該主機透過網路接收封包; 確認與該封包搭配的正確插座控制區塊,並行地使用一查詢表與一快取記憶體以加速正確插座控制區塊的確認;其中與該接收封包搭配之控制區塊與後續接收封包之處理並行更新;其中標籤資訊會被預定至該封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一封包解析並去除;其中於該封包緩衝標頭自該其中之一封包解析並去除後,該其中之一封包被重新校正。
  15. 一種透過網路以處理接收封包之方法,該方法包括:藉由該主機透過網路接收封包;確認與該封包搭配的正確插座控制區塊,並行地使用實質複製邏輯以加速正確插座控制區塊的確認;其中標籤資訊會被預定至該封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一封包解析並去除;其中於該封包緩衝標頭自該其中之一封包解析並去除後,該其中之一封包被重新校正。
  16. 一種透過網路以處理接收資料封包之方法,該方法包括:藉由該主機透過網路接收資料封包;藉由該主機透過網路處理該資料封包;其中標籤資訊在該資料封包被儲存在一接收(RX)先進先 出(FIFO)緩衝區後,會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中於該封包緩衝標頭自該其中之一資料封包解析並去除後,該其中之一資料封包被重新校正。
  17. 一種透過網路以處理接收封包之方法,該方法包括:藉由該主機透過網路接收第一封包;藉由該主機透過網路處理該第一封包;更新與該第一封包搭配的控制區塊;且在至少開始與該第一封包搭配之控制區塊的更新後與完成更新前,至少開始第二封包的處理;其中標籤資訊會被預定至該第一封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該第一封包被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該第一封包解析並去除;其中於該封包緩衝標頭自該第一封包解析並去除後,該第一封包被重新校正。
  18. 一種透過網路以處理接收封包之方法,該方法包括:藉由該主機透過網路接收資料封包與控制封包;且藉由該主機並行處理該資料封包與處理該控制封包;其中該資料封包使用一接收(RX)先進先出(FIFO)緩衝區進行緩衝; 其中一旦該資料封包其中之一使用該接收(RX)先進先出(FIFO)緩衝區被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中於該封包緩衝標頭自該其中之一資料封包解析並去除後,該其中之一資料封包被重新校正。
  19. 一種透過網路以處理接收封包之方法,該方法包括:藉由該主機透過網路接收資料封包與控制封包;且藉由該主機並行處理該資料封包與處理該控制封包;其中標籤資訊會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中該資料封包與控制封包的處理包含,在一搜尋模式中,使用一快取記憶體以確認搭配該資料封包與該控制封包的正確插座控制區塊,其中,如果該正確插座控制區塊不在該快取記憶體中,該正確插座控制區塊可從一主要記憶體中回復,但在該搜尋模式時,該正確插座控制區塊不會被儲存在該快取記憶體中。
  20. 一種透過網路以處理接收封包之子系統,包括:一卸載引擎,透過網路與匯流排通訊以接收資料封包與控制封包,且並行處理該資料封包與該控制封包;其中該子系統可操作使得標籤資訊會被預定至該資料封包; 其中該標籤資料包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中該卸載引擎可操作使得該資料封包與該控制封包的處理包含,在一搜尋模式中,使用一快取記憶體以確認搭配該資料封包與該控制封包的正確插座控制區塊,其中,如果該正確插座控制區塊不在該快取記憶體中,該正確插座控制區塊可從一主要記憶體中回復,但在該搜尋模式時,該正確插座控制區塊不會被儲存在該快取記憶體中。
  21. 一種透過網路以處理接收封包之系統,包括:一匯流排;一與該匯流排通訊之記憶體;一與該匯流排通訊之處理器;一卸載引擎,透過網路與該匯流排通訊以接收資料封包與控制封包,且並行處理該資料封包與該控制封包;其中該系統可操作使得標籤資訊會被預定至該資料封包;其中該標籤資訊包含一與對應封包搭配之插座處理;其中一旦該資料封包其中之一被完全地緩衝時,一接收(RX)後端模組將一封包緩衝標頭自該其中之一資料封包解析並去除;其中該卸載引擎可操作使得該資料封包與該控制封包的處理包含,在一搜尋模式中,使用一快取記憶體以確認搭配該資料封包與該控制封包的正確插座控制區塊,其中,如 果該正確插座控制區塊不在該快取記憶體中,該正確插座控制區塊可從一主要記憶體中回復,但在該搜尋模式時,該正確插座控制區塊不會被儲存在該快取記憶體中。
TW094136609A 2004-10-19 2005-10-19 在高速網路應用上使用一個接收先進先出緩衝區來處理接收封包之系統與方法 TWI407733B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 パケット転送装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
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