亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

處理接收協(xié)議數(shù)據(jù)單元的制作方法

文檔序號(hào):7947118閱讀:245來(lái)源:國(guó)知局
專利名稱:處理接收協(xié)議數(shù)據(jù)單元的制作方法
背景技術(shù)
1、相關(guān)技術(shù)的說(shuō)明開(kāi)放系統(tǒng)互聯(lián)(ISO)是國(guó)際標(biāo)準(zhǔn)化組織(ISO)的標(biāo)準(zhǔn),其為實(shí)現(xiàn)七層的協(xié)議而定義了聯(lián)網(wǎng)框架。這七層是應(yīng)用層,表示層,會(huì)話層,傳輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,和物理層。物理層連接到物理鏈路。當(dāng)數(shù)據(jù)正被發(fā)送時(shí),數(shù)據(jù)從應(yīng)用層開(kāi)始傳輸,通過(guò)表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、和物理層,到物理鏈路。當(dāng)數(shù)據(jù)正被從物理鏈路上接收時(shí),數(shù)據(jù)通過(guò)物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層,到達(dá)應(yīng)用層。因此,控制從一層傳遞到下一層,以便發(fā)送和接收數(shù)據(jù)。
應(yīng)用層(第七層)支持應(yīng)用和終端用戶進(jìn)程。表示層(第六層)將數(shù)據(jù)從應(yīng)用格式譯成網(wǎng)絡(luò)格式,或相反。會(huì)話層(第五層)建立、管理和終止應(yīng)用之間的連接。傳輸層(第四層)提供數(shù)據(jù)的傳輸。網(wǎng)絡(luò)層(第三層)提供交換和路由。數(shù)據(jù)鏈路層(第二層)把數(shù)據(jù)包編碼和解碼成比特。物理層(第一層)通過(guò)物理網(wǎng)絡(luò)傳送比特流。
聯(lián)網(wǎng)協(xié)議(如OSI)在存儲(chǔ)和進(jìn)程間通信中的使用正在變得流行起來(lái)。這種趨向通過(guò)消除對(duì)用于攜帶存儲(chǔ)傳輸負(fù)荷的獨(dú)立物理介質(zhì)的需要,給信息技術(shù)(IT)基礎(chǔ)設(shè)施帶來(lái)了巨大的成本優(yōu)勢(shì)。這種優(yōu)勢(shì)以相對(duì)于終端工作站的成本實(shí)現(xiàn),而終端工作站必須在主處理器上運(yùn)行更加復(fù)雜的協(xié)議。
因此,需要用于改善協(xié)議處理的技術(shù)。
附圖簡(jiǎn)述現(xiàn)在參考附圖,其中相同的附圖標(biāo)記在全文中表示相應(yīng)的部分

圖1示出其中可以實(shí)現(xiàn)某些實(shí)施例的計(jì)算環(huán)境的細(xì)節(jié)。
圖2示出根據(jù)某些實(shí)施例的網(wǎng)絡(luò)適配器的方框圖。
圖3示出根據(jù)某些實(shí)施例的協(xié)議數(shù)據(jù)單元的方框圖。
圖4示出根據(jù)某些實(shí)施例的三個(gè)傳輸控制協(xié)議(TCP)段。
圖5示出根據(jù)某些實(shí)施例的傳輸控制協(xié)議(TCP)段和協(xié)議數(shù)據(jù)單元處理。
圖6示出根據(jù)某些實(shí)施例的由段處理引擎執(zhí)行的操作。
圖7示出根據(jù)某些實(shí)施例的由段處理引擎執(zhí)行的用于協(xié)議數(shù)據(jù)單元檢測(cè)的操作。
圖8示出根據(jù)某些實(shí)施例的由段處理引擎執(zhí)行的用于標(biāo)志驗(yàn)證和剝離的操作。
圖9示出根據(jù)某些實(shí)施例由預(yù)處理代理執(zhí)行的操作。
圖10示出根據(jù)某些實(shí)施例的接收緩存指令的格式。
圖11示出根據(jù)某些實(shí)施例的循環(huán)冗余校驗(yàn)(CRC)數(shù)據(jù)結(jié)構(gòu)的格式。
圖12示出根據(jù)某些實(shí)施例的段處理引擎和循環(huán)冗余校驗(yàn)(CRC)引擎的交互。
圖13示出根據(jù)某些實(shí)施例在“BEFORE”情景中進(jìn)行串行化的時(shí)間線。
圖14示出根據(jù)某些實(shí)施例在“AFTER”情景中進(jìn)行串行化的時(shí)間線。
圖15示出根據(jù)某些實(shí)施例由循環(huán)冗余校驗(yàn)(CRC)引擎執(zhí)行的操作。
圖16示出根據(jù)某些實(shí)施例由段處理引擎執(zhí)行的用于循環(huán)冗余校驗(yàn)的操作。
詳細(xì)說(shuō)明在以下描述中,參考形成該描述的一部分并示出幾個(gè)實(shí)施例的附圖??梢岳斫猓梢岳闷渌膶?shí)施例,并且可以對(duì)結(jié)構(gòu)和操作進(jìn)行改變。
圖1示出其中可以實(shí)現(xiàn)某些實(shí)施例的計(jì)算環(huán)境的細(xì)節(jié)。主計(jì)算機(jī)102包括一個(gè)或多個(gè)中央處理單元(CPU)104、易失性存儲(chǔ)器106、非易失性存儲(chǔ)器108(例如,磁盤驅(qū)動(dòng)器,光盤驅(qū)動(dòng)器,磁帶驅(qū)動(dòng)器等等)、操作系統(tǒng)110、和一個(gè)或多個(gè)網(wǎng)絡(luò)適配器128。一個(gè)或多個(gè)存儲(chǔ)驅(qū)動(dòng)器120、一個(gè)或多個(gè)應(yīng)用程序122、和一個(gè)或多個(gè)網(wǎng)絡(luò)驅(qū)動(dòng)器126駐留在存儲(chǔ)器106,用于由CPU 104執(zhí)行并且能夠通過(guò)網(wǎng)絡(luò)176發(fā)送和取回來(lái)自遠(yuǎn)程存儲(chǔ)子系統(tǒng)140的數(shù)據(jù)包。此外,一部分存儲(chǔ)器被指定為應(yīng)用空間124,該應(yīng)用空間可以被應(yīng)用程序122訪問(wèn)。
主計(jì)算機(jī)102可以包含本領(lǐng)域已知的任何計(jì)算裝置,例如大型機(jī)、服務(wù)器、個(gè)人計(jì)算機(jī)、工作站、膝上型電腦、便攜式計(jì)算機(jī)、電話裝置、網(wǎng)絡(luò)設(shè)備、虛擬設(shè)備、存儲(chǔ)控制器等等。可以使用本領(lǐng)域任何已知的CPU 104和操作系統(tǒng)110。存儲(chǔ)器106中的程序和數(shù)據(jù)可以被交換到存儲(chǔ)器108中作為存儲(chǔ)器管理操作的一部分。網(wǎng)絡(luò)176可以包括任何類型的網(wǎng)絡(luò),例如,存儲(chǔ)區(qū)域網(wǎng)(SAN)、局域網(wǎng)(LAN),廣域網(wǎng)(WAN)、因特網(wǎng)、內(nèi)部網(wǎng)等等。
存儲(chǔ)子系統(tǒng)140包括連接到一個(gè)或多個(gè)存儲(chǔ)裝置190的存儲(chǔ)服務(wù)器180(即,一種計(jì)算裝置)。每一個(gè)存儲(chǔ)裝置190可以包括存儲(chǔ)裝置或存儲(chǔ)裝置陣列,例如直接訪問(wèn)存儲(chǔ)設(shè)備(DASD)、簡(jiǎn)單磁盤捆綁(JBOD)、獨(dú)立磁盤冗余陣列(RAID)、虛擬裝置等等。存儲(chǔ)服務(wù)器180包括輸入/輸出處理器182,其包括奇偶位發(fā)生器184。奇偶位發(fā)生器184能夠根據(jù)實(shí)施例產(chǎn)生奇偶校驗(yàn)信息。
每一個(gè)網(wǎng)絡(luò)適配器128包括在網(wǎng)絡(luò)適配器128的硬件中實(shí)現(xiàn)的各種部件。每一個(gè)網(wǎng)絡(luò)適配器能夠通過(guò)網(wǎng)絡(luò)176發(fā)送和接收數(shù)據(jù)包。
每一個(gè)網(wǎng)絡(luò)驅(qū)動(dòng)器126包括網(wǎng)絡(luò)適配器128專用于與每一個(gè)網(wǎng)絡(luò)適配器128以及操作系統(tǒng)110、每一個(gè)存儲(chǔ)驅(qū)動(dòng)器120和每一個(gè)網(wǎng)絡(luò)適配器128之間的接口進(jìn)行通信的命令。每一個(gè)網(wǎng)絡(luò)適配器128或網(wǎng)絡(luò)驅(qū)動(dòng)器126實(shí)現(xiàn)處理數(shù)據(jù)包的邏輯,例如用以處理被打包在通信協(xié)議里面的數(shù)據(jù)包中包括的消息內(nèi)容的傳輸協(xié)議層,例如傳輸控制協(xié)議(TCP)(IETF RFC 793,1981年9月公開(kāi))和/或因特網(wǎng)協(xié)議(IP)(IETF RFC 791,1981年9月公開(kāi)),因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)(IETF RFC 3347,2003年2月公開(kāi)),光纖信道(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)X3.269-199X,修訂版012,1995年12月4日),或者本領(lǐng)域公知的任何其它通信協(xié)議。傳輸協(xié)議層從收到的傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)數(shù)據(jù)包解開(kāi)有效載荷,并把數(shù)據(jù)傳送給網(wǎng)絡(luò)驅(qū)動(dòng)器126,以返回到應(yīng)用程序122。此外,發(fā)送數(shù)據(jù)的應(yīng)用程序122向網(wǎng)絡(luò)驅(qū)動(dòng)器126發(fā)送數(shù)據(jù),然后網(wǎng)絡(luò)驅(qū)動(dòng)器126把數(shù)據(jù)送到傳輸協(xié)議層,以在通過(guò)網(wǎng)絡(luò)176發(fā)送之前打包在TCP/IP數(shù)據(jù)包中。
存儲(chǔ)裝置108可以包括內(nèi)部存儲(chǔ)裝置或者附加的或網(wǎng)絡(luò)可訪問(wèn)的存儲(chǔ)裝置。存儲(chǔ)裝置108中的程序可被加載到存儲(chǔ)器106和由CPU104執(zhí)行。輸入裝置150可以用來(lái)向CPU 104提供用戶輸入,并且可以包括鍵盤、鼠標(biāo)、手寫筆、麥克風(fēng)、觸摸顯示屏、或本領(lǐng)域已知的任何其它激活或輸入機(jī)制。輸出裝置152能夠呈現(xiàn)從CPU 104或其它部件傳來(lái)的信息,例如顯示器、監(jiān)視器、打印機(jī)、存儲(chǔ)裝置等。
在某些實(shí)施例中,各種各樣的結(jié)構(gòu)和/或者緩存器(未示出)可以駐留在存儲(chǔ)器106中,或者可以位于與存儲(chǔ)器106分離的存儲(chǔ)單元中。
圖2示出根據(jù)某些實(shí)施例的網(wǎng)絡(luò)適配器128的方框圖。網(wǎng)絡(luò)適配器包括使用若干個(gè)寄存器212的預(yù)處理代理210,包含循環(huán)冗余校驗(yàn)(CRC)引擎224的直接存儲(chǔ)器存取(DMA)引擎220、段處理引擎230、輸入/輸出(I/O)處理器240,物理通信層242、和總線控制器244。CRC引擎224包括一個(gè)或多個(gè)循環(huán)冗余校驗(yàn)(CRC)數(shù)據(jù)結(jié)構(gòu)226和循環(huán)冗余校驗(yàn)(CRC)存儲(chǔ)區(qū)域228。在某些實(shí)施例中,預(yù)處理代理210預(yù)先處理符合第4+層協(xié)議的數(shù)據(jù)段,為了引用方便,這些數(shù)據(jù)段將被稱為協(xié)議段。為了引用方便,術(shù)語(yǔ)“第4+層協(xié)議”在這里將用來(lái)描述出現(xiàn)的協(xié)議,例如iSCSI和RDMA(RDMA聯(lián)盟,TCP/IP網(wǎng)絡(luò)上的RDMA協(xié)議,版本1.0,2002年10月)。盡管iSCSI和RDMA協(xié)議可以被描述為更高級(jí)的協(xié)議(例如,第5層或更高級(jí)協(xié)議),實(shí)施例把iSCSI和RDMA協(xié)議稱為第4+層協(xié)議,這是因?yàn)樗鼈兣c第4層協(xié)議的處理緊密聯(lián)系。當(dāng)然這些協(xié)議中的一些(例如,RDMA)可以與傳輸層(第4層)協(xié)議(例如,TCP)緊密聯(lián)系。在某些實(shí)施例中,段處理引擎230處理數(shù)據(jù)段(例如,TCP段),為了便于引用,這些數(shù)據(jù)段可被稱為“傳輸層段”。協(xié)議數(shù)據(jù)單元可以被描述成用于第4+層協(xié)議的傳輸?shù)膯卧f(xié)議段可被描述成協(xié)議數(shù)據(jù)單元的部分或全部(即,協(xié)議數(shù)據(jù)單元可以形成一個(gè)或多個(gè)協(xié)議段)。
在某些實(shí)施例中,預(yù)處理代理210可以被描述為專用處理器,該專用處理器具有上下文敏感寄存器空間(寄存器212),并且可以結(jié)合段處理引擎230使用,以實(shí)現(xiàn)有效和可編程的接收處理。
總線控制器244使得每個(gè)網(wǎng)絡(luò)適配器128可以在計(jì)算機(jī)總線160上通信,該計(jì)算機(jī)總線可以包括本領(lǐng)域已知的任何總線接口,例如任何類型的外圍部件互聯(lián)(PCI)總線(例如PCI總線(PCI專業(yè)組,PCI本地總線規(guī)范,2.3版本,2002年3月公開(kāi))、PCI-X總線(PCI專業(yè)組,PCI-X 2.0a協(xié)議規(guī)范,2002年公開(kāi))、或PCI快速總線(PCI專業(yè)組,PCI快速基本規(guī)范1.0a,2002年公開(kāi))、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)SCSI控制器命令-2(SCC-2)NCITS.3181998),串行ATA(SATA 1.0a規(guī)范,2003年2月公開(kāi))等等。
網(wǎng)絡(luò)適配器128包括用于實(shí)現(xiàn)物理通信層242的網(wǎng)絡(luò)協(xié)議,用以在網(wǎng)絡(luò)176上向遠(yuǎn)程數(shù)據(jù)存儲(chǔ)裝置發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包和接收來(lái)自遠(yuǎn)程數(shù)據(jù)存儲(chǔ)裝置的網(wǎng)絡(luò)數(shù)據(jù)包。在某些實(shí)施例中,網(wǎng)絡(luò)適配器128可以實(shí)現(xiàn)以太網(wǎng)協(xié)議(IEEE標(biāo)準(zhǔn),802.3,2002年3月8日公開(kāi))、光纖信道協(xié)議(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)X3.269-199X,012版本,1995年12月4日)或者本領(lǐng)域中已知的任何其它網(wǎng)絡(luò)通信協(xié)議。
網(wǎng)絡(luò)適配器128包括輸入/輸出(I/O)控制器240。在某些實(shí)施例中,I/O控制器240可以包括因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI控制器),并且可以理解的是,可以使用其它類型的網(wǎng)絡(luò)控制器,例如以太網(wǎng)介質(zhì)訪問(wèn)控制器(MAC)或卡。
為了減輕主處理器上運(yùn)行更復(fù)雜協(xié)議的負(fù)擔(dān),某些實(shí)施例從主處理器中卸載協(xié)議處理和數(shù)據(jù)放置。在某些實(shí)施例中,可以用專用硬件來(lái)提供所述卸載協(xié)議處理。在某些實(shí)施例中,網(wǎng)絡(luò)適配器128可以實(shí)現(xiàn)傳輸層卸載引擎(TOE),從而在網(wǎng)絡(luò)適配器中實(shí)現(xiàn)傳輸協(xié)議層,以減輕主計(jì)算機(jī)上的處理負(fù)擔(dān)。對(duì)協(xié)議處理的卸載導(dǎo)致對(duì)所接收的數(shù)據(jù)的有效的處理和放置。實(shí)施例提供接收路徑處理。在某些實(shí)施例中,接收路徑處理是用于第4+層(iSCSI,RDMA)協(xié)議數(shù)據(jù)單元的。
實(shí)施例改善第4+層協(xié)議數(shù)據(jù)單元(PDU)檢測(cè)、標(biāo)志驗(yàn)證和剝離、第4+層報(bào)頭處理(包括在第4層邊界上的那些報(bào)頭分離)、到應(yīng)用空間的直接數(shù)據(jù)傳送、和循環(huán)冗余校驗(yàn)(CRC)摘要計(jì)算。
循環(huán)冗余校驗(yàn)可以被描述為用于檢測(cè)數(shù)據(jù)傳輸錯(cuò)誤的技術(shù)。例如,利用循環(huán)冗余校驗(yàn)技術(shù),消息可以被劃分為若干個(gè)預(yù)定長(zhǎng)度,這些預(yù)定長(zhǎng)度可以由固定的除數(shù)相除,余數(shù)附加到該消息上。當(dāng)消息和附加的余數(shù)被接收到時(shí),接收的計(jì)算裝置重計(jì)算該余數(shù),并將重計(jì)算出的余數(shù)與該附加的余數(shù)執(zhí)行比較。如果余數(shù)不匹配,就檢測(cè)到錯(cuò)誤。
圖3示出根據(jù)某些實(shí)施例的協(xié)議數(shù)據(jù)單元300的方框圖。協(xié)議數(shù)據(jù)單元300包括幾個(gè)字段,例如報(bào)頭310、一個(gè)或兩個(gè)摘要312、318、標(biāo)志314、和有效載荷316。報(bào)頭310包括整個(gè)協(xié)議數(shù)據(jù)單元的長(zhǎng)度以及其它信息。摘要312、318可以通過(guò)利用對(duì)所覆蓋的數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn)(例如CRC-32C技術(shù))來(lái)獲得。iSCSI協(xié)議具有兩個(gè)摘要,一個(gè)用于報(bào)頭,一個(gè)用于有效載荷。RDMA協(xié)議具有用于整個(gè)協(xié)議數(shù)據(jù)單元的單個(gè)摘要。標(biāo)志314是存在于TCP流中的字段。每個(gè)標(biāo)志314是協(xié)議數(shù)據(jù)單元的起點(diǎn)或終點(diǎn)或者它們兩者的指針。有效載荷316是數(shù)據(jù)。
第4+層協(xié)議數(shù)據(jù)單元先被構(gòu)建,然后作為字節(jié)流移交來(lái)進(jìn)行TCP處理。所述TCP處理可以將每個(gè)協(xié)議段再分段成多個(gè)傳輸層段,使得發(fā)送出的每個(gè)傳輸層段不會(huì)超過(guò)有效最大數(shù)據(jù)段大小。圖4示出根據(jù)某些實(shí)施例的三個(gè)傳輸層段410、420、430。每個(gè)傳輸層段410、420、430分別包括第4層報(bào)頭#1、#2、#3。而且傳輸層段(例如410)有效載荷可以包括第4+層報(bào)頭和數(shù)據(jù)。
在某些情況下,用于第4+層的協(xié)議數(shù)據(jù)單元不完全包含在傳輸層段中。例如,單個(gè)協(xié)議數(shù)據(jù)單元#1 440具有報(bào)頭部分和兩個(gè)數(shù)據(jù)部分,其中傳輸層段410包括第4+層報(bào)頭#1和第4+層數(shù)據(jù)#1(即,用于協(xié)議數(shù)據(jù)單元#1的數(shù)據(jù)部分),傳輸層段420包括第4+層數(shù)據(jù)#1(即,用于協(xié)議單元#1的附加數(shù)據(jù))。因此,協(xié)議數(shù)據(jù)單元可以被包含在單個(gè)傳輸層段中,協(xié)議數(shù)據(jù)單元可以在多個(gè)傳輸層段上分段,傳輸層段可以包含多個(gè)協(xié)議數(shù)據(jù)單元或它們的組合。
圖5示出根據(jù)某些實(shí)施例的傳輸層段和協(xié)議數(shù)據(jù)單元處理。在傳輸層段502、504到達(dá),并且第4+層的協(xié)議數(shù)據(jù)單元被段處理引擎230檢測(cè)到時(shí),來(lái)自第4+層報(bào)頭520的N字節(jié)相關(guān)數(shù)據(jù)的副本被直接放置在預(yù)處理代理210的寄存器空間212,并且所述上下文被加載。該上下文可以被描述為關(guān)于特殊TCP連接的信息。在某些實(shí)施例中,一個(gè)TCP連接具有一個(gè)上下文。在某些其它實(shí)施例中,一個(gè)TCP連接可以具有一個(gè)或多個(gè)上下文。在這個(gè)例子中,來(lái)自第4+層報(bào)頭520的相關(guān)數(shù)據(jù)包括位于兩個(gè)傳輸層段512、514中的兩個(gè)部分512和514。在第4+層線處理中,通過(guò)消除傳統(tǒng)系統(tǒng)中使用的存儲(chǔ)和轉(zhuǎn)發(fā)體系結(jié)構(gòu)范例,報(bào)頭字節(jié)減少處理延遲。此外,當(dāng)預(yù)處理代理210將命令發(fā)送給DMA引擎220時(shí),輸入的數(shù)據(jù)可以被直接存儲(chǔ)器訪問(wèn)(DMA)引擎220取回,以放置在應(yīng)用空間124中。
圖6示出根據(jù)某些實(shí)施例的由段處理引擎230執(zhí)行的操作??刂崎_(kāi)始于框600,其中段處理引擎230接收傳輸層段。在某些實(shí)施例中,段處理引擎230從順序排列的傳輸層段中剝離報(bào)頭(框620),執(zhí)行協(xié)議數(shù)據(jù)單元檢測(cè)(框604),執(zhí)行標(biāo)志驗(yàn)證和剝離(框606),如果并行接收到一個(gè)窺視(peek)命令就處理它(框608-614)。在某些可選擇的實(shí)施例中,框602、604、606和608的處理可以串行執(zhí)行,或者并行執(zhí)行某些處理同時(shí)串行執(zhí)行其它處理。在某些實(shí)施例中,執(zhí)行框602的處理,以用于框604和606的處理。而且在某些實(shí)施例中,如果傳輸層段被無(wú)序地接收,則實(shí)施例將等待丟失的傳輸層段,并且在處理傳輸層段之前將其按順序放置。
在框604中,協(xié)議數(shù)據(jù)單元檢測(cè)識(shí)別第4+層報(bào)頭的位置。從框602、604和606開(kāi)始,處理循環(huán)回到框600。
在框608中,段處理引擎230確定是否已接收到窺視命令。如果接收到,則處理繼續(xù)到框610,否則處理繼續(xù)到框614。窺視命令是用于請(qǐng)求段處理引擎230“提前查看”輸入的傳輸層段和定位特殊數(shù)據(jù)的命令。在框610中,段處理引擎230等待被請(qǐng)求的數(shù)據(jù)。一旦接收到被請(qǐng)求的數(shù)據(jù),處理從框610繼續(xù)到框612。在框612中,段處理引擎230將第4+層報(bào)頭的位置的標(biāo)志和/或所檢測(cè)到的協(xié)議數(shù)據(jù)單元的實(shí)際第4+層報(bào)頭轉(zhuǎn)發(fā)到預(yù)處理代理210。在某些實(shí)施例中,位置的標(biāo)志通過(guò)發(fā)送指針到協(xié)議數(shù)據(jù)單元的起始位置和終止位置來(lái)提供。從框612開(kāi)始,處理循環(huán)回到框600。在框614中,可以在循環(huán)回到框600之前執(zhí)行其它的處理。盡管段處理引擎230被描述為在框608中檢查窺視命令,但是在框608的處理之前可能發(fā)生其它的處理。其它的處理可以包括處理附加輸入的傳輸層段。
為了接收協(xié)議數(shù)據(jù)單元,實(shí)施例提供可配置的標(biāo)志處理代理(MPA)和協(xié)議數(shù)據(jù)單元檢測(cè);預(yù)處理代理210寄存器212的數(shù)據(jù)的直接窺視;到應(yīng)用空間124的數(shù)據(jù)放置(即,數(shù)據(jù)放置到應(yīng)用程序訪問(wèn)的存儲(chǔ)器中,而不是放置到通用存儲(chǔ)器區(qū)域,數(shù)據(jù)被從該通用存儲(chǔ)器區(qū)域移動(dòng)到由應(yīng)用程序訪問(wèn)的存儲(chǔ)器);和循環(huán)冗余校驗(yàn)(例如CRC-32C技術(shù))驗(yàn)證。
在某些實(shí)施例中,標(biāo)志處理代理(MPA)可以是段處理引擎230的一部分。關(guān)于可配置的MPA和協(xié)議數(shù)據(jù)單元檢測(cè),實(shí)施例提供用于每個(gè)TCP連接的配置機(jī)制,該TCP連接使得可以執(zhí)行標(biāo)志剝離/驗(yàn)證和協(xié)議數(shù)據(jù)單元檢測(cè)。特別地,計(jì)算機(jī)具有與不同計(jì)算機(jī)分不同的連接(例如連接到第二計(jì)算機(jī)上的電子郵件賬號(hào)的第一計(jì)算機(jī)上的瀏覽器具有和第二計(jì)算機(jī)的連接)。在某些實(shí)施例中,可以在數(shù)據(jù)正在傳送期間建立TCP連接。
實(shí)施例為每個(gè)第4+層TCP連接設(shè)置下列新的參數(shù)(a)第4+層報(bào)頭中長(zhǎng)度字段的偏移量(還稱為“O”)(b)第4+層報(bào)頭中長(zhǎng)度字段的寬度(還稱為“W”)(c)長(zhǎng)度字段乘法器(還稱為“M”)(d)長(zhǎng)度字段加法器(還稱為“A”)(e)乘法/加法順序(還稱為“D”)(f)標(biāo)志間隔(還稱為“I”)(g)初始偏移量(還稱為“S”)(h)標(biāo)志長(zhǎng)度(還稱為“L”)(i)標(biāo)志類型(還稱為“T”)在新的TCP連接參數(shù)中,在第4+層連接時(shí)協(xié)商長(zhǎng)度字段乘法器參數(shù)(M)和長(zhǎng)度字段加法器參數(shù)(A)。乘法/加法順序參數(shù)(D)是用于給定的TCP連接的常量,它由用于創(chuàng)建連接的兩個(gè)計(jì)算裝置協(xié)商,并且這個(gè)參數(shù)決定如何為協(xié)議數(shù)據(jù)單元計(jì)算數(shù)據(jù)的最終長(zhǎng)度,因?yàn)樵摰?+層協(xié)議不提供該信息。
只要連接被創(chuàng)建,并且在傳送任何數(shù)據(jù)之前,都可以設(shè)置新的TCP連接參數(shù)。這些字段和按順序排列的傳輸層段一起使用,以檢測(cè)協(xié)議數(shù)據(jù)單元邊界,驗(yàn)證標(biāo)志和刪除(剝離)標(biāo)志。
圖7示出根據(jù)某些實(shí)施例的由段處理引擎230執(zhí)行的用于協(xié)議數(shù)據(jù)單元檢測(cè)(框604)的操作??刂圃诳?00開(kāi)始,其中段處理引擎230從協(xié)議數(shù)據(jù)單元報(bào)頭中的長(zhǎng)度字段偏移量(參數(shù)“O”)開(kāi)始、以報(bào)頭中的長(zhǎng)度字段的寬度(參數(shù)“W”)來(lái)提取值。例如,如果長(zhǎng)度字段以四個(gè)字節(jié)的偏移量開(kāi)始,并且具有五個(gè)字節(jié)的寬度,那么從字節(jié)四、五、六、七和八提取該值。在框702,段處理引擎230根據(jù)所提取的值(從框700)和乘法/加法順序參數(shù)(“D”)、長(zhǎng)度字段乘法器參數(shù)(“M”)和長(zhǎng)度字段加法器參數(shù)(“A”)的值來(lái)確定協(xié)議數(shù)據(jù)單元的最終長(zhǎng)度。在某些實(shí)施例中,段處理引擎230使用下列的偽代碼來(lái)確定最終長(zhǎng)度,其中(Value at[O..+O+W])是來(lái)自框700的處理的提取值如果(D==0)開(kāi)始最終長(zhǎng)度=((Value at[O..O+W])×M)+A否則最終長(zhǎng)度=((Value at[O..O+W])+A)×M也就是說(shuō),如果乘法/加法順序參數(shù)(“D”)的值是0,則通過(guò)以下方式確定最終長(zhǎng)度,即,取一個(gè)值,該值是以第4+層報(bào)頭參數(shù)的長(zhǎng)度字段偏移量(“O”)的值開(kāi)始到偏移量參數(shù)(“O”)的值加上第4+層報(bào)頭參數(shù)的長(zhǎng)度字段寬度(“W”)的值。這個(gè)值與長(zhǎng)度字段乘法器(“M”)的值相乘,然后該結(jié)果加上長(zhǎng)度字段加法器參數(shù)(“A”)的值。
另一方面,如果乘法/加法順序參數(shù)(“D”)的值不是0,則通過(guò)以下方式確定最終長(zhǎng)度,即,取一個(gè)值,該值是以第4+層報(bào)頭參數(shù)的長(zhǎng)度字段偏移量(“O”)的值開(kāi)始到偏移量參數(shù)(“O”)的值加上第4+層報(bào)頭參數(shù)的長(zhǎng)度字段寬度(“W”)的值。這個(gè)值加上長(zhǎng)度字段加法器(“A”)的值,然后結(jié)果與長(zhǎng)度字段乘法器(“M”)的值相乘。
在框704中,段處理引擎230根據(jù)協(xié)議數(shù)據(jù)單元的起始位置和最終長(zhǎng)度來(lái)檢測(cè)協(xié)議數(shù)據(jù)單元。在某些實(shí)施例中,協(xié)議數(shù)據(jù)單元從起始位置(“Start”)到起始位置加上所確定的最終長(zhǎng)度(“Start”+final length)進(jìn)行檢測(cè)。在某些實(shí)施例中,“Start”可以被描述為協(xié)議數(shù)據(jù)單元的數(shù)據(jù)的開(kāi)始。
圖8示出根據(jù)某些實(shí)施例的由段處理引擎230執(zhí)行的用于標(biāo)志驗(yàn)證和剝離(框606)的操作。控制在框800開(kāi)始,其中段處理引擎230從初始偏移量提取標(biāo)志長(zhǎng)度參數(shù)(“L”)。在某些實(shí)施例中,初始偏移量是協(xié)議段的開(kāi)始或協(xié)議數(shù)據(jù)單元的開(kāi)始,并且可以被指定為參數(shù)“S”,它是一個(gè)變量。在框802中,段處理引擎230根據(jù)可以指向協(xié)議數(shù)據(jù)單元的開(kāi)始和/或結(jié)束的標(biāo)志類型來(lái)執(zhí)行標(biāo)志驗(yàn)證。在某些實(shí)施例中,段處理引擎230利用下列偽代碼來(lái)驗(yàn)證標(biāo)志如果(T==開(kāi)始)檢查標(biāo)志是否指向協(xié)議數(shù)據(jù)單元檢測(cè)所發(fā)現(xiàn)的開(kāi)始否則如果(T==結(jié)束)檢查是否結(jié)束否則如果(T==兩者)將標(biāo)志域分為兩部分,和檢查一部分是否指向開(kāi)始并且另一部分是否指向結(jié)束也就是說(shuō),對(duì)于標(biāo)志驗(yàn)證,段處理引擎230確定標(biāo)志類型參數(shù)(“T”)的值是否被設(shè)置為開(kāi)始。如果是,則段處理引擎230檢查標(biāo)志是否指向協(xié)議數(shù)據(jù)單元的開(kāi)始(即,在圖7中的協(xié)議數(shù)據(jù)單元檢測(cè)處理所發(fā)現(xiàn)的“Start”)。如果標(biāo)志類型參數(shù)(“T”)的值被設(shè)置為結(jié)束,則段處理引擎230檢查標(biāo)志是否指向協(xié)議數(shù)據(jù)單元的結(jié)束。如果標(biāo)志類型參數(shù)(“T”)的值被設(shè)置為兩者,則段處理引擎230將標(biāo)志域分為兩部分,并且檢查是否標(biāo)志的一部分指向開(kāi)始,標(biāo)志的另一部分指向結(jié)束。
一旦標(biāo)志被驗(yàn)證,則在框804中,段處理引擎230在輸入的字節(jié)流中跳過(guò)標(biāo)志間隔。
圖9示出根據(jù)某些實(shí)施例由預(yù)處理代理210執(zhí)行的操作。第4+層協(xié)議數(shù)據(jù)單元的接收處理包括檢查報(bào)頭和處理報(bào)頭。在某些實(shí)施例中,在前一個(gè)消息的數(shù)據(jù)已完全傳送到主計(jì)算機(jī)102之前,執(zhí)行報(bào)頭處理。由于這些第4+層協(xié)議用于應(yīng)用程序122,例如磁盤訪問(wèn)和進(jìn)程間通信,期望存在低處理延遲。在某些實(shí)施例中,避免了在硅片中的硬編碼報(bào)頭處理,因?yàn)樗鼮閳?bào)頭處理提供靈活性差的解決方案。
實(shí)施例通過(guò)利用具有上下文敏感寄存器空間212的預(yù)處理代理210(例如微型引擎)而以靈活的方式執(zhí)行報(bào)頭處理。
控制在框900開(kāi)始,其中預(yù)處理代理210接收來(lái)自段處理引擎230的協(xié)議段的實(shí)際報(bào)頭數(shù)據(jù)的位置的標(biāo)識(shí)或該實(shí)際報(bào)頭數(shù)據(jù)。在框902,預(yù)處理代理210解釋所接收的數(shù)據(jù)的報(bào)頭部分,從而確定協(xié)議數(shù)據(jù)單元的下一個(gè)數(shù)據(jù)部分的下一個(gè)報(bào)頭部分的位置。在框904中,預(yù)處理代理210發(fā)送窺視命令給段處理引擎230,用于下一個(gè)協(xié)議數(shù)據(jù)單元的報(bào)頭部分,并根據(jù)已發(fā)出的窺視命令接收被請(qǐng)求的數(shù)據(jù)。在某些實(shí)施例中,所接收的數(shù)據(jù)是協(xié)議數(shù)據(jù)單元的第4+層報(bào)頭和咸實(shí)際第4+層報(bào)頭的位置標(biāo)識(shí)。盡管根據(jù)所發(fā)出的窺視命令接收數(shù)據(jù)被描述為下列窺視命令發(fā)送,但是可以在發(fā)出窺視命令之后的任何時(shí)間(例如在框906的處理之后)接收數(shù)據(jù)。通過(guò)使用窺視命令,某些實(shí)施例將直接窺視結(jié)果提供到預(yù)處理代理210寄存器212中。
某些實(shí)施例還在應(yīng)用空間124中提供對(duì)所接收的數(shù)據(jù)的放置。在框906中,預(yù)處理代理210通知直接存儲(chǔ)器存取(DMA)引擎220將協(xié)議數(shù)據(jù)單元的“n”(其中“n”表示正整數(shù)值)字節(jié)數(shù)據(jù)存儲(chǔ)到應(yīng)用空間124中。在某些實(shí)施例中,預(yù)處理代理210發(fā)出接收緩存指令給DMA引擎220。圖10示出根據(jù)某些實(shí)施例的接收緩存指令1000的格式。接收緩存指令1000包括操作碼1010、標(biāo)記1012、跳越長(zhǎng)度1014以及地址/長(zhǎng)度對(duì)1016、1018、1020、…1022的列表。盡管示出了四個(gè)地址/長(zhǎng)度對(duì),但是在接收緩存指令中可以包括任何數(shù)量的地址/長(zhǎng)度對(duì)。操作碼1010提供指令類型,它在這種情況下是“接收緩存”類型的指令。
操作碼1010后面跟隨與到應(yīng)用空間124的數(shù)據(jù)傳送相關(guān)的標(biāo)記1012。一些帶有指令的標(biāo)記是用于計(jì)算在傳送數(shù)量上的CRC摘要(例如利用CRC32-C技術(shù))的C和表示剝離將從被傳送的有效載荷去除的填充字節(jié)的P。
標(biāo)記1012后面跟隨傳送數(shù)據(jù)時(shí)要跳越的跳越長(zhǎng)度1014。跳越長(zhǎng)度1014在跳躍第4+層報(bào)頭是有用的,使得數(shù)據(jù)被存儲(chǔ)在應(yīng)用空間124中。跳越長(zhǎng)度1014后面跟隨地址/長(zhǎng)度對(duì)1016…1024的分散列表。地址/長(zhǎng)度對(duì)1016…1024提供應(yīng)用空間124中的地址和相關(guān)聯(lián)的長(zhǎng)度,使得數(shù)據(jù)可以被存儲(chǔ)在指定長(zhǎng)度的地址。
一旦用DMA引擎220調(diào)度接收緩存指令,接收緩存指令就被應(yīng)用于輸入的傳輸層段。接收緩存指令剝離來(lái)自傳輸層段的協(xié)議數(shù)據(jù)單元的TCP有效載荷,完成到目的地應(yīng)用空間124的有效載荷的傳輸,并且更新地址/長(zhǎng)度參數(shù)來(lái)反映當(dāng)前的傳輸。這個(gè)處理消除了按順序排列的傳輸層段的臨時(shí)緩存的需求。
實(shí)施例在數(shù)據(jù)正被傳輸?shù)綉?yīng)用緩存時(shí)計(jì)算循環(huán)冗余校驗(yàn)(例如CRC-32C)摘要。在只要傳輸層段到達(dá)就傳輸與每個(gè)傳輸層段相關(guān)的協(xié)議數(shù)據(jù)單元的有效載荷時(shí),計(jì)算CRC-32C摘要是困難的。而且,在某些實(shí)施例中,可以采用4字節(jié)的間隔尺寸來(lái)計(jì)算循環(huán)冗余校驗(yàn)摘要,但是傳輸層段可以采用任何字節(jié)的間隔尺寸。實(shí)施例以對(duì)存儲(chǔ)利用和性能有效的方式來(lái)執(zhí)行循環(huán)冗余校驗(yàn)。
在每個(gè)TCP連接上,保持CRC數(shù)據(jù)結(jié)構(gòu)226,從而計(jì)算傳輸層段上的循環(huán)冗余校驗(yàn)摘要。圖11示出根據(jù)某些實(shí)施例的CRC數(shù)據(jù)結(jié)構(gòu)226的格式。CRC數(shù)據(jù)結(jié)構(gòu)226包括部分CRC摘要字段1110、剩余計(jì)數(shù)1112和剩余數(shù)據(jù)1114。部分CRC摘要字段1110保持為在前傳輸層段的特定數(shù)量(例如[floor(N/4)×4],其中N是計(jì)算CRC的字節(jié)數(shù)量)字節(jié)而計(jì)算的循環(huán)冗余校驗(yàn)(例如CRC-32C)摘要。剩余數(shù)據(jù)字段1112保持在前傳輸層段的剩余字節(jié)。在某些實(shí)施例中,剩余數(shù)據(jù)字節(jié)數(shù)={N-[floor(N/4)×4]}(其中N是其上計(jì)算CRC的字節(jié)數(shù)量)。剩余計(jì)數(shù)字段1114保持在剩余數(shù)據(jù)字段中有效的許多字節(jié)。
利用每個(gè)新的傳輸層段,給CRC引擎224提供在前傳輸層段的部分CRC摘要,它用作初始CRC。還提供“剩余數(shù)據(jù)”來(lái)計(jì)算隨后的CRC摘要。一旦協(xié)議數(shù)據(jù)單元被傳送,最后的CRC摘要就和所接收的摘要執(zhí)行比較。如果發(fā)現(xiàn)匹配,就向應(yīng)用程序122通知所接收的數(shù)據(jù)(例如用通過(guò)CRC引擎224設(shè)置的標(biāo)記來(lái)通知預(yù)處理代理210),否則檢測(cè)到錯(cuò)誤。在某些實(shí)施例中,當(dāng)檢測(cè)到錯(cuò)誤時(shí),將錯(cuò)誤通知網(wǎng)絡(luò)驅(qū)動(dòng)器126。
圖12示出根據(jù)某些實(shí)施例的段處理引擎230和CRC引擎224的交互。段處理引擎230負(fù)責(zé)把下一個(gè)傳輸層段推送到CRC引擎224,以用于CRC摘要計(jì)算。利用每個(gè)新的傳輸層段,段處理引擎230提供在前傳輸層段的部分CRC摘要以及下一個(gè)傳輸層段。這個(gè)部分CRC摘要用作下一個(gè)傳輸層段的初始CRC摘要。因此,這種處理串行化在相同流上的背靠背傳輸層段處理。
圖13示出根據(jù)某些實(shí)施例在“BEFORE”情景中進(jìn)行串行化的時(shí)間線1300。由于網(wǎng)絡(luò)通信業(yè)務(wù)量已經(jīng)被示出為以突發(fā)方式到來(lái),所以由時(shí)間線1300表示的串行化可能會(huì)影響性能。實(shí)施例通過(guò)在CRC引擎224內(nèi)部引入用于CRC數(shù)據(jù)結(jié)構(gòu)226的“向后一個(gè)”存儲(chǔ)區(qū)域228(例如高速緩沖存儲(chǔ)器)來(lái)解決這一問(wèn)題。存儲(chǔ)區(qū)域228儲(chǔ)存部分CRC摘要。段處理引擎230確定當(dāng)前傳輸層段和最后一個(gè)是否在相同流上,如果是,段處理引擎230開(kāi)始向CRC引擎224傳送數(shù)據(jù),而不用等待部分CRC摘要和剩余數(shù)據(jù)交換。CRC引擎224還知曉這種情況,并利用部分CRC摘要的緩存版本。圖14示出根據(jù)某些實(shí)施例在“AFTER”情景中串行化的時(shí)間線1400。在圖14中,時(shí)間線1400示出在“AFTRER”的情況下,在圖13的BEFORE情景中的“延遲”消失。
圖15示出根據(jù)某些實(shí)施例由CRC引擎224執(zhí)行的操作。控制在框1500開(kāi)始,其中CRC引擎224接收傳輸層段。在框1502中,CRC引擎224確定部分CRC摘要和剩余數(shù)據(jù)是否與傳輸層段一起被接收到。如果是,處理繼續(xù)到框1506,否則,處理繼續(xù)到框1504。在框1504中,CRC引擎224從CRC存儲(chǔ)區(qū)域228取回在前傳輸層段的部分CRC摘要和剩余數(shù)據(jù)。
在框1506中,CRC引擎224確定伴隨這個(gè)傳輸層段的接收是否接收到完整的協(xié)議數(shù)據(jù)單元。也就是說(shuō),由于協(xié)議數(shù)據(jù)單元可以具有嵌入在多個(gè)傳輸層段內(nèi)部的多個(gè)協(xié)議段,所以CRC引擎224確定它現(xiàn)在是否接收到完整的協(xié)議數(shù)據(jù)單元。如果是,處理繼續(xù)到框1508,否則,處理繼續(xù)到框1516。
在框1508中,CRC引擎224利用所接收或所取回的部分CRC摘要和剩余數(shù)據(jù)來(lái)計(jì)算協(xié)議數(shù)據(jù)單元的完整的CRC摘要。例如,狀態(tài)機(jī)和相關(guān)的寄存器可以用于計(jì)算完整的CRC摘要,并且部分CRC摘要和剩余數(shù)據(jù)可用于保存在接收到協(xié)議數(shù)據(jù)單元的所有數(shù)據(jù)之前的寄存器狀態(tài)。在框1510中,CRC引擎224確定所計(jì)算出的CRC摘要和所接收的CRC摘要是否匹配。如果是,處理繼續(xù)到框1512,否則處理繼續(xù)到框1514。在框1512中,CRC引擎224將成功接收的數(shù)據(jù)通知應(yīng)用程序122。在框1514中,CRC引擎224處理錯(cuò)誤。
在框1516中,CRC引擎224利用所接收或所取回的部分CRC摘要和剩余數(shù)據(jù)來(lái)計(jì)算新的部分CRC摘要。在框1518中,所接收或所取回的部分CRC摘要和剩余數(shù)據(jù)將新的部分CRC摘要和剩余數(shù)據(jù)發(fā)送給段處理引擎230。在框1520中,所接收或所取回的部分CRC摘要和剩余數(shù)據(jù)在CRC數(shù)據(jù)結(jié)構(gòu)226和CRC存儲(chǔ)區(qū)域228中儲(chǔ)存新的部分CRC摘要和剩余數(shù)據(jù)。然后,處理循環(huán)回到框1500。
圖16示出根據(jù)某些實(shí)施例的由段處理引擎230執(zhí)行的用于循環(huán)冗余校驗(yàn)的操作??刂圃诳?600開(kāi)始,其中段處理引擎230接收當(dāng)前傳輸層段。在框1602中,段處理引擎230確定是否接收到部分CRC摘要和剩余數(shù)據(jù)以用于最后傳輸層段。如果是,處理繼續(xù)到框1604,否則處理繼續(xù)到框1606。在框1604中,段處理引擎230將當(dāng)前傳輸層段以及用于最后傳輸層段的部分CRC摘要和剩余數(shù)據(jù)一起轉(zhuǎn)發(fā)給CRC引擎224。
在框1606中,段處理引擎230確定當(dāng)前傳輸層段和最后傳輸層段是否在相同流上。如果當(dāng)前傳輸層段和最后傳輸層段具有相同的TCP連接并且以正確的順序接收,就可以確定當(dāng)前傳輸層段與最后傳輸層段在相同流上。如果是這樣,處理繼續(xù)到框1608,否則處理循環(huán)回到框1604。在框1608中,段處理引擎230將當(dāng)前傳輸層段發(fā)送給CRC引擎224,而不發(fā)送用于最后傳輸層段的部分CRC摘要和剩余數(shù)據(jù)。
因此,實(shí)施例解決了第4+層協(xié)議數(shù)據(jù)單元的接收和數(shù)據(jù)放置的實(shí)際問(wèn)題。為用于處理其數(shù)據(jù)部分可包含協(xié)議段的所接收的傳輸層段的每個(gè)關(guān)鍵階段提供有效和完整的解決方案。
實(shí)施例提供用于第4+層協(xié)議數(shù)據(jù)單元檢測(cè)、標(biāo)志驗(yàn)證和剝離、利用預(yù)處理代理210的第4+層直接報(bào)頭檢查、以及可以跨越多個(gè)字節(jié)排列的傳輸層段的協(xié)議數(shù)據(jù)單元有效載荷的CRC計(jì)算的解決方案。接收業(yè)務(wù)量的流水線的處理被提供來(lái)用于處理第4+業(yè)務(wù)量。接收業(yè)務(wù)量的有效處理反過(guò)來(lái)改進(jìn)整個(gè)系統(tǒng)的性能。
因此,某些實(shí)施例處理用于上層協(xié)議的協(xié)議數(shù)據(jù)單元,例如iSCSI和RDMA。
附加實(shí)施例的細(xì)節(jié)利用編程技術(shù)和/或工程技術(shù)已產(chǎn)生軟件、固件、硬件或它們的任何組合,所述的實(shí)施例可以被實(shí)現(xiàn)為方法、裝置或產(chǎn)品。在這里使用的術(shù)語(yǔ)“產(chǎn)品”和“電路”是指在硬件邏輯中實(shí)現(xiàn)的狀態(tài)機(jī)、代碼或邏輯(例如集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等等)或者計(jì)算機(jī)可讀介質(zhì),例如磁盤存儲(chǔ)介質(zhì)(例如硬盤驅(qū)動(dòng)器、軟盤、磁帶等等)、光學(xué)存儲(chǔ)裝置(CD-ROM、光盤等等)、易失性和非易失性存儲(chǔ)器(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等等)。在計(jì)算機(jī)可讀介質(zhì)中的代碼被處理器訪問(wèn)和執(zhí)行。當(dāng)代碼或邏輯被處理器執(zhí)行時(shí),電路可以包括介質(zhì)(它包括代碼或邏輯)以及執(zhí)行從介質(zhì)加載的代碼的處理器。實(shí)現(xiàn)實(shí)施例的代碼還可以進(jìn)一步通過(guò)傳輸介質(zhì)或從網(wǎng)絡(luò)上的文件服務(wù)器訪問(wèn)。在這種情況下,其中實(shí)現(xiàn)該代碼的產(chǎn)品可以包括傳輸介質(zhì)例如網(wǎng)絡(luò)傳輸線、無(wú)線傳輸介質(zhì)、通過(guò)空間傳播的信號(hào)、無(wú)線電波、紅外線信號(hào)等等。因此,該“產(chǎn)品”可以包括其中包含該代碼的介質(zhì)。而且,該“產(chǎn)品”可以包括其中包含、處理和執(zhí)行該代碼的硬件和軟件組件的組合。當(dāng)然,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,可以對(duì)這種結(jié)構(gòu)進(jìn)行很多修改,該產(chǎn)品可以包括現(xiàn)有技術(shù)中已知的任何信息承載介質(zhì)。而且,可以在適配器上或主板上的一個(gè)或多個(gè)集成電路上實(shí)現(xiàn)這些裝置、適配器等。
圖6、7、8、9、15和16所示的操作顯示按一定順序發(fā)生的某些事件。在可選擇的實(shí)施例中,某些操作可以按不同的順序執(zhí)行、修改或省略。而且,可以在上述的邏輯中增加操作,并且仍然符合所述的實(shí)施例。而且,這里所述的操作可以依次發(fā)生,或者某些操作可以被并行執(zhí)行。而且,可以通過(guò)單個(gè)的處理單元或者通過(guò)若干個(gè)分布式處理單元來(lái)執(zhí)行操作。
以上所述的各種實(shí)施例的描述是為了舉例說(shuō)明而提出的。它不是意在窮盡的或者限制性的。在上述教導(dǎo)下可以實(shí)現(xiàn)很多修改和變化。
權(quán)利要求
1.一種用于處理數(shù)據(jù)段的方法,包括從傳輸層段剝離報(bào)頭;執(zhí)行協(xié)議數(shù)據(jù)單元檢測(cè),以確定作為該傳輸層段的部分?jǐn)?shù)據(jù)的協(xié)議段的數(shù)據(jù);以及執(zhí)行標(biāo)志驗(yàn)證和剝離。
2.如權(quán)利要求1所述的方法,其中,執(zhí)行協(xié)議數(shù)據(jù)單元檢測(cè)還包括從協(xié)議數(shù)據(jù)單元的報(bào)頭的長(zhǎng)度字段的偏移量并以該報(bào)頭的長(zhǎng)度字段的寬度來(lái)提取值;確定該協(xié)議數(shù)據(jù)單元的最終長(zhǎng)度;以及基于該協(xié)議數(shù)據(jù)單元的起始位置和最終長(zhǎng)度檢測(cè)協(xié)議數(shù)據(jù)單元。
3.如權(quán)利要求2所述的方法,其中,確定該協(xié)議數(shù)據(jù)單元的最終長(zhǎng)度是基于所提取的值以及乘法/加法順序參數(shù)、長(zhǎng)度字段乘法器參數(shù)和長(zhǎng)度字段加法器參數(shù)的值的。
4.如權(quán)利要求1所述的方法,其中,執(zhí)行標(biāo)志驗(yàn)證和剝離還包括從初始偏移量提取標(biāo)志長(zhǎng)度數(shù)的字節(jié);基于標(biāo)志類型來(lái)驗(yàn)證該標(biāo)志;和在輸入的字節(jié)流中跳躍標(biāo)志間隔。
5.如權(quán)利要求1所述的方法,還包括接收請(qǐng)求下一個(gè)協(xié)議數(shù)據(jù)單元的報(bào)頭部分的窺視命令;等待所述被請(qǐng)求的數(shù)據(jù);和響應(yīng)該窺視命令返回所述被請(qǐng)求的數(shù)據(jù)。
6.如權(quán)利要求5所述的方法,其中,返回所述被請(qǐng)求的數(shù)據(jù)還包括向預(yù)處理代理提供該協(xié)議數(shù)據(jù)單元的報(bào)頭的位置。
7.如權(quán)利要求5所述的方法,其中,返回所述被請(qǐng)求的數(shù)據(jù)還包括向預(yù)處理代理提供該協(xié)議數(shù)據(jù)單元的報(bào)頭。
8.一種處理數(shù)據(jù)段的方法,包括接收協(xié)議數(shù)據(jù)單元的報(bào)頭部分;利用所接收的報(bào)頭部分來(lái)確定要儲(chǔ)存在應(yīng)用空間中的數(shù)據(jù)的字節(jié)數(shù);基于所接收的報(bào)頭部分來(lái)確定下一個(gè)協(xié)議數(shù)據(jù)單元的下一個(gè)報(bào)頭部分;和發(fā)出窺視命令以獲得該下一個(gè)報(bào)頭部分。
9.如權(quán)利要求8所述的方法,還包括通知直接存儲(chǔ)器訪問(wèn)(DMA)引擎來(lái)將所確定字節(jié)數(shù)的數(shù)據(jù)直接存儲(chǔ)到該應(yīng)用空間。
10.一種用于執(zhí)行循環(huán)冗余校驗(yàn)的方法,包括接收傳輸層段;確定是否已接收到完整的協(xié)議數(shù)據(jù)單元;和響應(yīng)于確定出尚未接收到完整協(xié)議數(shù)據(jù)單元,計(jì)算新的部分循環(huán)冗余校驗(yàn)摘要;和存儲(chǔ)該新的部分循環(huán)冗余校驗(yàn)摘要和來(lái)自該計(jì)算的剩余數(shù)據(jù)。
11.如權(quán)利要求10所述的方法,其中,該新的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)被存儲(chǔ)在循環(huán)冗余校驗(yàn)存儲(chǔ)區(qū)域內(nèi)和循環(huán)冗余校驗(yàn)數(shù)據(jù)結(jié)構(gòu)內(nèi)。
12.如權(quán)利要求10所述的方法,還包括將該新的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)轉(zhuǎn)發(fā)到段處理引擎。
13.如權(quán)利要求10所述的方法,還包括確定部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)是否與該傳輸層段一起被接收;響應(yīng)于確定出未接收到該部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)而取回該部分循環(huán)冗余校驗(yàn)摘要和該剩余數(shù)據(jù);和利用所取回的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)計(jì)算該新的部分循環(huán)冗余校驗(yàn)摘要。
14.如權(quán)利要求10所述的方法,還包括響應(yīng)于確定出已接收到完整的協(xié)議數(shù)據(jù)單元,計(jì)算該協(xié)議數(shù)據(jù)單元的完整的循環(huán)冗余校驗(yàn)摘要;確定所計(jì)算出的循環(huán)冗余校驗(yàn)摘要和與該協(xié)議數(shù)據(jù)單元一起接收的循環(huán)冗余校驗(yàn)摘要是否匹配;響應(yīng)于確定出存在匹配,將成功接收的數(shù)據(jù)通知應(yīng)用程序;和響應(yīng)于確定出不匹配而執(zhí)行錯(cuò)誤處理。
15.一種用于執(zhí)行循環(huán)冗余校驗(yàn)的方法,包括接收當(dāng)前傳輸層段;確定是否已接收到最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù);和響應(yīng)于確定出已接收到該部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù),將該當(dāng)前傳輸層段與該最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)一起轉(zhuǎn)發(fā)給循環(huán)冗余校驗(yàn)引擎。
16.如權(quán)利要求15所述的方法,還包括響應(yīng)于確定出尚未接收到該部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù),確定該當(dāng)前傳輸層段是否與該最后傳輸層段在相同流上;和響應(yīng)于確定出這些傳輸層段在相同流上,將該當(dāng)前傳輸層段轉(zhuǎn)發(fā)給循環(huán)冗余校驗(yàn)引擎,而不轉(zhuǎn)發(fā)該最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)。
17.如權(quán)利要求16所述的方法,還包括響應(yīng)于確定出這些傳輸層段在相同流上,將該當(dāng)前傳輸層段與該最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)一起轉(zhuǎn)發(fā)給循環(huán)冗余校驗(yàn)引擎。
18.一種用于處理數(shù)據(jù)段的產(chǎn)品,其中該產(chǎn)品包括存儲(chǔ)指令的計(jì)算機(jī)可讀介質(zhì),和其中該產(chǎn)品被操作來(lái)從傳輸層段剝離報(bào)頭;執(zhí)行協(xié)議數(shù)據(jù)單元檢測(cè),以確定用于作為該傳輸層段的部分?jǐn)?shù)據(jù)的協(xié)議段的數(shù)據(jù);和執(zhí)行標(biāo)志驗(yàn)證和剝離。
19,如權(quán)利要求18的產(chǎn)品,其中在執(zhí)行協(xié)議數(shù)據(jù)單元檢測(cè)時(shí),該產(chǎn)品被操作來(lái)從協(xié)議數(shù)據(jù)單元的報(bào)頭的長(zhǎng)度字段的偏移量并以該報(bào)頭的長(zhǎng)度字段的寬度來(lái)提取值;確定該協(xié)議數(shù)據(jù)單元的最終長(zhǎng)度;和基于該協(xié)議數(shù)據(jù)單元的起始位置和最終長(zhǎng)度來(lái)檢測(cè)協(xié)議數(shù)據(jù)單元。
20.如權(quán)利要求19所述的產(chǎn)品,其中,確定該協(xié)議數(shù)據(jù)單元的最終長(zhǎng)度是基于所述提取的值以及乘法/加法順序參數(shù)、長(zhǎng)度字段乘法器參數(shù)和長(zhǎng)度字段加法器參數(shù)的值。
21.如權(quán)利要求18所述的產(chǎn)品,其中,在執(zhí)行標(biāo)志驗(yàn)證和剝離時(shí),該產(chǎn)品被操作來(lái)從初始偏移量提取標(biāo)志長(zhǎng)度數(shù)的字節(jié);基于標(biāo)志類型來(lái)驗(yàn)證標(biāo)志;和在輸入的字節(jié)流中跳躍標(biāo)志間隔。
22.如權(quán)利要求18所述的產(chǎn)品,其中,該產(chǎn)品被操作來(lái)接收請(qǐng)求下一個(gè)協(xié)議數(shù)據(jù)單元的報(bào)頭部分的窺視命令;等待所述被請(qǐng)求的數(shù)據(jù);和響應(yīng)于該窺視命令而返回所述被請(qǐng)求的數(shù)據(jù)。
23.如權(quán)利要求22所述的產(chǎn)品,其中,當(dāng)返回所述被請(qǐng)求的數(shù)據(jù)時(shí),該產(chǎn)品被操作來(lái)向預(yù)處理代理提供該協(xié)議數(shù)據(jù)單元的報(bào)頭的位置。
24.如權(quán)利要求22所述的產(chǎn)品,其中,當(dāng)返回所述被請(qǐng)求的數(shù)據(jù)時(shí),該產(chǎn)品被操作來(lái)向預(yù)處理代理提供該協(xié)議數(shù)據(jù)單元的報(bào)頭。
25.一種用于處理數(shù)據(jù)段的產(chǎn)品,其中該產(chǎn)品包括存儲(chǔ)指令的計(jì)算機(jī)可讀介質(zhì),和其中該產(chǎn)品被操作來(lái)接收協(xié)議數(shù)據(jù)單元的報(bào)頭部分;利用所接收的報(bào)頭部分來(lái)確定要儲(chǔ)存在應(yīng)用空間中的數(shù)據(jù)的字節(jié)數(shù);基于所接收的報(bào)頭部分來(lái)確定下一個(gè)協(xié)議數(shù)據(jù)單元的下一個(gè)報(bào)頭部分;和發(fā)出窺視命令以獲得該下一個(gè)報(bào)頭部分。
26.如權(quán)利要求25所述的產(chǎn)品,其中,該產(chǎn)品被操作來(lái)通知直接存儲(chǔ)器訪問(wèn)(DMA)引擎來(lái)將所確定的數(shù)據(jù)字節(jié)數(shù)直接存儲(chǔ)到該應(yīng)用空間中。
27.一種用于執(zhí)行循環(huán)冗余校驗(yàn)的產(chǎn)品,其中,該產(chǎn)品包括存儲(chǔ)指令的計(jì)算機(jī)可讀介質(zhì),和其中該產(chǎn)品被操作來(lái)接收傳輸層段;確定是否已接收到完整的協(xié)議數(shù)據(jù)單元;和響應(yīng)于確定出尚未接收到完整的協(xié)議數(shù)據(jù)單元,計(jì)算新的部分循環(huán)冗余校驗(yàn)摘要;和存儲(chǔ)該新的部分循環(huán)冗余校驗(yàn)摘要和來(lái)自該計(jì)算的剩余數(shù)據(jù)。
28.如權(quán)利要求27所述的產(chǎn)品,其中,該新的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)被存儲(chǔ)在循環(huán)冗余校驗(yàn)存儲(chǔ)區(qū)域內(nèi)和循環(huán)冗余校驗(yàn)數(shù)據(jù)結(jié)構(gòu)內(nèi)。
29.如權(quán)利要求27所述的產(chǎn)品,該產(chǎn)品被操作來(lái)將該新的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)轉(zhuǎn)發(fā)到段處理引擎。
30.如權(quán)利要求27所述的產(chǎn)品,該產(chǎn)品被操作來(lái)確定該部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)是否與該傳輸層段一起被接收;響應(yīng)于確定出未接收到該部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù),取回該部分循環(huán)冗余校驗(yàn)摘要和該剩余數(shù)據(jù);和利用所取回的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)計(jì)算該新的部分循環(huán)冗余校驗(yàn)摘要。
31.如權(quán)利要求27所述的產(chǎn)品,該產(chǎn)品被操作來(lái)響應(yīng)于確定出已接收到該完整的協(xié)議數(shù)據(jù)單元,計(jì)算該協(xié)議數(shù)據(jù)單元的完整的循環(huán)冗余校驗(yàn)摘要;確定所計(jì)算出的循環(huán)冗余校驗(yàn)摘要和與該協(xié)議數(shù)據(jù)單元一起接收的循環(huán)冗余校驗(yàn)摘要是否匹配;響應(yīng)于確定出存在匹配,將成功接收的數(shù)據(jù)通知應(yīng)用程序;和響應(yīng)于確定出不匹配而執(zhí)行錯(cuò)誤處理。
32.一種用于執(zhí)行循環(huán)冗余校驗(yàn)的產(chǎn)品,其中該產(chǎn)品包括存儲(chǔ)指令的計(jì)算機(jī)可讀介質(zhì),和其中該產(chǎn)品被操作來(lái)接收當(dāng)前傳輸層段;確定是否已接收到最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù);和響應(yīng)于確定出已接收到該部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù),將該當(dāng)前傳輸層段與該最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)一起轉(zhuǎn)發(fā)給循環(huán)冗余校驗(yàn)引擎。
33.如權(quán)利要求32所述的產(chǎn)品,該產(chǎn)品被操作來(lái)響應(yīng)于確定出尚未接收到該部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù),確定該當(dāng)前傳輸層段是否與該最后傳輸層段在相同流上;和響應(yīng)于確定出該傳輸層段在相同流上,將該當(dāng)前傳輸層段轉(zhuǎn)發(fā)給循環(huán)冗余校驗(yàn)引擎,而不轉(zhuǎn)發(fā)該最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)。
34.如權(quán)利要求33所述的產(chǎn)品,其中,該產(chǎn)品被操作來(lái)響應(yīng)于確定出這些傳輸層段不在相同流上,將該當(dāng)前傳輸層段與該最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)一起轉(zhuǎn)發(fā)給循環(huán)冗余校驗(yàn)引擎。
35.一種用于處理數(shù)據(jù)段的系統(tǒng),包括耦合到外圍部件互聯(lián)(PCI)總線的網(wǎng)絡(luò)適配器;和在該網(wǎng)絡(luò)適配器上的電路,該電路被操作來(lái)從傳輸層段剝離報(bào)頭;執(zhí)行協(xié)議數(shù)據(jù)單元檢測(cè),以確定作為該傳輸層段的部分?jǐn)?shù)據(jù)的協(xié)議段的數(shù)據(jù);和執(zhí)行標(biāo)志驗(yàn)證和剝離。
36.如權(quán)利要求35所述的系統(tǒng),其中,在執(zhí)行協(xié)議數(shù)據(jù)單元檢測(cè)時(shí),該電路被操作來(lái)從協(xié)議數(shù)據(jù)單元的報(bào)頭的長(zhǎng)度字段的偏移量并以該報(bào)頭的長(zhǎng)度字段的寬度來(lái)提取值;確定該協(xié)議數(shù)據(jù)單元的最終長(zhǎng)度;和基于該協(xié)議數(shù)據(jù)單元的起始位置和最終長(zhǎng)度來(lái)檢測(cè)協(xié)議數(shù)據(jù)單元。
37.如權(quán)利要求36所述的系統(tǒng),其中,確定該協(xié)議數(shù)據(jù)單元的最終長(zhǎng)度是基于所提取的值以及乘法/加法順序參數(shù)、長(zhǎng)度字段乘法器參數(shù)和長(zhǎng)度字段加法器參數(shù)的值。
38.如權(quán)利要求35所述的系統(tǒng),其中,在執(zhí)行標(biāo)志驗(yàn)證和剝離時(shí),該電路被操作來(lái)從初始偏移量提取標(biāo)志長(zhǎng)度數(shù)的字節(jié);根據(jù)標(biāo)志類型來(lái)驗(yàn)證標(biāo)志;和在輸入的字節(jié)流中跳躍標(biāo)志間隔。
39.如權(quán)利要求35所述的系統(tǒng),其中,該電路被操作來(lái)接收請(qǐng)求下一個(gè)協(xié)議數(shù)據(jù)單元的報(bào)頭部分的窺視命令;等待所述被請(qǐng)求的數(shù)據(jù);和響應(yīng)于該窺視命令而返回所述被請(qǐng)求的數(shù)據(jù)。
40.如權(quán)利要求39所述的系統(tǒng),其中,當(dāng)返回所述被請(qǐng)求的數(shù)據(jù)時(shí),該電路被操作來(lái)向預(yù)處理代理提供該協(xié)議數(shù)據(jù)單元的報(bào)頭的位置。
41.如權(quán)利要求39所述的系統(tǒng),其中,當(dāng)返回所述被請(qǐng)求的數(shù)據(jù)時(shí),該電路被操作來(lái)向預(yù)處理代理提供該協(xié)議數(shù)據(jù)單元的報(bào)頭。
42.一種用于處理數(shù)據(jù)段的系統(tǒng),包括耦合到外圍部件互聯(lián)(PCI)總線的網(wǎng)絡(luò)適配器;和在該網(wǎng)絡(luò)適配器上的電路,該電路被操作來(lái)接收協(xié)議數(shù)據(jù)單元的報(bào)頭部分;利用所接收的報(bào)頭部分來(lái)確定要儲(chǔ)存在應(yīng)用空間中的數(shù)據(jù)的字節(jié)數(shù);基于所接收的報(bào)頭部分來(lái)確定下一個(gè)協(xié)議數(shù)據(jù)單元的下一個(gè)報(bào)頭部分;和發(fā)出窺視命令以獲得該下一個(gè)報(bào)頭部分。
43.如權(quán)利要求42所述的系統(tǒng),其中,該電路被操作來(lái)通知直接存儲(chǔ)器訪問(wèn)(DMA)引擎將所確定的數(shù)據(jù)字節(jié)數(shù)直接存儲(chǔ)到該應(yīng)用空間中。
44.一種用于執(zhí)行循環(huán)冗余校驗(yàn)的系統(tǒng),包括耦合到外圍部件互聯(lián)(PCI)總線的網(wǎng)絡(luò)適配器;和在該網(wǎng)絡(luò)適配器上的電路,該電路被操作來(lái)接收傳輸層段;確定是否已接收到完整的協(xié)議數(shù)據(jù)單元;和響應(yīng)于確定出尚未接收到完整的協(xié)議數(shù)據(jù)單元,計(jì)算新的部分循環(huán)冗余校驗(yàn)摘要;和存儲(chǔ)該新的部分循環(huán)冗余校驗(yàn)摘要和來(lái)自該計(jì)算的剩余數(shù)據(jù)。
45.如權(quán)利要求44所述的系統(tǒng),其中,該新的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)被存儲(chǔ)在循環(huán)冗余校驗(yàn)存儲(chǔ)區(qū)域內(nèi)和循環(huán)冗余校驗(yàn)數(shù)據(jù)結(jié)構(gòu)內(nèi)。
46.如權(quán)利要求44所述的系統(tǒng),該電路被操作來(lái)將該新的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)轉(zhuǎn)發(fā)到段處理引擎。
47.如權(quán)利要求44所述的系統(tǒng),該電路被操作來(lái)確定部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)是否與該傳輸層段一起被接收;響應(yīng)于確定出未接收到該部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù),取回該部分循環(huán)冗余校驗(yàn)摘要和該剩余數(shù)據(jù);和利用所取回的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù),計(jì)算該新的部分循環(huán)冗余校驗(yàn)摘要。
48.如權(quán)利要求44所述的系統(tǒng),該電路被操作來(lái)響應(yīng)于確定出已接收到該完整的協(xié)議數(shù)據(jù)單元,計(jì)算該協(xié)議數(shù)據(jù)單元的完整的循環(huán)冗余校驗(yàn)摘要;確定所計(jì)算出的循環(huán)冗余校驗(yàn)摘要和與該協(xié)議數(shù)據(jù)單元一起被接收的循環(huán)冗余校驗(yàn)摘要是否匹配;響應(yīng)于確定出存在匹配,將成功接收的數(shù)據(jù)通知應(yīng)用程序;和響應(yīng)于確定出不匹配而執(zhí)行錯(cuò)誤處理。
49.一種用于執(zhí)行循環(huán)冗余校驗(yàn)的系統(tǒng),包括耦合到外圍部件互聯(lián)(PCI)總線的網(wǎng)絡(luò)適配器;和在該網(wǎng)絡(luò)適配器上的電路,該電路被操作來(lái)接收當(dāng)前傳輸層段;確定是否已接收到最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù);和響應(yīng)于確定出已接收到該部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù),將該當(dāng)前傳輸層段與該最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)一起轉(zhuǎn)發(fā)給循環(huán)冗余校驗(yàn)引擎。
50.如權(quán)利要求49所述的系統(tǒng),其中,該電路被操作來(lái)響應(yīng)于確定出尚未接收到該部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù),確定該當(dāng)前傳輸層段與該最后傳輸層段是否在相同流上;和響應(yīng)于確定出這些傳輸層段在相同流上,將該當(dāng)前傳輸層段轉(zhuǎn)發(fā)給循環(huán)冗余校驗(yàn)引擎,而不轉(zhuǎn)發(fā)該最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)。
51.如權(quán)利要求50所述的系統(tǒng),其中,該電路被操作來(lái)響應(yīng)于確定出這些傳輸層段不在相同流上,將該當(dāng)前傳輸層段與該最后傳輸層段的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)一起轉(zhuǎn)發(fā)給循環(huán)冗余校驗(yàn)引擎。
全文摘要
提供用于處理數(shù)據(jù)段的技術(shù),通過(guò)從傳輸層段剝離報(bào)頭,執(zhí)行協(xié)議數(shù)據(jù)檢測(cè)以確定作為傳輸層段的部分?jǐn)?shù)據(jù)的協(xié)議段的數(shù)據(jù),以及執(zhí)行標(biāo)志驗(yàn)證和剝離,從而處理數(shù)據(jù)段。還提供用于處理數(shù)據(jù)段的技術(shù),其中接收到協(xié)議數(shù)據(jù)單元的報(bào)頭部分。利用所接收的報(bào)頭部分來(lái)確定將儲(chǔ)存在應(yīng)用空間中的數(shù)據(jù)的字節(jié)數(shù)。而且,利用所接收的報(bào)頭部分來(lái)確定下一個(gè)協(xié)議數(shù)據(jù)單元的下一個(gè)報(bào)頭部分。然后,發(fā)出窺視命令以獲得下一個(gè)報(bào)頭部分。另外提供用于利用所儲(chǔ)存的部分循環(huán)冗余校驗(yàn)摘要和剩余數(shù)據(jù)來(lái)執(zhí)行循環(huán)冗余校驗(yàn)的技術(shù)。
文檔編號(hào)H04L29/06GK1961540SQ200580017333
公開(kāi)日2007年5月9日 申請(qǐng)日期2005年6月10日 優(yōu)先權(quán)日2004年6月28日
發(fā)明者尼古拉斯·科爾曼, 拉梅什·克里希南, 安舒曼·塔庫(kù)爾, 羅伯特·科恩, 丹尼爾·曼索 申請(qǐng)人:英特爾公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1