专利名称:负载平衡的联网环境下的智能故障转移的制作方法
技术领域:
本发明的实施例大体上涉及网络通信,且更具体地说,涉及一种用于在负载平衡的 联网环境下对网络连接进行智能故障转移的系统和方法。
背景技术:
性能和可靠性是对现代计算机网络的关键要求。当计算装置上的网络接口 (NIC) 不再可靠时,所述NIC的联网性能可能会出现实质下降,可能下降到零。在这种情形下, 当代的解决方案是将网络连接从不可靠的NIC重新引导到同一计算装置上的其它可靠 NIC,这是一种被称为"故障转移"的技术。尽管故障转移可能会减轻存在不可靠NIC 的直接问题,但其余可靠NIC上的来自经过故障转移的连接的额外网络业务可能会导致 其余可靠NIC中的一者或一者以上变得过载,从而降低那些接口的性能。此外,其余可 靠NIC上的额外网络业务可能会实质上增加计算装置所执行的网络处理,从而降低计算 装置的性能。
正如前文所说明,此项技术中需要一种对到达一个或一个以上可靠NIC的网络连接 进行故障转移的技术,其降低了 NIC过载或其它可能削弱总体系统性能的现象的可能 性。
发明内容
本发明的一个实施例陈述一种在不依赖于交换机的网络环境下将网络连接从主机 软件模块卸载到故障转移网络接口卡(NIC)中所包含的第一硬件卸载引擎的方法。所
述方法包含以下步骤请求得到故障转移NIC的身份;从散列算法的输出确定故障转移 NIC的身份;设置第一硬件卸载引擎中所包含的第一受托连接表中的条目,其中所述条 目包含网络连接的连接状态;以及设置主机软件模块中所包含的连接表中的对应于所述
网络连接的硬件识别符,其中所述经设置的硬件识别符指示网络连接正通过第一硬件卸 载引擎而运行。
所揭示的方法的一个优点在于,当对网络连接进行故障转移时可能更容易避免例如 网络接口过载等问题,从而相对于现有技术改进了总体系统性能。
为了能更详细地了解本发明的上述特征,可通过参考实施例来获得上文简要概述的 本发明的更具体描述内容,附图中说明了所述实施例中的一些实施例。然而应注意的是, 附图仅说明本发明的典型实施例,且因此不应被认为是限制本发明的范围,因为本发明 可认可其它同等有效的实施例。
图1A和图1B说明其中可实施本发明的一个或一个以上方面的计算装置;
图2说明用于将网络连接从出现故障的NIC去卸载到软件的方法步骤的流程图3A和图3B说明用于在不依赖于交换机的网络环境下将网络连接从软件卸载到故 障转移NIC的方法步骤的流程图;以及
图4A和图4B说明在通过外部构件将网络连接移动到新的NIC时将网络连接卸载 到新的NIC的方法步骤的流程图。
具体实施例方式
可通过使用跟踪网络统计资料的散列引擎来实现从出现故障的NIC到一个或一个 以上操作NIC的网络连接的智能故障转移,所述统计资料包含不依赖于交换机(即,其 中将计算装置100的NIC耦接到外部网络的交换机不在802.3ad模式下操作的网络环境) 的网络环境下的连接数目和通过每个NIC传输和接收的业务的量。 一旦已检测到出现故 障或不可靠的NIC,就询问散列引擎以获得替代的NIC,所述替代的NIC可能利用不足, 或以其它方式能够容纳来自出现故障的NIC的连接。此询问允许由替代的NIC来处理 一个或一个以上额外的网络连接,而不会超出所述NIC的容量,从而避免可能会实质上 降低与NIC相关联的计算装置的网络性能的故障转移操作。可通过以下方式来实现额外 的网络性能益处从出现故障的NIC内的硬件卸载引擎去卸载所述连接,且随后将那些 连接卸载到一个或一个以上故障转移NIC内的硬件卸载引擎。
在本发明的另一实施例中,在计算装置外部执行对故障转移NIC的选择,可能在依 赖于交换机(即,其中将计算装置100的NIC耦接到外部网络的交换机在802.3ad模式 下操作的网络环境)的网络环境下是通过交换机,和在不依赖于交换机的网络环境下是 通过外部计算装置。由于此实施例中用于选择故障转移NIC的过程不同于不依赖于交换 机的环境下用于选择NIC的过程,所以单独考虑此实施例。此外,由于从将网络连接从 软件TCP/IP (传输控制协议和因特网协议)堆栈卸载到硬件卸载引擎得到的益处对所属 领域的技术人员来说是众所周知的,所以本文中将不论述这些问题。图1A和图IB说明其中可实施本发明的一个或一个以上方面的计算装置100。如图 所示,计算装置100包含主存储器102、存储器控制器104、微处理器106、 1/0控制器 108以及MC110, 118。 NIC 110包含多播列表116和硬件卸载引擎("HOE") 112,硬 件卸载引擎112进一步包含受托连接表("DCT") 114。 NIC 118包含多播列表124和 HOE 120, HOE 120进一步包含DCT 122。 HOE 112, 120包含经配置以用于处理与计算 装置IOO与一个或一个以上远程网络计算装置(未图示)之间的已选择性地卸载到NIC 110, 118的网络连接相关联的网络帧的逻辑。通过用NIC 110, 118中的逻辑来处理网 络帧(有时被称为"在硬件中处理连接"),而不是像常规做法那样在主机软件TCP/IP 堆栈中执行那些处理功能(有时被称为"在软件中处理连接"),可实质上减少NIC 110, 118与微处理器106之间的通信以及由微处理器106执行的计算。
DCT 114, 122经配置以包含多个受托连接表条目,其中每个条目对应于帧由包含 所述特定DCT的HOE处理的网络连接。在本发明的一个实施例中,每个DCT条目包 含每个受托连接的以下状态信息目的地(即远程计算装置)因特网协议("IP")地址、 目的地端口编号、源(计算装置100)端口编号和在硬件中运行所述受托连接所必需的 某一 TCP/IP连接状态。
存储器控制器104耦接到主存储器102且耦接到微处理器106,且I/O控制器108 耦接到微处理器106以及NIC 110, 118。在本发明的一个实施例中,微处理器106通过 将命令或数据写入到I/O控制器108中来将命令或数据传输到NIC 110, 118。 一旦将此 类命令或数据写入到I/O控制器108中,I/O控制器108就视情况将所述命令或数据翻 译成目标NIC可理解的格式,并将所述命令或数据传送到目标NIC。类似地,NIC 110, 118通过将命令或数据写入到I/O控制器108中来将命令或数据传输到微处理器106,且 I/O控制器108视情况将所述命令或数据翻译成微处理器106可理解的格式,并将所述 命令或数据传送到微处理器106。前面所提及的耦接可实施成存储器总线或I/O总线, 例如PCITM总线,或其任何组合,或者可另外以任何其它技术上可行的方式实施。
如图IB中更详细展示,主存储器102包含操作系统126和软件驱动器128。软件 驱动器128包含负载平衡和故障转移("LBFO")模块130和TCP/IP堆栈134。 LBFO 模块130跟踪每个NIC的联网状态(例如,通过监视每个NIC的链接状态、每个NIC 上的发送和接收错误的数目和/或是否每个NIC都在发送和接收保持有效的包),并在网 络业务正从出现故障的NIC移动到软件或从软件移动到故障转移NIC时与TCP/IP堆栈 134通信。LBFO模块130包含散列引擎132,其基于前面所提及的联网统计资料而智能 地确定网络连接应如何在计算装置100中的起不同作用的NIC上分布,如2007年5月18日申请的且序号为_______且代理人案号为NVDA/P00P001882的题为"负载平衡的
联网环境下的智能故障恢复(Intelligent Failback In a Load-Balanced Networking Environment)"的相关美国专利申请案中所描述。此相关专利申请案以引用的形式并入 本文中。TCP/IP堆栈134包含连接表136,连接表136包含多个连接表条目,其中每个 条目对应于计算装置100与远程计算装置之间的网络连接。在一个实施例中,每个连接 表条目包含每个连接的以下状态信息连接的目的地IP地址、目的地端口编号、源IP 地址、源端口编号和硬件识别符,以及足以处理丢失的包的TCP/IP状态等。重要的是, 特定连接的硬件识别符指示哪个HOE (如果存在的话)正在硬件中处理所述连接。在--个实施例中,可按常规将正在硬件中处理的每个连接的连接状态从负责处理所述连接的 HOE内的受托连接表复制到连接表136。举例来说,可使用反复计时器来复制状态信息。 以此方式,每个受托连接的连接状态的经更新的拷贝可保存在连接表136中,以供TCP/IP 堆栈134使用。
计算装置100可以是桌上型计算机、服务器、膝上型计算机、掌上型计算机、个人 数字助理、平板计算机、游戏控制台、蜂窝式电话或处理信息的任何其它类型的类似装 置。
图2说明根据本发明一个实施例的用于将网络连接从出现故障的NIC去卸载到软件 的方法步骤200的流程图。尽管参考计算装置100来描述所述方法,但所属领域的技术 人员将了解,任何经配置以执行所述方法步骤(以任何次序)的系统都在本发明的范围 内。
如图所示,用于去卸载网络连接的方法在步骤202处开始,其中LBFO模块130监 视每个NIC 110, 118的状态以寻找所述NIC之一出现故障或变得不可靠的指示。在一 个实施例中,当存在三种情况中的任一者时确定NIC已经出现故障或变得不可靠。第一, LBFO模块130可基于NIC的链接指示而确定对于所述NIC存在链接断开,这意味着网 络电缆已变得断开。第二, LBFO模块130可基于由NIC发送的包的数目与由所述包传 输到的远程计算装置确认的包的数目之间的比较,而确定所述NIC传输的实质数目或百 分比的包丢失了。第三,LBFO模块130可确定在计算装置100中的NIC 110, 118之间 传输的保持有效的包正被丢失。如2005年12月15日申请的且序号为11/303,285且代 理人案号为NVDA/P001879的题为"识别网络接口卡组内出现故障的网络接口卡的技术 (Technique for Identifying a Failed Network Interface Card within a Team of Network Interface Cards)"的相关美国专利申请案中所描述,可基于每个NIC正在如何传输和/ 或接收保持有效的包而识别出现故障的NIC。此相关专利申请案以引用的形式并入本文中。通过监视每个NIC以寻找这些类型的指示,LBFO模块130能够可靠地检测到出现 故障的或不可靠的NIC。
在步骤204中,LBFO模块130基于在步骤202中监视的指示来确定NIC是否已出 现故障或变得不可靠。如果LBFO模块130确定未出现故障,那么所述方法返回到步骤 202,其中LBFO模块130继续监视NIC 110, 118以寻找故障。
然而,如果发现NIC已出现故障或变得不可靠,那么所述方法进行到步骤206到 214,其中将通过所述NIC运行的连接去卸载到软件。仅出于论述的目的,假定NIC 110 巳出现故障。在步骤206中,LBFO模块130用信号通知TCP/IP堆栈134 NIC 110已出 现故障或巳变得不可靠。在步骤208中,LBFO模块用信号通知散列引擎132 NIC 110 已出现故障或变得不可靠,以避免向出现故障的NIC IIO指配任何新的连接。在接收到 这个信号后,散列引擎132立即调整其内部负载平衡算法,以便不向出现故障的NIC 110 指配新的连接。
在步骤210中,对于每个通过出现故障的NIC IIO运行的连接,出现故障的NIC的 HOE (例如,HOE 112)使DCT (例如,DCT 114)中对应于其连接的条目失效。在一 个实施例中,通过以下方式来使DCT条目失效TCP/IP堆栈134向HOE 112发送使 DCT条目失效的命令,HOE 112接收所述命令并使所述DCT条目失效,且HOE 112向 TCP/IP堆栈134确认这项操作的完成。在步骤212中,对于每个从出现故障的NIC 110 去卸载的连接,如果DCT 114中对于所述连接的连接状态不与连接表136中的连接状态 匹配,那么TCP/IP堆栈134将所述连接的连接状态从DCT 114复制到连接表136。在 步骤214中,对于每个从出现故障的NIC IIO去卸载的连接,TCP/IP堆栈134使连接表 136中的所述连接的硬件识别符失效。使硬件识别符失效指示所述连接正通过TCP/IP堆 栈134运行。重要的是, 一旦已在DCT 114中使连接的连接状态失效,且已在连接表 136中使连接的硬件识别符失效,此后就在软件中通过TCP/IP堆栈134而不是在硬件中 通过HOE 112来处理任何在所述连接上传输或接收到的包。 一旦已经以此方式将出现故 障的NIC 110上的所有连接从硬件去卸载到软件,所述方法就在步骤216中终止。
图3A和图3B说明根据本发明一个实施例的用于在不依赖于交换机的网络环境下将 网络连接从软件卸载到故障转移NIC的方法步骤的流程图。尽管参考计算装置100来描 述所述方法,但所属领域的技术人员将了解,任何经配置以执行所述方法步骤(以任何 次序)的系统都在本发明的范围内。
重要的是,在不依赖于交换机的网络环境下,LBFO模块130为每个去卸载到软件 的连接识别故障转移NIC,如上文在图2中所述。如图所示,在步骤302到312中描述用于将单个网络连接从软件卸载到故障转移 NIC的方法。在方法200中,针对每个去卸载到软件的连接重复这些步骤,使得所有被 去卸载的连接最终都从软件卸载到一个或一个以上故障转移NIC。在步骤302中,TCP/IP 堆栈134请求LBFO模块130识别应当向其卸载当前被去卸载连接的NIC。同样,如步 骤208中所论述,散列引擎132跟踪计算装置100中每个NIC的状态,并在NIC出现 故障或变得不可靠时调整其连接指配算法,以避免将任何新的或现有的连接卸载到所述 出现故障的或不可靠的NIC。在步骤304中,LBFO模块130询问散列引擎132,以识 别应向其卸载当前连接的合适的NIC。仅出于论述的目的,假定散列引擎132将故障转 移NIC 118识别为应向其卸载当前连接(其先前已经从出现故障的NIC 110去卸载)的 NIC。
在步骤306中,软件驱动器128将出现故障的NIC 110的MAC地址添加到故障转 移NIC 118的多播列表124,这允许故障转移NIC 118接收送交到出现故障的NIC 110 的MAC地址的包。在步骤308中,TCP/IP堆栈134指导故障转移NIC 118将获知包 (learning packet)发送到交换机。所述获知包可能是任何包含出现故障的NIC 110的MAC 地址的技术上可行的包类型。如众所周知,从故障转移NIC 118发送此包会导致交换机 对其自身进行重新配置,以便将以出现故障的NIC IIO的MAC地址为目的地的后续包 路由到故障转移NIC 118。因此,此后由故障转移NIC 118来接收与正被卸载到故障转 移NIC 118的当前连接有关的所有网络业务。如代理人案号为NVDA/P00P001882的相 关专利申请案中更详细地描述,这种方法的结果是来自特定的出现故障的NIC的所有连 接都被卸载到同一故障转移NIC。
在步骤310中,HOE 120设置DCT 122中对应于正被卸载的当前连接的连接状态。 而且,设置DCT条目中的连接状态包含设置其目的地IP地址、目的地端口编号、源端 口编号和正被卸载的连接的特定TCP/IP状态。在一个实施例中,通过以下方式设置DCT 条目TCP/IP堆栈134向HOE 120发送设置连接状态的命令,HOE 120接收所述命令 并设置连接状态,且HOE 120向TCP/IP堆栈134确认此操作的完成。在步骤312中, 对于正被卸载的连接,TCP/IP堆栈134将连接表136内的硬件识别符设置为代表故障转 移NIC 118的HOE 120的装置句柄。硬件识别符指示所述连接正通过HOE 120而运行。 重要的是,一旦将连接的硬件识别符设置为特定HOE的装置句柄,此后就通过所述HOE 在硬件中处理在所述连接上传输或接收的任何包。
在步骤314中,TCP/IP堆栈134确定是否已将出现故障的NIC 110的所有被去卸载 的连接都卸载到故障转移NIC。如果尚未将所有被去卸载的连接都卸载到故障转移NIC,那么方法返回到步骤302到312,其中将另一被去卸载的连接卸载到故障转移NIC。然 而,如果已将所有被去卸载的连接都卸载到故障转移NIC,那么所述方法在步骤316中 终止。
图4说明根据本发明一个实施例的用于在通过外部构件将网络连接移动到新的NIC 时将网络连接卸载到新的NIC的方法步骤的流程图。尽管参考计算装置100来描述所述 方法的,但所属领域的技术人员将了解,任何经配置以执行所述方法步骤(以任何次序) 的系统都在本发明的范围内。
如前所述,在至少两种情形下,当将连接从旧的NIC移动到新的NIC (即故障转移 NIC)时,可能会发生故障转移。 一种情形涉及依赖于交换机的网络环境,其中交换机 确定NIC已经出现故障或已变得不可靠,且因此将与所述出现故障或不可靠的NIC相 关联的一些或所有连接移动到一个或一个以上故障转移NIC。另一种情形涉及不依赖于 交换机的网络环境,其中将计算装置100针对一个连接接收到的包送交到除旧的NIC之 外的NIC (即新的/故障转移NIC)并由其接收。此处,网络中除计算装置100之外的某 个计算装置已主动将与所述连接相关联的包传输到新的NIC。在这两种情形下,当LBFO 模块130检测到正在除旧的NIC之外的NIC上接收到用于所述连接的包时,LBFO模块 130认识到已为所述连接选择了新的NIC。如下文中更详细地描述,LBFO模块130监 视NIC以寻找传入的包,确定传入的包是否指示被移动的连接,从旧的NIC去卸载所 述被移动的连接,并将所述被移动的连接卸载在新的NIC上。仅出于论述的目的,假定 NIC 110是旧的NIC。
如图所示,卸载网络连接的方法在步骤402处开始,其中LBFO模块130监视NIC 以寻找网络业务,如上文所述。在步骤404中,对于给定连接,LBFO模块130检测已 在新的NIC上而不是在旧的NIC 110上接收到的用于所述连接的包。同样,这可在至少 两种情形下发生。第一种情况是,在依赖于交换机的网络环境下,交换机检测出现故障 的或不可靠的NIC,并将连接移动到故障转移NIC。第二种情况是,在不依赖于交换机 的网络环境下,计算装置开始向除旧的NIC之外的NIC发送用于连接的包,所述用于 连接的包最初是在所述旧的NIC上接收到的。仅出于论述的目的,假定步骤404中识别 的新的NIC是NIC 118。在步骤406中,软件驱动器128将连接从旧的NIC 110去卸载 到软件,如上文先前相对于图2所描述。
在步骤408中,LBFO模块130将新NIC 118的身份传送到散列引擎132,这致使 散列引擎132针对新的NIC 118上的额外连接而更新其内部数据结构。在步骤410中, HOE 120设置DCT 122中对应于正被卸载到NIC 118的连接的连接状态。同样,设置DCT条目中的连接状态包含设置其目的地IP地址、目的地端口编号、源端口编号和正 被卸载的连接的特定TCP/IP状态。在一个实施例中,通过以下方式设置DCT条目 TCP/IP堆栈134向HOE 120发送设置连接状态的命令,HOE 120接收所述命令并设置 连接状态,且HOE 120向TCP/IP堆栈134确认此操作的完成。在步骤412中,对于正 被卸载的连接,TCP/IP堆栈134将连接表136内的硬件识别符设置为代表新的NIC 118 的HOE120的装置句柄,然后才返回到步骤402。同样,硬件识别符指示网络连接正通 过HOE 120而运行。如本文中先前所描述, 一旦将连接的硬件识别符设置为特定HOE 的装置句柄,此后就通过所述HOE在硬件屮处理在所述连接上传输或接收的任何包。
应注意的是,在与旧的NIC 110相关联的连接已经按照方法200被去卸载到软件之 后,但在所述连接按照方法400卸载到新的NIC之前,计算装置IOO可传输来自散列引 擎132临时选择的NIC上的软件的用于此连接的包。 一般来说,通过以下方式执行对临 时NIC的选择LBFO引擎130询问散列引擎132以获知当前传输性能处于这样的等级 的NIC:传输与额外连接相关联的包将不会实质上降级所述NIC上的现有连接的传输性 能。按照方法400, 一旦LBFO引擎130检测到已经在新的NIC上接收到与正在软件外 运行的被去卸载的连接相关联的包,如上文所述,就中断临时NIC上用于此连接的包的 传输,且将所述连接卸载到新的NIC,以便传输和接收包。
所揭示的方法的一个优点在于,当在不依赖于交换机的网络环境下对连接进行故障 转移时,使用散列引擎来智能地在计算装置100中起不同作用的NIC间分配网络业务可 相对于现有技术解决方案而实质上改进网络性能。所揭示的方法的另一优点在于,当将 网络连接移动到故障转移NIC时,将网络连接卸载到故障转移NIC可相对于现有技术 解决方案而实质上改进计算装置性能。
尽管前面的内容是针对本发明的实施例的,但可在不偏离本发明的基本范围的情况 下,设计本发明的其它和进一步实施例。本发明的范围由所附权利要求书确定。
权利要求
1.一种用于在不依赖于交换机的网络环境下将网络连接从主机软件模块卸载到故障转移网络接口卡(NIC)中所包含的第一硬件卸载引擎的方法,所述方法包括请求所述故障转移NIC的身份;从散列算法的输出确定所述故障转移NIC的所述身份;设置所述第一硬件卸载引擎中所包含的第一受托连接表中的条目,其中所述条目包含所述网络连接的连接状态;以及设置所述主机软件模块中所包含的连接表中的对应于所述网络连接的硬件识别符,其中所述经设置的硬件识别符指示所述网络连接正通过所述第一硬件卸载引擎而运行。
2. 根据权利要求1所述的方法,其中所述网络连接已从己出现故障或变得不可靠的第 二 NIC中所包含的第二硬件卸载引擎去卸载,且所述方法进一步包含向与所述故 障转移NIC相关联的多播列表添加与所述第二 NIC相关联的媒体接入控制(MAC) 地址的步骤。
3. 根据权利要求2所述的方法,其中所述向与所述故障转移NIC相关联的所述多播 列表添加与所述第二 NIC相关联的所述MAC地址允许所述故障转移NIC接收送 交到与所述第二 NIC相关联的所述MAC地址的包。
4. 根据权利要求1所述的方法,其进一步包括以下步骤在将所述网络连接从所述主 机软件模块卸载到所述故障转移NIC中所包含的所述第一硬件卸载引擎之前,将 所述网络连接从第二 NIC中所包含的第二硬件卸载引擎去卸载到所述主机软件模 块。
5. 根据权利要求4所述的方法,其中所述从所述第二 NIC中所包含的所述第二硬件 卸载引擎去卸载所述网络连接的步骤包含用信号通知所述第二NIC巳出现故障或变得不可靠;通知运行所述散列算法的散列引擎所述第二 NIC已出现故障或变得不可靠;使所述第二硬件卸载引擎中所包含的第二受托连接表中的条目失效,其中所述条目包含所述网络连接的连接状态;以及使所述主机软件模块中所包含的所述连接表中的对应于所述网络连接的硬件识 别符失效,其中所述失效的硬件识别符指示所述网络连接正通过所述主机软件模块而运行。
6. —种计算装置,其经配置以在不依赖于交换机的网络环境下将网络连接从联网协议 模块卸载到故障转移网络接口卡(NIC)中所包含的第一硬件卸载引擎,所述计算装置包括多个NIC,其包含所述故障转移NIC; 主机处理器;以及主机存储器,其耦接到所述主机处理器且经配置以存储软件驱动器,所述软件驱 动器具有包含散列引擎的负载平衡故障转移(LBFO)模块和包含连接表的所述联 网协议模块,其中所述联网协议模块经配置以从所述LBFO模块请求所述故障转移NIC的身份;所述LBFO模块经配置以从由所述散列引擎执行的散列算法的输出确定所述 故障转移NIC的所述身份;在获知所述故障转移NIC的所述身份后,所述联网协议模块进一步经配置以 传送到所述第一硬件卸载引擎以设置所述第一硬件卸载引擎中所包含的第一受 托连接表中的条目,其中所述条目包含所述网络连接的连接状态;所述第一硬件卸载引擎经配置以响应于来自所述联网协议模块的所述传送而 设置所述第一受托连接表中的所述条目;以及所述联网协议模块进一步经配置以设置所述连接表中对应于所述网络连接的 硬件识别符,其中所述经设置的硬件识别符指示所述网络连接正通过所述第一硬 件卸载引擎而运行。
7. 根据权利要求6所述的计算装置,其中所述多个NIC包含己出现故障或变得不可 靠的第二 NIC,且所述网络连接已从第二 NIC中所包含的第二硬件卸载引擎去卸 载,且所述软件驱动器经配置以向与所述故障转移NIC相关联的多播列表添加与 所述第二NIC相关联的媒体接入控制(MAC)地址。
8. 根据权利要求7所述的计算装置,其中所述向与所述故障转移NIC相关联的所述多播列表添加与所述第二 NIC相关联的所述MAC地址允许所述故障转移NIC接 收送交到与所述第二 NIC相关联的所述MAC地址的包。
9. 根据权利要求6所述的计算装置,其中所述多个NIC包含己出现故障或变得不可 靠的第二 NIC,且在将所述网络连接从所述联网协议模块卸载到所述故障转移NIC 中所包含的所述第一硬件卸载引擎之前,将所述网络连接从所述第二 NIC中所包 含的第二硬件卸载引擎去卸载到所述联网协议模块。
10. 根据权利要求9所述的计算装置,其中所述LBFO模块经配置以用信号通知所述联网协议模块所述第二 NIC已出现故 障或变得不可靠;所述LBFO模块进一步经配置以通知所述散列引擎所述第二 NIC已出现故障或 变得不可靠;所述联网协议模块经配置以传送到所述第二硬件卸载引擎以使所述第二硬件卸 载引擎中所包含的第二受托连接表中的条目失效,其中所述条目包含所述网络连接 的连接状态;所述第二硬件卸载引擎经配置以响应于来自所述联网协议模块的传送而使所述 第二受托连接表中的所述条目失效;以及所述联网协议模块进一步经配置以使所述连接表中对应于所述网络连接的所述 硬件识别符失效,其中所述失效的硬件识别符指示所述网络连接正通过所述联网协 议模块而运行。
全文摘要
本发明提供一种位于网络装置驱动器中的散列表,其保存关于计算装置内每个网络接口(NIC)的业务特性的数据。如果所述计算装置中的NIC中的一者变得不可靠,那么所述散列引擎中的成本函数允许软件驱动器启动在所述计算装置中的其余的可靠NIC间重新分配网络业务。使用这种散列引擎,所述软件驱动器能够以使网络业务在其余的可靠NIC上的分配最优化的方式,智能地将不可靠的NIC上的网络连接中的每一者重新引导到计算装置内的可靠NIC。或者,如果连接从旧的NIC移动到新的NIC,那么软件驱动器可检测被移动的连接,并将所述被移动的连接卸载到所述新的NIC上的硬件卸载引擎。通过此方法,当对网络连接进行故障转移时可更容易避免例如网络接口过载和计算装置性能降级等问题,从而相对于现有技术而改进总体系统性能。
文档编号H04L12/24GK101321085SQ20081009889
公开日2008年12月10日 申请日期2008年5月19日 优先权日2007年5月18日
发明者萨米尔·南达, 诺曼·K·陈, 赫马马利尼·马尼克瓦萨甘, 阿亚兹·阿卜杜拉, 阿南德·拉贾戈帕兰, 阿舒托什·K·杰哈 申请人:辉达公司