欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于管理通過網(wǎng)絡(luò)的數(shù)據(jù)傳輸?shù)姆椒?,系統(tǒng)和程序的制作方法

文檔序號(hào):7594439閱讀:135來源:國知局
專利名稱:用于管理通過網(wǎng)絡(luò)的數(shù)據(jù)傳輸?shù)姆椒?,系統(tǒng)和程序的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及用于管理通過網(wǎng)絡(luò)的數(shù)據(jù)傳輸?shù)姆椒?、系統(tǒng)和程序。
背景技術(shù)
在網(wǎng)絡(luò)環(huán)境中,諸如以太網(wǎng)控制器、光纖通道控制器等的主計(jì)算機(jī)上的網(wǎng)絡(luò)適配器將接收輸入/輸出(I/O)請求或?qū)闹鳈C(jī)中發(fā)出的I/O請求的響應(yīng)。通常,主計(jì)算機(jī)操作系統(tǒng)包括設(shè)備驅(qū)動(dòng)器來與網(wǎng)絡(luò)適配器硬件通信,以管理在網(wǎng)絡(luò)上傳輸?shù)腎/O請求。主計(jì)算機(jī)還包括傳輸協(xié)議驅(qū)動(dòng)器,它把將要在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)打包成分組,每個(gè)分組包含目的地址以及將要傳輸?shù)臄?shù)據(jù)的一部分。在網(wǎng)絡(luò)適配器上接收到的數(shù)據(jù)分組通常存儲(chǔ)在主機(jī)存儲(chǔ)器中可用的已分配的分組緩沖器中。傳輸協(xié)議驅(qū)動(dòng)器處理在分組緩沖器中存儲(chǔ)的由網(wǎng)絡(luò)適配器接收的分組,并訪問嵌入在分組中的任何I/O命令或數(shù)據(jù)。
例如,傳輸協(xié)議驅(qū)動(dòng)器可以執(zhí)行傳輸控制協(xié)議(TransmissionControl Protocol)(TCP)和因特網(wǎng)協(xié)議(Internet Protocol)(IP)來編碼和尋址用于傳輸?shù)臄?shù)據(jù),并解碼和訪問在網(wǎng)絡(luò)適配器上接收到的TCP/IP分組中的有效負(fù)載數(shù)據(jù)。IP規(guī)定分組(也稱為數(shù)據(jù)報(bào))的格式以及尋址方案。TCP是在目的地和信源之間建立連接的更高層協(xié)議。還一更高層協(xié)議(即,遠(yuǎn)程直接存儲(chǔ)器存取Remote Direct MemoryAccess(RDMA))建立更高層連接,并且除了其它的操作之外,還允許在目的地上在規(guī)定的存儲(chǔ)單元上數(shù)據(jù)的直接布局。
設(shè)備驅(qū)動(dòng)器可使用大量的主機(jī)處理器資源來處理至網(wǎng)絡(luò)適配器的網(wǎng)絡(luò)傳輸請求。降低主機(jī)處理器上的負(fù)載的一種技術(shù)是使用TCP/IP卸載引擎(Offload Engine)(TOE),其中與設(shè)備驅(qū)動(dòng)器相反,TCP/IP協(xié)議相關(guān)操作在網(wǎng)絡(luò)適配器硬件內(nèi)執(zhí)行,從而使主機(jī)處理器免于必須執(zhí)行一些或全部TCP/IP協(xié)議相關(guān)操作。這些傳輸協(xié)議操作包括利用校驗(yàn)和和其它信息打包TCP/IP分組內(nèi)的數(shù)據(jù),以及拆開在網(wǎng)絡(luò)上接收到的TCP/IP分組以訪問有效負(fù)載或數(shù)據(jù)。
圖1圖示在TCP連接中從信源主機(jī)發(fā)送給目的主機(jī)的TCP/IP分組流10。在如在工業(yè)接受的TCP RFC(注釋請求)中規(guī)定的TCP協(xié)議中,給每個(gè)分組分配唯一的順序號(hào)。當(dāng)將每個(gè)分組成功地發(fā)送給目的主機(jī)時(shí),由目的主機(jī)向信源主機(jī)發(fā)送一個(gè)確認(rèn),利用分組順序號(hào)通知信源主機(jī)成功接收該分組。因此,流10包括已經(jīng)被發(fā)送的并被確認(rèn)為由目的主機(jī)接收的分組的一部分12。流10還包括已經(jīng)被信源主機(jī)發(fā)送的但是尚未被確認(rèn)為由目的主機(jī)接收的分組的一部分14。信源主機(jī)保持TCP未確認(rèn)數(shù)據(jù)指針16,它指向第一未確認(rèn)發(fā)送分組的順序號(hào)。TCP未確認(rèn)數(shù)據(jù)指針16被存儲(chǔ)在協(xié)議控制塊18a、18b、......、18n的字段17a、17b、......、17n(圖2)中,每個(gè)用于啟動(dòng)和維持在信源主機(jī)和一個(gè)或多個(gè)目的主機(jī)之間的多條相關(guān)TCP連接之一。
用于存儲(chǔ)在目的主機(jī)上接收的數(shù)據(jù)分組的分組緩沖器的容量的大小通常是有限的。根據(jù)TCP協(xié)議,目的主機(jī)通過發(fā)送在圖1中標(biāo)記為20在此稱作TCP窗口的數(shù)值來廣告它所具有的可用緩存器空間的大小。因此,信源主機(jī)使用TCP窗口來限制發(fā)送給目的主機(jī)的未完成分組的數(shù)量,即信源主機(jī)尚未接收到確認(rèn)的發(fā)送分組的數(shù)量。用于每個(gè)TCP連接的TCP窗口值存儲(chǔ)在控制相關(guān)TCP連接的協(xié)議控制塊18a、18b、......、18n的字段21a、21b、......、21n中。
例如,如果目的主機(jī)發(fā)送用于特定TCP連接的128KB(千字節(jié))的TCP窗口值,則信源主機(jī)將根據(jù)TCP協(xié)議將它在TCP連接上發(fā)送的數(shù)據(jù)量限制到128KB,直到它從目的主機(jī)接收到已接收到一些或全部數(shù)據(jù)的確認(rèn)。如果目的主機(jī)確認(rèn)它已接收到全部128KB,則信源主機(jī)可以發(fā)送另外的128KB。反之,如果目的主機(jī)確認(rèn)僅接收了96KB,例如,信源主機(jī)將在TCP連接上僅發(fā)送附加的96KB,直到它接收到進(jìn)一步的確認(rèn)。
在相關(guān)協(xié)議控制塊18a、18b、......、18n的字段23a、23b、......、23n內(nèi)存儲(chǔ)的TCP下一數(shù)據(jù)指針22指向?qū)⒁l(fā)送給目的主機(jī)的下一個(gè)分組的順序號(hào)。TCP下一數(shù)據(jù)指針22和TCP窗口20的末尾28之間的數(shù)據(jù)流10的一部分24代表尚未發(fā)送的但是被允許在TCP協(xié)議下發(fā)送而不等待任何附加確認(rèn)的分組,因?yàn)檫@些分組依然在圖1所示的TCP窗口內(nèi)。不允許在TCP協(xié)議下發(fā)送在TCP窗口20的末尾邊界28之外的數(shù)據(jù)流10的一部分26,除非接收到附加的確認(rèn)。
當(dāng)目的主機(jī)將確認(rèn)發(fā)送給信源主機(jī)時(shí),TCP未確認(rèn)數(shù)據(jù)指針16移動(dòng)以指示用于該連接的附加分組的確認(rèn)。TCP窗口20的開始邊界30隨著TCP未確認(rèn)數(shù)據(jù)指針16一起移動(dòng),以便TCP窗口末尾邊界28也移動(dòng),因此可以發(fā)送該連接的附加分組。
圖3圖示通過網(wǎng)絡(luò)在信源主機(jī)的各個(gè)軟件應(yīng)用和一個(gè)或多個(gè)目的主機(jī)的各個(gè)存儲(chǔ)單元之間的多個(gè)RDMA連接50a、50b、......、50n。每個(gè)RDMA連接50a、50b、......、50運(yùn)行在TCP連接上。在RDMA協(xié)議中,如在工業(yè)接受的RDMA RFC(注釋請求)中定義的,每個(gè)RDMA連接50a、50b、......、50n包括隊(duì)列對51a、51b、......、51n,包括利用軟件應(yīng)用創(chuàng)建的隊(duì)列52a、52b、......、52n,所述軟件應(yīng)用預(yù)定發(fā)送存儲(chǔ)在目的主機(jī)的指定存儲(chǔ)單元上的消息。每個(gè)應(yīng)用隊(duì)列52a、52b、......、52n存儲(chǔ)將利用相關(guān)的軟件應(yīng)用發(fā)送的消息。每個(gè)隊(duì)列52a、52b、......、52n的大小可以相當(dāng)大或相對小,這取決于將利用相關(guān)應(yīng)用發(fā)送的消息的數(shù)量。
每個(gè)RDMA連接50a、50b......、50n的每個(gè)隊(duì)列對51a、51b、......、51n還包括與軟件應(yīng)用的相關(guān)應(yīng)用隊(duì)列52a、52b、......52n成對的網(wǎng)絡(luò)接口隊(duì)列60a、60b、......、60n。網(wǎng)絡(luò)接口62包括各種硬件,典型地網(wǎng)絡(luò)接口卡,和各種軟件,包括由主機(jī)執(zhí)行的驅(qū)動(dòng)程序。網(wǎng)絡(luò)接口還可以包括卸載引擎以執(zhí)行協(xié)議操作。
響應(yīng)于來自應(yīng)用的發(fā)送將在RDMA連接50a、50b、......、50n之一的另一端上在指定的目的主機(jī)存儲(chǔ)器地址上存儲(chǔ)的消息的請求,網(wǎng)絡(luò)接口62從空消息的公用庫64中獲取標(biāo)記為“空消息”的消息信用(credit)。庫64的大小(即網(wǎng)絡(luò)接口62能夠處理的消息數(shù)量)通常是網(wǎng)絡(luò)接口62的硬件容量的函數(shù)。如果從該庫64可以獲得空消息,則從請求應(yīng)用的應(yīng)用隊(duì)列52a、52b、......、52n中獲取一個(gè)消息,并將其排列在特定RDMA連接50a、50b、......、50n的隊(duì)列對51a、51b、......、51n的相應(yīng)網(wǎng)絡(luò)接口隊(duì)列60a、60b、......、60n內(nèi)。將在網(wǎng)絡(luò)接口隊(duì)列60a、60b、......、60n中排隊(duì)的消息在網(wǎng)絡(luò)上發(fā)送給確認(rèn)被成功接收并存儲(chǔ)在指定存儲(chǔ)地址上的每個(gè)消息的目的主機(jī)的指定存儲(chǔ)地址。被發(fā)送的但是尚未被確認(rèn)的消息在此稱作“未完成的發(fā)送消息”。一旦一個(gè)消息被確認(rèn)為由目的主機(jī)成功接收和存儲(chǔ),則一個(gè)空消息被恢復(fù)或補(bǔ)充在空消息的庫64中。
根據(jù)RDMA協(xié)議,在所有的網(wǎng)絡(luò)接口隊(duì)列60a、60b、......、60n中排隊(duì)的消息的總數(shù)加上由所有的RDMA連接50a、50b、......、50n發(fā)送的未完成的消息的總數(shù)通常并不允許超過空消息庫64的大小。一旦RDMA連接50a、50b、......、50n之一達(dá)到利用空消息庫64施加的限制,則不可以再排隊(duì)和發(fā)送來自任何連接50a、50b、......、50n的RDMA消息,直到接收到附加確認(rèn)。
盡管如此,在該技術(shù)領(lǐng)域中依然需要改進(jìn)連接的性能。


現(xiàn)在參考附圖,在附圖中相同的標(biāo)號(hào)代表相應(yīng)的部分圖1圖示根據(jù)現(xiàn)有技術(shù)TCP協(xié)議發(fā)送的數(shù)據(jù)流;圖2圖示現(xiàn)有技術(shù)的根據(jù)TCP協(xié)議的協(xié)議控制塊;圖3圖示現(xiàn)有技術(shù)的網(wǎng)絡(luò)接口和RDMA連接的消息隊(duì)列;圖4圖示其中實(shí)現(xiàn)本發(fā)明方面的計(jì)算環(huán)境的一種實(shí)施例;圖5圖示現(xiàn)有技術(shù)分組結(jié)構(gòu);圖6圖示根據(jù)本發(fā)明方面發(fā)送的數(shù)據(jù)流的一種實(shí)施例;圖7圖示根據(jù)本發(fā)明方面的用于管理數(shù)據(jù)傳輸?shù)牟僮鞯囊环N實(shí)施例;圖8圖示根據(jù)本發(fā)明方面的存儲(chǔ)用于管理數(shù)據(jù)傳輸?shù)男畔⒌臄?shù)據(jù)結(jié)構(gòu)的一種實(shí)施例;圖9圖示圖7的操作的一種模式;圖10圖示根據(jù)本發(fā)明方面的用于RDMA連接的網(wǎng)絡(luò)接口和消息隊(duì)列的一種實(shí)施例;圖11圖示根據(jù)本發(fā)明方面的用于管理數(shù)據(jù)傳輸?shù)牟僮鞯牧硪环N實(shí)施例;和圖12圖示可以與所述實(shí)施例一起使用的結(jié)構(gòu)。
具體實(shí)施例方式
在下面的描述中,將參考附圖,這些附圖構(gòu)成說明書的一部分并說明本發(fā)明的若干實(shí)施例。應(yīng)當(dāng)理解在不脫離本發(fā)明的范圍的情況下,也可以使用其它的實(shí)施例,并且可以進(jìn)行結(jié)構(gòu)和操作的改進(jìn)。
圖4圖示其中可以實(shí)現(xiàn)本發(fā)明方面的計(jì)算環(huán)境。計(jì)算機(jī)102包括一個(gè)或多個(gè)中央處理單元(CPU)104(僅圖示了一個(gè))、易失性存儲(chǔ)器106、非易失性存儲(chǔ)裝置108、操作系統(tǒng)110和網(wǎng)絡(luò)適配器112。應(yīng)用程序114進(jìn)一步在存儲(chǔ)器106中執(zhí)行,并能夠向遠(yuǎn)程計(jì)算機(jī)發(fā)送分組和從中接收分組。計(jì)算機(jī)102可以包括在本領(lǐng)域內(nèi)公知的任何計(jì)算設(shè)備,例如主機(jī)、服務(wù)器、個(gè)人計(jì)算機(jī)、工作站、膝上型計(jì)算機(jī)、手持計(jì)算機(jī)、電話機(jī)設(shè)備、網(wǎng)絡(luò)設(shè)備、虛擬化設(shè)備、存儲(chǔ)控制器等??梢允褂帽绢I(lǐng)域內(nèi)公知的任何CPU 104和操作系統(tǒng)110。存儲(chǔ)器106內(nèi)的程序和數(shù)據(jù)可以作為存儲(chǔ)器管理操作的一部分交換到存儲(chǔ)裝置108內(nèi)。
網(wǎng)絡(luò)適配器112包括網(wǎng)絡(luò)協(xié)議層116,用于實(shí)現(xiàn)物理通信層,以便通過網(wǎng)絡(luò)118向遠(yuǎn)程設(shè)備發(fā)送網(wǎng)絡(luò)分組和從其接收網(wǎng)絡(luò)分組。網(wǎng)絡(luò)118可以包括局域網(wǎng)(LAN)、因特網(wǎng)、廣域網(wǎng)(WAN)、存儲(chǔ)區(qū)域網(wǎng)(SAN)等等。這些實(shí)施例可以被配置為在諸如無線LAN、Bluetooth(藍(lán)牙)等的無線網(wǎng)絡(luò)或連接上發(fā)送數(shù)據(jù)。在某些實(shí)施例中,網(wǎng)絡(luò)適配器112和網(wǎng)絡(luò)協(xié)議層116可以執(zhí)行以太網(wǎng)協(xié)議、令牌環(huán)協(xié)議、光纖通道協(xié)議、Infiniband(無限頻帶)、串行先進(jìn)技術(shù)附件(SATA)、并行SCSI、串行連接SCSI電纜等等或者本領(lǐng)域中公知的任何其它網(wǎng)絡(luò)通信協(xié)議。
設(shè)備驅(qū)動(dòng)程序120在存儲(chǔ)器106內(nèi)執(zhí)行,并包括網(wǎng)絡(luò)適配器112特定命令,以便與網(wǎng)絡(luò)適配器112通信,并在操作系統(tǒng)110和網(wǎng)絡(luò)適配器112之間接口。在某些實(shí)施方式中,網(wǎng)絡(luò)適配器112包括傳輸協(xié)議層121以及網(wǎng)絡(luò)協(xié)議層116。例如,網(wǎng)絡(luò)適配器112可以執(zhí)行TCP/IP卸載引擎(TOE),其中與設(shè)備驅(qū)動(dòng)程序120不同,在網(wǎng)絡(luò)適配器112硬件內(nèi)實(shí)現(xiàn)的傳輸協(xié)議層121的卸載引擎內(nèi)執(zhí)行傳輸層操作。
網(wǎng)絡(luò)層116處理網(wǎng)絡(luò)通信,并將接收的TCP/IP分組提供給傳輸協(xié)議層,以解密分組,如果加密的話。傳輸協(xié)議層121與設(shè)備驅(qū)動(dòng)器120接口,并執(zhí)行附加的傳輸協(xié)議層操作,例如處理在網(wǎng)絡(luò)適配器112上接收的分組內(nèi)包括的消息的解密內(nèi)容,所述附加的傳輸層操作繞接(wrap)在傳輸層內(nèi),例如TCP和/或IP、因特網(wǎng)小計(jì)算機(jī)系統(tǒng)接口(iSCSI)、光纖通道SCSI、并行SCSI傳輸或本領(lǐng)域內(nèi)公知的任何其它傳輸層協(xié)議。傳輸卸載引擎121可以從所接收的TCP/IP分組中拆解出有效負(fù)載,并將數(shù)據(jù)傳送給設(shè)備驅(qū)動(dòng)程序120,以便返回到應(yīng)用114。
在某些實(shí)施方式中,網(wǎng)絡(luò)適配器112還可以包括RDMA協(xié)議層122以及傳輸協(xié)議層121。例如,網(wǎng)絡(luò)適配器112可以實(shí)現(xiàn)RDMA卸載引擎,其中與設(shè)備驅(qū)動(dòng)器120不同,在網(wǎng)絡(luò)適配器112硬件內(nèi)實(shí)現(xiàn)的RDMA協(xié)議層122的卸載引擎內(nèi)執(zhí)行RDMA層操作。
因而,在RDMA連接上發(fā)送消息的應(yīng)用114可以通過設(shè)備驅(qū)動(dòng)器120和網(wǎng)絡(luò)適配器112的RDMA協(xié)議層122發(fā)送消息。消息的數(shù)據(jù)可以發(fā)送給傳輸協(xié)議層121,以便打包在TCP/IP分組中。在將分組通過網(wǎng)絡(luò)協(xié)議層116在網(wǎng)絡(luò)118上發(fā)送之前,傳輸協(xié)議層121還可以加密該分組。
存儲(chǔ)器106還包括文件對象124,這也可以稱作插口對象(socketobject),包括在網(wǎng)絡(luò)118上到遠(yuǎn)程計(jì)算機(jī)的連接的相關(guān)信息。應(yīng)用114使用文件對象124內(nèi)的信息來標(biāo)識(shí)連接。應(yīng)用114將使用文件對象124來與遠(yuǎn)程系統(tǒng)通信。文件對象124可以指示將用于與遠(yuǎn)程系統(tǒng)通信的本地端口或插口、在其中執(zhí)行應(yīng)用114的計(jì)算機(jī)102的本地網(wǎng)(IP)地址、應(yīng)用114已經(jīng)發(fā)送和接收的數(shù)據(jù)量以及應(yīng)用114與之通信的遠(yuǎn)程端口與網(wǎng)絡(luò)地址,例如IP地址。上下文信息126包括數(shù)據(jù)結(jié)構(gòu),此數(shù)據(jù)結(jié)構(gòu)包括設(shè)備驅(qū)動(dòng)器120保存的如下所述管理發(fā)送給網(wǎng)絡(luò)適配器112的請求的信息。
圖5圖示在網(wǎng)絡(luò)適配器112上接收或由其發(fā)送的網(wǎng)絡(luò)分組150的格式。RDMA消息包括一個(gè)或多個(gè)這樣的分組150。以網(wǎng)絡(luò)協(xié)議114理解的格式,例如封裝在將包含附加以太網(wǎng)組成部分的以太網(wǎng)幀內(nèi)的格式,實(shí)現(xiàn)網(wǎng)絡(luò)分組150,所述附加以太網(wǎng)組成部分例如標(biāo)題和檢錯(cuò)碼(未圖示)。傳輸分組152包括在網(wǎng)絡(luò)分組150內(nèi)。傳輸分組152可以包括能夠由傳輸協(xié)議驅(qū)動(dòng)器121處理的傳輸層,諸如TCP和/或IP協(xié)議、因特網(wǎng)小計(jì)算機(jī)系統(tǒng)接口(iSCSI)協(xié)議、光纖通道SCSI、并行SCSI傳輸?shù)鹊?。傳輸分組152包括有效負(fù)載數(shù)據(jù)154以及其它的傳輸層字段,例如標(biāo)題和檢錯(cuò)碼。有效負(fù)載數(shù)據(jù)154包括被傳送的基礎(chǔ)內(nèi)容,例如命令、狀態(tài)和/或數(shù)據(jù)。操作系統(tǒng)110可以包括設(shè)備層,例如SCSI驅(qū)動(dòng)器(未圖示),以處理有效負(fù)載數(shù)據(jù)154的內(nèi)容,并訪問其中的任何狀態(tài)、命令和/或數(shù)據(jù)。
如果當(dāng)在TCP連接上向目的主機(jī)發(fā)送數(shù)據(jù)時(shí),目的主機(jī)的特定TCP連接被給予相對大的TCP窗口20(圖1),則意識(shí)到,具有大TCP窗口的TCP連接能夠繼續(xù)以用盡目的主機(jī)的資源以排除信源主機(jī)的其它TCP連接的方式發(fā)送數(shù)據(jù)。因此,信源主機(jī)的其它TCP連接可能被阻止發(fā)送數(shù)據(jù)。在如圖6所示的一種實(shí)施方式中,當(dāng)在TCP連接上發(fā)送數(shù)據(jù)時(shí)計(jì)算機(jī)102使用虛擬窗口200,它可能遠(yuǎn)小于由TCP連接的目的主機(jī)提供的TCP窗口。當(dāng)TCP下一數(shù)據(jù)指針22抵達(dá)虛擬窗口200的末尾邊界202時(shí),主機(jī)信源102停止在該TCP連接上發(fā)送數(shù)據(jù),即使TCP下一數(shù)據(jù)指針22尚未抵達(dá)TCP窗口20的末尾邊界28。結(jié)果,給其它連接提供了使用計(jì)算機(jī)102的資源的機(jī)會(huì),因此可以更加公平地共享資源。
圖7圖示在使用虛擬窗口200分配計(jì)算機(jī)102的數(shù)據(jù)傳輸資源時(shí)設(shè)備驅(qū)動(dòng)器120和網(wǎng)絡(luò)適配器122的操作。響應(yīng)于軟件應(yīng)用114的請求,在計(jì)算機(jī)102和目的主機(jī)之間建立TCP連接(方框210)。在建立TCP連接時(shí),以類似于圖2的協(xié)議控制塊18a、18b、......、18n的方式插裝(populate)諸如協(xié)議控制塊222a、222b、......、222n之一(圖8)的協(xié)議控制塊。根據(jù)TCP RFC,每個(gè)協(xié)議控制塊222a、222b、......、222n具有用于存儲(chǔ)TCP未確認(rèn)數(shù)據(jù)指針16的字段17a、17b、......、17n、用于存儲(chǔ)TCP窗口的字段21a、21b、......、21n和用于存儲(chǔ)相關(guān)TCP連接的TCP下一指針的字段23a、23b、......、23n。
在這種實(shí)現(xiàn)方式中,用于這個(gè)TCP連接的虛擬窗口200具有在此稱作虛擬窗口最大值的最大值,它存儲(chǔ)在相關(guān)協(xié)議控制塊222a、222b、......、222n的字段224a、224b、......、224n內(nèi)。比較從TCP連接的目的主機(jī)接收的TCP窗口20的大小與虛擬窗口最大值的大小(方框230)。如果TCP窗口20不小于虛擬窗口最大值,則將虛擬窗口200的大小設(shè)置為在協(xié)議控制塊222a、222b、......、222n的字段224a、224b、......、224n內(nèi)存儲(chǔ)的虛擬窗口最大值的大小,所述協(xié)議控制塊控制此TCP連接。將虛擬窗口200的大小存儲(chǔ)在控制此TCP連接的協(xié)議控制塊222a、222b、......、222n的字段233a、233b、......、233n內(nèi)。
在發(fā)送任何數(shù)據(jù)之前,將控制TCP連接的協(xié)議控制快222a、222b、......、222n的TCP未確認(rèn)數(shù)據(jù)指針16設(shè)置為將要發(fā)送的第一數(shù)據(jù)分組的順序號(hào)。計(jì)算機(jī)102開始發(fā)送數(shù)據(jù)分組到目的主機(jī)(方框234)。在這一步驟內(nèi)發(fā)送的數(shù)據(jù)量可以根據(jù)特定的應(yīng)用而變化。然而,在許多應(yīng)用中,在這一步驟中發(fā)送的數(shù)據(jù)量將是虛擬窗口200的大小的相對小比例部分。將控制TCP連接的協(xié)議控制塊222a、222b、......、222n的TCP下一數(shù)據(jù)指針22設(shè)置為將要發(fā)送的下一數(shù)據(jù)分組的順序號(hào)。
在發(fā)送這些數(shù)據(jù)分組之后,執(zhí)行檢查(方框236),以確定目的主機(jī)是否已經(jīng)確認(rèn)接收到發(fā)送數(shù)據(jù)分組之中的任一數(shù)據(jù)分組。如果是的話,則通過向前移動(dòng)控制TCP連接的協(xié)議控制塊222a、222b、......、222n的TCP未確認(rèn)數(shù)據(jù)指針16來移動(dòng)虛擬窗口200(方框240)(圖6)。按順序地向前移動(dòng)TCP未確認(rèn)數(shù)據(jù)指針16以標(biāo)記已經(jīng)發(fā)送但是尚未確認(rèn)的數(shù)據(jù)分組的順序號(hào)的開始。已經(jīng)發(fā)送但是尚未確認(rèn)的那些數(shù)據(jù)分組在圖6中表示為發(fā)送的數(shù)據(jù)分組的數(shù)據(jù)流250的一部分14。已經(jīng)發(fā)送和確認(rèn)的那些數(shù)據(jù)分組在圖6中圖示為部分12。TCP未確認(rèn)數(shù)據(jù)指針16標(biāo)記數(shù)據(jù)流150的發(fā)送且確認(rèn)分組12和發(fā)送但未確認(rèn)分組14之間的邊界252。TCP未確認(rèn)數(shù)據(jù)指針16還標(biāo)記虛擬窗口200和TCP窗口20的開始邊界254。
因此,當(dāng)移動(dòng)TCP未確認(rèn)數(shù)據(jù)指針16時(shí)(方柜240),在目的主機(jī)確認(rèn)(方框236)通過與計(jì)算機(jī)110的這個(gè)特定TCP連接接收數(shù)據(jù)分組時(shí),也移動(dòng)虛擬窗口200和TCP窗口20??蛇x擇地,如果尚未確認(rèn)分組(方框236),則虛擬窗口200、TCP窗口20和TCP未確認(rèn)數(shù)據(jù)指針16保持不移動(dòng)。
尚未發(fā)送但允許發(fā)送且沒有接收到任何進(jìn)一步確認(rèn)的那些數(shù)據(jù)分組在圖6中標(biāo)記為部分256。TCP下一數(shù)據(jù)指針22標(biāo)記部分256的開始邊界258,虛擬窗口200的末尾邊界202標(biāo)記允許但是尚未發(fā)送的數(shù)據(jù)流部分256的末尾邊界260。如果TCP下一數(shù)據(jù)指針22已經(jīng)抵達(dá)虛擬窗口200的末尾邊界202,表示發(fā)送的數(shù)據(jù)流已經(jīng)抵達(dá)(方柜262)虛擬窗口200的末尾,部分256的大小為零,并且不能再發(fā)送其它的數(shù)據(jù)分組,直到從目的主機(jī)接收到附加的確認(rèn)。一旦接收到附加的確認(rèn),則將移動(dòng)虛擬窗口200(方框240),從而構(gòu)成一個(gè)新部分256并允許發(fā)送附加分組。
注意當(dāng)?shù)诌_(dá)虛擬窗口200的末尾邊界202而非較大TCP窗口20的末尾邊界28時(shí),暫停發(fā)送但未確認(rèn)的數(shù)據(jù)分組流(部分14)。因而,停止發(fā)送已經(jīng)被允許在不等待附加確認(rèn)的情況下發(fā)送的在虛擬窗口200的末尾邊界202和TCP窗口20的末尾邊界28之間的數(shù)據(jù)流250的一部分264,直到接收到附加的確認(rèn)。因此,其它的連接可以使用計(jì)算機(jī)110的資源來發(fā)送數(shù)據(jù)分組,而已經(jīng)抵達(dá)其虛擬窗口200的末尾邊界202的連接等待附加的確認(rèn)。
如果TCP下一數(shù)據(jù)指針22尚未抵達(dá)虛擬窗口200的末尾邊界202,表明發(fā)送數(shù)據(jù)流尚未抵達(dá)(方框262)虛擬窗口200的末尾,則部分256的大小為非零。因此,能夠發(fā)送附加的數(shù)據(jù)分組(方框234),直到抵達(dá)虛擬窗口的末尾(方框262)。
認(rèn)識(shí)到目的主機(jī)可能開始用盡緩沖器空間,并因此廣告更小的TCP窗口20。在這種情況下,可以將在相關(guān)協(xié)議控制塊222a、222b、......、222n的字段21a、21b、......、21n內(nèi)存儲(chǔ)的TCP窗口的值重新設(shè)置為這個(gè)較小值。如果目的主機(jī)的TCP窗口20應(yīng)當(dāng)變得小于(方框230)虛擬窗口最大值,則可以將虛擬窗口200的大小重新設(shè)置(方柜270)為如圖9所示的TCP窗口的大小。因而,虛擬窗口200的末尾邊界202與TCP窗口20的末尾邊界28一致。結(jié)果,虛擬窗口200將不超過如目的主機(jī)廣告的TCP窗口200所表示的目的主機(jī)的容量。
在圖7的實(shí)現(xiàn)方式中,將虛擬窗口200設(shè)置為TCP窗口20和虛擬窗口最大值中的較小者。顯然可以使用各種方法來設(shè)置虛擬窗口。例如,虛擬窗口最大值可以是固定大小,例如16KB??蛇x擇地,虛擬窗口的大小可以作為目的主機(jī)所廣告的TCP窗口的大小的函數(shù)而變化。例如,可以將虛擬窗口設(shè)置為TCP窗口的一部分。這一部分例如可以是一個(gè)固定部分。此外,可以將虛擬窗口設(shè)置為驅(qū)動(dòng)器或網(wǎng)絡(luò)適配器的有效連接的數(shù)量的函數(shù)。因而,例如,可以將虛擬窗口設(shè)置為TCP窗口的1/N部分,其中N是驅(qū)動(dòng)器或網(wǎng)絡(luò)適配器的有效連接的數(shù)量。
更進(jìn)一步地,可以編程每個(gè)虛擬窗口最大值224a、224b、......、224n,以允許通過為希望獲得更高服務(wù)質(zhì)量(QoS)的那些連接提供更大的虛擬窗口最大值來允許一條連接獲得比另一條連接更高的服務(wù)質(zhì)量(QoS)。而且,虛擬窗口最大值可以在特定連接期間在任意時(shí)間上被改變。因而,可以使用隨意改變與特定連接相關(guān)的虛擬窗口最大值的能力來在連接的壽命期間在任意時(shí)間上改變QoS。
進(jìn)一步理解對于某些應(yīng)用來說,計(jì)算機(jī)102的應(yīng)用114之一(圖4)可以生成用于RDMA連接50a、50b、......、50n的應(yīng)用隊(duì)列52a、52b、......、52n(圖3),這遠(yuǎn)大于空消息的整個(gè)庫64。例如,如果應(yīng)用具有大量消息要在RDMA連接上存儲(chǔ)在目的主機(jī)的指定存儲(chǔ)單元內(nèi),則可能出現(xiàn)這種情況。具有大應(yīng)用隊(duì)列的RDMA連接可以控制該庫64的空消息的使用,并因而繼續(xù)以用盡信源主機(jī)的資源以排除信源主機(jī)的其它RDMA連接的方式來發(fā)送消息。因此,信源主機(jī)的其它RDMA連接可能被阻止發(fā)送消息。
在如圖10所示的一種實(shí)現(xiàn)方式中,當(dāng)在RDMA連接350a、350b、......、350n上發(fā)送消息時(shí),計(jì)算機(jī)102對RDMA連接350a、350b、......、350n中的任一連接可消耗的網(wǎng)絡(luò)接口366的庫364的空消息的數(shù)量施加限制。更具體地說,將空消息的庫364劃分成多個(gè)空消息的有限庫372a、372b、......、372n,每個(gè)都可以遠(yuǎn)小于整個(gè)空消息庫364。當(dāng)RDMA連接350a、350b、......、350n之一已經(jīng)抵達(dá)由其相關(guān)的空消息的有限庫372a、372b、......、372n所施加的限制時(shí),主機(jī)信源102停止從該特定RDAM連接的相關(guān)應(yīng)用隊(duì)列52a、52b、......、52n中提取(pull)消息,即使其它的空消息在空消息庫364內(nèi)保持未用。當(dāng)其它的空消息被補(bǔ)充在相關(guān)的空消息的有限庫372a、372b、......、372n內(nèi)時(shí),主機(jī)信源102重新開始從該特定RDMA連接的相關(guān)應(yīng)用隊(duì)列52a、52b、......、52n中提取消息。因此,給其它的RDMA連接提供使用計(jì)算機(jī)102的資源的機(jī)會(huì),從而可以更公平地共享資源。
圖11圖示在使用有限空消息庫372a、372b、......、372n來分配計(jì)算機(jī)102的消息傳輸資源時(shí)設(shè)備驅(qū)動(dòng)器120和網(wǎng)絡(luò)適配器122的操作。在這個(gè)例子中,討論RDMA連接350a。其它的RDMA連接350b、......、350n以類似的方式操作。
響應(yīng)于軟件應(yīng)用114的請求,在計(jì)算機(jī)102和目的主機(jī)之間建立RDMA連接350a(方框410)。在一種實(shí)現(xiàn)方式中,RDMA連接350a在TCP連接上運(yùn)行。因而,在建立RDMA連接350a時(shí),插裝協(xié)議控制塊222a、222b、......、222n的協(xié)議控制塊222a(圖8)以包括用于存儲(chǔ)TCP未確認(rèn)數(shù)據(jù)指針16的字段17a、用于存儲(chǔ)TCP窗口的字段21a和用于存儲(chǔ)根據(jù)TCP RFC的相關(guān)TCP連接的TCP下一指針的字段23a。此外,如上面所討論的,TCP連接可以使用虛擬窗口200來提供計(jì)算機(jī)102的TCP連接之間的公平性。因此,可以將虛擬窗口最大值存儲(chǔ)在相關(guān)的協(xié)議控制塊222a的字段224a內(nèi)。
將特定RDMA連接350a的有限空消息庫372a的大小設(shè)置為在相關(guān)協(xié)議控制塊222a的字段424a內(nèi)存儲(chǔ)的消息限制值的大小。在所圖示的實(shí)施例中,將RDMA連接參數(shù)存儲(chǔ)在與TCP連接參數(shù)相同的協(xié)議控制塊內(nèi)。顯然,可以將RDMA連接參數(shù)存儲(chǔ)在完全獨(dú)立的控制塊內(nèi),或者存儲(chǔ)在其它數(shù)據(jù)結(jié)構(gòu)內(nèi)。
計(jì)算機(jī)102通過從特定RDMA連接350a的隊(duì)列對51a的應(yīng)用隊(duì)列52a中提取消息來開始發(fā)送消息到目的主機(jī)的指定地址,并將該消息排隊(duì)(方框434)在網(wǎng)絡(luò)接口隊(duì)列60a內(nèi),所述網(wǎng)絡(luò)接口隊(duì)列60a與軟件應(yīng)用的相關(guān)應(yīng)用隊(duì)列52a是成對的。網(wǎng)絡(luò)接口隊(duì)列60a內(nèi)消息的排隊(duì)消耗用于如此排隊(duì)的每個(gè)消息的RDMA連接350a的相關(guān)有限空消息庫372a中的一個(gè)空消息。在這個(gè)步驟中排隊(duì)的消息數(shù)量可以根據(jù)特定應(yīng)用而改變。然而,在許多應(yīng)用中,排隊(duì)的數(shù)據(jù)量將是消息限制大小的一個(gè)相對小比例部分。
在這個(gè)消息或多個(gè)消息排隊(duì)之后,執(zhí)行檢查(方框436),以確定目的主機(jī)是否已經(jīng)確認(rèn)接收在RDMA連接350a中發(fā)送的任一消息。如果是的話,則將空消息補(bǔ)充在用于如此確認(rèn)的每個(gè)消息的RDMA連接350a的相關(guān)有限空消息庫372a中。
執(zhí)行檢查(方框450)以確定RDMA連接350a的相關(guān)有限空消息庫372a是否為空。如果是的話,則沒有來自特定RDMA連接350a的RDMA消息可以在網(wǎng)絡(luò)接口隊(duì)列60a中排隊(duì)以便發(fā)送給目的主機(jī),直到接收到附加的確認(rèn)。因此,控制返回到方框436,以等待對RDMA連接350a的進(jìn)一步確認(rèn)。另一方面,如果RDMA連接350a的有限空消息庫372a不為空(方框450),則可以在網(wǎng)絡(luò)接口隊(duì)列60a中排隊(duì)RDMA連接350a的應(yīng)用隊(duì)列52a的附加RDMA消息以便發(fā)送給目的主機(jī)。以這種方式,在網(wǎng)絡(luò)接口隊(duì)列60a中排隊(duì)的消息總數(shù)加上利用RDMA連接350a發(fā)送的未完成消息的總數(shù)可以不超過用于設(shè)置RDMA連接350a的有限空消息庫372a的大小。
RDMA連接350b、......、350n以類似的方式操作。因此,將消息限制存儲(chǔ)在與每個(gè)RDMA連接350b、......、350n相關(guān)的協(xié)議控制塊222b、......、222n的字段424b、......、424n中。
在圖11的實(shí)現(xiàn)方式中,將RDMA連接350a、350b、......、350n的每個(gè)有限空消息庫372a、372b、......、372n的大小設(shè)置為在與每個(gè)RDMA連接350a、350b、......、350n相關(guān)的協(xié)議控制塊222a、222b、......、222n中存儲(chǔ)的消息限制。顯然,可以使用各種方法來設(shè)置每個(gè)有限空消息庫372a、372b、......、372n的大小。例如,消息限制可以是固定大小,例如固定消息數(shù)量。而且,可以將用于每個(gè)RDMA連接的消息限制的大小設(shè)置為空消息庫364的大小的一個(gè)固定小部分。可選擇地,用于每個(gè)RDMA連接的消息限制的大小可以作為相關(guān)應(yīng)用隊(duì)列52a、52n、......、52n的大小的函數(shù)而變化。例如,可以將用于每個(gè)RDMA連接的消息限制的大小設(shè)置為空消息庫364的大小的一小部分,其中每個(gè)小部分的大小與相關(guān)應(yīng)用隊(duì)列52a、52n、......、52n的大小成比例。此外,可以將用于每個(gè)RDMA連接的消息限制設(shè)置為驅(qū)動(dòng)器或網(wǎng)絡(luò)適配器的有效連接的數(shù)量的函數(shù)。例如,可以將用于每個(gè)RDMA連接的消息限制的大小設(shè)置為空消息庫364的大小的1/N,其中N是驅(qū)動(dòng)器或網(wǎng)絡(luò)適配器的有效連接的數(shù)量。在這個(gè)例子中,所有的有限空消息庫372a、372b、......、372n的總數(shù)將保持等于或小于整個(gè)空消息庫364。而且,每個(gè)隊(duì)列對51a、51b、......、51n可以具有用于每個(gè)RDMA連接350a、350b、......、350n的獨(dú)立的空消息庫。
更進(jìn)一步地,每個(gè)有限空消息庫372a、372b、......、372n可以被編程,以便通過為希望更高QoS的那些連接提供更大的有限空消息庫來允許一條連接超過另一連接的更高的服務(wù)質(zhì)量(QoS)。而且,可以在特定連接期間在任意時(shí)間上改變有限空消息庫。因而,可以使用任意改變與特定連接相關(guān)的有限空消息庫的能力來在此連接的壽命期間在任意時(shí)間上改變QoS。
因而,可以看出可以為每條連接編程虛擬窗口最大值224a、224b、......、224n和有限空消息庫372a、372b、......、372n,以允許根據(jù)應(yīng)用的需要能夠優(yōu)選表現(xiàn)的不同等級的服務(wù)質(zhì)量(QoS)。而且,可以在連接的壽命期間在任意時(shí)間上改變虛擬窗口最大值224a、224b、......、224n和有限空消息庫372a、372b、......、372n以改變QoS。
附加的實(shí)施例細(xì)節(jié)所描述的用于處理涉及網(wǎng)絡(luò)卡的請求的技術(shù)可以使用標(biāo)準(zhǔn)的編程和/或工程技術(shù)來實(shí)施為方法、設(shè)備或制造的物品(article),以生成軟件、固件、硬件或者其組合。在此使用的術(shù)語“制造物品”是指在硬件邏輯(例如集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等等)內(nèi)實(shí)現(xiàn)的代碼或邏輯或者計(jì)算機(jī)可讀媒體,例如磁存儲(chǔ)媒體(例如硬盤驅(qū)動(dòng)器、軟盤、磁帶等等)、光存儲(chǔ)設(shè)備(CD-ROM、光盤等)、易失性和非易失性存儲(chǔ)設(shè)備(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等等)。由處理器訪問和執(zhí)行在計(jì)算機(jī)可讀媒體中的代碼。還可以通過傳輸媒體或者在網(wǎng)絡(luò)上從文件服務(wù)器訪問實(shí)現(xiàn)優(yōu)選實(shí)施例的代碼。在這些情況下,其中實(shí)現(xiàn)代碼的制造物品可以包括傳輸媒體,例如網(wǎng)絡(luò)傳輸線、無線傳輸媒體、通過空間、無線電波和紅外信號(hào)等傳播的信號(hào)。因而,“制造物品”可以包括其中實(shí)施代碼的媒體。另外,“制造物品”可以包括其中實(shí)施、處理和執(zhí)行代碼的硬件和軟件組件的組合。當(dāng)然,本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,在不脫離本發(fā)明的范圍的情況下可以對這種結(jié)構(gòu)進(jìn)行許多修改,并且制造的物品可以包括在本領(lǐng)域內(nèi)公知的任何信息承載媒體。
在所描述的實(shí)施例中,某些操作描述為利用設(shè)備驅(qū)動(dòng)器120或者利用網(wǎng)絡(luò)適配器112的協(xié)議層來執(zhí)行。在可選擇的實(shí)施例中,描述為利用設(shè)備驅(qū)動(dòng)器120執(zhí)行的操作可以利用網(wǎng)絡(luò)適配器112來執(zhí)行,反之亦然。
在所描述的實(shí)施例中,在網(wǎng)絡(luò)上從網(wǎng)絡(luò)適配器卡向遠(yuǎn)程計(jì)算機(jī)發(fā)送分組。在可選擇的實(shí)施例中,利用協(xié)議層或設(shè)備驅(qū)動(dòng)器處理的所發(fā)送和所接收的分組可以被發(fā)送給在同一計(jì)算機(jī)中執(zhí)行的獨(dú)立處理程序,其中設(shè)備驅(qū)動(dòng)器和傳輸協(xié)議驅(qū)動(dòng)器執(zhí)行。在這些實(shí)施例中,并不使用網(wǎng)絡(luò)卡,因?yàn)樵谕挥?jì)算機(jī)和/或操作系統(tǒng)中的處理之間傳送分組。
在某些實(shí)施方式中,設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器實(shí)施例可以包括在計(jì)算機(jī)系統(tǒng)中,該計(jì)算機(jī)系統(tǒng)包括存儲(chǔ)控制器以及控制器,所述存儲(chǔ)控制器例如是SCSI、集成驅(qū)動(dòng)電子設(shè)備(IDE)、獨(dú)立磁盤冗余陣列(RAID)等等,所述控制器管理至諸如磁盤驅(qū)動(dòng)器、磁帶媒體、光盤、等等的非易性存儲(chǔ)設(shè)備的存取。在可選擇的實(shí)施方式中,網(wǎng)絡(luò)適配器實(shí)施例可以包括在并不包括存儲(chǔ)控制器的系統(tǒng)中,例如某些集線器和交換機(jī)。
在某些實(shí)施方式中,設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器實(shí)施例可以在計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn),所述計(jì)算機(jī)系統(tǒng)包括視頻控制器以再現(xiàn)信息,從而在與計(jì)算機(jī)系統(tǒng)耦合的監(jiān)視器上顯示,所述計(jì)算機(jī)系統(tǒng)包括設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器,例如計(jì)算機(jī)系統(tǒng)包括臺(tái)式機(jī)、工作站、服務(wù)器、主機(jī)、便攜式計(jì)算機(jī)、手持式計(jì)算機(jī)等等??蛇x擇地,網(wǎng)絡(luò)適配器和設(shè)備驅(qū)動(dòng)器實(shí)施例可以在并不包括諸如交換機(jī)和路由器等的視頻控制器的計(jì)算設(shè)備中實(shí)現(xiàn)。
在某些實(shí)施方式中,網(wǎng)絡(luò)適配器可以被配置為通過連接到網(wǎng)絡(luò)適配器上的端口的電纜來發(fā)送數(shù)據(jù)??蛇x擇地,網(wǎng)絡(luò)適配器實(shí)施例可以被配置為在諸如無線LAN、藍(lán)牙等的無線網(wǎng)絡(luò)或連接上發(fā)送數(shù)據(jù)。
圖8圖示用于插裝協(xié)議控制塊的信息。在可選擇的實(shí)施方式中,這些數(shù)據(jù)結(jié)構(gòu)可以包括附加的或者與附圖中所示信息不同的信息。
圖7和圖11所圖示的邏輯圖示了以某種順序出現(xiàn)的某些事件。在可選擇的實(shí)施例中,可以以不同的順序來執(zhí)行某些操作,并且某些操作可以被修改或刪除。此外,可以將步驟添加到上述邏輯,并且依然符合上述實(shí)施例。而且,在此所描述的操作可以順序地出現(xiàn),或者可以并行地處理某些操作。此外,可以利用單個(gè)處理單元或者利用分布式處理單元來執(zhí)行操作。
圖12圖示諸如圖4和圖10所示的主機(jī)和存儲(chǔ)設(shè)備的網(wǎng)絡(luò)組件的計(jì)算機(jī)結(jié)構(gòu)500的一種實(shí)現(xiàn)方式。該結(jié)構(gòu)500可以包括處理器502(例如微處理器)、存儲(chǔ)器504(例如易失性存儲(chǔ)設(shè)備)和存儲(chǔ)裝置506(例如非易失性存儲(chǔ)裝置,例如磁盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器等等)。存儲(chǔ)裝置506可以包括內(nèi)部存儲(chǔ)設(shè)備或連接的或網(wǎng)絡(luò)可訪問的存儲(chǔ)裝置。將存儲(chǔ)裝置506內(nèi)的程序裝載到存儲(chǔ)器504內(nèi),并由處理器502以現(xiàn)有技術(shù)中公知的方式來執(zhí)行。此網(wǎng)絡(luò)結(jié)構(gòu)還包括網(wǎng)絡(luò)卡508,以便能夠與諸如以太網(wǎng)和光纖通道仲裁環(huán)等網(wǎng)絡(luò)進(jìn)行通信。此外,在某些實(shí)施例中,該結(jié)構(gòu)可以包括視頻控制器509,以便在顯示監(jiān)視器上再現(xiàn)信息,其中視頻控制器509可以在視頻卡上實(shí)現(xiàn),或者集成在安裝在主板上的集成電路組件上。如所討論的,某些網(wǎng)絡(luò)設(shè)備可以具有多個(gè)網(wǎng)絡(luò)卡。使用輸入設(shè)備510來將用戶輸入提供給處理器502,并可以包括鍵盤、鼠標(biāo)、指示筆、麥克風(fēng)、觸摸顯示屏或者任何其它的本領(lǐng)域內(nèi)公知的啟動(dòng)或輸入機(jī)構(gòu)。輸出設(shè)備512能夠再現(xiàn)從處理器502或者諸如顯示監(jiān)視器、打印機(jī)和存儲(chǔ)裝置等其它組件發(fā)送的信息。
網(wǎng)絡(luò)適配器508可以在諸如外圍元件互連(PCI)卡或某個(gè)其它I/O卡的網(wǎng)絡(luò)卡上、或在安裝在主板上的集成電路組件上或者在軟件內(nèi)實(shí)現(xiàn)。
已經(jīng)為了說明和描述的目的進(jìn)行了本發(fā)明各種實(shí)施例的上述描述。這并不打算是窮舉性的或者將本發(fā)明限制為所公開的精確形式。在上述教導(dǎo)的啟示下,可進(jìn)行多種修改和變化。預(yù)定本發(fā)明的范圍將不利用詳細(xì)的說明而是利用權(quán)利要求書來限制。上述說明、實(shí)例和數(shù)據(jù)提供了本發(fā)明組成的制造和使用的完整描述。因?yàn)榭梢栽诓幻撾x本發(fā)明的精神和范圍的情況下實(shí)現(xiàn)本發(fā)明的許多實(shí)施例,所以本發(fā)明存在于下面所附的權(quán)利要求書中。
權(quán)利要求
1.用于發(fā)送數(shù)據(jù)的一種方法,包括建立適合于在主機(jī)和目的地之間發(fā)送數(shù)據(jù)分組的有效連接;從目的地接收代表第一數(shù)據(jù)分組數(shù)量的第一窗口值;從所述主機(jī)向所述目的地發(fā)送數(shù)據(jù)分組;從所述目的地接收由所述目的地接收的每個(gè)數(shù)據(jù)分組的確認(rèn),其中所述第一窗口值代表由所述目的地在所述主機(jī)上施加的對從所述主機(jī)向所述目的地發(fā)送的并缺少由目的地接收的確認(rèn)的數(shù)據(jù)分組的數(shù)量的限制;和將由所述主機(jī)發(fā)送的但是未被確認(rèn)為由所述目的地接收的分組的數(shù)量限制為小于所述第一窗口值的第二數(shù)據(jù)分組數(shù)量。
2.權(quán)利要求1的方法,其中該連接是主機(jī)和目的地之間的傳輸控制協(xié)議連接,和其中所述第一窗口值是傳輸控制協(xié)議發(fā)送窗口值。
3.權(quán)利要求1的方法,還包括在主機(jī)和多個(gè)目的地之間建立多個(gè)有效連接;從每個(gè)目的地接收代表用于此連接的第一數(shù)據(jù)分組數(shù)量的第一窗口值;從所述主機(jī)向每個(gè)目的地發(fā)送數(shù)據(jù)分組;從每個(gè)目的地接收由每個(gè)目的地接收的每個(gè)數(shù)據(jù)分組的確認(rèn),其中每個(gè)連接的第一窗口值代表由該連接的目的地在所述主機(jī)上施加的對從所述主機(jī)發(fā)送給該連接的目的地的并缺少由該連接的目的地接收的確認(rèn)的數(shù)據(jù)分組的數(shù)量的限制;和將由所述主機(jī)向每個(gè)連接發(fā)送的但是未被確認(rèn)為由每個(gè)連接的目的地接收的分組數(shù)量限制到小于該連接的窗口值的第二數(shù)據(jù)分組數(shù)量;其中小于連接的窗口值的每個(gè)連接的第二數(shù)量至少部分地基于主機(jī)的有效連接的數(shù)量。
4.權(quán)利要求2的方法,其中所述主機(jī)具有多個(gè)傳輸控制協(xié)議連接,每個(gè)傳輸控制協(xié)議連接具有協(xié)議控制塊,該協(xié)議控制塊存儲(chǔ)傳輸控制協(xié)議發(fā)送窗口值和小于所述傳輸控制協(xié)議發(fā)送窗口值的虛擬窗口值,其中每個(gè)虛擬窗口值將由所述主機(jī)發(fā)送的但是未被確認(rèn)為由每個(gè)傳輸控制協(xié)議連接的目的地接收的分組的數(shù)量限制到利用傳輸控制協(xié)議連接的虛擬窗口值定義的第二數(shù)據(jù)分組數(shù)量。
5.權(quán)利要求3的方法,還包括響應(yīng)于目的地將傳輸控制協(xié)議發(fā)送窗口值的大小降低到小于第二數(shù)量的第三數(shù)量,將由所述主機(jī)發(fā)送的但是未被確認(rèn)為由所述目的地接收的分組數(shù)量限制為不大于傳輸控制協(xié)議發(fā)送窗口值的降低大小的第四數(shù)據(jù)分組數(shù)量。
6.權(quán)利要求1的方法,還包括在所述主機(jī)和多個(gè)目的地的多個(gè)指定存儲(chǔ)單元之間建立多個(gè)有效的直接存儲(chǔ)器存取連接;將多個(gè)消息發(fā)送給直接存儲(chǔ)器存取連接的目的地的指定存儲(chǔ)單元,其中每個(gè)消息包括多個(gè)數(shù)據(jù)分組;接收消息確認(rèn),對于由目的地接收的每個(gè)消息,由該目的地發(fā)送每個(gè)消息確認(rèn);和建立多個(gè)消息限制,每個(gè)消息限制對從所述主機(jī)發(fā)送給與該消息限制相關(guān)的直接存儲(chǔ)器存取連接的指定存儲(chǔ)單元的并缺少由與該消息限制相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的數(shù)量施加用于每個(gè)直接存儲(chǔ)器存取連接的獨(dú)立限制。
7.權(quán)利要求6的方法,其中每個(gè)直接存儲(chǔ)器存取連接包括在所述主機(jī)的應(yīng)用和將所述主機(jī)連接到多個(gè)目的地的網(wǎng)絡(luò)之間的網(wǎng)絡(luò)接口,和其中所述網(wǎng)絡(luò)接口包括用于每個(gè)直接存儲(chǔ)器存取連接并適合于排隊(duì)將通過與每個(gè)隊(duì)列相關(guān)的直接存儲(chǔ)器存取連接發(fā)送的消息的隊(duì)列,和其中所述的將消息每次發(fā)送給直接存儲(chǔ)器存取連接的目的地的指定存儲(chǔ)單元包括在與直接存儲(chǔ)器存取連接相關(guān)的網(wǎng)絡(luò)接口隊(duì)列中排隊(duì)消息;和其中當(dāng)從所述主機(jī)向相關(guān)的直接存儲(chǔ)器存取連接的指定存儲(chǔ)單元發(fā)送的且缺少由相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的數(shù)量達(dá)到對與網(wǎng)絡(luò)接口隊(duì)列相關(guān)的直接存儲(chǔ)器存取連接施加的獨(dú)立消息限制時(shí),暫停與直接存儲(chǔ)器存取連接相關(guān)的網(wǎng)絡(luò)接口隊(duì)列中消息的排隊(duì)。
8.權(quán)利要求7的方法,其中當(dāng)從所述主機(jī)發(fā)送給相關(guān)的直接存儲(chǔ)器存取連接的指定存儲(chǔ)單元的且缺少由相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的數(shù)量少于對與網(wǎng)絡(luò)接口隊(duì)列相關(guān)的直接存儲(chǔ)器存取連接施加的獨(dú)立消息限制時(shí),重新開始與直接存儲(chǔ)器存取連接相關(guān)的網(wǎng)絡(luò)接口隊(duì)列中消息的排隊(duì)。
9.權(quán)利要求8的方法,其中分組發(fā)送連接是在主機(jī)和目的地之間的傳輸控制協(xié)議連接,和其中每個(gè)直接存儲(chǔ)器存取連接是主機(jī)和直接存儲(chǔ)器存取連接的目的地之間的遠(yuǎn)程直接存儲(chǔ)器存取連接。
10.權(quán)利要求10的方法,其中所述網(wǎng)絡(luò)接口具有空消息庫,它對從所述主機(jī)向所有的直接存儲(chǔ)器存取連接的所有的指定存儲(chǔ)單元發(fā)送的且缺少由相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的總量施加限制,并且其中每個(gè)消息限制少于空消息的網(wǎng)絡(luò)接口庫。
11.權(quán)利要求6的方法,其中每個(gè)消息限制至少部分地基于主機(jī)的有效直接存儲(chǔ)器存取連接的數(shù)量。
12.權(quán)利要求6的方法,還包括在通過相關(guān)的直接存儲(chǔ)器存取連接發(fā)送一些消息之前,改變有效直接存儲(chǔ)器存取連接的消息限制的大小。
13.權(quán)利要求6的方法,其中每個(gè)消息限制至少部分地基于主機(jī)的有效直接存儲(chǔ)器存取連接的數(shù)量。
14.權(quán)利要求1的方法,還包括在發(fā)送一些分組之前改變限制由主機(jī)發(fā)送的但是未被確認(rèn)為由目的地接收的分組的數(shù)量的第二分組數(shù)量的大小。
15.適合于與數(shù)據(jù)存儲(chǔ)裝置和具有存儲(chǔ)單元的目的地通信的一種系統(tǒng),包括系統(tǒng)存儲(chǔ)器;處理器,耦合到該系統(tǒng)存儲(chǔ)器;網(wǎng)絡(luò)適配器;數(shù)據(jù)存儲(chǔ)控制器,用于管理至數(shù)據(jù)存儲(chǔ)裝置的輸入/輸出(I/O)訪問;該存儲(chǔ)器中可由該處理器執(zhí)行的設(shè)備驅(qū)動(dòng)器,其中設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器之中的至少之一適合于(i)建立適合于在主機(jī)和目的地之間發(fā)送數(shù)據(jù)分組的有效連接;(ii)從目的地接收代表第一數(shù)據(jù)分組數(shù)量的第一窗口值;(iii)從該系統(tǒng)向所述目的地發(fā)送數(shù)據(jù)分組;(iv)對于由所述目的地接收的每個(gè)數(shù)據(jù)分組,從所述目的地接收確認(rèn),其中所述第一窗口值代表由所述目的地在所述系統(tǒng)上施加的對從所述系統(tǒng)向所述目的地發(fā)送的并缺少由目的地接收的確認(rèn)的數(shù)據(jù)分組的數(shù)量的限制;和(v)將由所述系統(tǒng)發(fā)送的但是未被確認(rèn)為由所述目的地接收的分組的數(shù)量限制為小于所述第一數(shù)量的第二數(shù)據(jù)分組數(shù)量。
16.權(quán)利要求15的系統(tǒng),其中數(shù)據(jù)存儲(chǔ)裝置包括磁存儲(chǔ)媒體。
17.權(quán)利要求15的系統(tǒng),其中所述連接是主機(jī)和目的地之間的傳輸控制協(xié)議連接,和其中所述第一窗口值是傳輸控制協(xié)議發(fā)送窗口值。
18.權(quán)利要求15的系統(tǒng),其中設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器之中的至少一個(gè)還適合于在該系統(tǒng)和多個(gè)目的地之間建立多個(gè)有效連接;從每個(gè)目的地接收代表用于此連接的第一數(shù)據(jù)分組數(shù)量的第一窗口值;從所述系統(tǒng)向每個(gè)目的地發(fā)送數(shù)據(jù)分組;對于由每個(gè)目的地接收的每個(gè)數(shù)據(jù)分組,從每個(gè)目的地接收確認(rèn),其中每個(gè)連接的第一窗口值代表由該連接的目的地在所述系統(tǒng)上施加的對從所述系統(tǒng)發(fā)送給該連接的目的地的并缺少由該連接的目的地接收的確認(rèn)的數(shù)據(jù)分組的數(shù)量的限制;和將由所述系統(tǒng)向每個(gè)連接發(fā)送的但是未被確認(rèn)為由每個(gè)連接的目的地接收的分組數(shù)量限制到小于該連接的窗口值的第二數(shù)據(jù)分組數(shù)量;其中小于該連接的窗口值的每個(gè)連接的第二數(shù)量至少部分地基于該系統(tǒng)的有效連接的數(shù)量。
19.權(quán)利要求17的系統(tǒng),其中設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器之中的至少一個(gè)適合于建立多個(gè)傳輸控制協(xié)議連接,每個(gè)傳輸控制協(xié)議連接具有協(xié)議控制塊數(shù)據(jù)結(jié)構(gòu),該協(xié)議控制塊數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)傳輸控制協(xié)議發(fā)送窗口值和小于所述傳輸控制協(xié)議發(fā)送窗口值的虛擬窗口值,其中每個(gè)虛擬窗口值將由所述系統(tǒng)發(fā)送的但是未被確認(rèn)為由每個(gè)傳輸控制協(xié)議連接的目的地接收的分組的數(shù)量限制到利用傳輸控制協(xié)議連接的虛擬窗口值定義的第二數(shù)據(jù)分組數(shù)量。
20.權(quán)利要求19的系統(tǒng),其中設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器之中的至少一個(gè)適合于響應(yīng)于目的地將傳輸控制協(xié)議發(fā)送窗口值的大小降低到少于第二數(shù)量的第三數(shù)量,將由所述系統(tǒng)發(fā)送的但是未被確認(rèn)為由所述目的地接收的分組的數(shù)量限制為不大于傳輸控制協(xié)議發(fā)送窗口值的降低大小的第四數(shù)據(jù)分組數(shù)量。
21.權(quán)利要求15的系統(tǒng),其中設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器之中的至少一個(gè)適合于在所述系統(tǒng)和多個(gè)目的地的多個(gè)指定存儲(chǔ)單元之間建立多個(gè)有效直接存儲(chǔ)器存取連接;將多個(gè)消息發(fā)送給直接存儲(chǔ)器存取連接的目的地的指定存儲(chǔ)單元,其中每個(gè)消息包括多個(gè)數(shù)據(jù)分組;接收消息確認(rèn),對于由目的地接收的每個(gè)消息,由該目的地發(fā)送每個(gè)消息確認(rèn);和建立多個(gè)消息限制,每個(gè)消息限制對從所述系統(tǒng)發(fā)送給與消息限制相關(guān)的直接存儲(chǔ)器存取連接的指定存儲(chǔ)單元的并缺少由與該消息限制相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的數(shù)量施加用于每個(gè)直接存儲(chǔ)器存取連接的獨(dú)立限制。
22.權(quán)利要求21的系統(tǒng),其中設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器之中的至少一個(gè)適合于提供用于每個(gè)直接存儲(chǔ)器存取連接并適合于排隊(duì)將通過與每個(gè)隊(duì)列相關(guān)的直接存儲(chǔ)器存取連接發(fā)送的消息的隊(duì)列,和其中在將消息每次發(fā)送給直接存儲(chǔ)器存取連接的目的地的指定存儲(chǔ)單元時(shí),設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器之中的至少之一適合于在與直接存儲(chǔ)器存取連接相關(guān)的隊(duì)列中排隊(duì)消息;和當(dāng)從所述系統(tǒng)向相關(guān)的直接存儲(chǔ)器存取連接的指定存儲(chǔ)單元發(fā)送的且缺少由相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的數(shù)量達(dá)到對與該隊(duì)列相關(guān)的直接存儲(chǔ)器存取連接施加的獨(dú)立消息限制時(shí),暫停與直接存儲(chǔ)器存取連接相關(guān)的隊(duì)列中消息的排隊(duì)。
23.權(quán)利要求22的系統(tǒng),其中設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器之中的至少一個(gè)適合于當(dāng)從所述系統(tǒng)發(fā)送給相關(guān)的直接存儲(chǔ)器存取連接的指定存儲(chǔ)單元的且缺少由相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息數(shù)量少于對與網(wǎng)絡(luò)接口隊(duì)列相關(guān)的直接存儲(chǔ)器存取連接施加的獨(dú)立消息限制時(shí),重新開始與直接存儲(chǔ)器存取連接相關(guān)的隊(duì)列中消息的排隊(duì)。
24.權(quán)利要求23的系統(tǒng),其中分組發(fā)送連接是在該系統(tǒng)和分組發(fā)送連接的目的地之間的傳輸控制協(xié)議連接,和其中每個(gè)直接存儲(chǔ)器存取連接是該系統(tǒng)和直接存儲(chǔ)器存取連接之間的遠(yuǎn)程直接存儲(chǔ)器存取連接。
25.權(quán)利要求24的系統(tǒng),設(shè)備驅(qū)動(dòng)器和網(wǎng)絡(luò)適配器之中的至少之一適合于提供空消息庫,它對從所述系統(tǒng)向所有的直接存儲(chǔ)器存取連接的所有的指定存儲(chǔ)單元發(fā)送的且缺少由相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的總量施加限制,并且其中每個(gè)消息限制少于空消息庫。
26.一種制造物品,用于管理通過網(wǎng)絡(luò)的數(shù)據(jù)傳輸,其中該制造物品引起將被執(zhí)行的操作,所述操作包括建立適合于在主機(jī)和目的地之間發(fā)送數(shù)據(jù)分組的有效連接;從目的地接收代表第一數(shù)據(jù)分組數(shù)量的第一窗口值;從所述主機(jī)向所述目的地發(fā)送數(shù)據(jù)分組;對于由所述目的地接收的每個(gè)數(shù)據(jù)分組,從所述目的地接收確認(rèn),其中所述第一窗口值代表由所述目的地在所述主機(jī)上對從所述主機(jī)向所述目的地發(fā)送的并缺少由目的地接收的確認(rèn)的數(shù)據(jù)分組的數(shù)量施加的限制;和將由所述主機(jī)發(fā)送的但是未被確認(rèn)為由所述目的地接收的分組的數(shù)量限制為小于所述第一數(shù)量的第二數(shù)據(jù)分組數(shù)量。
27.權(quán)利要求26的制造物品,其中所述連接是主機(jī)和目的地之間的傳輸控制協(xié)議連接,和其中所述第一窗口值是傳輸控制協(xié)議發(fā)送窗口值。
28.權(quán)利要求27的制造物品,其中所述操作還包括在主機(jī)和多個(gè)目的地之間建立多個(gè)有效連接;從每個(gè)目的地接收代表用于此連接的第一數(shù)據(jù)分組數(shù)量的第一窗口值;從所述主機(jī)向每個(gè)目的地發(fā)送數(shù)據(jù)分組;對于由每個(gè)目的地接收的每個(gè)數(shù)據(jù)分組,從每個(gè)目的地接收確認(rèn),其中每個(gè)連接的第一窗口值代表由該連接的目的地在所述主機(jī)上對從所述主機(jī)發(fā)送給該連接的目的地的并缺少由該連接目的地接收的確認(rèn)的數(shù)據(jù)分組數(shù)量施加的限制;和將由所述主機(jī)向每個(gè)連接發(fā)送的但是未被確認(rèn)為由每個(gè)連接的目的地接收的分組數(shù)量限制到小于該連接的窗口值的第二數(shù)據(jù)分組數(shù)量;其中小于連接的窗口值的每個(gè)連接的第二數(shù)量至少部分地基于該主機(jī)的有效連接的數(shù)量。
29.權(quán)利要求28的制造物品,其中所述主機(jī)具有多個(gè)傳輸控制協(xié)議連接,每個(gè)傳輸控制協(xié)議連接具有協(xié)議控制塊,該協(xié)議控制塊存儲(chǔ)傳輸控制協(xié)議發(fā)送窗口值和小于所述傳輸控制協(xié)議發(fā)送窗口值的虛擬窗口值,其中每個(gè)虛擬窗口值將由所述主機(jī)發(fā)送的但是未被確認(rèn)為由每個(gè)傳輸控制協(xié)議連接的目的地接收的分組的數(shù)量限制到利用傳輸控制協(xié)議連接的虛擬窗口值定義的第二數(shù)據(jù)分組數(shù)量。
30.權(quán)利要求28的制造物品,其中所述操作還包括響應(yīng)于目的地將傳輸控制協(xié)議發(fā)送窗口值的大小降低到小于第二數(shù)量的第三數(shù)量,將由所述主機(jī)發(fā)送的但是未被確認(rèn)為由所述目的地接收的分組的數(shù)量限制為不大于傳輸控制協(xié)議發(fā)送窗口值的降低大小的第四數(shù)據(jù)分組數(shù)量。
31.權(quán)利要求26的制造物品,其中所述操作還包括在所述主機(jī)和多個(gè)目的地的多個(gè)指定存儲(chǔ)單元之間建立多個(gè)有效的直接存儲(chǔ)器存取連接;將多個(gè)消息發(fā)送給直接存儲(chǔ)器存取連接的目的地的指定存儲(chǔ)單元,其中每個(gè)消息包括多個(gè)數(shù)據(jù)分組;接收消息確認(rèn),對于由目的地接收的每個(gè)消息,由該目的地發(fā)送每個(gè)消息確認(rèn);建立多個(gè)消息限制,每個(gè)消息限制對于從所述主機(jī)發(fā)送給與該消息限制相關(guān)的直接存儲(chǔ)器存取連接的指定存儲(chǔ)單元的并缺少由與該消息限制相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的數(shù)量施加用于每個(gè)直接存儲(chǔ)器存取連接的獨(dú)立限制。
32.權(quán)利要求31的制造物品,其中每個(gè)直接存儲(chǔ)器存取連接包括在所述主機(jī)的應(yīng)用和將所述主機(jī)連接到多個(gè)目的地的網(wǎng)絡(luò)之間的網(wǎng)絡(luò)接口,和其中所述網(wǎng)絡(luò)接口包括用于每個(gè)直接存儲(chǔ)器存取連接并適合于排隊(duì)將通過與每個(gè)隊(duì)列相關(guān)的直接存儲(chǔ)器存取連接發(fā)送的消息的隊(duì)列,和其中所述的每次將消息發(fā)送給直接存儲(chǔ)器存取連接的目的地的指定存儲(chǔ)單元包括在與直接存儲(chǔ)器存取連接相關(guān)的網(wǎng)絡(luò)接口隊(duì)列中排隊(duì)消息;和其中當(dāng)從所述主機(jī)向相關(guān)的直接存儲(chǔ)器存取連接的指定存儲(chǔ)單元發(fā)送的且缺少由相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的數(shù)量達(dá)到對與該網(wǎng)絡(luò)接口隊(duì)列相關(guān)的直接存儲(chǔ)器存取連接施加的獨(dú)立消息限制時(shí),暫停與直接存儲(chǔ)器存取連接相關(guān)的網(wǎng)絡(luò)接口隊(duì)列中消息的排隊(duì)。
33.權(quán)利要求32的制造物品,其中當(dāng)從所述主機(jī)發(fā)送給相關(guān)的直接存儲(chǔ)器存取連接的指定存儲(chǔ)單元的且缺少由相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的數(shù)量少于施加在與該網(wǎng)絡(luò)接口隊(duì)列相關(guān)的直接存儲(chǔ)器存取連接上的獨(dú)立消息限制時(shí),重新開始與直接存儲(chǔ)器存取連接相關(guān)的網(wǎng)絡(luò)接口隊(duì)列中消息的排隊(duì)。
34.權(quán)利要求33的制造物品,其中分組發(fā)送連接是在主機(jī)和目的地之間的傳輸控制協(xié)議連接,和其中每個(gè)直接存儲(chǔ)器存取連接是在主機(jī)和該直接存儲(chǔ)器存取連接的目的地之間的遠(yuǎn)程直接存儲(chǔ)器存取連接。
35.權(quán)利要求34的制造物品,其中所述網(wǎng)絡(luò)接口具有空消息庫,它對從所述主機(jī)向所有的直接存儲(chǔ)器存取連接的所有的指定存儲(chǔ)單元發(fā)送的且缺少由相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的總量施加限制,并且其中每個(gè)消息限制少于空消息的網(wǎng)絡(luò)接口庫。
36.權(quán)利要求31的制造物品,其中每個(gè)消息限制至少部分地基于主機(jī)的有效直接存儲(chǔ)器存取連接的數(shù)量。
37.權(quán)利要求31的制造物品,還包括在通過相關(guān)的直接存儲(chǔ)器存取連接發(fā)送一些消息之前,改變有效直接存儲(chǔ)器存取連接的消息限制的大小。
38.權(quán)利要求31的制造物品,其中每個(gè)消息限制至少部分地基于主機(jī)的有效直接存儲(chǔ)器存取連接的數(shù)量。
39.權(quán)利要求26的制造物品,還包括在發(fā)送一些分組之前改變限制由主機(jī)發(fā)送的但是未被確認(rèn)為由目的地接收的分組數(shù)量的第二分組數(shù)量的大小。
全文摘要
提供用于管理通過網(wǎng)絡(luò)從信源到目的地的數(shù)據(jù)傳輸?shù)姆椒?、系統(tǒng)和程序。目的地在信源上施加窗口值,該窗口值限制在未接收到由目的地接收的確認(rèn)的情況下可從信源向目的地發(fā)送的數(shù)據(jù)分組的數(shù)量。在一種實(shí)施例中,信源施加小于目的地窗口值的第二窗口值,這進(jìn)一步限制在未接收到由目的地接收的確認(rèn)的情況下可從信源向目的地發(fā)送的數(shù)據(jù)分組的數(shù)量。在另一種實(shí)施例中,在信源和多個(gè)目的地的多個(gè)指定存儲(chǔ)單元之間建立多個(gè)直接存儲(chǔ)器存取連接。信源施加多個(gè)消息限制,每個(gè)消息限制對從信源向與該消息限制相關(guān)的直接存儲(chǔ)器存取連接的指定存儲(chǔ)單元發(fā)送的且缺少由與該消息限制相關(guān)的直接存儲(chǔ)器存取連接的目的地接收的消息確認(rèn)的消息的數(shù)量施加用于每個(gè)直接存儲(chǔ)器存取連接的獨(dú)立限制。
文檔編號(hào)H04L12/00GK1599319SQ200410056658
公開日2005年3月23日 申請日期2004年8月13日 優(yōu)先權(quán)日2003年9月15日
發(fā)明者H·T·貝弗利, A·楚巴爾, G·Y·曹, A·L·阿里茲佩 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
安西县| 洛南县| 浦东新区| 宁晋县| 烟台市| 通化县| 自贡市| 亚东县| 泉州市| 吉安市| 若尔盖县| 江津市| 定兴县| 桦南县| 湄潭县| 宜兰县| 佛教| 兴安县| 西和县| 来安县| 新晃| 江津市| 永济市| 济宁市| 灵石县| 吉木萨尔县| 正蓝旗| 平潭县| 铜鼓县| 丰县| 满洲里市| 日土县| 岳西县| 兴安盟| 曲沃县| 神木县| 彭山县| 和林格尔县| 于田县| 黄浦区| 宣城市|