Electrical computers and digital processing systems: multicomput – Computer network managing – Network resource allocating
Reexamination Certificate
1997-06-30
2002-05-21
Harrell, Robert B. (Department: 2152)
Electrical computers and digital processing systems: multicomput
Computer network managing
Network resource allocating
C709S239000, C370S230000, C370S359000, C370S419000, C370S463000, C710S200000, C707S793000, C714S004110
Reexamination Certificate
active
06393483
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to computer networks, and more particularly to software drivers used for controlling network interface cards.
2. Description of the Related Art
Computers are increasingly being coupled together into computer networks. In typical networks, hardware devices known as network interface cards (NICs) are used by computer systems to enable them to communicate over networks with other computer systems. Commonly, NICs are available as plug in devices that are connected to a computer's interface bus (e.g., PCI Bus), or are built directly into a computer's mother board. Traditionally, a computer's NIC enables communication over a single computer network, such as a Local Area Network (LAN), which may include a multitude of switches and network devices. Through these network devices, remote hosts are capable of communicating with other similarly connected remote hosts or to a server computer system. Through these networks, remote hosts are able to, for example, request data from a server computer system, and the server computer system is able to transfer the requested data to the requesting host over the network. In response to the increased demand for resources stored on networked server computers, many NICs are now capable of communicating over more than one network. In this manner, data stored on one server computer system may be accessed by hosts coupled to different networks (e.g., different LANs).
FIG. 1
is a graphical illustration of a server computer system
20
having a NIC
30
that is coupled to more than one local area network. In this example, NIC
30
is a single card having four ports, where each of the four ports is connected to a different network. As such, NIC
30
is connected to a LAN-1
10
, a LAN-2
12
, a LAN-3
14
and a LAN-4
16
, that enables an increased number of users to access data stored on server computer system
20
. In this arrangement, each port of NIC
30
is capable of processing received (Rx) data (and requests for data) from remote hosts in addition to transmitting (Tx) data to remote hosts connected to one of the LANs shown in FIG.
1
. Another traditional way of connecting server computer system
20
to multiple networks is to install a plurality of single port NICs (one for each network) to the interface bus of the server computer system
20
. As is the case in multiple port NICs, each port of each NIC is capable of performing receive and transmit functions over its dedicated NIC.
Because NIC
30
is responsible for providing the communication path between a multitude of remote hosts, the loading experienced by NICs installed on a server computer system
20
are far greater than the typical loads experienced by NICs installed on the individual remote hosts. By way of example, server computer system
20
typically receives a few short requests from the remote hosts and then responds by transmitting out a great deal of data to the requesting hosts. In addition, because NIC
30
is only able to transmit out to each network at a fixed bandwidth (e.g., about 10 Mbps/100 Mbps), the server computer system
20
will unfortunately be tied up responding to data transmit requests for extended periods of time.
Another common problem with conventional NICs is that access to server computer system
20
may be completely blocked-off to an entire network whenever one port fails to operate properly. By way of example, if port P
1
fails, all hosts connected to LAN-1
10
will be prevented from accessing data stored on server computer system
20
. As is well known, port failures are common, and are typically caused by network overloads, NIC software driver bugs, NIC link interface failures, and NIC hardware failures. In any event, when a failure occurs, a large number of users attempting to access or transfer data between the server computer system
20
will be unable to accomplish their networking task. Typically, when a NIC port (e.g., port P
1
) failure occurs, the server computer system
20
is typically shut down to all network traffic (i.e., LANs
10
,
12
,
14
, and
16
) while network technicians trouble shoot and fix the NIC port failure. Of course, network repairs may disable a network for several hours or even days.
As businesses continue to intensely network their operations, port failures will unfortunately lead to substantial losses in worker productivity. For example, many companies use a central server to network their employees that may be located in several remote office locations. As such, when the port servicing a particular office goes down, that entire office will be unable access shared data stored on the central server. NIC port failures are also common in large corporations such as, banks, hotel chains, and airlines that critically depend on real-time access to data stored on a central server computer. Consequently, NIC port failures are commonly to blame for significant yearly losses in revenue as well as lower customer satisfaction.
In view of the foregoing, there is a need for a network interface card(s) (NICs) that provide increased load balancing transmit throughput to networks connected to the NIC, while providing resilient backup capabilities that enable continuous data transferring connections when port failures occur. Further, there is a need for NIC software drivers to intelligently detect port failures and automatically redistribute data transfer loads over functioning NIC ports.
SUMMARY OF THE INVENTION
Broadly speaking, the present invention fills these needs by providing methods and apparatus for increasing throughput in a load balancing manner over a multi-port NIC. Each port of the multi-port NIC preferably has its own link to the network, hub, or switch, which enables the multi-port NIC to reconfigure automatically to recover from a port failure. The multi-port NIC, driven by a smart NIC driver preferably reconfigures the multi-port driver by redistributing the load (both transmit and receive) over the remaining active ports. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one embodiment, a process for driving a network interface card is disclosed. The process includes monitoring the status of a plurality of ports connected between a computer and a network. Detecting a failure in one of the plurality of ports connected to the network. Re-assigning data transmitted over the failed one of the plurality of ports to an active port of the plurality of ports selected in a round robin technique. The process further including receiving data over one of the plurality of ports designated as a primary receiving port. In a preferred embodiment, when the failed one of the plurality of ports is the primary receiving port, the receiving tasks are assigned to a next active port selected in a round robin technique.
In another embodiment, a method for transmitting and receiving data over a network from a server computer system is disclosed. The method includes connecting a plurality of ports between the server computer system and the network for communicating with a plurality of remote hosts coupled to the network. Transmitting a load of data through the plurality of ports to the plurality of remote hosts. Detecting a failure in one of the plurality of ports during a transmit to a selected one of the plurality of remote hosts. The method further includes redistributing the load of data assigned to the failed one of the plurality of ports to an available port of the plurality of ports. Preferably, data is received through one of the plurality of ports designated as a primary receiving port.
In yet a further embodiment, a computer readable media containing program instructions for driving a network interface card is disclosed. The computer readable media includes program instructions for monitoring a status of a plurality of
Kuhfeld Jim J.
Latif Faisal
Saya Suleman
Sharma Pramod
Adaptec, Inc.
Harrell Robert B.
Martine & Penilla LLP
Willett Stephan
LandOfFree
Method and apparatus for network interface card load... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for network interface card load..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for network interface card load... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2841946