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

網(wǎng)絡(luò)業(yè)務(wù)的智能負(fù)載平衡和故障轉(zhuǎn)移的制作方法

文檔序號(hào):7692454閱讀:182來源:國知局
專利名稱:網(wǎng)絡(luò)業(yè)務(wù)的智能負(fù)載平衡和故障轉(zhuǎn)移的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實(shí)施例大體上涉及網(wǎng)絡(luò)通信,且更具體地說,涉及一種用于使用散列引擎 來對網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行智能負(fù)載平衡和故障轉(zhuǎn)移的系統(tǒng)和方法。
背景技術(shù)
性能和可靠性是對現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)的關(guān)鍵要求。當(dāng)新的網(wǎng)絡(luò)連接在包含多個(gè)網(wǎng)絡(luò)接 口卡("NIC")的計(jì)算裝置上啟動(dòng)時(shí),操作系統(tǒng)通常為所述連接選擇NIC,而不考慮每 個(gè)NIC的利用率或出錯(cuò)率。此類環(huán)境的一個(gè)劣勢是新的連接通常被指配給過載且/或不 可靠的NIC,從而導(dǎo)致用于新的連接且可能用于選定NIC上的其它現(xiàn)存連接的網(wǎng)絡(luò)性能 降低。
一些現(xiàn)有技術(shù)解決方案試圖通過保存含有"連接狀態(tài)"的復(fù)雜的數(shù)據(jù)結(jié)構(gòu)來避免將 新的連接指配給過載且/或不可靠的NIC。分析此數(shù)據(jù)結(jié)構(gòu)使得網(wǎng)絡(luò)裝置驅(qū)動(dòng)器可確定哪 些NIC是過載且/或不可靠的。然而,此連接狀態(tài)的結(jié)構(gòu)無助于有效地識(shí)別已向每個(gè)連 接指配哪一 NIC,或有效地將連接從過載或不可靠的NIC重新分配到完全起作用的NIC。 另外,保存或分析此連接狀態(tài)在計(jì)算上是昂貴的,這可能使計(jì)算裝置的計(jì)算和網(wǎng)絡(luò)性能 降級(jí)。
如前面所說明,此項(xiàng)技術(shù)中需要一種更有效的用于在計(jì)算裝置中的NIC上分配和再 分配網(wǎng)絡(luò)連接的技術(shù)。

發(fā)明內(nèi)容
本發(fā)明的一個(gè)實(shí)施例陳述一種用于智能地將網(wǎng)絡(luò)連接轉(zhuǎn)移到網(wǎng)絡(luò)接口卡(NIC)以 接收網(wǎng)絡(luò)業(yè)務(wù)的方法。所述方法包含截取由操作系統(tǒng)產(chǎn)生的地址解析協(xié)議(ARP)響 應(yīng)包,其中所述ARP響應(yīng)包具有與第一 NIC相關(guān)聯(lián)的第一媒體接入控制(MAC)地址, 所述第一 NIC已經(jīng)被操作系統(tǒng)選擇用來接收與網(wǎng)絡(luò)連接有關(guān)的網(wǎng)絡(luò)業(yè)務(wù)對ARP響應(yīng) 包進(jìn)行解碼;通過向散列函數(shù)提供經(jīng)解碼的ARP響應(yīng)包中所包含的一個(gè)或一個(gè)以上網(wǎng) 絡(luò)參數(shù)來產(chǎn)生與第二 NIC相關(guān)聯(lián)的第二 MAC地址;以及用第二 MAC地址來代替ARP 響應(yīng)包中的第一 MAC地址。所揭示的方法的一個(gè)優(yōu)勢是其允許網(wǎng)絡(luò)連接使用散列引擎在計(jì)算裝置中的多個(gè) NIC上智能地轉(zhuǎn)移。可使用連接轉(zhuǎn)移來執(zhí)行負(fù)載平衡、故障轉(zhuǎn)移或故障恢復(fù)功能。以此 方式,可更容易地避免通過過載或不可靠的NIC來運(yùn)行網(wǎng)絡(luò)連接,從而改進(jìn)總體網(wǎng)絡(luò)性


因此,為了可更詳細(xì)了解本發(fā)明的上述特征,可參考實(shí)施例對上文簡要概述的本發(fā) 明進(jìn)行更具體的描述,所述實(shí)施例中的一些實(shí)施例在附圖中說明。然而,應(yīng)注意,附圖 只說明本發(fā)明的典型實(shí)施例,且因此不應(yīng)被視為限制本發(fā)明的范圍,因?yàn)楸景l(fā)明可承認(rèn) 其它同等有效的實(shí)施例。
圖1A到圖1C說明可實(shí)施本發(fā)明的一個(gè)或一個(gè)以上方面的計(jì)算裝置;以及
圖2說明根據(jù)本發(fā)明一個(gè)實(shí)施例的用于基于向散列函數(shù)提供的參數(shù)來從散列表中選 擇MAC地址的方法步驟的流程圖。
圖3A和圖3B說明根據(jù)本發(fā)明一個(gè)實(shí)施例的用于將連接轉(zhuǎn)移到被散列引擎選擇用 來接收網(wǎng)絡(luò)業(yè)務(wù)的NIC的方法步驟的流程圖;以及
圖4A和圖4B說明根據(jù)本發(fā)明一個(gè)實(shí)施例的用于將連接轉(zhuǎn)移到被散列引擎選擇用 來傳輸網(wǎng)絡(luò)業(yè)務(wù)的NIC的方法步驟的流程圖。
圖5說明根據(jù)本發(fā)明一個(gè)實(shí)施例的用于將現(xiàn)存連接卸載到由散列引擎選擇的NIC的 方法步驟的流程圖。
圖6說明根據(jù)本發(fā)明一個(gè)實(shí)施例的用于使用虛擬因特網(wǎng)協(xié)議地址來執(zhí)行地址解析協(xié) 議請求的方法步驟的流程圖。
具體實(shí)施例方式
可通過使用截取、修改和重新引導(dǎo)從計(jì)算裝置中的操作系統(tǒng)傳輸?shù)骄W(wǎng)絡(luò)上的遠(yuǎn)程計(jì) 算裝置的包,來實(shí)現(xiàn)計(jì)算裝置中的多個(gè)NIC之間的網(wǎng)絡(luò)連接的智能負(fù)載平衡和故障轉(zhuǎn) 移??赏ㄟ^在地址解析協(xié)議("ARP")響應(yīng)包由操作系統(tǒng)傳輸?shù)竭h(yuǎn)程計(jì)算裝置時(shí)截取所 述ARP響應(yīng)包,來對用于連接的接收業(yè)務(wù)進(jìn)行負(fù)載平衡或故障轉(zhuǎn)移。在被繼續(xù)發(fā)送到 遠(yuǎn)程計(jì)算裝置之前,被截取的ARP響應(yīng)包經(jīng)修改以包含被網(wǎng)絡(luò)驅(qū)動(dòng)器選擇用來接收用 于連接的業(yè)務(wù)的NIC的MAC地址。此修改導(dǎo)致來自遠(yuǎn)程計(jì)算裝置的接收業(yè)務(wù)到達(dá)由網(wǎng) 絡(luò)驅(qū)動(dòng)器選擇的NIC,而不是到達(dá)由操作系統(tǒng)選擇的NIC。
類似地,可通過在標(biāo)準(zhǔn)傳輸包由操作系統(tǒng)傳輸?shù)竭h(yuǎn)程計(jì)算裝置時(shí)截取所述標(biāo)準(zhǔn)傳輸
包,來對用于連接的傳輸業(yè)務(wù)進(jìn)行負(fù)載平衡或故障轉(zhuǎn)移。在被發(fā)送到遠(yuǎn)程計(jì)算裝置上之 前,被截取的傳輸包經(jīng)修改以包含被網(wǎng)絡(luò)驅(qū)動(dòng)器選擇用來傳輸用于連接的業(yè)務(wù)的NIC的 MAC地址。此修改導(dǎo)致傳輸業(yè)務(wù)通過由網(wǎng)絡(luò)驅(qū)動(dòng)器選擇的NIC而不是通過由操作系統(tǒng) 選擇的NIC發(fā)送到遠(yuǎn)程計(jì)算裝置。
圖1A到圖1C說明可實(shí)施本發(fā)明的一個(gè)或一個(gè)以上方面的計(jì)算裝置100。計(jì)算裝置 IOO可以是桌上型計(jì)算機(jī)、服務(wù)器、膝上型計(jì)算機(jī)、掌上型計(jì)算機(jī)、個(gè)人數(shù)字助理、平 板電腦、游戲控制臺(tái)、蜂窩式電話或處理信息的任何其它類型的類似裝置。如圖所示, 計(jì)算裝置IOO包含主存儲(chǔ)器102、存儲(chǔ)器控制器104、微處理器106、 1/O控制器108和 NIC 110、 116。 NIC 110包含硬件卸載引擎("HOE") 112,且NIC 116包含HOE 118。 HOE 112和118包含經(jīng)配置以用于處理與計(jì)算裝置100與已經(jīng)被選擇性地卸載到NIC 110、 116的一個(gè)或一個(gè)以上遠(yuǎn)程網(wǎng)絡(luò)計(jì)算裝置(未圖示)之間的網(wǎng)絡(luò)連接相關(guān)聯(lián)的網(wǎng)絡(luò) 幀的邏輯。與常規(guī)做法一樣,通過用HOE112和118來處理網(wǎng)絡(luò)幀(有時(shí)被稱為"在硬 件中處理連接"),而不是在主機(jī)軟件傳輸控制協(xié)議和因特網(wǎng)協(xié)議("TCP/IP")堆棧中執(zhí) 行那些處理功能(有時(shí)被稱為"在軟件中處理連接"),可實(shí)質(zhì)上減少NIC 110、 116與 微處理器106之間的通信以及由微處理器106執(zhí)行的計(jì)算。
存儲(chǔ)器控制器104耦接到主存儲(chǔ)器102,且耦接到微處理器106,且I/0控制器108 耦接到微處理器106和NIC 110、 116。在本發(fā)明的一個(gè)實(shí)施例中,微處理器106通過將 命令或數(shù)據(jù)寫入到1/0控制器108中來向NIC 110、 116傳輸命令或數(shù)據(jù)。 一旦此類命令 或數(shù)據(jù)被寫入到I/O控制器108中,I/O控制器108就視情況將所述命令或數(shù)據(jù)翻譯成 目標(biāo)NIC可理解的格式,并將所述命令或數(shù)據(jù)傳送到所述目標(biāo)NIC。類似地,NIC 110, 116通過將命令或數(shù)據(jù)寫入到I/O控制器108中來向微處理器106傳輸命令或數(shù)據(jù),且 I/O控制器108視情況將所述命令或數(shù)據(jù)翻譯成微處理器106可理解的格式,并將所述 命令或數(shù)據(jù)傳送到微處理器106。前面提及的耦接可實(shí)施為存儲(chǔ)器總線或I/O總線,例 如PCITM總線或其任一組合,或否則可以任何其它技術(shù)上可行的方式來實(shí)施。
如圖IB中更詳細(xì)展示,主存儲(chǔ)器102包含操作系統(tǒng)122和軟件驅(qū)動(dòng)器124。軟件 驅(qū)動(dòng)器124包含負(fù)載平衡和故障轉(zhuǎn)移("LBFO")模塊126和TCP/IP堆棧130。 LBFO 模塊125跟蹤每個(gè)NIC的聯(lián)網(wǎng)狀態(tài)(例如每個(gè)NIC的鏈接狀態(tài),每個(gè)NIC上的發(fā)送和 接收錯(cuò)誤的數(shù)目和/或每個(gè)NIC是否發(fā)送和接收保持有效的包),且在網(wǎng)絡(luò)連接在計(jì)算裝 置100內(nèi)從一個(gè)NIC移動(dòng)到另一 NIC時(shí)與TCP/IP堆棧130通信。LBFO模塊126包含 散列引擎128,其基于前面提及的每個(gè)NIC的聯(lián)網(wǎng)狀態(tài),來智能地確定應(yīng)如何在計(jì)算裝 置100中的不同的起作用的NIC上分配網(wǎng)絡(luò)連接。
如圖1C中更詳細(xì)展示,散列引擎128包含傳輸散列表138和接收散列表140。傳 輸散列表138的目的是基于由LBFO模塊126向傳輸散列表138提供的數(shù)據(jù),在計(jì)算裝 置100內(nèi)選擇用于傳輸與網(wǎng)絡(luò)連接有關(guān)的包的起作用的NIC。傳輸散列表138包含多個(gè) 散列表?xiàng)l目(例如,散列表?xiàng)l目134)和軟件散列函數(shù)(未圖示)。另外,每個(gè)散列表?xiàng)l 目包含表索引(例如,表索引132)和表值(例如,表值136)。 LBFO模塊126引導(dǎo)散 列引擎128通過將TCP/IP連接數(shù)據(jù)傳送到散列引擎128來在計(jì)算裝置100內(nèi)選擇傳輸 NIC,所述散列引擎128將TCP/IP連接數(shù)據(jù)傳送到傳輸散列表138中的軟件散列函數(shù)。 作為響應(yīng),軟件散列函數(shù)基于所述TCP/IP連接數(shù)據(jù)而在傳輸散列表138內(nèi)選擇表索弓l。 從此選定的表索引中,傳輸散列表138識(shí)別對應(yīng)的表值,且散列引擎128將識(shí)別出的表 值傳送回到LBFO模塊126。如果對應(yīng)的表值是無效的,那么散列引擎128基于計(jì)算裝 置100中的所有NIC的NIC利用率和NIC出錯(cuò)率數(shù)據(jù)的經(jīng)加權(quán)的組合(如由LBFO模 塊126保存),而為連接選擇NIC,且散列引擎128將選定NIC的MAC地址存儲(chǔ)在對 應(yīng)于當(dāng)前表索引的表值中。由于軟件散列函數(shù)的設(shè)計(jì)和操作是所屬領(lǐng)域的技術(shù)人員眾所 周知的,所以本文將不會(huì)論述這些問題。在一個(gè)實(shí)施例中,LBFO模塊126將以下四個(gè) TCP/IP數(shù)據(jù)傳送到散列引擎128:客戶機(jī)因特網(wǎng)協(xié)議("IP")地址、服務(wù)器IP端口、 客戶機(jī)IP端口和虛擬局域網(wǎng)識(shí)別符("VLAN ID")。在其它實(shí)施例中,LBFO模塊126 可將任何技術(shù)上可行的TCP/IP參數(shù)傳送到散列引擎128。
接收散列表140的目的是基于由LBFO模塊126向接收散列表140提供的數(shù)據(jù),在 計(jì)算裝置100內(nèi)選擇用于接收與網(wǎng)絡(luò)連接有關(guān)的包的起作用的NIC。類似于傳輸散列表 138,接收散列表140包含多個(gè)散列表?xiàng)l目和軟件散列函數(shù)(未圖示),且每個(gè)散列表?xiàng)l 目包含表索引和表值。同樣,LBFO模塊126通過將TCP/IP連接數(shù)據(jù)傳送到散列引擎 128來引導(dǎo)散列引擎128在計(jì)算裝置100內(nèi)選擇接收NIC,所述散列引擎128將TCP/IP 連接數(shù)據(jù)傳送到接收散列表140中的軟件散列函數(shù)。作為響應(yīng),軟件散列函數(shù)基于所述 TCP/IP連接數(shù)據(jù)而在接收散列表140內(nèi)選擇表索引。從此選定的表索引中,接收散列表 140識(shí)別對應(yīng)的表值,且散列引擎128將識(shí)別出的表值傳送回到LBFO模塊126。同樣, 如果對應(yīng)的表值是無效的,那么散列引擎128基于計(jì)算裝置100中的所有NIC的NIC 利用率和NIC出錯(cuò)率數(shù)據(jù)的經(jīng)加權(quán)的組合(如由LBFO模塊126保存),而為連接選擇 NIC,且散列引擎128將選定NIC的MAC地址存儲(chǔ)在對應(yīng)于當(dāng)前表索引的表值中。在 一個(gè)實(shí)施例中,LBFO模塊126傳送到散列引擎128的TCP/IP數(shù)據(jù)包含服務(wù)器IP地址。 在其它實(shí)施例中,LBFO模塊126可將任何技術(shù)上可行的TCP/IP數(shù)據(jù)傳送到散列引擎 128。
重要的是,散列引擎128的結(jié)構(gòu)有效地支持在執(zhí)行負(fù)載平衡、故障轉(zhuǎn)移或故障恢復(fù) 操作時(shí),將連接從一個(gè)NIC轉(zhuǎn)移到另一個(gè)NIC。舉例來說,在一個(gè)實(shí)施例中,如果第一 NIC過載,且LBFO模塊126希望將第一 NIC上的一些連接轉(zhuǎn)移到第二 NIC,那么散列 引擎128可使散列表值含有過載的第一NIC的MAC地址的散列表?xiàng)l冃失效。如下文在 圖2的論述中更詳細(xì)地描述,使散列表?xiàng)l目失效導(dǎo)致散列引擎128選擇第二NIC作為對 應(yīng)于失效的散列表?xiàng)l目的新的用于連接的NIC,并將第二 NIC的MAC地址存儲(chǔ)在散列 表?xiàng)l目中。在對散列表值的此改變之后,散列表索引對應(yīng)于經(jīng)修改的散列表值的所有連 接都將通過第二 NIC來通信。
另外,散列引擎128的結(jié)構(gòu)有效地支持將連接從一個(gè)NIC故障轉(zhuǎn)移到另一 NIC。舉 例來說,在一個(gè)實(shí)施例中,如果第一 NIC已經(jīng)失效或已經(jīng)變得不可靠,且LBFO模塊 126希望將第一NIC上的連接轉(zhuǎn)移到第二NIC,那么散列引擎128可使散列表值包含失 效或不可靠的NIC的MAC地址的所有散列表?xiàng)l目失效。同樣,如下文在圖2中所述, 使散列表?xiàng)l目失效導(dǎo)致散列引擎128選擇第二NIC作為對應(yīng)于失效的散列表?xiàng)l目的新的 用于連接的NIC,且散列表128將第二NIC的MAC地址存儲(chǔ)在那些散列表?xiàng)l目中。一 旦已經(jīng)用第二 NIC的MAC地址覆寫了包含失效或不可靠的NIC的MAC地址的所有散 列表值,第一 NIC上的所有連接都已經(jīng)被故障轉(zhuǎn)移到第二 NIC。在2007年5月18日申 請且序號(hào)為11/750,903且代理人案號(hào)為NVDA/P001880的題為"負(fù)載平衡聯(lián)網(wǎng)環(huán)境下的 智能故障轉(zhuǎn)移"("Intelligent Failover In a Load-Balanced Networking Environment")的 相關(guān)美國專利申請案中描述了關(guān)于LBFO模塊126在故障轉(zhuǎn)移期間的功能性的更多細(xì) 節(jié)。此相關(guān)專利申請案以引用的方式并入本文中。
另外,散列引擎128的結(jié)構(gòu)有效地支持連接從一個(gè)NIC故障恢復(fù)到另一 NIC。舉例 來說,在一個(gè)實(shí)施例中,如果LBFO模塊126已經(jīng)使一些連接從第一 NIC故障轉(zhuǎn)移到第 二 NIC,且第一 NIC隨后變得完全起作用,那么LBFO模塊126可使一些或所有故障轉(zhuǎn) 移的連接故障恢復(fù)到第一NIC。在一個(gè)實(shí)施例中,LBFO模塊126可通過更新對應(yīng)于選 定的經(jīng)故障轉(zhuǎn)移的連接的散列表值來對選定的連接進(jìn)行故障恢復(fù),以存儲(chǔ)第一 NIC而不 是第二 NIC的MAC地址。 一旦已經(jīng)用第一 NIC的MAC地址覆寫了包含第二 NIC的 MAC地址的散列表值,對應(yīng)于經(jīng)覆寫的散列表值的連接就已經(jīng)故障恢復(fù)到第一 NIC。 在2007年5月18日申請的序號(hào)為11/750,914且代理人案號(hào)為NVDA/P001882的題為"負(fù) 載平衡聯(lián)網(wǎng)環(huán)境下的智能故障恢復(fù)"("Intelligent Failback In a Load-Balanced Networking Environment")的相關(guān)美國專利申請案中描述了關(guān)于LBFO模塊126在故障 恢復(fù)期間的功能性的更多細(xì)節(jié)。此相關(guān)專利申請案以引用的方式并入本文中。
基于前面提及的對負(fù)載平衡和故障轉(zhuǎn)移/故障恢復(fù)的論述,本發(fā)明可經(jīng)配置以在四 種模式下操作,每個(gè)模式有效地解決不同操作環(huán)境的需要。在第一操作模式下,使用散 列引擎128來轉(zhuǎn)移連接,以在不依賴于交換機(jī)的網(wǎng)絡(luò)環(huán)境(即,將計(jì)算裝置100的NIC 耦接到外部網(wǎng)絡(luò)的交換機(jī)不在802.3ad模式下操作的網(wǎng)絡(luò)環(huán)境)下執(zhí)行負(fù)載平衡和故障 轉(zhuǎn)移/故障恢復(fù)。在此實(shí)施例中,下文所描述的圖3和圖4的方法使用散列引擎128來 識(shí)別用于轉(zhuǎn)移連接以分別接收業(yè)務(wù)和傳輸業(yè)務(wù)的NIC。而且,此識(shí)別可作為負(fù)載平衡的 一部分而執(zhí)行,或作為將連接故障轉(zhuǎn)移到可靠NIC的一部分而執(zhí)行。重要的是,用于連 接的接收業(yè)務(wù)和傳輸業(yè)務(wù)可利用不同的NIC,除非所述連接被卸載,所述卸載會(huì)導(dǎo)致單 個(gè)NIC處理用于被卸載的連接的接收業(yè)務(wù)和傳輸業(yè)務(wù),如下文更詳細(xì)地描述。
在第二操作模式下,散列引擎128用于轉(zhuǎn)移連接以在不依賴于交換機(jī)的網(wǎng)絡(luò)環(huán)境下 對傳輸業(yè)務(wù)執(zhí)行負(fù)載平衡,但不用于對接收業(yè)務(wù)執(zhí)行負(fù)載平衡。重要的是,在此操作模 式下,散列引擎128不用于轉(zhuǎn)移連接以執(zhí)行故障轉(zhuǎn)移或故障恢復(fù)。因此,散列引擎128 可為連接上的傳輸業(yè)務(wù)選擇NIC,且可隨后修改所述選擇以對傳輸業(yè)務(wù)進(jìn)行負(fù)載平衡, 但通過操作系統(tǒng)所選擇的NIC來處理用于連接的接收業(yè)務(wù)。同樣,用于連接的接收業(yè)務(wù) 和傳輸業(yè)務(wù)可利用不同的NIC,除非所述連接被卸載,所述卸載會(huì)導(dǎo)致由操作系統(tǒng)選擇 的NIC處理用于被卸載的連接的接收業(yè)務(wù)和傳輸業(yè)務(wù),如下文更詳細(xì)地描述。
在第三操作模式下,散列引擎128用于轉(zhuǎn)移連接以在不依賴于交換機(jī)的網(wǎng)絡(luò)環(huán)境下 執(zhí)行故障轉(zhuǎn)移和故障恢復(fù),但不執(zhí)行負(fù)載平衡。由于在此實(shí)施例中,散列引擎128不轉(zhuǎn) 移連接以執(zhí)行負(fù)載平衡,所以由操作系統(tǒng)122選擇用來在所述連接上傳輸業(yè)務(wù)和接收業(yè) 務(wù)的NIC被維持。另外,LBFO模塊126可引導(dǎo)散列引擎128在NIC出現(xiàn)故障或變得不 可靠時(shí)對網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行故障轉(zhuǎn)移,并且引導(dǎo)散列引擎128在NIC回到完全起作用的狀態(tài) 時(shí)對業(yè)務(wù)進(jìn)行故障恢復(fù)。
在第四操作模式下,散列引擎128用于轉(zhuǎn)移連接以在依賴于交換機(jī)的網(wǎng)絡(luò)環(huán)境(即, 將計(jì)算裝置100的NIC耦接到外部網(wǎng)絡(luò)的交換機(jī)在802.3ad模式下操作的網(wǎng)絡(luò)環(huán)境)下 執(zhí)行傳輸業(yè)務(wù)而不是接收業(yè)務(wù)的負(fù)載平衡和故障轉(zhuǎn)移/故障恢復(fù)。重要的是,在依賴于 交換機(jī)的網(wǎng)絡(luò)環(huán)境下,交換機(jī)選擇計(jì)算裝置100中的哪一NIC接收用于連接的業(yè)務(wù)。因 此,散列引擎128不執(zhí)行接收業(yè)務(wù)的負(fù)載平衡或故障轉(zhuǎn)移/故障恢復(fù),但散列引擎128 可對傳輸業(yè)務(wù)進(jìn)行負(fù)載平衡,且LBFO模塊126可引導(dǎo)散列引擎128對傳輸業(yè)務(wù)進(jìn)行故 障轉(zhuǎn)移/故障恢復(fù)。然而,同樣,如果網(wǎng)絡(luò)連接被卸載在由交換機(jī)選擇用來接收用于連 接的業(yè)務(wù)的NIC上,那么散列引擎128選擇同一 NIC來傳輸用于所述連接的業(yè)務(wù),如 下文進(jìn)一步詳細(xì)描述。
圖2繪示根據(jù)本發(fā)明一個(gè)實(shí)施例基于向散列函數(shù)提供的參數(shù)而從散列表中選擇 MAC地址的方法步驟200的流程圖。盡管參考計(jì)算裝置IOO來描述所述方法,但所屬 領(lǐng)域的技術(shù)人員將了解,經(jīng)配置而以任何次序執(zhí)行所述方法步驟的任何系統(tǒng)都在本發(fā)明 的范圍內(nèi)。
如圖所示,從散列引擎128中的散列表中選擇MAC地址的方法開始于步驟202, 其中所述散列表內(nèi)的散列函數(shù)根據(jù)由所述散列函數(shù)接收到的參數(shù)來確定散列表索引。由 于用于創(chuàng)建和使用散列函數(shù)以基于向散列函數(shù)提供的參數(shù)來為所述散列表編索引的方 法是所屬領(lǐng)域的技術(shù)人員眾所周知的,所以本文將不再論述這些方法。應(yīng)注意,傳輸散 列函數(shù)接收到的參數(shù)(其作用是為傳輸散列表138編索引)可能不同于接收散列函數(shù)接 收到的參數(shù)(其作用是為接收散列表140編索引)。在本發(fā)明的一個(gè)實(shí)施例中,接收散 列函數(shù)接收遠(yuǎn)程計(jì)算裝置的IP地址,作為用于為接收散列表140編索引的參數(shù)。另外, 如果在聯(lián)網(wǎng)環(huán)境下利用VLAN技術(shù),那么傳輸散列函數(shù)接收遠(yuǎn)程計(jì)算裝置的IP地址、 用于遠(yuǎn)程計(jì)算裝置的TCP端口、用于計(jì)算裝置IOO的TCP端口以及VLANID,作為用 于為傳輸散列表138編索引的參數(shù)。在本發(fā)明的其它實(shí)施例中,接收散列函數(shù)和傳輸散 列函數(shù)可分別接收任何技術(shù)上可行的用于為接收散列表140和傳輸散列表138編索引的 參數(shù)。
在步驟204中,散列引擎128讀取對應(yīng)于在步驟202中識(shí)別出的散列表索引的散列 表?xiàng)l目。在步驟206中,散列引擎128確定在步驟204中讀取的散列表?xiàng)l目是否有效。 如果在步驟206中散列表?xiàng)l目有效,那么方法繼續(xù)到步驟208,其中散列引擎128選擇 存儲(chǔ)在被索引的散列表?xiàng)l目中的MAC地址。在步驟216中,散列引擎128將所選的 MAC地址返回到LBFO模塊126,且所述方法終止。
如果在步驟206中,在步驟204中讀取的散列表?xiàng)l目無效,那么所述方法繼續(xù)到步 驟210,其中散列引擎128識(shí)別適合傳送網(wǎng)絡(luò)業(yè)務(wù)的NIC。在一個(gè)實(shí)施例中,當(dāng)NIC的 利用率(作為所述NIC的傳輸能力或接收能力的百分比)低于計(jì)算裝置100中的其它 NIC的利用率時(shí),認(rèn)為所述NIC適合傳送網(wǎng)絡(luò)業(yè)務(wù)。在另一實(shí)施例中,當(dāng)NIC的出錯(cuò) 率低于計(jì)算裝置100中的其它NIC的出錯(cuò)率時(shí),認(rèn)為所述NIC適合傳送網(wǎng)絡(luò)業(yè)務(wù)。在 又一實(shí)施例中,NIC的利用率和出錯(cuò)率的經(jīng)加權(quán)的組合(相對于計(jì)算裝置100中的其它 NIC的利用率和出錯(cuò)率的經(jīng)加權(quán)的組合)可用來確定NIC是否適合傳送網(wǎng)絡(luò)業(yè)務(wù)。在步 驟212中,散列引擎128選擇在步驟210中識(shí)別的合適的NIC的MAC地址。在步驟214 中,散列引擎128將所選的MAC地址存儲(chǔ)在對應(yīng)于在步驟202中識(shí)別的散列表索引的 散列表?xiàng)l目中。
圖3A和圖3B說明根據(jù)本發(fā)明一個(gè)實(shí)施例的用于將連接轉(zhuǎn)移到被散列引擎128選 擇用來接收網(wǎng)絡(luò)業(yè)務(wù)的NIC的方法步驟300的流程圖。盡管參考計(jì)算裝置100描述了所 述方法,但所屬領(lǐng)域的技術(shù)人員將了解,經(jīng)配置而以任何次序執(zhí)行所述方法步驟的任何 系統(tǒng)都在本發(fā)明的范圍內(nèi)。
如圖所示,所述用于轉(zhuǎn)移連接的方法開始于步驟302,其中操作系統(tǒng)122收聽來自 遠(yuǎn)程計(jì)算裝置(未圖示)的ARP請求包。當(dāng)遠(yuǎn)程計(jì)算裝置啟動(dòng)連接以將數(shù)據(jù)傳輸?shù)接?jì) 算裝置100時(shí),遠(yuǎn)程計(jì)算裝置通過向耦接到本地網(wǎng)絡(luò)的計(jì)算裝置發(fā)送包含計(jì)算裝置100 的IP地址的ARP請求包,來請求計(jì)算裝置100的MAC地址。計(jì)算裝置100通過發(fā)送 包含計(jì)算裝置100的MAC地址的ARP響應(yīng)包來響應(yīng)ARP請求包。在接收到ARP響應(yīng) 包并對其進(jìn)行解碼之后,遠(yuǎn)程計(jì)算裝置立即可使用從ARP響應(yīng)包解碼的MAC地址來向 本地計(jì)算裝置100傳輸包。由于所述用于交換ARP請求包與ARP響應(yīng)包的方法是所屬 領(lǐng)域的技術(shù)人員眾所周知的,所以本文將不會(huì)論述這些方法。在步驟304中,操作系統(tǒng) 122確定在步驟302中是否接收到ARP請求包。如果操作系統(tǒng)122發(fā)現(xiàn)沒有接收到ARP 請求包,那么方法返回到步驟302,其中操作系統(tǒng)122繼續(xù)收聽ARP請求包。
然而,如果在步驟304中,操作系統(tǒng)122發(fā)現(xiàn)接收到了 ARP請求包,那么方法繼 續(xù)到步驟306到310,其中操作系統(tǒng)122響應(yīng)于接收到ARP請求包而產(chǎn)生ARP響應(yīng)包。 在步驟306中,操作系統(tǒng)122識(shí)別將通過其而接收用于連接的業(yè)務(wù)的NIC。僅出于論述 的目的,假定操作系統(tǒng)122選擇NIC IIO作為用于接收業(yè)務(wù)的NIC。在步驟308中,操 作系統(tǒng)122產(chǎn)生ARP響應(yīng)包,其包含NIC 110的MAC地址。在步驟310中,操作系統(tǒng) 122向NIC 110發(fā)送ARP響應(yīng)包。
在步驟312中,LBFO模塊126截取從操作系統(tǒng)122發(fā)送到NIC 110的ARP響應(yīng)包。 而且,LBFO模塊126經(jīng)配置以截取從操作系統(tǒng)122發(fā)送到由計(jì)算裝置IOO中的操作系 統(tǒng)122選擇的NIC的ARP響應(yīng)包,且修改這些ARP響應(yīng)包的MAC地址。如下文所陳 述,修改ARP響應(yīng)包以反映由散列引擎128所選擇的NIC的MAC地址允許LBFO模 塊126 (而不是操作系統(tǒng)122)控制哪一NIC接收來自遠(yuǎn)程計(jì)算裝置的包。因此,并入 至U ARP響應(yīng)包中的由散列引擎128作出的智能NIC選擇導(dǎo)致在由LBFO模塊126選擇 的NIC而不是在另一較不有利的NIC上接收對應(yīng)的連接。
在步驟314中,LBFO模塊126將截取的ARP響應(yīng)包解碼成多個(gè)組成部分,其中包 含ARP響應(yīng)包送交到其的遠(yuǎn)程計(jì)算裝置的IP地址。在步驟315中,LBFO模塊126確 定與ARP響應(yīng)包有關(guān)的連接是否存在且已經(jīng)被卸載到駐存在接收NIC上的硬件卸載引 擎。如果LBFO模塊126發(fā)現(xiàn)所述連接不存在,或所述連接存在但沒有卸載到駐存在接
收NIC上的硬件卸載引擎,那么所述方法繼續(xù)到步驟316,其中散列引擎128選擇MAC 地址。此選擇是基于LBFO模塊126將遠(yuǎn)程計(jì)算裝置的IP地址作為參數(shù)傳遞到散列引 擎128的,如先前上文在圖2中所描述。
在步驟318中,LBFO模塊126用選定的MAC地址來代替經(jīng)解碼的ARP響應(yīng)包中 由操作系統(tǒng)122選擇的MAC地址。在步驟320中,LBFO模塊126對選定的MAC地址 和經(jīng)解碼的ARP響應(yīng)包的其余組成部分進(jìn)行編碼,以形成ARP響應(yīng)包。在步驟322中, LBFO模塊將ARP響應(yīng)包傳輸?shù)竭h(yuǎn)程計(jì)算裝置,且所述方法終止。在一個(gè)實(shí)施例中,通 過對應(yīng)于選定MAC地址的NIC來傳輸ARP響應(yīng)包。
現(xiàn)返回到步驟315,如果LBFO模塊126發(fā)現(xiàn)與被截取的ARP響應(yīng)包有關(guān)的連接存 在且已經(jīng)被卸載到駐存在接收NIC上的硬件卸載引擎,那么所述方法繼續(xù)到步驟317。 在步驟317中,散列引擎128在繼續(xù)進(jìn)行到修改ARP響應(yīng)包、對所述包進(jìn)行編碼且傳 輸所述包(如先前上文在步驟318到322中所描述)之前,選擇接收NIC的MAC地址。
圖4A和圖4B繪示根據(jù)本發(fā)明一個(gè)實(shí)施例將連接轉(zhuǎn)移到由散列引擎128選擇用來 傳輸網(wǎng)絡(luò)業(yè)務(wù)的NIC的方法步驟400的流程圖。盡管參考計(jì)算裝置IOO描述所述方法, 但所屬領(lǐng)域的技術(shù)人員將了解,經(jīng)配置以用任何次序執(zhí)行所述方法步驟的任何系統(tǒng)都在 本發(fā)明的范圍內(nèi)。
如圖所述,所述用于轉(zhuǎn)移連接的方法開始于步驟402,其中操作系統(tǒng)122創(chuàng)建傳輸 包,其中包含由操作系統(tǒng)122選擇的NIC的MAC地址。舉例來說,應(yīng)用程序可請求操 作系統(tǒng)122創(chuàng)建傳輸包,作為計(jì)算裝置100與遠(yuǎn)程計(jì)算裝置(未圖示)之間正在進(jìn)行的 通信的一部分。僅出于論述的目的,假定操作系統(tǒng)122選擇NIC 110來將傳輸包發(fā)送到
遠(yuǎn)程計(jì)算裝置。
在步驟404中,操作系統(tǒng)122將在步驟402中創(chuàng)建的傳輸包發(fā)送到NIC 110。在步 驟406中,LBFO模塊126截取從操作系統(tǒng)122發(fā)送到NIC 110的傳輸包。如本文先前 所論述,LBFO模塊126經(jīng)配置以截取從操作系統(tǒng)122發(fā)送到由計(jì)算裝置100中的操作 系統(tǒng)122選擇的NIC的傳輸包,且修改被截取的傳輸包的MAC地址。同樣,修改傳輸 包以反映由散列引擎128選擇的NIC的MAC地址允許LBFO模塊126 (而不是操作系 統(tǒng)122)控制哪一NIC發(fā)送來自遠(yuǎn)程計(jì)算裝置的傳輸包。因此,由散列引擎128進(jìn)行的 智能NIC選擇導(dǎo)致在由LBFO模塊126選擇的NIC上而不是在另一較不有利的NIC上 傳輸包。
在步驟408中,LBFO模塊126對來自步驟406的傳輸包進(jìn)行解碼,以識(shí)別傳輸包 的一個(gè)或一個(gè)以上TCP/IP參數(shù)。在步驟410中,LBFO模塊126確定對應(yīng)于所述傳輸
包的連接是否已經(jīng)卸載到駐存在接收NIC上的硬件卸載引擎。同樣,如果連接已經(jīng)被卸 載到駐存在接收NIC上的硬件卸載引擎,那么用于所述連接的包有利地從駐存在接收 NIC上的硬件卸載引擎而不是從不同NIC上的軟件傳輸。因此,如果對應(yīng)于傳輸包的連 接已經(jīng)被卸載到駐存在接收NIC上的硬件卸載引擎,那么在步驟412中,散列引擎128 選擇接收NIC的MAC地址作為傳輸MAC地址。
在步驟416中,LBFO模塊126用傳輸MAC地址來代替經(jīng)解碼的源MAC地址,以 形成經(jīng)修改的經(jīng)解碼包。在步驟418中,LBFO模塊126將經(jīng)修改的經(jīng)解碼包編碼成傳 輸包。在步驟420中,LBFO模塊126通過對應(yīng)于傳輸MAC地址的NIC將傳輸包傳送 到遠(yuǎn)程計(jì)算裝置。
現(xiàn)返回到步驟410,如果對應(yīng)于傳輸包的連接尚未被卸載到駐存在接收NIC上的硬 件卸載引擎,那么方法繼續(xù)到步驟414。在步驟414中,散列引擎128使用在步驟408 中從傳輸包解碼的TCP/IP參數(shù)來從傳輸散列表138中選擇傳輸MAC地址,如上文在圖 2中所述。所述方法接著繼續(xù)進(jìn)行到步驟416到420,如上文所述。
圖5說明根據(jù)本發(fā)明一個(gè)實(shí)施例的用于將現(xiàn)存連接卸載到由散列引擎128選擇的 NIC的方法步驟500的流程圖。盡管參考計(jì)算裝置100來描述所述方法,但所屬領(lǐng)域的 技術(shù)人員將了解,經(jīng)配置以用任何次序執(zhí)行所述方法步驟的任何系統(tǒng)都在本發(fā)明的范圍 內(nèi)。
如圖所示,所述用于卸載現(xiàn)存連接的方法開始于步驟502,其中軟件驅(qū)動(dòng)器124啟 動(dòng)卸載現(xiàn)存連接的操作。軟件驅(qū)動(dòng)器124可在操作系統(tǒng)122的請求下或基于由軟件驅(qū)動(dòng) 器124執(zhí)行的某些處理操作而啟動(dòng)卸載操作。軟件驅(qū)動(dòng)器124可(例如)確定現(xiàn)存連接 是將由硬件卸載引擎來較好處理的高業(yè)務(wù)量連接。
在步驟504中,LBFO模塊126詢問散列引擎128以選擇新的NIC來接收與所述連 接相關(guān)聯(lián)的網(wǎng)絡(luò)業(yè)務(wù)。在步驟506中,散列引擎128使用接收散列表140來確定應(yīng)選擇 計(jì)算裝置100內(nèi)的哪一NIC和硬件卸載引擎來接收與所述連接相關(guān)聯(lián)的網(wǎng)絡(luò)業(yè)務(wù)。選定 的NIC和硬件卸載引擎可(例如)正運(yùn)載最小平均負(fù)載、具有最小數(shù)目的被卸載連接, 或可連接到最可靠的物理鏈路。在步驟508中,LBFO模塊126將接收NIC卸載到選定 NIC和硬件卸載引擎。
圖6說明根據(jù)本發(fā)明一個(gè)實(shí)施例的用于使用虛擬因特網(wǎng)協(xié)議地址來執(zhí)行地址解析協(xié) 議(ARP)請求的方法步驟600的流程圖。盡管參考計(jì)算裝置IOO來描述所述方法,但 所屬領(lǐng)域的技術(shù)人員將了解,經(jīng)配置以用任何次序執(zhí)行所述方法步驟的任何系統(tǒng)都在本 發(fā)明的范圍內(nèi)。
如圖所示,所述用于執(zhí)行地址解析協(xié)議請求的方法開始于步驟602,其中操作系統(tǒng) 122創(chuàng)建ARP請求包,其包含由操作系統(tǒng)122選擇用來接收與被建立的連接和計(jì)算裝置 100的IP地址相關(guān)聯(lián)的網(wǎng)絡(luò)業(yè)務(wù)的NIC的MAC地址??墒謩?dòng)地或通過自動(dòng)化的技術(shù)(例 如工業(yè)標(biāo)準(zhǔn)動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP))將IP地址指配給計(jì)算裝置100。 MAC地址可 對應(yīng)于由操作系統(tǒng)122認(rèn)出的默認(rèn)或首要NIC。在步驟604中,操作系統(tǒng)122將ARP 請求包發(fā)送到選定NIC。
在步驟606中,LBFO模塊126在ARP請求包被提供給選定NIC以供傳輸之前截 取所述ARP請求。在步驟608中,LBFO模塊126用由LBFO模塊126選擇的虛擬IP 地址來代替計(jì)算裝置100的IP地址,從而產(chǎn)生經(jīng)修改的ARP請求包。所述虛擬IP地址 應(yīng)為網(wǎng)絡(luò)內(nèi)未經(jīng)映射的IP地址。舉例來說,在具有在從10丄1.0到10丄1.255的范圍內(nèi) 的IP地址的網(wǎng)絡(luò)中, 一個(gè)IP地址(例如10丄1.254)可被網(wǎng)絡(luò)管理員保留作為虛擬IP 地址。在此實(shí)例中,接收ARP請求包的裝置可用新的MAC地址來更新用于虛擬IP地 址的本地ARP高速緩沖存儲(chǔ)器條目,從而避免破壞用于計(jì)算裝置100的IP地址的高速 緩沖存儲(chǔ)器條目??赏ㄟ^任何技術(shù)上可行的構(gòu)件(包含手動(dòng)配置)來建立虛擬IP地址 以供LBFO模塊126使用。在步驟610中,LBFO模塊126通過選定NIC將經(jīng)修改的 ARP請求包廣播給與計(jì)算裝置100附接到同一個(gè)網(wǎng)絡(luò)的一個(gè)或一個(gè)以上遠(yuǎn)程計(jì)算裝置。
圖6的方法允許LBFO模塊126在不涉及操作系統(tǒng)122的情況下管理多個(gè)NIC上的 ARP請求過程。另外,所述方法可用于避免破壞由接收經(jīng)修改的ARP請求包的遠(yuǎn)程計(jì) 算裝置維持的ARP高速緩沖存儲(chǔ)器。
所揭示的系統(tǒng)和方法的一個(gè)優(yōu)勢是它們允許使用散列引擎來在計(jì)算裝置中的多個(gè) NIC上智能地轉(zhuǎn)移網(wǎng)絡(luò)連接。可使用連接轉(zhuǎn)移來執(zhí)行負(fù)載平衡、故障轉(zhuǎn)移或故障恢復(fù)功 能。以此方式,可能更容易避免通過過載或不可靠的NIC來運(yùn)行網(wǎng)絡(luò)連接,從而改進(jìn)總 體網(wǎng)絡(luò)性能。另一優(yōu)勢是使用散列引擎來管理連接對于相應(yīng)NIC的連接指配允許有效地 確定哪一 NIC正處理每個(gè)連接,同時(shí)避免管理連接狀態(tài)的復(fù)雜且計(jì)算上昂貴的過程。
雖然前述內(nèi)容是針對本發(fā)明的實(shí)施例,但可在不脫離本發(fā)明的基本范圍的情況下, 設(shè)計(jì)本發(fā)明的其它和進(jìn)一步實(shí)施例。舉例來說,可在硬件或軟件中或在硬件與軟件的組 合中實(shí)施本發(fā)明的方面。本發(fā)明的一個(gè)實(shí)施例可實(shí)施為用于與計(jì)算機(jī)系統(tǒng)一起使用的程 序產(chǎn)品。所述程序產(chǎn)品的程序定義所述實(shí)施例(包含本文所述的方法)的功能,且可包 含在多種計(jì)算機(jī)可讀存儲(chǔ)媒體上。說明性計(jì)算機(jī)可讀存儲(chǔ)媒體包含(但不限于)(i) 上面可永久存儲(chǔ)有信息的非可寫存儲(chǔ)媒體(例如,計(jì)算機(jī)內(nèi)的只讀存儲(chǔ)器裝置,例如可
由CD-ROM驅(qū)動(dòng)器讀取的CD-ROM盤、快閃存儲(chǔ)器、ROM芯片或任何類型的固態(tài)非 易失性半導(dǎo)體存儲(chǔ)器);和(ii)上面存儲(chǔ)有可更改的信息的可寫存儲(chǔ)媒體(例如,磁盤 驅(qū)動(dòng)器內(nèi)的軟盤,或硬盤驅(qū)動(dòng)器,或任何類型的固態(tài)隨機(jī)存取半導(dǎo)體存儲(chǔ)器)。此類計(jì) 算機(jī)可讀存儲(chǔ)媒體在運(yùn)載指導(dǎo)本發(fā)明的功能的計(jì)算機(jī)可讀指令時(shí)是本發(fā)明的實(shí)施例。因 此,本發(fā)明的范圍由所附權(quán)利要求書來確定。
權(quán)利要求
1.一種用于智能地將網(wǎng)絡(luò)連接轉(zhuǎn)移到網(wǎng)絡(luò)接口卡(NIC)以用于傳輸網(wǎng)絡(luò)業(yè)務(wù)的方法,所述方法包括截取操作系統(tǒng)所產(chǎn)生的傳輸包,其中所述傳輸包包含與第一NIC相關(guān)聯(lián)的第一媒體接入控制(MAC)地址,所述第一NIC已被所述操作系統(tǒng)選擇用來傳輸與所述網(wǎng)絡(luò)連接有關(guān)的網(wǎng)絡(luò)業(yè)務(wù);對所述傳輸包進(jìn)行解碼;通過向散列函數(shù)提供所述經(jīng)解碼的傳輸包中所包含的一個(gè)或一個(gè)以上網(wǎng)絡(luò)參數(shù)來產(chǎn)生與第二NIC相關(guān)聯(lián)的第二MAC地址;以及用所述第二MAC地址來代替所述傳輸包中的所述第一MAC地址。
2. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括以下步驟對包含所述第二MAC地址 的所述傳輸包進(jìn)行編碼,以及將所述經(jīng)編碼的傳輸包傳輸?shù)竭h(yuǎn)程計(jì)算裝置。
3. 根據(jù)權(quán)利要求2所述的方法,其中所述第二 NIC而不是所述第一 NIC傳輸與所述 網(wǎng)絡(luò)連接有關(guān)的網(wǎng)絡(luò)業(yè)務(wù)。
4. 一種計(jì)算機(jī)可讀媒體,其所包含的指令在被執(zhí)行時(shí)使處理器通過執(zhí)行以下步驟來智 能地將網(wǎng)絡(luò)連接轉(zhuǎn)移到網(wǎng)絡(luò)接口卡(NIC)以用于傳輸網(wǎng)絡(luò)業(yè)務(wù)截取操作系統(tǒng)所產(chǎn)生的傳輸包,其中所述傳輸包包含與第一 NIC相關(guān)聯(lián)的第一 媒體接入控制(MAC)地址,所述第一 NIC己被所述操作系統(tǒng)選擇用來傳輸與所 述網(wǎng)絡(luò)連接有關(guān)的網(wǎng)絡(luò)業(yè)務(wù);對所述傳輸包進(jìn)行解碼;通過向散列函數(shù)提供所述經(jīng)解碼的傳輸包中所包含的一個(gè)或一個(gè)以上網(wǎng)絡(luò)參數(shù) 來產(chǎn)生與第二NIC相關(guān)聯(lián)的第二MAC地址;以及用所述第二 MAC地址來代替所述傳輸包中的所述第一 MAC地址。
5. 根據(jù)權(quán)利要求4所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包括以下步驟對包含所述第二 MAC地址的所述傳輸包進(jìn)行編碼,以及將所述經(jīng)編碼的傳輸包傳輸?shù)竭h(yuǎn)程計(jì)算裝置。
6. —種計(jì)算裝置,其經(jīng)配置以智能地將網(wǎng)絡(luò)連接轉(zhuǎn)移到網(wǎng)絡(luò)接口卡(NIC)以用于接 收網(wǎng)絡(luò)業(yè)務(wù),所述計(jì)算裝置包括處理器;操作系統(tǒng),其經(jīng)配置以響應(yīng)于接收到ARP請求包而產(chǎn)生傳輸包,其中所述傳輸 包包含與已被所述操作系統(tǒng)選擇用來傳輸與所述網(wǎng)絡(luò)連接有關(guān)的網(wǎng)絡(luò)業(yè)務(wù)的第一 NIC相關(guān)聯(lián)的第一媒體接入控制(MAC)地址;以及 負(fù)載平衡故障轉(zhuǎn)移(LBFO)模塊,其經(jīng)配置以 截取所述操作系統(tǒng)所產(chǎn)生的所述傳輸包; 對所述傳輸包進(jìn)行解碼;通過向散列函數(shù)提供所述經(jīng)解碼的傳輸包中所包含的一個(gè)或一個(gè)以上網(wǎng)絡(luò)參 數(shù)來產(chǎn)生與第二NIC相關(guān)聯(lián)的第二MAC地址;以及用所述第二 MAC地址來代替所述傳輸包中的所述第一 MAC地址。
7. 根據(jù)權(quán)利要求6所述的計(jì)算裝置,其中所述LBFO模塊進(jìn)--步經(jīng)配置以對包含所述 第二 MAC地址的所述傳輸包進(jìn)行編碼,并將所述經(jīng)編碼的傳輸包傳輸?shù)竭h(yuǎn)程計(jì)算 裝置。
8. 根據(jù)權(quán)利要求7所述的計(jì)算裝置,其中所述被提供到所述散列函數(shù)的一個(gè)或一個(gè)以 上網(wǎng)絡(luò)參數(shù)包含所述遠(yuǎn)程計(jì)算裝置的因特網(wǎng)協(xié)議(IP)地址、所述遠(yuǎn)程計(jì)算裝置的 傳輸控制協(xié)議(TCP)端口、以及傳輸計(jì)算裝置的TCP端口。
9. 根據(jù)權(quán)利要求8所述的計(jì)算裝置,其中所述被提供到所述散列函數(shù)的一個(gè)或一個(gè)以 上網(wǎng)絡(luò)參數(shù)還包含虛擬局域網(wǎng)識(shí)別符。
10. 根據(jù)權(quán)利要求6所述的計(jì)算裝置,其中所述LBFO模塊包含散列引擎,所述散列引 擎經(jīng)配置以基于由所述LBFO模塊提供的所述一個(gè)或一個(gè)以上網(wǎng)絡(luò)參數(shù)來確定散 列表索引,以及讀取對應(yīng)于所述散列表索引的散列表?xiàng)l目。
全文摘要
一種位于網(wǎng)絡(luò)裝置驅(qū)動(dòng)器中的散列引擎保存關(guān)于本地計(jì)算裝置內(nèi)每個(gè)網(wǎng)絡(luò)接口卡(“NIC”)的利用率和出錯(cuò)率的數(shù)據(jù)。根據(jù)此數(shù)據(jù),所述散列引擎基于從軟件驅(qū)動(dòng)器程序提供的各種聯(lián)網(wǎng)參數(shù)而智能地選擇傳輸NIC和接收NIC。從本地計(jì)算裝置中的操作系統(tǒng)發(fā)送到遠(yuǎn)程計(jì)算裝置的傳輸包被截取、修改并重新引導(dǎo)到由所述散列引擎選擇的傳輸NIC,以用于傳輸?shù)竭h(yuǎn)程計(jì)算裝置。類似地,由所述操作系統(tǒng)響應(yīng)于ARP請求包而發(fā)送的地址解析協(xié)議(“ARP”)響應(yīng)包被截取、修改并重新引導(dǎo)到由所述散列引擎選擇的接收NIC,以用于傳輸。通過以此方式選擇接收NIC和傳輸NIC,所述散列引擎能夠智能地對所述本地計(jì)算裝置中的傳輸和接收業(yè)務(wù)進(jìn)行負(fù)載平衡,從而相對于現(xiàn)有技術(shù)來改進(jìn)總體網(wǎng)絡(luò)性能。
文檔編號(hào)H04L29/08GK101350818SQ20081009889
公開日2009年1月21日 申請日期2008年5月19日 優(yōu)先權(quán)日2007年5月18日
發(fā)明者薩米爾·南達(dá), 諾曼·K·陳, 赫馬馬利尼·馬尼克瓦薩甘, 阿亞茲·阿卜杜拉, 阿南德·拉賈戈帕蘭, 阿舒托什·K·杰哈 申請人:輝達(dá)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1