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

以避免通信協(xié)議棧卷入的方式向設(shè)備發(fā)出至少一部分分組有效載荷的網(wǎng)絡(luò)控制器電路的制作方法

文檔序號:7848446閱讀:145來源:國知局
專利名稱:以避免通信協(xié)議棧卷入的方式向設(shè)備發(fā)出至少一部分分組有效載荷的網(wǎng)絡(luò)控制器電路的制作方法
技術(shù)領(lǐng)域
本公開涉及以避免通信協(xié)議棧卷入的方式向目的地設(shè)備發(fā)出至少一部分分組有效載荷的網(wǎng)絡(luò)控制器電路,例如用于數(shù)據(jù)傳送同時仍執(zhí)行一個或多個通信協(xié)議控制操作。
背景技術(shù)
在一個常規(guī)計算配置中,第一主機計算機中的網(wǎng)絡(luò)輸入/輸出(I/O)設(shè)備從第二主機計算機接收分組。該設(shè)備將所接收的分組存儲在第一主機計算機中的主機存儲器中。第一主機計算機中的主機中央處理器單元(CPU)執(zhí)行的通信協(xié)議棧處理分組的頭部并將分組的有效載荷復(fù)制到存儲器中的用戶空間。由CPU執(zhí)行的應(yīng)用處理有效載荷并將來自有效 載荷的數(shù)據(jù)發(fā)送到第一主機計算機的一個或多個I/o設(shè)備。這種I/O設(shè)備可包括主機存儲、音頻和/或顯示設(shè)備。以上類型的分組處理包括從第一主機計算機中的存儲器和向其傳輸并復(fù)制分組數(shù)據(jù)所涉及的大量操作。這些操作可施加不期望的大量CPU處理開銷,消耗不期望的大量CPU處理帶寬,降低CPU的性能,以及增加CPU的功耗和發(fā)熱。此外,這些操作可導(dǎo)致第一主機計算機的實際分組處理吞吐量顯著低于網(wǎng)絡(luò)的數(shù)據(jù)傳送速率。在其它的常規(guī)配置中,網(wǎng)絡(luò)I/O設(shè)備執(zhí)行通信協(xié)議棧的全部副本,以便準(zhǔn)許所有的通信協(xié)議棧的處理從CPU卸載到網(wǎng)絡(luò)I/O設(shè)備。不幸的是,這種常規(guī)配置顯著增加第一主機計算機的成本。在又一個常規(guī)配置中,棧被修改以減少CPU的處理負(fù)擔(dān)。不幸的是,對棧的修改可導(dǎo)致協(xié)議、技術(shù)生態(tài)系和操作系統(tǒng)兼容性問題。


隨著進行以下詳細(xì)描述并參考附圖,實施例的特征和優(yōu)點將變得顯而易見,其中類似的附圖標(biāo)記描繪類似的部件,其中圖I示出系統(tǒng)實施例。圖2示出實施例中的特征。圖3示出實施例中的特征。圖4示出實施例中的操作。圖5示出實施例中的操作。雖然將參考說明性實施例繼續(xù)進行以下詳細(xì)描述,但該其替代物、修改以及變型對本領(lǐng)域技術(shù)人員而言將顯而易見。因此,旨在寬泛地考慮所要求保護的主題。詳細(xì)描述圖I示出系統(tǒng)實施例100。系統(tǒng)100可包括節(jié)點10,該節(jié)點10可經(jīng)由一個或多個無線和/或有線網(wǎng)絡(luò)50通信耦合到節(jié)點20。節(jié)點10和20中的每一個可在地理上彼此遠(yuǎn)離。在該實施例中,術(shù)語“主機計算機”、“主機”、“服務(wù)器”、“客戶機”、“網(wǎng)絡(luò)節(jié)點”和“節(jié)點”可互換地使用,并且可表示,例如但并不限于,一個或多個終端站、移動因特網(wǎng)設(shè)備、智能電話、媒體設(shè)備、輸入/輸出(I/o)設(shè)備、平板計算機、裝置、中間站、網(wǎng)絡(luò)接口、客戶機、服務(wù)器和/或其部分。在該實施例中,“網(wǎng)絡(luò)”可以是或包括至少部分地準(zhǔn)許、促進和/或允許兩個或更多實體通信耦合在一起的任何機制、手段、形態(tài)和/或其一部分。而且在本實施例中,如果第一實體能夠向第二實體發(fā)送一個或多個命令和/或數(shù)據(jù)和/或從第二實體接收一個或多個命令和/或數(shù)據(jù),則第一實體可“通信耦合”到第二實體。在該實施例中,“無線網(wǎng)絡(luò)”可表示至少部分地準(zhǔn)許至少兩個實體至少部分地?zé)o線通信耦合的網(wǎng)絡(luò)。在該實施例中,“有線網(wǎng)絡(luò)”可表示至少部分地準(zhǔn)許至少兩個實體至少部分地非無線通信耦合的網(wǎng)絡(luò)。在該實施例中,數(shù)據(jù)和信息可互換使用,并且可以是或 包括一個或多個命令(例如,一個或多個程序指令),和/或一個或多個這種命令可以是或包括數(shù)據(jù)和/或信息。而且在該實施例中,“指令”可包括數(shù)據(jù)和/或一個或多個命令。節(jié)點10可包括電路板(CB) 74、電路卡(CC) 75和設(shè)備124。在該實施例中,CB 74可包括例如系統(tǒng)主板,該系統(tǒng)主板經(jīng)由未示出的總線連接器/插槽系統(tǒng)物理且通信耦合到CC 75。CB 74可包括一個或多個單核和/或多核主機處理器(HP) 12以及計算機可讀/可寫存儲器21。盡管在圖中未示出,然而CB 74也可包括一個或多個芯片組(包括例如存儲器和/或輸入/輸出控制器電路)。一個或多個主機處理器12可經(jīng)由一個或多個芯片組通信耦合到存儲器21、CC75和/或設(shè)備124。CC 75可包括網(wǎng)絡(luò)控制器電路(NCC)118。NCC 118和/或CC 75可直接通信耦合到設(shè)備124。作為替代或附加,NCC 118和/或CC 75可經(jīng)由一個或多個未示出的芯片組通信耦合到設(shè)備124。作為替代或附加,盡管在圖中未示出,然而NCC 118和/或其功能和組件中的一些或全部可包含在例如CB 74中(例如,在一個或多個主機處理器12和/或一個或多個未示出的芯片組中)。還作為替換,一個或多個主機處理器12、存儲器21、一個或多個未示出的芯片組和/或其功能和/或組件的一些或全部可包含在例如NCC 118和/或CC75中。在不背離該實施例的情況下,很多其它替代是可能的。設(shè)備124可以是或包括大容量存儲(MS)和/或一個或多個I/O設(shè)備62。在該實施例中,術(shù)語“設(shè)備”和“ I/o設(shè)備”可互換使用,并且可表示至少部分地能夠接收、處理和/或發(fā)射數(shù)據(jù)和/或一個或多個命令的電路。例如,在該實施例中,一個或多個I/o設(shè)備62可至少部分地包括一個或多個媒體、音頻、視頻、安全、顯示和/或成像設(shè)備。而且在該實施例中,“存儲”、“存儲設(shè)備”、“大容量存儲”和“大容量存儲設(shè)備”可互換使用以表示可分別向其存儲數(shù)據(jù)和/或從其檢索數(shù)據(jù)的一個或多個裝置。在該實施例中,大容量存儲60可包括能夠進行非易失性數(shù)據(jù)存儲的存儲。例如,在該實施例中,大容量存儲60可包括但不限于一個或多個非易失性磁、光和/或半導(dǎo)體存儲設(shè)備。盡管在圖中未示出,節(jié)點20可包括節(jié)點10的相應(yīng)組件和/或功能的全部或部分。如本文中使用的,“電路”可包括例如單個或任意組合形式的模擬電路、數(shù)字電路、硬連線電路、可編程電路、協(xié)處理器電路、狀態(tài)機電路和/或可包括程序指令的存儲器,該程序指令可由可編程電路執(zhí)行。而且在本實施例中,處理器、處理器核、核及控制器各自可包括能夠至少部分地執(zhí)行一種或多種算法和/或邏輯操作的相應(yīng)電路,諸如一個或多個相應(yīng)的中央處理單元。而且在該實施例中,芯片組可包括能夠至少部分地通信耦合一個或多個主機處理器、存儲、大容量存儲、一個或多個節(jié)點和/或存儲器的電路。盡管在圖中未示出,但節(jié)點10可包括圖形用戶界面系統(tǒng)(例如可至少部分地包括一個或多個設(shè)備124和/或62或至少部分地包含于其中)。未示出的圖形用戶界面系統(tǒng)可包括例如相應(yīng)的鍵盤、指示設(shè)備和顯示系統(tǒng),其可準(zhǔn)許人類用戶將命令輸入到節(jié)點10、節(jié)點20和/或系統(tǒng)100并監(jiān)視節(jié)點10、節(jié)點20和/或系統(tǒng)100的操作。存儲器21可包括以下類型的存儲器中的一種或多種半導(dǎo)體固件存儲器、可編程存儲器、非易失性存儲器、只讀存儲器、電可編程存儲器、隨機存取存儲器、閃存、磁盤存儲器、光盤存儲器和/或其它或以后開發(fā)的計算機可讀和/或可寫存儲器。一個或多個機器可讀程序指令可存儲在存儲器21和/或NCC118。在節(jié)點10的操作中,這些指令可由一個或多個主機處理器12和/或NCC118訪問和執(zhí)行。當(dāng)由一個或多個主機處理器12執(zhí)行時,該一個或多個指令可導(dǎo)致操作系統(tǒng)環(huán)境(OSE) 30至少部分地由一個或多個主機處理器12執(zhí)行,并且至少部分地駐留在存儲器21中。而且當(dāng)由一個或多個主機處理器12和/或NCC118執(zhí)行時,該一個或多個指令可導(dǎo)致一個或多個主機處理器12、NCC 118、OES 30和/或其一個或多個組件執(zhí)行本文中描述為由系統(tǒng)100的這些組件執(zhí)行的操作。
在該實施例中,操作系統(tǒng)環(huán)境可以是或包括一個或多個操作系統(tǒng)、一個或多個通信協(xié)議棧、一個或多個應(yīng)用、一個或多個接口、一個或多個程序、一個或多個相關(guān)聯(lián)的進程和/或其一個或多個部分中的一個或多個部分。例如,在該實施例中,OSE 30可包括例如操作系統(tǒng)32、一個或多個應(yīng)用42和/或通信協(xié)議棧31。在該實施例中,棧31、一個或多個應(yīng)用42和/或操作系統(tǒng)32可至少部分地包括相互不同的進程。作為替換,而不背離該實施例,操作系統(tǒng)32可包括一個或多個應(yīng)用42和/或棧31或者反之亦然。在該實施例中,實體的一部分可包括實體的全部或部分。而且在該實施例中,進程、程序、驅(qū)動器、操作系統(tǒng)和應(yīng)用可互換地使用,且可包括一個或多個程序指令和/或至少部分地由一個或多個程序指令的執(zhí)行而導(dǎo)致。在該實施例中,通信協(xié)議??砂▍f(xié)議處理中至少部分地涉及的一個或多個進程。在該實施例中,協(xié)議處理可至少部分地涉及接收、發(fā)射、存儲、轉(zhuǎn)換、格式變換和/或修改至少一個分組的至少一部分。而且在該實施例中,分組可包括一個或多個碼元和/或值。NCC 118可根據(jù)一種或多種通信協(xié)議經(jīng)由一個或多個網(wǎng)絡(luò)50與一個或多個節(jié)點20交換數(shù)據(jù)和/或命令。例如,在該實施例中,該一種或多種協(xié)議可與例如以太網(wǎng)協(xié)議、傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)協(xié)議、用戶數(shù)據(jù)報協(xié)議(UDP)和/或?qū)崟r協(xié)議/實時傳輸控制協(xié)議(RTP/RTCP)兼容??稍谙到y(tǒng)100中使用的以太網(wǎng)協(xié)議可服從2000年10月20日出版的電氣與電子工程師協(xié)會(IEEE)標(biāo)準(zhǔn)802. 3,2000版本中描述的協(xié)議或與之兼容??稍谙到y(tǒng)100中使用的TCP/IP協(xié)議可服從1981年9月出版的因特網(wǎng)工程任務(wù)組(IETF)請求評議(RFC)791和793中描述的協(xié)議或與之兼容??稍谙到y(tǒng)100中使用的UDP協(xié)議可服從1980年8月28日出版的IETF RFC 768中描述的協(xié)議或與之兼容??稍谙到y(tǒng)100中使用的RTP/RTCP協(xié)議可服從2003年7月出版的IETF RFC 3550中和/或2009年4月出版的IETF RFC 5506中描述的一種或多種協(xié)議或與之兼容。盡管具體參考TCP而對系統(tǒng)100進行以下描述,然而很多不同、附加和/或其它協(xié)議(包括例如以上所述的那些協(xié)議)可用于這種數(shù)據(jù)和/或命令交換,而不背離該實施例(例如,上述和/或其它協(xié)議的較早和/或較晚開發(fā)的版本)。
現(xiàn)在特別針對圖I和5進行具體參考。圖5示出可在系統(tǒng)100中執(zhí)行的操作600。在系統(tǒng)100的操作中,NCC 118和節(jié)點20可經(jīng)由一個或多個網(wǎng)絡(luò)50在它們之間建立一個或多個會話51。一個或多個分組90可經(jīng)由一個或多個會話51和/或一個或多個網(wǎng)絡(luò)50從節(jié)點20發(fā)送到NCC 118。如操作602所示,NCC 118可經(jīng)由一個或多個會話51從一個或多個網(wǎng)絡(luò)50至少部分地接收一個或多個分組(P)90。在該實施例中,會話可包括至少兩個實體之間數(shù)據(jù)和/命令的交換。一個或多個分組90可包括一個或多個頭部(H)52和一個或多個有效載荷(PL)55。在該實施例中,頭部和有效載荷各自分別包括分組的一個或多個相應(yīng)部分。例如,一個或多個頭部52可以分別是或包括一個或多個TCP頭部,且一個或多個有效載荷55可以分別是或包括一個或多個TCP有效載荷。出于說明性示例的目的,在下文中具體參考涉及由NCC 188對一個或多個TCP分組的一個或多個部分(例如,序號、大小信息、校驗和和/或有效載荷)的至少部分修改的操作。然而,應(yīng)意識到除這些修改之外,NCC 118還可對這些TCP分組中包含和/或與這些TCP 分組相關(guān)聯(lián)的一個或多個其它分組(例如IP分組)的相應(yīng)和/或相關(guān)部分進行相應(yīng)和/或相關(guān)修改。在該實施例中,一個或多個分組90可至少部分地與一個或多個應(yīng)用42和/或一個或多個設(shè)備124相關(guān)聯(lián)。例如,一個或多個有效載荷55的一個或多個部分(PT) 56可以是或包括與一個或多個應(yīng)用42和/或一個或多個設(shè)備124相關(guān)聯(lián)的數(shù)據(jù)、去往一個或多個應(yīng)用42和/或一個或多個設(shè)備124的數(shù)據(jù)、預(yù)期將至少部分地由一個或多個應(yīng)用42和/或一個或多個設(shè)備124接收和/或處理的數(shù)據(jù)。而且,例如,一個或多個頭部52的一個或多個部分(PT)54可以是或包括至少部分地標(biāo)識一個或多個會話51、一個或多個應(yīng)用42和/或一個或多個設(shè)備124的數(shù)據(jù)。例如,在至少部分地接收一個或多個分組90之后,NCC 118可至少部分地檢查一個或多個頭部52的一個或多個部分54。至少部分地基于該檢查,NCC118可至少部分地確定一個或多個分組90是否至少部分地與一組404 —個或多個預(yù)定會話(圖示為406Α…406Ν)中包含的一個或多個特定會話(例如,在圖3中圖示為一個或多個會話(S) 406Α)相關(guān)聯(lián)。該確定可至少部分地基于諸如插槽標(biāo)識、源和/或目的地端口、IP地址和/或一個或多個其它參數(shù)(例如,由應(yīng)用確定的)之類的參數(shù)。至少部分地基于一個或多個分組90是否至少部分地與一個或多個特定會話406Α相關(guān)聯(lián),NCC 118可至少部分地將一個或多個有效載荷55的一個或多個部分56發(fā)送到一個或多個預(yù)期的目的地設(shè)備124,如圖3中的操作604所示。例如,一個或多個會話51可以是或包括一個或多個會話406A,NCC 118可如此確定,并且作為操作604的一部分,NCC 118可至少部分地將一個或多個部分56發(fā)送到一個或多個設(shè)備124。作為操作604的一部分,NCC 118以避免棧31卷入處理一個或多個部分56的方式(以下描述)至少部分地將一個或多個部分56發(fā)送到一個或多個設(shè)備124。相反,NCC 118可至少部分地基于其至少部分地對一個或多個頭部52的一個或多個部分54的檢查來確定一個或多個分組90至少部分地與另一組414 一個或多個其它會話(圖示為412A. . . 412N)中包含的一個或多個其它會話(例如,在圖3中圖示為一個或多個會話412A)相關(guān)聯(lián)。例如,一個或多個會話51可以是或包含一個或多個會話412A。在該實施例中,組414和組404可彼此相互脫離。例如,組414可不具有與組404共用的任何元素。如果NCC 118至少部分地確定一個或多個分組90與一個或多個這種會話412A相關(guān)聯(lián),則NCCl 18可將一個或多個分組90 (包括例如一個或多個頭部52和一個或多個有效載荷55)發(fā)送到棧31。之后,棧31可處理一個或多個分組90。至少部分地出于例如文件下載、媒體(例如,音頻、視頻和/或成像)流/傳送和/或從節(jié)點20至節(jié)點10的IP語音傳輸?shù)哪康?,一個或多個會話406A. . . 406N可以是一個或多個相對持久的會話。一個或多個應(yīng)用42和/或一個或多個設(shè)備124可至少部分地與一個或多個這種目的相關(guān)聯(lián)、卷入在其中和/或促進一個或多個這種目的。然而,該一個或多個會話412A. . . 412N可以不是一個或多個這種相對持久的會話。如上所述,如果NCC 118至少部分地確定一個或多個分組90至少部分地與一個或多個會話406A相關(guān)聯(lián),則作為操作604的一部分,NCC 118可按避免棧31卷入處理一個或多個部分56的方式至少部分地將一個或多個部分56發(fā)送至一個或多個設(shè)備124。NCC 118可至少部分地通過將一個或多個部分56至少部分地存儲在至少部分地與一個或多個設(shè)備124相關(guān)聯(lián)和/或包含于其中的存儲器501中的一個或多個位置504 (參見圖4)中來完成 該操作,該一個或多個設(shè)備124可至少部分地與一個或多個會話406A和/或一個或多個應(yīng)用42相關(guān)聯(lián)。這可至少部分地經(jīng)由從NCC 118至一個或多個位置504的一個或多個部分56的一個或多個直接存儲器訪問(DMA)傳送502A…502N來實施。在該實施例中,一個或多個應(yīng)用42可以預(yù)先至少部分地指定一個或多個應(yīng)用42和/或一個或多個會話406A將要至少部分地與之相關(guān)聯(lián)的一個或多個設(shè)備124、存儲60和/或一個或多個設(shè)備62。NCC118可將此實施,使得一個或多個部分56均不被傳送到棧31。NCCl 18可至少部分地將一個或多個通知506發(fā)送到一個或多個應(yīng)用42以至少部分地向一個或多個應(yīng)用42通知一個或多個位置504。至少部分地基于該一個或多個通知506, —個或多個應(yīng)用402可至少部分地訪問、處理和/或利用至少部分地存儲在一個或多個位置504中的一個或多個部分56。參考圖2,代替向一個或多個應(yīng)用42發(fā)送一個或多個部分56和/或一個或多個有效載荷55,NCC 118可經(jīng)由棧31至少部分地將一個或多個有效載荷250發(fā)送到一個或多個應(yīng)用42。在該實施例中,一個或多個有效載荷250可至少部分地與一個或多個有效載荷55和/或一個或多個部分56不同。例如,一個或多個有效載荷250可包括一個或多個虛設(shè)字節(jié),且可具有預(yù)定的尺寸,該尺寸小于一個或多個部分56和/或一個或多個有效載荷55的尺寸。這可被完成以便防止棧31由于與一個或多個頭部相關(guān)聯(lián)的一個或多個有效載荷沒有被發(fā)送到棧31而發(fā)信號通知錯誤條件。然而,如果棧31不實現(xiàn)一個或多個可靠的協(xié)議(例如,TCP)卻相反實現(xiàn)不執(zhí)行這種數(shù)據(jù)完整性檢查的不可靠協(xié)議(例如,UDP),則NCC 118可不向棧31發(fā)送這種經(jīng)修改的有效載荷。在接收一個或多個有效載荷250之后,一個或多個應(yīng)用42可至少部分地忽略一個或多個有效載荷250。例如,在接收一個或多個有效載荷250之后,一個或多個應(yīng)用42可簡單地放棄(例如不進一步處理并準(zhǔn)許在存儲器210中覆寫)一個或多個有效載荷250。同時,至少部分地在執(zhí)行操作604和/或向棧31發(fā)送一個或多個有效載荷250之后或之前,NCC 118可至少部分地向棧31發(fā)送一個或多個頭部52的一個或多個部分54(參見圖5中的操作606)。在向棧31至少部分地發(fā)送一個或多個頭部52的一個或多個部分54之前,NCC 118可至少部分地修改TCP序號(SQN)252、TCP尺寸信息(SI)254和/或TCP檢驗和(CKSM) 256,它們可至少部分地包含在一個或多個部分54中。當(dāng)至少部分地由NCC118向棧31發(fā)送時,一個或多個部分54可至少部分地包括由此修改的序號252、尺寸信息254和/或校驗和256。例如,序號252可至少部分地由NCC 118修改,以反映可被發(fā)送到棧31的一個或多個有效載荷250的尺寸(例如,代替與由NCC 118從一個或多個網(wǎng)絡(luò)50接收的一個或多個分組90的一個或多個有效載荷55的尺寸相一致)以及屬于先前由NCC 118發(fā)送到棧31的一個或多個部分406A的最近頭部的序號。NCC 118可存儲和/或維持序號轉(zhuǎn)換(SNT)260,該序號轉(zhuǎn)換(SNT)260可至少部分地將NCC 118經(jīng)由一個或多個相應(yīng)會話406A…406N接收的頭部的序號映射和/或關(guān)聯(lián)到NCC 118向棧31發(fā)送的經(jīng)修改的頭部的相應(yīng)經(jīng)修改的序號。因此,NCC 118可至少部分地基于SNT 260和/或一個或多個有效載荷250的尺寸修改序號252。NCC 118可至少部分地基于經(jīng)修改序號252和/或一個或多個有效載荷250的尺 寸和/或為了反映經(jīng)修改序號252和/或一個或多個有效載荷250的尺寸,而至少部分地修改尺寸信息254。NCC 118可至少部分地基于經(jīng)修改序號252、經(jīng)修改的尺寸信息254和/或一個或多個有效載荷250的尺寸和/或為了反映經(jīng)修改序號252、經(jīng)修改的尺寸信息254和/或一個或多個有效載荷250的尺寸,而至少部分地修改校驗和256。棧31可重新計算它從NCC 118接收的一個或多個頭部52的一個或多個部分54的校驗和。棧31可將重新計算的校驗和與來自棧31從NCC 118接收的一個或多個部分54的經(jīng)修改的校驗和進行比較。棧31還可將經(jīng)修改的序號和經(jīng)修改的尺寸信息分別與預(yù)期的序號和預(yù)期的尺寸進行比較??梢罁?jù)TCP由棧31至少部分地基于棧31從NCC 118接收的一個或多個部分54和一個或多個有效載荷250以及一個或多個會話406A的先前參數(shù)而計算預(yù)期的序號和預(yù)期的尺寸。如果作為這些比較的結(jié)果棧31未檢測到錯誤,則棧31可至少部分地基于其從NCC118接收的一個或多個部分54而至少部分地生成向節(jié)點20的TCP確認(rèn)(ACK) 202,該確認(rèn)指示節(jié)點10已經(jīng)無差錯地接收一個或多個分組90。棧31可至少部分地向NCC 118發(fā)送確認(rèn) 202。NCC 118可確定確認(rèn)202是否屬于組404中的一個或多個會話(例如,一個或多個會話406A)和/或與組404中的一個或多個會話(例如,一個或多個會話406A)相關(guān)聯(lián),或者相反地,與組414中的一個或多個會話相關(guān)聯(lián)。如果所接收的確認(rèn)不與組404中的一個或多個會話相關(guān)聯(lián),則NCC 118可經(jīng)由一個或多個網(wǎng)絡(luò)50向節(jié)點20發(fā)送確認(rèn)。相反,如果確認(rèn)202與組404中的一個或多個會話406A相關(guān)聯(lián),則NCC 118可按以下方式處理確認(rèn)202。當(dāng)由NCC118從棧31接收時,確認(rèn)202可包括預(yù)期的TCP序號204,該預(yù)期的TCP序號204可至少部分地基于棧31先前從NCCl 18接收的一個或多個部分54和一個或多個有效載荷250以及一個或多個會話406A的先前參數(shù)和/或反映棧31先前從NCC 118接收的一個或多個部分54和一個或多個有效載荷250以及一個或多個會話406A的先前參數(shù)。而且,當(dāng)由NCC 118從棧31接收時,確認(rèn)202可包括校驗和206,該校驗和可至少部分地基于序號204和/或為了反映序號204而計算出。至少部分地響應(yīng)于來自棧31的確認(rèn)202,NCC 118可至少部分地修改確認(rèn)202中的序號204和校驗和206。NCC 118可經(jīng)由一個或多個網(wǎng)絡(luò)50向節(jié)點20至少部分地發(fā)送由此修改的確認(rèn)202。例如,NCC 118可至少部分地基于利用SNT 260將從棧31接收的序號204反向轉(zhuǎn)換至預(yù)期由節(jié)點20接收的相應(yīng)序號,而至少部分地修改序號204。NCC 118可將確認(rèn)202中的序號204改變成由反向轉(zhuǎn)換得到的該相應(yīng)序號或包括該相應(yīng)序號。NCC118于是可至少部分地基于對序號204的這種改變和/或為了反映這種改變而重新計算和/或修改該校驗和206。NCC 118于是可至少部分地將由此修改的確認(rèn)202發(fā)送到節(jié)點20。以上假設(shè)棧31執(zhí)行校驗和計算(例如涉及最初生成校驗和206)。然而,如果這種計算被卸載到NCC 118,則NCC 118可首先生成這種校驗和,而不是最初卷入棧31。返回圖3,如果NCC 118從節(jié)點20至少部分地接收一個或多個其它分組410 (例如,除一個或多個分組90以外),則NCC 118可檢查并確定(以先前描述的方式)至少部分地與一個或多個其它分組410相關(guān)聯(lián)的一個或多個會話。在該示例中,一個或多個分組410可與一個或多個會話(例如,組414中的一個或多個會話412A)相關(guān)聯(lián),該一個或多個會話可至少部分地不同于一個或多個會話406A。一個或多個分組410可包括一個或多個頭部420和一個或多個有效載荷422。在該示例中,由于一個或多個分組410與組414中的一個或多個會話412A相關(guān)聯(lián),而不是與組404中的一個或多個會話相關(guān)聯(lián),所以NCC 118可向 棧31發(fā)送一個或多個頭部420及一個或多個有效載荷422以供處理。然而,相反,如果一個或多個分組410已經(jīng)與組404中的一個或多個會話相關(guān)聯(lián),則NCC 118將以先前結(jié)合一個或多個分組90描述的方式分別對一個或多個有效載荷422和一個或多個頭部420執(zhí)行操作604和606 (參見圖5)。另外,NCC 118可至少部分地從節(jié)點20接收一個或多個另外的分組450。NCC 118可檢查和確定(以先前描述的方式)至少部分地與一個或多個其它分組450相關(guān)聯(lián)的一個或多個會話。在該示例中,如果一個或多個分組450與組404中的一個或多個會話(例如,一個或多個會話406A)相關(guān)聯(lián),則NCC 118可確定一個或多個分組450是否是一個或多個無序分組454和/或復(fù)制分組452。如果NCC 118確定一個或多個分組450是一個或多個無序分組454和/或復(fù)制分組452,則NCC 118可放棄一個或多個分組450而不在一個或多個分組450上執(zhí)行操作604和/或606。有利地,這可準(zhǔn)許基于和/或響應(yīng)于棧31生成的一個或多個相關(guān)確認(rèn)(并且如NCC 118以上述方式修改地),適當(dāng)重構(gòu)可包括一個或多個復(fù)制和/或無序分組的一個或多個TCP分段,而不涉及由NCC 118臨時存儲這種分組。一個或多個會話51可實現(xiàn)一個或多個安全通信協(xié)議。盡管在圖中未示出,但NCC118可包括加密/解密電路,該加密/解密電路可準(zhǔn)許NCC 118實施上述操作,既使一個或多個分組90、410和/或450依照一種或多種這樣的安全協(xié)議而被加密。作為替代或附加,取決于所實現(xiàn)的一種或多種安全協(xié)議,NCC118能夠?qū)嵤┥鲜霾僮鞫话ㄟ@樣的加密/解密電路。例如,如果一個或多個頭部52未被加密,但一個或多個有效載荷被加密,則NCC118能夠?qū)嵤┥鲜霾僮鞫话ㄟ@樣的加密/解密電路。在該實施例中,“加密”可包括一個或多個操作,該一個或多個操作至少部分地包含在從明文生成密文中、有助于和/或?qū)е聫拿魑纳擅芪?。而且在該實施例中,“解密”可包括一個或多個操作,該一個或多個操作至少部分地包含在從密文生成明文中、有助于和/或?qū)е聫拿芪纳擅魑?。另外,在該實施例中,“明文”可包括至少部分地解密?或已經(jīng)進行和/或目前正在進行加密和/或解密的數(shù)據(jù)。因此,實施例可包括包含在第一節(jié)點中的網(wǎng)絡(luò)控制器電路。該節(jié)點可通信耦合于網(wǎng)絡(luò)并且可包括主機處理器以執(zhí)行操作系統(tǒng)環(huán)境。操作系統(tǒng)環(huán)境可至少部分地包括通信協(xié)議棧和應(yīng)用。電路可至少部分地從網(wǎng)絡(luò)接收分組。分組可至少部分地包括頭部和有效載荷。有效載荷的至少一部分可與應(yīng)用相關(guān)聯(lián)。電路可將頭部的至少一部分發(fā)送到棧。電路可按避免棧卷入的方式將有效載荷的至少一部分發(fā)送到目的地設(shè)備。目的地設(shè)備可至少部分地由應(yīng)用指定。因此,在該實施例中,對于一個或多個預(yù)定/特定的會話406A,NCC 118可將一個或多個有效載荷55的一個或多個部分56發(fā)出和/或直接存儲(例如,經(jīng)由一個或多個DMA事務(wù))在與一個或多個設(shè)備124相關(guān)聯(lián)的一個或多個位置504中,而不卷入操作系統(tǒng)環(huán)境30、棧31和/或主機處理器12。有利地,在該實施例中,這可減少從存儲器和向存儲器傳送和復(fù)制分組數(shù)據(jù)所涉及的操作的數(shù)量以及所消耗的主機存儲器的量。而且,有利地,在該實施例中,這可減少主機處理器處理開銷的量和所消耗的處理帶寬以及主機處理器功耗和發(fā)熱的量。另外,有利地,這可導(dǎo)致改進的分組處理吞吐量。而且,在該實施例中,棧31可以是常規(guī)通信協(xié)議棧,且可用于一個或多個其它會 話412的常規(guī)處理,并且從棧31的角度看,NCC 118與棧31之間的交互看似以常規(guī)方式實施。有利地,這可降低該實施例的成本,同時維持棧的常規(guī)協(xié)議處理、技術(shù)生態(tài)系和操作系
統(tǒng)兼容性。
權(quán)利要求
1.一種設(shè)備,包括 包含在第一節(jié)點中的網(wǎng)絡(luò)控制器電路,所述第一節(jié)點通信耦合于網(wǎng)絡(luò)并且包括主機處理器以執(zhí)行操作系統(tǒng)環(huán)境,所述操作系統(tǒng)環(huán)境至少部分地包括通信協(xié)議棧和應(yīng)用,所述電路至少部分地從網(wǎng)絡(luò)接收分組,所述分組至少部分地包括頭 部和有效載荷,所述電路將所述頭部的至少一部分發(fā)送到所述棧,有效載荷的至少一部分與應(yīng)用相關(guān)聯(lián),所述電路按避免棧卷入的方式將所述有效載荷的至少一部分發(fā)送到目的地設(shè)備,所述目的地設(shè)備至少部分地由應(yīng)用指定。
2.如權(quán)利要求I所述的設(shè)備,其特征在于 所述目的地設(shè)備包括至少部分地包含在第一節(jié)點中的大容量存儲和輸入/輸出設(shè)備中的至少一個; 電路卡至少部分地包括網(wǎng)絡(luò)控制器電路;以及 所述第一節(jié)點包括耦合到電路卡的電路板。
3.如權(quán)利要求I所述的設(shè)備,其特征在于 所述通信協(xié)議棧至少部分地基于所述頭部的至少一部分而至少部分地生成向第二節(jié)點的確認(rèn),所述確認(rèn)指示所述第一節(jié)點已經(jīng)接收所述分組,所述確認(rèn)包括序號; 所述電路至少部分地修改所述確認(rèn)中的序號;以及 所述電路至少部分地經(jīng)由網(wǎng)絡(luò)將所述確認(rèn)發(fā)送到第二節(jié)點。
4.如權(quán)利要求I所述的設(shè)備,其特征在于 所述電路將另一有效載荷發(fā)送到棧,所述另一有效載荷至少部分地不同于所述有效載荷的至少一部分;以及 在將所述頭部的至少一部分發(fā)送到棧之前,所述電路至少部分地修改所述頭部的至少一部分中的序號、尺寸信息和校驗和,所述序號由所述電路至少部分地基于序號轉(zhuǎn)換而至少部分地修改,所述尺寸信息和校驗和至少部分地基于至少部分修改的序號和另一有效載荷而被至少部分地修改。
5.如權(quán)利要求I所述的設(shè)備,其特征在于 所述電路至少部分地確定所述分組是否與特定會話相關(guān)聯(lián),所述特定會話包含在一個或多個預(yù)定會話的組中;以及 至少部分地基于分組是否與特定會話相關(guān)聯(lián),所述電路以避免棧卷入的方式將有效載荷的至少一部分發(fā)送到目的地設(shè)備。
6.如權(quán)利要求5所述的設(shè)備,其特征在于 所述電路還接收與另一會話相關(guān)聯(lián)的另一分組,所述另一會話包含在一個或多個相應(yīng)會話的另一組中,一個或多個預(yù)定會話的所述組和所述另一組彼此相互分離; 所述另一分組包括另一頭部和另一有效載荷;以及 所述電路至少部分地將另一頭部以及至少部分地將另一有效載荷發(fā)送到棧。
7.如權(quán)利要求6所述的設(shè)備,其特征在于 所述電路還接收第三分組,所述第三分組與特定會話相關(guān)聯(lián),所述第三分組是復(fù)制分組和無序分組中的至少一個;以及 在確定第三分組是復(fù)制分組和無序分組中的至少一個之后,所述電路放棄第三分組。
8.如權(quán)利要求I所述的設(shè)備,其特征在于所述電路至少部分地經(jīng)由一個或多個直接存儲器轉(zhuǎn)移將所述有效載荷的至少一部分存儲在與所述目的地設(shè)備相關(guān)聯(lián)的一個或多個位置; 所述應(yīng)用至少部分地通知所述一個或多個位置; 所述電路將另一有效載荷發(fā)送到棧,所述另一有效載荷至少部分地不同于所述有效載荷的至少一部分;以及 所述應(yīng)用至少部分地忽略所述另一有效載荷。
9.一種方法,包括 由網(wǎng)絡(luò)控制器電路至少部分地從網(wǎng)絡(luò)接收分組,所述網(wǎng)絡(luò)控制器電路包含在第一節(jié)點中,所述第一節(jié)點通信耦合于網(wǎng)絡(luò)并且包括主機處理器以執(zhí)行操作系統(tǒng)環(huán)境,所述操作系統(tǒng)環(huán)境至少部分地包括通信協(xié)議棧和應(yīng)用,所述分組至少部分地包括頭部和有效載荷; 將所述頭部的至少一部分從所述電路發(fā)送到所述棧,所述有效載荷的至少一部分與應(yīng)用相關(guān)聯(lián);以及 按避免棧卷入的方式將所述有效載荷的至少一部分從所述電路發(fā)送到目的地設(shè)備,所述目的地設(shè)備至少部分地由應(yīng)用指定。
10.如權(quán)利要求9所述的方法,其特征在于 所述目的地設(shè)備包括至少部分地包含在第一節(jié)點中的大容量存儲和輸入/輸出設(shè)備中的至少一個; 電路卡至少部分地包括網(wǎng)絡(luò)控制器電路;以及 所述第一節(jié)點包括耦合到電路卡的電路板。
11.如權(quán)利要求9所述的方法,其特征在于 所述通信協(xié)議棧至少部分地基于所述頭部的至少一部分而至少部分地生成向第二節(jié)點的確認(rèn),所述確認(rèn)指示所述第一節(jié)點已經(jīng)接收所述分組,所述確認(rèn)包括序號; 所述電路至少部分地修改所述確認(rèn)中的序號;以及 所述電路至少部分地經(jīng)由網(wǎng)絡(luò)將所述確認(rèn)發(fā)送到第二節(jié)點。
12.如權(quán)利要求9所述的方法,其特征在于 所述電路將另一有效載荷發(fā)送到棧,所述另一有效載荷至少部分地不同于所述有效載荷的至少一部分;以及 在將所述頭部的至少一部分發(fā)送到棧之前,所述電路至少部分地修改所述頭部的至少一部分中的序號、尺寸信息和校驗和,所述序號由所述電路至少部分地基于序號轉(zhuǎn)換而至少部分地修改,所述尺寸信息和校驗和至少部分地基于至少部分修改的序號和另一有效載荷而被至少部分地修改。
13.如權(quán)利要求9所述的方法,其特征在于 所述電路至少部分地確定所述分組是否與特定會話相關(guān)聯(lián),所述特定會話包含在一個或多個預(yù)定會話的組中;以及 至少部分地基于分組是否與特定會話相關(guān)聯(lián),所述電路以避免棧卷入的方式將有效載荷的至少一部分發(fā)送到目的地設(shè)備。
14.如權(quán)利要求13所述的方法,其特征在于 所述電路還接收與另一會話相關(guān)聯(lián)的另一分組,所述另一會話包含在一個或多個相應(yīng)會話的另一組中,一個或多個預(yù)定會話的所述組和所述另一組彼此相互分離;所述另一分組包括另一頭部和另一有效載荷;以及 所述電路至少部分地將另一頭部以及至少部分地將另一有效載荷發(fā)送到棧。
15.如權(quán)利要求14所述的方法,其特征在于 所述電路還接收第三分組,所述第三分組與特定會話相關(guān)聯(lián),所述第三分組是復(fù)制分組和無序分組中的至少一個;以及 在確定第三分組是復(fù)制分組和無序分組中的至少一個之后,所述電路放棄第三分組。
16.如權(quán)利要求9所述的方法,其特征在于 所述電路至少部分地經(jīng)由一個或多個直接存儲器轉(zhuǎn)移將所述有效載荷的至少一部分存儲在與所述目的地設(shè)備相關(guān)聯(lián)的一個或多個位置; 所述應(yīng)用至少部分地通知所述一個或多個位置; 所述電路將另一有效載荷發(fā)送到棧,所述另一有效載荷至少部分地不同于所述有效載荷的至少一部分;以及 所述應(yīng)用至少部分地忽略所述另一有效載荷。
17.存儲一個或多個指令的計算機可讀存儲器,所述一個或多個指令在被機器執(zhí)行時導(dǎo)致執(zhí)行以下操作 由網(wǎng)絡(luò)控制器電路至少部分地從網(wǎng)絡(luò)接收分組,所述網(wǎng)絡(luò)控制器電路包含在第一節(jié)點中,所述第一節(jié)點通信耦合于網(wǎng)絡(luò)并且包括主機處理器以執(zhí)行操作系統(tǒng)環(huán)境,所述操作系統(tǒng)環(huán)境至少部分地包括通信協(xié)議棧和應(yīng)用,所述分組至少部分地包括頭部和有效載荷; 將所述頭部的至少一部分從所述電路發(fā)送到所述棧,所述有效載荷的至少一部分與應(yīng)用相關(guān)聯(lián);以及 按避免棧卷入的方式將所述有效載荷的至少一部分從所述電路發(fā)送到目的地設(shè)備,所述目的地設(shè)備至少部分地由應(yīng)用指定。
18.如權(quán)利要求17所述的存儲器,其特征在于 所述目的地設(shè)備包括至少部分地包含在第一節(jié)點中的大容量存儲和輸入/輸出設(shè)備中的至少一個; 電路卡至少部分地包括網(wǎng)絡(luò)控制器電路;以及 所述第一節(jié)點包括耦合到電路卡的電路板。
19.如權(quán)利要求17所述的存儲器,其特征在于 所述通信協(xié)議棧至少部分地基于所述頭部的至少一部分而至少部分地生成向第二節(jié)點的確認(rèn),所述確認(rèn)指示所述第一節(jié)點已經(jīng)接收所述分組,所述確認(rèn)包括序號; 所述電路至少部分地修改所述確認(rèn)中的序號;以及 所述電路至少部分地經(jīng)由網(wǎng)絡(luò)將所述確認(rèn)發(fā)送到第二節(jié)點。
20.如權(quán)利要求17所述的存儲器,其特征在于 所述電路將另一有效載荷發(fā)送到棧,所述另一有效載荷至少部分地不同于所述有效載荷的至少一部分;以及 在將所述頭部的至少一部分發(fā)送到棧之前,所述電路至少部分地修改所述頭部的至少一部分中的序號、尺寸信息和校驗和,所述序號由所述電路至少部分地基于序號轉(zhuǎn)換而至少部分地修改,所述尺寸信息和校驗和至少部分地基于至少部分修改的序號和另一有效載荷而被至少部分地修改。
21.如權(quán)利要求17所述的存儲器,其特征在于 所述電路至少部分地確定所述分組是否與特定會話相關(guān)聯(lián),所述特定會話包含在一個或多個預(yù)定會話的組中;以及 至少部分地基于分組是否與特定會話相關(guān)聯(lián),所述電路以避免棧卷入的方式將有效載荷的至少一部分發(fā)送到目的地設(shè)備。
22.如權(quán)利要求21所述的存儲器,其特征在于 所述電路還接收與另一會話相關(guān)聯(lián)的另一分組,所述另一會話包含在一個或多個相應(yīng)會話的另一組中,一個或多個預(yù)定會話的所述組和所述另一組彼此相互分離; 所述另一組分組包括另一頭部和另一有效載荷;以及 所述電路至少部分地將另一頭部以及至少部分地將另一有效載荷發(fā)送到棧。
23.如權(quán)利要求22所述的存儲器,其特征在于 所述電路還接收第三分組,所述第三分組與特定會話相關(guān)聯(lián),所述第三分組是復(fù)制分組和無序分組中的至少一個;以及 在確定第三分組是復(fù)制分組和無序分組中的至少一個之后,所述電路放棄第三分組。
24.如權(quán)利要求17所述的存儲器,其特征在于 所述電路至少部分地經(jīng)由一個或多個直接存儲器轉(zhuǎn)移將所述有效載荷的至少一部分存儲在與所述目的地設(shè)備相關(guān)聯(lián)的一個或多個位置; 所述應(yīng)用至少部分地通知所述一個或多個位置; 所述電路將另一有效載荷發(fā)送到棧,所述另一有效載荷至少部分地不同于所述有效載荷的至少一部分;以及 所述應(yīng)用至少部分地忽略所述另一有效載荷。
全文摘要
實施例可包括包含在第一節(jié)點中的網(wǎng)絡(luò)控制器。該節(jié)點可通信耦合于網(wǎng)絡(luò)并且可包括主機處理器以執(zhí)行操作系統(tǒng)環(huán)境。操作系統(tǒng)環(huán)境可至少部分地包括通信協(xié)議棧和應(yīng)用。電路可至少部分地從網(wǎng)絡(luò)接收分組。分組可至少部分地包括頭部和有效載荷。有效載荷的至少一部分可與應(yīng)用相關(guān)聯(lián)。電路可將頭部的至少一部分發(fā)送到棧。電路可按避免棧卷入的方式將有效載荷的至少一部分發(fā)送到目的地設(shè)備。目的地設(shè)備可至少部分地由應(yīng)用指定。很多替換、變型和修改是可能的。
文檔編號H04L29/06GK102792638SQ201180012920
公開日2012年11月21日 申請日期2011年3月10日 優(yōu)先權(quán)日2010年3月10日
發(fā)明者C·麥西奧科, L·克里西那莫西, M·J·艾斯皮格, R·S·亞瓦特卡, R·王, T-Y·泰 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1