Software defined network-based load balancing for physical and virtual networks
First Claim
1. A method of monitoring transmission of data in a network, comprising:
- receiving data packets for one or more data flows by at least one of a plurality of network switches;
sampling queue data in each of the plurality of network switches receiving the one or more data packets, the sampled queue data taken from at least one queue attached to a switch port to which the one or more data packets have been forwarded, wherein the sampling of queue data from the switch port is performed by the network switch that has the switch port;
encapsulating, by the network switch that performs the sampling, the sampled queue data in a control packet configured for communication between the plurality of network switches and a logically centralized network controller, the control packet configured to be used by the network controller to control switch configuration and routing; and
transmitting the control packet including the sampled queue data by each network switch to the network controller connected to the plurality of switches, the network controller configured to control the plurality of network switches, the network controller configured to determine whether a congestion, unfairness or Service Level Agreement (SLA) infringement condition exists in one or more switches based on the sampled queue data, the network controller configured to select a time period during which the congestion, unfairness or SLA infringement condition was detected, aggregate all of the sampled queue data that was sampled during the time period, and send a control message to all data flow sources responsible for the congestion, unfairness or SLA infringement condition, the control message setting a globally fair transmission rate for all data flows for which the congestion, unfairness or SLA condition was detected, the control message sent to each of the data flow sources so that all of the data flow sources responsible for the congestion, unfairness or SLA infringement condition receive the control message within a time interval that is smaller than the time period.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of monitoring transmission of data in a network is provided. The method includes: receiving data packets for one or more data flows by at least one of a plurality of network switches; sampling queue data in each of the plurality of network switches, the sampled queue data taken from at least one queue attached to a switch port to which the one or more data packets have been forwarded; and transmitting the sampled queue data to a logically centralized network controller connected to the plurality of switches, the network controller configured to control the plurality of network switches, the network controller configured to determine whether a congestion, unfairness or Service Level Agreement (SLA) infringement condition exists in one or more switches based on the sampled queue data and send a control message to one or more data flow sources based on the congestion, unfairness or SLA infringement condition.
151 Citations
25 Claims
-
1. A method of monitoring transmission of data in a network, comprising:
-
receiving data packets for one or more data flows by at least one of a plurality of network switches; sampling queue data in each of the plurality of network switches receiving the one or more data packets, the sampled queue data taken from at least one queue attached to a switch port to which the one or more data packets have been forwarded, wherein the sampling of queue data from the switch port is performed by the network switch that has the switch port; encapsulating, by the network switch that performs the sampling, the sampled queue data in a control packet configured for communication between the plurality of network switches and a logically centralized network controller, the control packet configured to be used by the network controller to control switch configuration and routing; and transmitting the control packet including the sampled queue data by each network switch to the network controller connected to the plurality of switches, the network controller configured to control the plurality of network switches, the network controller configured to determine whether a congestion, unfairness or Service Level Agreement (SLA) infringement condition exists in one or more switches based on the sampled queue data, the network controller configured to select a time period during which the congestion, unfairness or SLA infringement condition was detected, aggregate all of the sampled queue data that was sampled during the time period, and send a control message to all data flow sources responsible for the congestion, unfairness or SLA infringement condition, the control message setting a globally fair transmission rate for all data flows for which the congestion, unfairness or SLA condition was detected, the control message sent to each of the data flow sources so that all of the data flow sources responsible for the congestion, unfairness or SLA infringement condition receive the control message within a time interval that is smaller than the time period. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of monitoring transmission of data in a network, comprising:
-
receiving, by a centralized network controller, a control packet encapsulating sampled queue data from each of a plurality of network switches, the network controller configured to control the plurality of network switches, the sampled queue data taken from at least one queue attached to a switch port to which one or more data packets of a data flow have been forwarded, the sampling of queue data from the switch port performed by the network switch that has the switch port, the control packet configured to be used by the network controller to control switch configuration and routing; determining, by the network controller, whether a congestion, unfairness or Service Level Agreement (SLA) infringement condition exists in one or more network switches for one or more data flows based on the sampled queue data; and based on determining that the congestion, unfairness or SLA infringement condition exists for the one or more data flows, selecting a time period during which the congestion, unfairness or SLA infringement condition was detected, aggregating all of the sampled queue data that was sampled during the time period and sending a control message via a control packet to all data flow sources responsible for the congestion, unfairness or SLA infringement condition to reduce an amount of congestion, unfairness or SLA non-compliance in the network switch, the control message setting a globally fair transmission rate for all data flows for which the congestion, unfairness or SLA condition was detected, the control message sent to each of the data flow sources so that all of the data flow sources responsible for the congestion, unfairness or SLA infringement condition receive the control message within a time interval that is smaller than the time period. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. An apparatus for controlling a plurality of switches in a network, comprising:
-
a memory having computer readable computer instructions; and a processor for executing the computer readable instructions, the instructions including; receiving a control packet encapsulating sampled queue data from each of a plurality of network switches, the sampled queue data taken from at least one queue attached to a switch port to which one or more data packets of a data flow have been forwarded, the sampling of queue data from the switch port performed by each of the plurality of network switches that has the switch port, the control packet configured to be used to control switch configuration and routing; determining whether a congestion, unfairness or Service Level Agreement (SLA) infringement condition exists in one or more network switches for one or more data flows based on the sampled queue data; and based on determining that the congestion, unfairness or SLA infringement condition exists for the one or more data flows, selecting a time period during which the congestion, unfairness or SLA infringement condition was detected, aggregating all of the sampled queue data that was sampled during the time period, and sending a control message via a control packet to all data flow sources responsible for the congestion, unfairness or SLA infringement condition to reduce an amount of congestion, unfairness or SLA non-compliance in the network, the control message setting a globally fair transmission rate for all data flows for which the congestion, unfairness or SLA condition was detected, the control message sent to each of the data flow sources so that all of the data flow sources responsible for the congestion, unfairness or SLA infringement condition receive the control message within a time interval that is smaller than the time period. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A computer program product for monitoring transmission of data in a network, the computer program product comprising:
-
a non-transitory tangible storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising; receiving a control packet encapsulating sampled queue data from each of a plurality of network switches at a centralized network controller configured to control the plurality of network switches, the sampled queue data taken from at least one queue attached to a switch port to which one or more data packets of a data flow have been forwarded, the sampling of queue data from the switch port performed by each of the plurality of network switches that has the switch port, the control packet configured to be used by the network controller to control switch configuration and routing; determining whether a congestion, unfairness or Service Level Agreement (SLA) infringement condition exists in one or more network switches for one or more data flows based on the sampled queue data; and based on determining that a congestion, unfairness or SLA infringement condition exists for the one or more data flows, selecting a time period during which the congestion, unfairness or SLA infringement condition was detected, aggregating all of the sampled queue data that was sampled during the time period, and sending a control message via a control packet to all data flow sources responsible for the congestion, unfairness or SLA infringement condition to reduce an amount of congestion, unfairness or SLA non-compliance in the one or more network switches, the control message setting a globally fair transmission rate for all data flows for which the congestion, unfairness or SLA condition was detected, the control message sent to each of the data flow sources so that all of the data flow sources responsible for the congestion, unfairness or SLA infringement condition receive the control message within a time interval that is smaller than the time period. - View Dependent Claims (21, 22, 23)
-
-
24. A computer program product for monitoring transmission of data in a network, the computer program product comprising:
-
a non-transitory tangible storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising; receiving data packets for one or more data flows by at least one of a plurality of network switches; sampling queue data in each of the plurality of network switches receiving the one or more data flows, the sampled queue data taken from at least one queue attached to a switch port to which the one or more data packets have been forwarded, wherein the sampling of queue data from the switch port is performed by each of the plurality of network switches that has the switch port; encapsulating, by the network switch that performs the sampling, the sampled queue data in a control packet configured for communication between the plurality of network switches and a logically centralized network controller, the control packet configured to be used by the network controller to control switch configuration and routing; and transmitting the control packet including the sampled queue data by each network switch to the network controller connected to the plurality of switches, the network controller configured to control the plurality of network switches, the network controller configured to determine whether a congestion, unfairness or Service Level Agreement (SLA) infringement condition exists in one or more switches based on the sampled queue data, the network controller configured to select a time period during which the congestion, unfairness or SLA infringement condition was detected, aggregate all of the sampled queue data that was sampled during the time period, and send a control message to all data flow sources responsible for the congestion, unfairness or SLA infringement condition, the control message setting a globally fair transmission rate for all data flows for which the congestion, unfairness or SLA condition was detected, the control message sent to each of the data flow sources so that all of the data flow sources responsible for the congestion, unfairness or SLA infringement condition receive the control message within a time interval that is smaller than the time period. - View Dependent Claims (25)
-
Specification