Combining virtual local area networks and load balancing with fault tolerance in a high performance protocol
First Claim
1. In a server computer system adapted to have a plurality of network interface cards (NICs) coupled thereto, a method for sending and receiving data packets over a network of computer systems, said method comprising the computer-implemented steps of:
- a) addressing an outgoing data packet using a first media access control (MAC) address and a second MAC address, wherein said first MAC address is a virtual MAC address representing said plurality of NICs and wherein said second MAC address is a virtual MAC address corresponding to a virtual local area network (VLAN) that is a destination of said outgoing data packet;
b) selecting a first NIC from said plurality of NICs using a load balancing scheme;
c) verifying functionality of said first NIC using a fault tolerance scheme;
d) replacing said first MAC address in said outgoing data packet with a MAC address representing said first NIC and replacing said second MAC address in said outgoing data packet with an identifier corresponding to said VLAN; and
e) sending said outgoing data packet using said first NIC.
5 Assignments
0 Petitions
Accused Products
Abstract
A method to send and receive data packets over a network of computer systems (e.g., a plurality of virtual local area networks [VLANs] compliant with the IEEE 802.1Q standard) using a server computer system adapted to have a plurality of network interface cards (NICs) coupled thereto. An outgoing data packet is addressed using a first media access control (MAC) address, wherein the first MAC address is a virtual MAC address representing the plurality of NICs. A NIC is selected from the plurality of NICs using a load balancing scheme. The functionality of the selected NIC is verified using a fault tolerance scheme. The first MAC address in the outgoing data packet is replaced with a second MAC address, wherein the second MAC address represents the selected NIC. The outgoing data packet is then transmitted using the selected NIC. For an incoming data packet received at one of the plurality of NICs, the existing MAC address in the incoming data packet is replaced with the first MAC address. Thus, the present embodiment of the present invention provides a high performance method that supports multiple VLANs and elegantly combines a load balance scheme and a fault tolerance scheme into a software element implemented on a server computer system.
-
Citations
27 Claims
-
1. In a server computer system adapted to have a plurality of network interface cards (NICs) coupled thereto, a method for sending and receiving data packets over a network of computer systems, said method comprising the computer-implemented steps of:
-
a) addressing an outgoing data packet using a first media access control (MAC) address and a second MAC address, wherein said first MAC address is a virtual MAC address representing said plurality of NICs and wherein said second MAC address is a virtual MAC address corresponding to a virtual local area network (VLAN) that is a destination of said outgoing data packet;
b) selecting a first NIC from said plurality of NICs using a load balancing scheme;
c) verifying functionality of said first NIC using a fault tolerance scheme;
d) replacing said first MAC address in said outgoing data packet with a MAC address representing said first NIC and replacing said second MAC address in said outgoing data packet with an identifier corresponding to said VLAN; and
e) sending said outgoing data packet using said first NIC. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
f) receiving an incoming data packet at one of said plurality of NICs; and
g) replacing an existing MAC address in said incoming data packet with said first MAC address.
-
-
3. The method for sending and receiving data packets over a network of computer systems as recited in claim 1 wherein said step b) comprises:
selecting said first NIC based on a destination address specified in said outgoing data packet.
-
4. The method for sending and receiving data packets over a network of computer systems as recited in claim 1 wherein said step c) further comprises:
automatically switching from said first NIC to a second NIC when said fault tolerance scheme indicates said first NIC is not available.
-
5. The method for sending and receiving data packets over a network of computer systems as recited in claim 1 further comprising:
assigning a class of service priority to said outgoing data packet and placing said outgoing data packet in a queue according to said class of service priority.
-
6. The method for sending and receiving data packets over a network of computer systems as recited in claim 1 wherein said VLAN is compliant with the IEEE 802.1Q standard.
-
7. The method for sending and receiving data packets over a network of computer systems as recited in claim 1 wherein said outgoing data packet is configured according to Fast Internet Protocol (FIP).
-
8. The method for sending and receiving data packets over a network of computer systems as recited in claim 1 wherein said outgoing data packet is configured according to GARP (generic attributes registration protocol) multicast registration protocol (GMRP).
-
9. The method for sending and receiving data packets over a network of computer systems as recited in claim 1 wherein said outgoing data packet is configured according to GARP VLAN registration protocol (GVRP).
-
10. A server-side computer system comprising:
-
a bus;
a processor coupled to said bus; and
a computer-readable memory unit coupled to said bus;
said computer system adapted to have a plurality of network interface cards (NICs) coupled thereto;
said processor for performing a method for sending and receiving data packets over a network of computer systems, said method comprising the steps of;
a) addressing an outgoing data packet using a first media access control (MAC) address and a second MAC address, wherein said first MAC address is a virtual MAC address representing said plurality of NICs and wherein said second MAC address is a virtual MAC address corresponding to a virtual local area network (VLAN) that is a destination of said outgoing data packet;
b) selecting a first NIC from said plurality of NICs using a load balancing scheme;
c) verifying functionality of said first NIC using a fault tolerance scheme;
d) replacing said first MAC address in said outgoing data packet with a MAC address representing said first NIC and replacing said second MAC address in said outgoing data packet with an identifier corresponding to said VLAN; and
e) sending said outgoing data packet using said first NIC. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
f) receiving an incoming data packet at one of said plurality of NICs; and
g) replacing an existing MAC address in said incoming data packet with said first MAC address.
-
-
13. The computer system of claim 10 wherein said processor performs said method for sending and receiving data packets over a network of computer systems wherein said step b) comprises:
selecting said first NIC based on a destination address specified in said outgoing data packet.
-
14. The computer system of claim 10 wherein said processor performs said method for sending and receiving data packets over a network of computer systems wherein said step c) further comprises:
automatically switching from said first NIC to a second NIC when said fault tolerance scheme indicates said first NIC is not available.
-
15. The computer system of claim 10 wherein said processor performs said method for sending and receiving data packets over a network of computer systems further comprising:
assigning a class of service priority to said outgoing data packet and placing said outgoing data packet in a queue according to said class of service priority.
-
16. The computer system of claim 10 wherein said VLAN is compliant with the IEEE 802.1Q standard.
-
17. The computer system of claim 10 wherein said outgoing data packet is configured according to GARP VLAN registration protocol (GVRP).
-
18. The computer system of claim 10 wherein said outgoing data packet is configured according to GARP (generic attributes registration protocol) multicast registration protocol (GMRP).
-
19. A computer-usable medium having computer readable program code embodied therein for causing a server-side computer system adapted to have a plurality of network interface cards (NICs) coupled thereto to perform the steps of:
-
a) addressing an outgoing data packet using a first media access control (MAC) address and a second MAC address, wherein said first MAC address is a virtual MAC address representing said plurality of NICs and wherein said second MAC address is a virtual MAC address corresponding to a virtual local area network (VLAN) that is a destination of said outgoing data packet;
b) selecting a first NIC from said plurality of NICs using a load balancing scheme;
c) verifying functionality of said first NIC using a fault tolerance scheme;
d) replacing said first MAC address in said outgoing data packet with a MAC address representing said first NIC and replacing said second MAC address in said outgoing data packet with an identifier corresponding to said VLAN; and
e) sending said outgoing data packet using said first NIC. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
f) receiving an incoming data packet at one of said plurality of NICs; and
g) replacing an existing MAC address in said incoming data packet with said first MAC address.
-
-
23. The computer-usable medium of claim 19 wherein said computer-readable program code embodied therein causes a server-side computer system to perform the step of:
selecting said first NIC based on a destination address specified in said outgoing data packet.
-
24. The computer-usable medium of claim 19 wherein said computer-readable program code embodied therein causes a server-side computer system to perform the step of:
automatically switching from said first NIC to a second NIC when said fault tolerance scheme indicates said first NIC is not available.
-
25. The computer-usable medium of claim 19 wherein said computer-readable program code embodied therein causes a server-side computer system to perform the step of:
assigning a class of service priority to said outgoing data packet and placing said outgoing data packet in a queue according to said class of service priority.
-
26. The computer-usable medium of claim 19 wherein said VLAN is compliant with the IEEE 802.1Q standard.
-
27. The computer-usable medium of claim 19 wherein said outgoing data packet is configured according to GARP (generic attributes registration protocol) multicast registration protocol (GMRP).
Specification