Network switch load balancing
AssigneeNortel Networks Limited
InventorsDaniel Boudreau, J. Martin Borden, James A. Philippou, Shawn Mamros, Kerry M. Hannigan, John T. O'Hara, Bernard Farrell
Life of this patent
Estimating the term…
Abstract
The present invention is a method and apparatus to balance load in a cluster of switches in a network. The switches include a local switch and one or more remote switches. Messages containing load information of the switches are exchanged among the switches. One of the switches is selected to respond to a connection request to the local switch based on a metric.
Claims58
A method to balance load in a cluster of switches in a network, the switches including a local switch and one or more remote switches, the method comprising:
- exchanging messages among the switches, the messages including an advertise message sent at a refresh interval, the advertise message containing load information of the switches including at least one of a version number, a message type, the refresh interval, an authentication method, a source address, a public address, a checksum, a processor idle time, a free connection, and an authentication data, the exchanging the messages comprising:
- receiving the advertise message from a source switch, the advertise message containing the load information of the source switch including a switch attribute, the receiving an advertise message comprising:
- listening on a broadcast port, and
- processing the advertise message to extract the switch attribute, and storing the switch attribute in a peer table;
- and
- selecting one of the switches in response to a connection request to the local switch based on a metric;
- wherein processing the advertise message comprises:
- validating the checksum;
- authenticating the advertise message using the authentication method and the authentication data;
- validating the source address;
- validating at least one of the version number, the message type, and the refresh interval;
- setting a time-to-live (TTL) value using a predetermined maximum TTL value;
- and
- extracting the switch attribute.
A computer program product comprising:
- a computer usable medium having computer program code embodied therein to balance load in a cluster of switches in a network, the switches including a local switch and one or more remote switches, the computer program product having:
- computer readable program code for exchanging messages among the switches, the messages including an advertise message sent at a refresh interval, the advertise message containing load information of the switches including at least one of a version number, a message type, the refresh interval, an authentication method, a source address, a public address, a checksum, a processor idle time, a free connection, and an authentication data, the computer readable program code for exchanging messages comprising:
- computer readable program code for receiving the advertise message from a source switch, the advertise message containing the load information of the source switch including a switch attribute, the computer readable program code for receiving the advertise message comprising:
- computer readable program code for listening on a broadcast port,
- computer readable program code for processing the advertise message to extract the switch attribute, and
- computer readable program code for storing the switch attribute in a peer table;
- and
- computer readable program code for selecting one of the switches in response to a connection request to the local switch based on a metric;
- wherein the computer readable program code for processing the advertise message comprises:
- computer readable program code for validating the checksum;
- computer readable program code for authenticating the advertise message using the authentication method and the authentication data;
- computer readable program code for validating the source address;
- computer readable program code for validating at least one of the version number, the message type, and the refresh interval;
- computer readable program code for setting a time-to-live (TTL) value using a predetermined maximum TTL value;
- and
- computer readable program code for extracting the switch attribute.
The computer program product of claim 23 wherein the peer table contains a switch attribute of the destination switch.
- 25.The computer program product of claim 24 wherein the switch attribute includes at least one of a state, a time-to-live (TTL), value, a processor idle time, and a free connection.
The computer program product of claim 25 wherein the free connection includes a number of available sessions corresponding to a connection priority.
The computer program product of claim 25 further comprises:
- computer readable program code for updating the TTL value of the destination switch.
A computer data signal embodied in a carrier wave comprising:
- a load balancing code segment to balance load in a cluster of switches in a network, the switches including a local switch and one or more remote switches, the load balancing code segment having:
- a message exchange code segment for exchanging messages among the switches, the messages including an advertise message sent at a refresh interval, the advertise message containing load information of the switches including at least one of a version number, a message type, the refresh interval, an authentication method, a source address, a public address, a checksum, a processor idle time, a free connection, and an authentication data, the message exchange code segment comprising:
- a receive code segment for receiving the advertise message from a source switch, the advertise message containing the load information of the source switch, including a switch attribute, the receive code segment comprising:
- a listening code segment for listening on a broadcast port, and
- a processing code segment for processing the advertise message to extract the switch attribute, and
- a store code segment for storing the switch attribute in a peer table;
- and
- a switch selecting code segment for selecting one of the switches in response to a connection request to the local switch based on a metric;
- wherein the processing code segment comprises:
- a first validation code segment for validating the checksum;
- a first authentication code segment for authenticating the advertise message using the authentication method and the authentication data;
- a second validation code segment for validating the source address;
- a third validation code segment for validating at least one of the version number, the message type, and the refresh interval;
- a setting code segment for setting a time-to-live (TTL) value using a predetermined maximum TTL value;
- and
- an extracting code segment for extracting the switch attribute.
A system comprising:
- a processor;
- and
- a memory coupled to the processor, the memory including program code to balance load in a cluster of switches including a local switch and at least one remote switch, the program code, when executed by the processor, causing the processor to:
- exchange messages among the switches, the messages including an advertise message sent at a refresh interval, the advertise message containing load information of the switches, including at least one of a version number, a message type, the refresh interval, an authentication apparatus, a source address, a public address, a checksum, a processor idle time, a free connection, and an authentication data, the program code causing the processor to exchange messages comprising program code causing the processor to receive the advertise message from a source switch, the advertise message containing the load information of the source switch including a switch attribute;
- and program code causing the processor to store the switch attribute in a peer table, the program code causing the processor to receive comprising program code causing the processor to listen on a broadcast port, and process the advertise message to extract the switch attribute;
- and
- select one of the switches in response to a connection request to the local switch based on a metric;
- wherein the program code causing the processor to select one of the switches comprises program code causing the processor to validate the checksum, authenticate the advertise message using the authentication method and the authentication data, validate the source address, validate at least one of the version number, the message type, and the refresh interval, set a time-to-live (TTL) value using a predetermined maximum TTL value, and extract the switch attribute.
A system comprising:
- a plurality of switches including a local switch and a remote switch;
- and
- a load balancer coupled to the plurality of switches, the load balancer including:
- a message exchanger to exchange messages including an advertise message sent at a refresh interval, the advertise message containing load information among the plurality of switches including at least one of a version number, a message type, the refresh interval, an authentication apparatus, a source address, a public address, a checksum, a processor idle time, a free connection, and an authentication data, the message exchanger comprising:
- a receiver to receive the advertise message from a source switch, the advertise message containing the load information of the source switch including a switch attribute, the receiver comprising a listener to listen on a broadcast port, and a message processor to process the advertise message to extract the switch attribute, and a peer table coupled to the receiver to store the switch attribute;
- and
- a switch selector coupled to the message exchanger to select one of the plurality of switches in response to a connection request to the local switch based on a metric;
- wherein the message processor comprises a first validator to validate the checksum, a first authenticator to authenticate the advertise message using the authentication method and the authentication data, a second validator to validate the source address, a third validator to validate at least one of the version number, the message type, and the refresh interval, a setter to set a time-to-live (TTL) value using a predetermined maximum TTL value, and an attribute extractor to extract the switch attribute.
An apparatus to balance load in a cluster of switches in a network, the switches including a local switch and one or more remote switches, the apparatus comprising:
- a message exchanger to exchange messages among the switches, the messages including an advertise message sent at a refresh interval, the advertise message containing load information of the switches including at least one of a version number, a message type, the refresh interval, an authentication apparatus, a source address, a public address, a checksum, a processor idle time, a free connection, and an authentication data, the message exchanger comprising:
- a receiver to receive the advertise message from a source switch, the advertise message containing the load information of the source switch including a switch attribute, the receiver comprising a listener to listen on a broadcast port, and a message processor to process the advertise message to extract the switch attribute, and a peer table coupled to the receiver to store the switch attribute;
- and
- a switch selector coupled to the message exchanger to select one of the switches in response to a connection request to the local switch based on a metric;
- wherein the message processor comprises a first validator to validate the checksum, a first authenticator to authenticate the advertise message using the authentication method and the authentication data, a second validator to validate the source address, a third validator to validate at least one of the version number, the message type, and the refresh interval, a setter to set a time-to-live (TTL) value using a predetermined maximum TTL value, and an attribute extractor to extract the switch attribute.
Dependencies are inferred from the claim text.