US8259736B2 - Selecting a path through a network - Google Patents

Selecting a path through a network Download PDF

Info

Publication number
US8259736B2
US8259736B2 US12/638,794 US63879409A US8259736B2 US 8259736 B2 US8259736 B2 US 8259736B2 US 63879409 A US63879409 A US 63879409A US 8259736 B2 US8259736 B2 US 8259736B2
Authority
US
United States
Prior art keywords
path
candidate paths
entropy
network
classes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US12/638,794
Other versions
US20110142056A1 (en
Inventor
Manoj Kumar Jain
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Priority to US12/638,794 priority Critical patent/US8259736B2/en
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MANOJ, KUMAR JAIN
Publication of US20110142056A1 publication Critical patent/US20110142056A1/en
Application granted granted Critical
Publication of US8259736B2 publication Critical patent/US8259736B2/en
Assigned to HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP reassignment HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • H04L47/724Admission control; Resource allocation using reservation actions during connection setup at intermediate nodes, e.g. resource reservation protocol [RSVP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • H04L47/762Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network

Definitions

  • Traffic engineering which is also known as tele-traffic engineering and traffic management, of a telecommunications network is often used to achieve performance objectives, such as optimization of network resources. Routing capacity and placement of traffic on particular links are examples of network resources for which optimization is often sought.
  • Traffic engineering over Multiprotocol Label Switching MPLS
  • MPLS traffic engineering is a growing implementation in today's service provider networks.
  • IGPs Interior Gateway Protocols
  • OSPF Open Shortest Path First
  • IS-IS Intermediate System-Intermediate System
  • RSVP-TE Resource reservation protocol-traffic engineering
  • constraint-based routing is designed to automatically compute paths subject to a set of constraints. Constraint-based routing assists in performance optimization of operational networks by automatically finding feasible paths that satisfy a set of constraints for traffic trunks. However, constraint-based routing does not provide administrative control to set up explicit paths. As such, in case of a network outage, re-computation of an optimized path is typically unavoidable, inefficient, and causes a performance penalty.
  • FIG. 1 shows a simplified block diagram of a multi-hop network, according to an embodiment of the present invention
  • FIG. 2 shows a simplified schematic diagram of a system for selecting a path through a network of nodes from a source device to a destination device, according to an embodiment of the present invention
  • FIG. 3A illustrates a flowchart of a method for selecting a path through a network, according to an embodiment of the present invention
  • FIG. 3B illustrates a flowchart of a method for performing an optimization process to select one or more paths through a network, according to an embodiment of the present invention.
  • FIG. 4 shows a block diagram of a computer system that may be used as a platform for an optimizer shown in FIG. 2 , according to an embodiment of the present invention.
  • a method and optimizer for selecting a path for data flow through a network of nodes from a source device to a destination device More particularly, the system and method disclosed herein are configured to select a path among a plurality of candidate paths for transmitting the data flow from the source device to the destination device. In addition, the selection of the path may be based upon the class of service/application to be provided in communicating the data from the source device to the destination device. As discussed in greater detail herein below, a mathematical model that describes the behavior of the nodes in terms of resources/routing capacity is developed and implemented in selecting the path. In addition, the current path is analyzed to determine whether it is optimal based upon a set of weighted constraints. Moreover, the flow demands of the current path and/or the optimized path are adapted and recomputed when new constraints are applicable.
  • data flow paths through a network of nodes may automatically be identified as conditions change in the network.
  • the method and optimizer disclosed herein enable for preferred class-based data flow paths to be identified in a relatively quick and efficient manner.
  • the optimization of explicit paths is flexible and provides administrative control.
  • a data flow includes communication of information over a network, which may be for one application or service.
  • Examples of types of data flows are Voice over Internet Protocol (VoIP), multiplayer game data, streaming video or audio, or bulk transfer of data.
  • VoIP Voice over Internet Protocol
  • the source and destination devices are configured to send or receive data flows via a path and data flows may pass through the path to the destination device or another network.
  • a path may be a multi-hop route from a source device to a destination device in a multi-hop network.
  • a signal moves or “hops” between multiple nodes before reaching a destination device.
  • the nodes in a multi-hop network are all connected to each other, the multi-hop network is considered to be a fully connected network.
  • a node is a network device, such as a router, hub, switch, a laptop, a mobile phone, a personal digital assistant (PDA), etc.
  • PDA personal digital assistant
  • the source device and the destination may also be considered as nodes.
  • the methods described herein are not limited to be applied only to a multi-hop network.
  • the methods may also be applied to other wired or wireless networks, such as wired or wireless telecommunications networks, Worldwide Inter-operability for Microwave Access (WiMax) networks, or other types of networks.
  • WiMax Worldwide Inter-operability for Microwave Access
  • FIG. 1 illustrates a simplified block diagram of a multi-hop network 100 , according to an example.
  • the multi-hop network 100 may include additional components and that some of the components described herein may be removed and/or modified without departing from a scope of the multi-hop network.
  • the multi-hop network 100 may include any number of nodes, source devices, and network devices.
  • the multi-hop network 100 may be connected to an access network or any wide area network (WAN) or other network.
  • WAN wide area network
  • the multi-hop network 100 includes a source device 102 , multiple nodes 103 a - 103 d , and a destination device 104 .
  • the source device 102 and the destination device 104 may also comprise nodes in the multi-hop network 100 , as they may be intermediate nodes for forwarding data flows to other source devices or destination devices in or outside of the network 100 .
  • the source device 102 may receive data from another network device or may originate a data flow, such as a VoIP call, to be communicated to the destination device 104 .
  • the source device 102 may send the data to the destination device 104 via different combinations of nodes 103 a - 103 d , as graphically depicted by the arrows in FIG. 1 .
  • Each of the different combinations of nodes 103 a - 130 d is associated with a different behavioral characteristic as discussed below.
  • the nodes 103 a - 103 d may be equipped with interfacing components/software to interface with the source device 102 , the destination device 104 , other nodes located within and/or outside of the multi-hop network 100 .
  • the destination device 104 may include an end user device, such as a laptop, cellular telephone, etc.
  • the source device 102 is configured to send different types of data to the destination device 104 via different combinations of nodes 103 a - 103 d or paths.
  • a first type of data flow may be communicated from the source device 102 , to a first node 103 a , and then to a second node 103 b prior to reaching the destination device 104 .
  • a second type of data flow may be communicated from the source device, to the first node 103 a , and then to a fourth node 103 d prior to reaching the destination device 104 .
  • the paths for different types of data flows (classes) may be selected to substantially optimize the communication of that type of data flow (class) between the source device 102 and the destination device 104 .
  • FIG. 2 there is shown a simplified schematic diagram of a system 200 for selecting a path through a network of nodes from a source device to a destination device, according to an example.
  • the system 200 may include additional elements and that some of the elements described herein may be removed and/or modified without departing from the scope of the system 200 .
  • some of the functionalities of the modules discussed herein may be performed by a fewer or larger number of modules and may also be performed by a single module.
  • the system 200 includes an optimizer 202 , which may comprise software, firmware, and/or hardware and is configured to select one or more paths through a network of nodes from a source device 102 to a destination device 104 .
  • the optimizer 202 is generally configured to identify per hop behaviors (PHBs) of the nodes, to derive a path entropy for each of a plurality of candidate paths based upon the PHBs of the nodes, and to select one of the plurality of candidate paths to communicate data from the source device 102 to the destination device 104 based on the entropies of the candidate paths.
  • PHBs per hop behaviors
  • the PHBs of the nodes define the quantized behavior characteristics for a class of service/application.
  • Equation (1) represents per class quantized hop behavioral characteristic.
  • PHB (ci) is the PHB of the ith class
  • B is a maximum percent (%) reserved link bandwidth for the ith class
  • Ci is a cost of the path for the ith class to utilize the path
  • Wi is an administrative controlled preferred weight for the ith class.
  • the administrative controlled preferred weight is a predefined path preference for the ith class.
  • a class is a class of service/application for differentiating a plurality of different data flows.
  • the path entropy for a candidate path is the cumulative sum of PHBs per class along the candidate path between a source device and a destination device.
  • each of the plurality of candidate paths includes a maximum path entropy and a used path entropy.
  • the maximum path entropy in a particular path is the highest path entropy attainable for that particular path.
  • the used path entropy in a particular path is the currently used entropy for that particular path. Thus, the used path entropy cannot exceed the maximum path entropy for the same path.
  • the maximum path entropy may be defined as the maximum capacity of a virtual pipe for a class (path between the source device and the destination device) and the used path entropy is the data flow through the virtual pipe.
  • the maximum path entropy and the used path entropy for a particular path and class may be defined as:
  • Equations (2) and (3) the ci represents a particular class and n represents the total number of hops along the path.
  • the optimizer 202 is depicted as including an input module 204 , a per hop behavior (PHB) identifier module 206 , a path entropy generator module 208 , an optimization module 210 , a path selection module 212 , and an output module 214 .
  • the modules 204 - 214 are designed to perform various functions in the optimizer 202 .
  • the optimizer 202 may be stored on a computer readable storage medium and may be executed or implemented by a computing device processor (not shown).
  • the modules 204 - 214 may comprise software modules or other programs or algorithms configured to perform the functions described herein below.
  • the optimizer 202 comprises firmware and/or hardware
  • the optimizer 202 may comprise a circuit or other apparatus configured to perform the functions described herein below.
  • the modules 204 - 214 may comprise one or more of software modules and hardware modules configured to perform these functions.
  • the input module 204 may receive input from a network management software (NMS) or from a network node manager (NNM) (not shown).
  • NMS network management software
  • NVM network node manager
  • the input module 204 is configured to receive data related to traffic trunk attributes, such as an ingress node (ex: source), an egress node (ex: destination), all the possible paths between the source and the destination, number of hops on a particular path, and classes to be supported by each node. Examples of classes are C 0 through C 7 classes as defined in the DiffServ or MPLS traffic engineering.
  • the input module 204 is configured to receive data related to per hop attributes, such as a bandwidth, classes allowed in a particular hop, a maximum reserveable bandwidth per class, which may be a certain percentage of a total bandwidth, cost of the path for a class, etc.
  • the data received through the input module 204 may be stored in a data store 220 , which the optimizer 202 may access in performing various functions discussed below.
  • the data store 220 may comprise volatile and/or non-volatile memory, such as DRAM, EEPROM, MRAM, flash memory, and the like.
  • the data store 220 may comprise a device configured to read from and write to a removable media, such as, a floppy disk, a CD-ROM, a DVD-ROM, or other optical or magnetic media.
  • the PHB identifier module 206 is configured to derive PHBs of the nodes for one or more different classes, for instance, based upon the information received through the input module 204 discussed above. Each of the one or more different classes is a class of service for differentiating a plurality of different data flows.
  • the PHB identifier module 206 is configured to identify a total bandwidth of the path, cost of the path for one or more different classes to use the path, and a preferred weight for one or more different classes.
  • An example of a cost of the path may include an economic cost or a monetary value associated with using the path.
  • the preferred weight is a predefined path characteristic for each of the one or more different classes. For example, referring to FIG.
  • a first path may have the shortest delay
  • a second path may have the least loss rate
  • a third path may have the highest bandwidth.
  • the delay, loss rate, and bandwidth are path characteristics and the shortest delay, the least loss rate, and the highest bandwidth are predefined path characteristics for different classes.
  • the preferred weight is a quantized multiplier that considers all path characteristics or some more attributes and may create a fixed weight factor for the path characteristics. For example, in a real-time application of VoIP, which has constraints of a shortest delay, a minimum loss rate, and an expedite forwarding may be given a factor of 10, while a backup service with an assured forwarding may be given a factor of 1. These are two extreme classes of path characteristics and the path characteristics may thus have preferred weights that fall in between these two values.
  • the path entropy generator module 208 is configured to derive a path entropy for each of multiple candidate paths through the network between the source device and the destination device based on the identified PHBs of the nodes for each of a plurality of classes.
  • the path entropy generator module 208 is also configured to identify a ratio of the used path entropy and the maximum path entropy for each of the classes, and then determine if the ratio exceeds a preset threshold value.
  • the path entropy generator module 208 is further configured to start an optimization process to optimize the path through the network from the source device to the destination device based on one or more constraints of the network, such as a bandwidth or latency, in response to the ratio exceeding the preset threshold value. For example, the optimization process may be initiated when the used path entropy becomes a pre-determined percentage (%) of the maximum path entropy.
  • the path entropy for each of the multiple candidate paths is derived by measuring a cumulative PHB of the different classes for each of the multiple candidate paths. Candidate paths having higher path entropies are preferred over candidate paths having lower path entropies.
  • the optimization module 210 is configured to construct a trunk optimization table based on the maximum path entropies, the used path entropies, and the ratio of the used path entropies and the maximum path entropies.
  • the optimization module 210 is configured to construct the trunk optimization table for the various classes of services and to also include administratively defined flow control characteristics of class of service/application.
  • the trunk optimization table may include a column that lists the classes, a column that lists the maximum path entropies, a column that lists the used path entropies, and a column that lists the flow control characteristics.
  • the paths may be arranged in the trunk optimization table by the entropy order of the paths for each of the classes.
  • the optimization module 210 is configured to identify all of the possible paths between two points, for instance, from topology details available from the NMS. In addition, the optimization module 210 is configured to evaluate the maximum and the used entropies for each of the paths for each of the classes, which have been determined by the path entropy generator module 208 . Moreover, the optimization module 210 is configured to generate the trunk optimization table to categorize each of the paths with increasing entropy order in the N classes. According to a particular example, the N classes may be equal to eight classes. In addition, the optimization module 210 may prioritize each of the plurality of candidate paths in increasing order of the ratio of the used path entropy and the maximum path entropy for a class.
  • the optimization module 210 is further configured to update the trunk optimization table based on the constraints on the network.
  • the optimization module 210 is configured to identify suitable candidate paths from the trunk optimization table based on the ratio of the used path entropy and the maximum path entropy for the different classes. For example, when the ratio of the used path entropy and the maximum path entropy for a path and class is below the preset threshold, the path may be determined as a suitable candidate path for the class.
  • the path selection module 212 is configured to select one of the candidate paths to communicate data of a particular class from the source device to the destination device, based on the entropies of the candidate paths.
  • the path selection module 212 is also configured to map different data flows on the selected different candidate paths based on the entropies of the candidate paths.
  • the path selection module 212 is configured to find one or more paths that satisfy the constraints of the network from the trunk optimization table, and to assign different data flows for the one or more paths.
  • the path selection module 212 is further configured to select a candidate path for a class among the multiple candidate paths using a resource reservation protocol-traffic engineering (RSVP-TE), which provides connection oriented predicted service over packet network.
  • RSVP-TE resource reservation protocol-traffic engineering
  • the path selection module 212 stores the selected candidate paths in the data store 220 .
  • the path selection module 212 employs the output module 214 to output the selected candidate paths to a computing device, a display screen, etc.
  • the path selection module 212 outputs the selected paths to the nodes on a network to cause the data to be communicated through the selected paths.
  • the descriptions of the methods 300 and 330 are made with reference to the optimizer 202 illustrated in FIG. 2 , and thus makes reference to the elements cited therein. It should, however, be understood that the methods 300 and 330 are not limited to the elements set forth in the optimizer 202 . Instead, it should be understood that the methods 300 and 330 may be practiced by a system having a different configuration than that set forth in the optimizer 202 .
  • a controller such as a processor (not shown), may implement or execute the optimizer 202 to perform one or more of the steps described in the methods 300 and 330 in selecting a path through a network of nodes from a source device to a destination device.
  • PHBs per hop behaviors
  • a path entropy for each of a plurality of candidate paths through the network between the source device and the destination device are derived based on the identified PHBs.
  • a maximum path entropy and a used path entropy for each of the plurality of candidate paths may be identified.
  • a ratio of the used path entropy and the maximum path entropy may further be identified.
  • an optimization process to identify an optimized path through the network between the source device 102 and the destination device 104 may be run.
  • the optimization process may be initiated in response to the ratio of the used path entropy and the maximum path entropy exceeding the preset threshold. Otherwise, the current path may be used to communicate data from the source device 102 to the destination device 104 since there may not be a significant benefit in changing the path.
  • one of candidate paths to communicate data from the source device 102 to the destination device 104 is selected based upon the entropies of the candidate paths.
  • the path having the highest entropy may be selected for communication of the data.
  • the selection of the path may be based upon the class of service to be provided by the nodes.
  • the path for a particular class having the highest entropy may be selected for communication of the data.
  • FIG. 3B there is shown a flow diagram of a method 330 for performing an optimization process to select one or more paths to communicate data from the source device to the destination device based on the entropies and the classes of the candidate paths through a network, according to an example.
  • the steps outlined in the method 330 are a more detailed discussion of step 306 in FIG. 3A .
  • an optimization process to optimize the path based on one or more constraints of the network is started.
  • the optimization process may start in response to the ratio of the used path entropy and the maximum path entropy exceeding the preset threshold for one or more of the candidate paths.
  • a trunk optimization table is constructed to include classes of services, maximum path entropies, used path entropies, and preferences associated with each of the possible paths between the source device 102 and the destination device 104 .
  • the trunk optimization table is updated based on the one or more constraints of the network.
  • the trunk optimization table may be updated to update the constraints of the network in the trunk optimization table.
  • a traffic demand may be updated and mapped on available network resources.
  • a class of service such as a VoIP service may need to have more bandwidth as the threshold of its usage has been exceeded. Thus, more bandwidth to the VoIP service may be reserved and instead, a lower class of service, such as a backup service may be unreserved. This is controlled by the flow control attribute of path preference in the trunk optimization table.
  • candidate paths are arranged in the trunk optimization table based upon the entropies of the paths.
  • the candidate paths are arranged according to the entropies of each of the classes.
  • the paths having the highest entropies may be listed higher in the trunk optimization table as compared with paths having the lower entropies.
  • one of the candidate paths among the multiple candidate paths is selected based on the entropies of the candidate paths.
  • the candidate path through which data is communicated from the source device to the destination device may also be selected based on a resource reservation protocol-traffic engineering (RSVP-TE), which provides connection oriented predicted service over packet network.
  • RSVP-TE resource reservation protocol-traffic engineering
  • Some or all of the operations set forth in the methods 300 and 330 may be contained as a utility, program, or subprogram, in any desired computer accessible medium.
  • the methods 300 and 330 may be embodied by computer programs, which can exist in a variety of forms both active and inactive. For example, they may exist as software program(s) comprised of program instructions in source code, object code, executable code or other formats. Any of the above may be embodied on a computer readable medium, which include storage devices.
  • Exemplary computer readable storage devices include conventional computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. Concrete examples of the foregoing include distribution of the programs on a CD ROM or via Internet download. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
  • FIG. 4 illustrates a block diagram of a computing apparatus 400 configured to implement or execute the optimizer 202 depicted in FIG. 2 , according to an example.
  • the computing apparatus 400 may be used as a platform for executing one or more of the functions described hereinabove with respect to the optimizer 202 .
  • the computing apparatus 400 includes a processor 402 that may implement or execute some or all of the steps described in the methods 300 and 330 . Commands and data from the processor 402 are communicated over a communication bus 404 .
  • the computing apparatus 400 also includes a main memory 406 , such as a random access memory (RAM), where the program code for the processor 402 , may be executed during runtime, and a secondary memory 408 .
  • the secondary memory 408 includes, for example, one or more hard disk drives 410 and/or a removable storage drive 412 , representing a floppy diskette drive, a magnetic tape drive, a compact disk drive, etc., where a copy of the program code for the methods 300 and 330 may be stored.
  • the removable storage drive 410 reads from and/or writes to a removable storage unit 414 in a well-known manner.
  • User input and output devices may include a keyboard 416 , a mouse 418 , and a display 420 .
  • a display adaptor 422 may interface with the communication bus 404 and the display 420 and may receive display data from the processor 402 and convert the display data into display commands for the display 420 .
  • the processor(s) 402 may communicate over a network, for instance, the Internet, LAN, etc., through a network adaptor 424 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

In a method for selecting a path through a network of nodes from a source device to a destination device, per hop behaviors (PHB) of the nodes is identified and a path entropy for a plurality of candidate paths through the network between the source device and the destination device are derived based upon the PHBs of the nodes. In addition, one of the plurality of candidate paths is selected to communicate data from the source device to the destination device based on the path entropies of the plurality of candidate paths.

Description

BACKGROUND
Traffic engineering, which is also known as tele-traffic engineering and traffic management, of a telecommunications network is often used to achieve performance objectives, such as optimization of network resources. Routing capacity and placement of traffic on particular links are examples of network resources for which optimization is often sought. Traffic engineering over Multiprotocol Label Switching (MPLS) enables connection-oriented paths, which provides granular control over packet flow for end-to-end quality assurance. This generally means that a path computed from a source to a destination is subject to a set of constraints, and traffic is forwarded along this computed path. MPLS traffic engineering is a growing implementation in today's service provider networks.
Traffic engineering extensions to Interior Gateway Protocols (IGPs), such as Open Shortest Path First (OSPF) and Intermediate System-Intermediate System (IS-IS) distribute extended link attributes. Resource reservation protocol-traffic engineering (RSVP-TE) provides connection oriented predicted service over a packet network. The Traffic engineering capabilities offered by these protocols may be deemed adequate for Traffic Engineering. However, for a complex network configuration, an administrator specifies explicit routes or paths to forward traffic along these paths. Over a period of time, the routes specified by the administrator may lead to inadequate or unbalanced resource utilization.
On the other hand, constraint-based routing is designed to automatically compute paths subject to a set of constraints. Constraint-based routing assists in performance optimization of operational networks by automatically finding feasible paths that satisfy a set of constraints for traffic trunks. However, constraint-based routing does not provide administrative control to set up explicit paths. As such, in case of a network outage, re-computation of an optimized path is typically unavoidable, inefficient, and causes a performance penalty.
BRIEF DESCRIPTION OF THE DRAWINGS
Features of the present invention will become apparent to those skilled in the art from the following description with reference to the figures, in which:
FIG. 1 shows a simplified block diagram of a multi-hop network, according to an embodiment of the present invention;
FIG. 2 shows a simplified schematic diagram of a system for selecting a path through a network of nodes from a source device to a destination device, according to an embodiment of the present invention;
FIG. 3A illustrates a flowchart of a method for selecting a path through a network, according to an embodiment of the present invention;
FIG. 3B illustrates a flowchart of a method for performing an optimization process to select one or more paths through a network, according to an embodiment of the present invention; and
FIG. 4 shows a block diagram of a computer system that may be used as a platform for an optimizer shown in FIG. 2, according to an embodiment of the present invention.
DETAILED DESCRIPTION
For simplicity and illustrative purposes, the present invention is described by referring mainly to exemplary embodiments. In the following description, numerous specific details are set forth to provide a thorough understanding of the embodiments. However, it will be apparent to one of ordinary skill in the art that the present invention may be practiced without limitation to these specific details. In other instances, well known methods and structures have not been described in detail to avoid unnecessarily obscuring the description of the embodiments.
Disclosed herein are a method and optimizer for selecting a path for data flow through a network of nodes from a source device to a destination device. More particularly, the system and method disclosed herein are configured to select a path among a plurality of candidate paths for transmitting the data flow from the source device to the destination device. In addition, the selection of the path may be based upon the class of service/application to be provided in communicating the data from the source device to the destination device. As discussed in greater detail herein below, a mathematical model that describes the behavior of the nodes in terms of resources/routing capacity is developed and implemented in selecting the path. In addition, the current path is analyzed to determine whether it is optimal based upon a set of weighted constraints. Moreover, the flow demands of the current path and/or the optimized path are adapted and recomputed when new constraints are applicable.
Through implementation of the method and optimizer disclosed herein, data flow paths through a network of nodes may automatically be identified as conditions change in the network. As such, the method and optimizer disclosed herein enable for preferred class-based data flow paths to be identified in a relatively quick and efficient manner. In addition, the optimization of explicit paths is flexible and provides administrative control.
As discussed herein, a data flow includes communication of information over a network, which may be for one application or service. Examples of types of data flows are Voice over Internet Protocol (VoIP), multiplayer game data, streaming video or audio, or bulk transfer of data. The source and destination devices are configured to send or receive data flows via a path and data flows may pass through the path to the destination device or another network.
A path may be a multi-hop route from a source device to a destination device in a multi-hop network. In a multi-hop network, a signal moves or “hops” between multiple nodes before reaching a destination device. When the nodes in a multi-hop network are all connected to each other, the multi-hop network is considered to be a fully connected network. A node is a network device, such as a router, hub, switch, a laptop, a mobile phone, a personal digital assistant (PDA), etc. In addition, the source device and the destination may also be considered as nodes.
The methods described herein are not limited to be applied only to a multi-hop network. The methods may also be applied to other wired or wireless networks, such as wired or wireless telecommunications networks, Worldwide Inter-operability for Microwave Access (WiMax) networks, or other types of networks.
FIG. 1 illustrates a simplified block diagram of a multi-hop network 100, according to an example. It should be clearly understood that the multi-hop network 100 may include additional components and that some of the components described herein may be removed and/or modified without departing from a scope of the multi-hop network. As such, the multi-hop network 100 may include any number of nodes, source devices, and network devices. In addition, the multi-hop network 100 may be connected to an access network or any wide area network (WAN) or other network.
The multi-hop network 100 includes a source device 102, multiple nodes 103 a-103 d, and a destination device 104. The source device 102 and the destination device 104 may also comprise nodes in the multi-hop network 100, as they may be intermediate nodes for forwarding data flows to other source devices or destination devices in or outside of the network 100.
The source device 102 may receive data from another network device or may originate a data flow, such as a VoIP call, to be communicated to the destination device 104. The source device 102 may send the data to the destination device 104 via different combinations of nodes 103 a-103 d, as graphically depicted by the arrows in FIG. 1. Each of the different combinations of nodes 103 a-130 d is associated with a different behavioral characteristic as discussed below. In any regard, the nodes 103 a-103 d may be equipped with interfacing components/software to interface with the source device 102, the destination device 104, other nodes located within and/or outside of the multi-hop network 100. The destination device 104 may include an end user device, such as a laptop, cellular telephone, etc.
According to an embodiment, the source device 102 is configured to send different types of data to the destination device 104 via different combinations of nodes 103 a-103 d or paths. For example, a first type of data flow may be communicated from the source device 102, to a first node 103 a, and then to a second node 103 b prior to reaching the destination device 104. In addition, a second type of data flow may be communicated from the source device, to the first node 103 a, and then to a fourth node 103 d prior to reaching the destination device 104. As discussed in greater detail herein below, the paths for different types of data flows (classes) may be selected to substantially optimize the communication of that type of data flow (class) between the source device 102 and the destination device 104.
With reference now to FIG. 2, there is shown a simplified schematic diagram of a system 200 for selecting a path through a network of nodes from a source device to a destination device, according to an example. It should be understood that the system 200 may include additional elements and that some of the elements described herein may be removed and/or modified without departing from the scope of the system 200. Thus, some of the functionalities of the modules discussed herein may be performed by a fewer or larger number of modules and may also be performed by a single module.
As shown, the system 200 includes an optimizer 202, which may comprise software, firmware, and/or hardware and is configured to select one or more paths through a network of nodes from a source device 102 to a destination device 104. The optimizer 202 is generally configured to identify per hop behaviors (PHBs) of the nodes, to derive a path entropy for each of a plurality of candidate paths based upon the PHBs of the nodes, and to select one of the plurality of candidate paths to communicate data from the source device 102 to the destination device 104 based on the entropies of the candidate paths.
Generally speaking, the PHBs of the nodes define the quantized behavior characteristics for a class of service/application. The PHBs of the nodes may be defined as:
PHB(ci)=B*Ci*Wi.  Equation (1)
Equation (1) represents per class quantized hop behavioral characteristic. In Equation (1), PHB (ci) is the PHB of the ith class, B is a maximum percent (%) reserved link bandwidth for the ith class, Ci is a cost of the path for the ith class to utilize the path, and Wi is an administrative controlled preferred weight for the ith class. The administrative controlled preferred weight is a predefined path preference for the ith class. In addition, a class is a class of service/application for differentiating a plurality of different data flows.
The path entropy for a candidate path is the cumulative sum of PHBs per class along the candidate path between a source device and a destination device. In addition, each of the plurality of candidate paths includes a maximum path entropy and a used path entropy. The maximum path entropy in a particular path is the highest path entropy attainable for that particular path. The used path entropy in a particular path is the currently used entropy for that particular path. Thus, the used path entropy cannot exceed the maximum path entropy for the same path. By way of example, the maximum path entropy may be defined as the maximum capacity of a virtual pipe for a class (path between the source device and the destination device) and the used path entropy is the data flow through the virtual pipe. The maximum path entropy and the used path entropy for a particular path and class may be defined as:
Max Path PE ( ci ) = h = 0 -> n PHB ( ci ) ; and Equation ( 2 ) Used Path PE ( ci ) = h = 0 -> n phb ( ci ) . Equation ( 3 )
In Equations (2) and (3), the ci represents a particular class and n represents the total number of hops along the path.
As shown in FIG. 2, the optimizer 202 is depicted as including an input module 204, a per hop behavior (PHB) identifier module 206, a path entropy generator module 208, an optimization module 210, a path selection module 212, and an output module 214. The modules 204-214 are designed to perform various functions in the optimizer 202.
In instances where the optimizer 202 comprises software, the optimizer 202 may be stored on a computer readable storage medium and may be executed or implemented by a computing device processor (not shown). In these instances, the modules 204-214 may comprise software modules or other programs or algorithms configured to perform the functions described herein below. In instances where the optimizer 202 comprises firmware and/or hardware, the optimizer 202 may comprise a circuit or other apparatus configured to perform the functions described herein below. In these instances, the modules 204-214 may comprise one or more of software modules and hardware modules configured to perform these functions.
The input module 204 may receive input from a network management software (NMS) or from a network node manager (NNM) (not shown). The input module 204, more particularly, is configured to receive data related to traffic trunk attributes, such as an ingress node (ex: source), an egress node (ex: destination), all the possible paths between the source and the destination, number of hops on a particular path, and classes to be supported by each node. Examples of classes are C0 through C7 classes as defined in the DiffServ or MPLS traffic engineering.
In other examples, the input module 204 is configured to receive data related to per hop attributes, such as a bandwidth, classes allowed in a particular hop, a maximum reserveable bandwidth per class, which may be a certain percentage of a total bandwidth, cost of the path for a class, etc. The data received through the input module 204 may be stored in a data store 220, which the optimizer 202 may access in performing various functions discussed below.
The data store 220 may comprise volatile and/or non-volatile memory, such as DRAM, EEPROM, MRAM, flash memory, and the like. In addition, or alternatively, the data store 220 may comprise a device configured to read from and write to a removable media, such as, a floppy disk, a CD-ROM, a DVD-ROM, or other optical or magnetic media.
The PHB identifier module 206 is configured to derive PHBs of the nodes for one or more different classes, for instance, based upon the information received through the input module 204 discussed above. Each of the one or more different classes is a class of service for differentiating a plurality of different data flows. The PHB identifier module 206 is configured to identify a total bandwidth of the path, cost of the path for one or more different classes to use the path, and a preferred weight for one or more different classes. An example of a cost of the path may include an economic cost or a monetary value associated with using the path. The preferred weight is a predefined path characteristic for each of the one or more different classes. For example, referring to FIG. 1, a first path may have the shortest delay, a second path may have the least loss rate, and a third path may have the highest bandwidth. The delay, loss rate, and bandwidth are path characteristics and the shortest delay, the least loss rate, and the highest bandwidth are predefined path characteristics for different classes. The preferred weight is a quantized multiplier that considers all path characteristics or some more attributes and may create a fixed weight factor for the path characteristics. For example, in a real-time application of VoIP, which has constraints of a shortest delay, a minimum loss rate, and an expedite forwarding may be given a factor of 10, while a backup service with an assured forwarding may be given a factor of 1. These are two extreme classes of path characteristics and the path characteristics may thus have preferred weights that fall in between these two values.
The path entropy generator module 208 is configured to derive a path entropy for each of multiple candidate paths through the network between the source device and the destination device based on the identified PHBs of the nodes for each of a plurality of classes. The path entropy generator module 208 is also configured to identify a ratio of the used path entropy and the maximum path entropy for each of the classes, and then determine if the ratio exceeds a preset threshold value. The path entropy generator module 208 is further configured to start an optimization process to optimize the path through the network from the source device to the destination device based on one or more constraints of the network, such as a bandwidth or latency, in response to the ratio exceeding the preset threshold value. For example, the optimization process may be initiated when the used path entropy becomes a pre-determined percentage (%) of the maximum path entropy.
According to an embodiment, the path entropy for each of the multiple candidate paths is derived by measuring a cumulative PHB of the different classes for each of the multiple candidate paths. Candidate paths having higher path entropies are preferred over candidate paths having lower path entropies.
The optimization module 210 is configured to construct a trunk optimization table based on the maximum path entropies, the used path entropies, and the ratio of the used path entropies and the maximum path entropies. In addition, the optimization module 210 is configured to construct the trunk optimization table for the various classes of services and to also include administratively defined flow control characteristics of class of service/application. Thus, the trunk optimization table may include a column that lists the classes, a column that lists the maximum path entropies, a column that lists the used path entropies, and a column that lists the flow control characteristics. In addition, the paths may be arranged in the trunk optimization table by the entropy order of the paths for each of the classes.
In generating the trunk optimization table, the optimization module 210 is configured to identify all of the possible paths between two points, for instance, from topology details available from the NMS. In addition, the optimization module 210 is configured to evaluate the maximum and the used entropies for each of the paths for each of the classes, which have been determined by the path entropy generator module 208. Moreover, the optimization module 210 is configured to generate the trunk optimization table to categorize each of the paths with increasing entropy order in the N classes. According to a particular example, the N classes may be equal to eight classes. In addition, the optimization module 210 may prioritize each of the plurality of candidate paths in increasing order of the ratio of the used path entropy and the maximum path entropy for a class.
The optimization module 210 is further configured to update the trunk optimization table based on the constraints on the network. In addition, the optimization module 210 is configured to identify suitable candidate paths from the trunk optimization table based on the ratio of the used path entropy and the maximum path entropy for the different classes. For example, when the ratio of the used path entropy and the maximum path entropy for a path and class is below the preset threshold, the path may be determined as a suitable candidate path for the class.
The path selection module 212 is configured to select one of the candidate paths to communicate data of a particular class from the source device to the destination device, based on the entropies of the candidate paths. The path selection module 212 is also configured to map different data flows on the selected different candidate paths based on the entropies of the candidate paths. In another embodiment, the path selection module 212 is configured to find one or more paths that satisfy the constraints of the network from the trunk optimization table, and to assign different data flows for the one or more paths. The path selection module 212 is further configured to select a candidate path for a class among the multiple candidate paths using a resource reservation protocol-traffic engineering (RSVP-TE), which provides connection oriented predicted service over packet network.
According to an example, the path selection module 212 stores the selected candidate paths in the data store 220. According to another example, the path selection module 212 employs the output module 214 to output the selected candidate paths to a computing device, a display screen, etc. As such, in a particular example, the path selection module 212 outputs the selected paths to the nodes on a network to cause the data to be communicated through the selected paths.
An example of a method in which the optimizer 202 may be employed to select a path through a network of nodes from a source device to a destination device for a data flow will now be described with respect to the following flow diagram of the methods 300 and 330 depicted in FIGS. 3A and 3B. It should be apparent to those of ordinary skill in the art that the methods 300 and 330 represent generalized illustrations and that other steps may be added or existing steps may be removed, modified or rearranged without departing from the scopes of the methods 300 and 330.
The descriptions of the methods 300 and 330 are made with reference to the optimizer 202 illustrated in FIG. 2, and thus makes reference to the elements cited therein. It should, however, be understood that the methods 300 and 330 are not limited to the elements set forth in the optimizer 202. Instead, it should be understood that the methods 300 and 330 may be practiced by a system having a different configuration than that set forth in the optimizer 202.
A controller, such as a processor (not shown), may implement or execute the optimizer 202 to perform one or more of the steps described in the methods 300 and 330 in selecting a path through a network of nodes from a source device to a destination device.
With reference first to FIG. 3A, there is shown a flowchart of a method 300 for selecting a path through a network, according to an example. At step 302, per hop behaviors (PHBs) of the nodes are identified. According to an example, and as discussed above, PHBs of the nodes for different classes of services may be identified at step 302.
At step 304, a path entropy for each of a plurality of candidate paths through the network between the source device and the destination device are derived based on the identified PHBs. In addition, a maximum path entropy and a used path entropy for each of the plurality of candidate paths may be identified. Moreover, a ratio of the used path entropy and the maximum path entropy may further be identified.
At step 306, an optimization process to identify an optimized path through the network between the source device 102 and the destination device 104 may be run. According to an example, the optimization process may be initiated in response to the ratio of the used path entropy and the maximum path entropy exceeding the preset threshold. Otherwise, the current path may be used to communicate data from the source device 102 to the destination device 104 since there may not be a significant benefit in changing the path.
At step 308, one of candidate paths to communicate data from the source device 102 to the destination device 104 is selected based upon the entropies of the candidate paths. Thus, for instance, the path having the highest entropy may be selected for communication of the data. In another example, the selection of the path may be based upon the class of service to be provided by the nodes. In this example, the path for a particular class having the highest entropy may be selected for communication of the data.
With particular reference to FIG. 3B, there is shown a flow diagram of a method 330 for performing an optimization process to select one or more paths to communicate data from the source device to the destination device based on the entropies and the classes of the candidate paths through a network, according to an example. Generally speaking, the steps outlined in the method 330 are a more detailed discussion of step 306 in FIG. 3A.
As shown therein, at step 332, an optimization process to optimize the path based on one or more constraints of the network is started. As discussed above, the optimization process may start in response to the ratio of the used path entropy and the maximum path entropy exceeding the preset threshold for one or more of the candidate paths.
At step 334, a trunk optimization table is constructed to include classes of services, maximum path entropies, used path entropies, and preferences associated with each of the possible paths between the source device 102 and the destination device 104.
At step 336, the trunk optimization table is updated based on the one or more constraints of the network. The trunk optimization table may be updated to update the constraints of the network in the trunk optimization table. According to an example, a traffic demand may be updated and mapped on available network resources. According to another example, after the trunk optimization table is constructed at step 334, a class of service, such as a VoIP service may need to have more bandwidth as the threshold of its usage has been exceeded. Thus, more bandwidth to the VoIP service may be reserved and instead, a lower class of service, such as a backup service may be unreserved. This is controlled by the flow control attribute of path preference in the trunk optimization table.
At step 338, candidate paths are arranged in the trunk optimization table based upon the entropies of the paths. According to a particular example, the candidate paths are arranged according to the entropies of each of the classes. Thus, for instance, for each of the classes, the paths having the highest entropies may be listed higher in the trunk optimization table as compared with paths having the lower entropies.
At step 340, for one or more classes, one of the candidate paths among the multiple candidate paths is selected based on the entropies of the candidate paths. The candidate path through which data is communicated from the source device to the destination device may also be selected based on a resource reservation protocol-traffic engineering (RSVP-TE), which provides connection oriented predicted service over packet network.
Some or all of the operations set forth in the methods 300 and 330 may be contained as a utility, program, or subprogram, in any desired computer accessible medium. In addition, the methods 300 and 330 may be embodied by computer programs, which can exist in a variety of forms both active and inactive. For example, they may exist as software program(s) comprised of program instructions in source code, object code, executable code or other formats. Any of the above may be embodied on a computer readable medium, which include storage devices.
Exemplary computer readable storage devices include conventional computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. Concrete examples of the foregoing include distribution of the programs on a CD ROM or via Internet download. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
FIG. 4 illustrates a block diagram of a computing apparatus 400 configured to implement or execute the optimizer 202 depicted in FIG. 2, according to an example. In this respect, the computing apparatus 400 may be used as a platform for executing one or more of the functions described hereinabove with respect to the optimizer 202.
The computing apparatus 400 includes a processor 402 that may implement or execute some or all of the steps described in the methods 300 and 330. Commands and data from the processor 402 are communicated over a communication bus 404. The computing apparatus 400 also includes a main memory 406, such as a random access memory (RAM), where the program code for the processor 402, may be executed during runtime, and a secondary memory 408. The secondary memory 408 includes, for example, one or more hard disk drives 410 and/or a removable storage drive 412, representing a floppy diskette drive, a magnetic tape drive, a compact disk drive, etc., where a copy of the program code for the methods 300 and 330 may be stored.
The removable storage drive 410 reads from and/or writes to a removable storage unit 414 in a well-known manner. User input and output devices may include a keyboard 416, a mouse 418, and a display 420. A display adaptor 422 may interface with the communication bus 404 and the display 420 and may receive display data from the processor 402 and convert the display data into display commands for the display 420. In addition, the processor(s) 402 may communicate over a network, for instance, the Internet, LAN, etc., through a network adaptor 424.
It will be apparent to one of ordinary skill in the art that other known electronic components may be added or substituted in the computing apparatus 400. It should also be apparent that one or more of the components depicted in FIG. 4 may be optional (for instance, user input devices, secondary memory, etc.).
What have been described and illustrated herein are embodiments of the invention along with some of their variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Those skilled in the art will recognize that many variations are possible within the spirit and scope of the invention, wherein the invention is intended to be defined by the following claims and their equivalents in which all terms are mean in their broadest reasonable sense unless otherwise indicated.

Claims (20)

1. A method for selecting a path through a network of nodes from a source device to a destination device, said method comprising:
identifying, by a processor, per hop behaviors (PHBs) of a plurality of candidate paths through the network of nodes from the source device to the destination device;
deriving, by the processor, a path entropy for each of the plurality of candidate paths through the network of nodes between the source device and the destination device based upon the PHBs of the plurality of candidate paths; and
selecting, by the processor, one of the plurality of candidate paths to communicate data from the source device to the destination device based on the path entropies of the plurality of candidate paths.
2. The method according to claim 1, wherein identifying the PHBs of the nodes further comprises:
identifying the PHBs of the plurality of candidate paths for a plurality of classes, wherein each of the plurality of classes is a different class of service/application associated with a data flow.
3. The method according to claim 2, wherein each of the plurality of candidate paths is associated with a maximum path entropy and a used path entropy, wherein the maximum path entropy is the highest path entropy attainable by a particular candidate path for each of the plurality of classes and the used path entropy is a currently used path entropy of the particular path for each of the plurality of classes.
4. The method according to claim 3, wherein deriving the path entropy for each of the plurality of candidate paths further comprises:
for each of the plurality of candidate paths,
identifying a ratio of the used path entropy and the maximum path entropy;
determining whether the identified ratio exceeds a preset threshold; and
starting an optimization process to optimize the path through the network of nodes from the source device to the destination device in response to the identified ratio exceeding the preset threshold.
5. The method according to claim 4, wherein starting an optimization process further comprises:
constructing a trunk optimization table listing the maximum path entropy, the used path entropy, and one or more flow control preferences for each of the plurality of candidate paths of the plurality of classes.
6. The method according to claim 5, wherein constructing a trunk optimization table further comprises:
updating the trunk optimization table based on one or more constraints of the network;
determining the plurality of candidate paths based on the updated trunk optimization table; and
selecting one of the plurality of candidate paths among the plurality of candidate paths based on a resource reservation protocol-traffic engineering (RSVP-TE), wherein the RSVP-TE provides a connection oriented predicted service over the network.
7. The method according to claim 5, further comprising:
determining the plurality of candidate paths from the trunk optimization table; and
prioritizing each of the plurality of candidate paths in the trunk optimization table based on the identified ratio.
8. The method according to claim 5, further comprising:
selecting one of the plurality of candidate paths for each of the plurality of classes from the trunk optimization table; and
mapping each of a plurality of data flows on the selected one of the plurality of candidate paths.
9. The method according to claim 5, further comprising:
identifying one or more paths from the trunk optimization table that satisfy one or more constraints of the network; and
assigning a plurality of data flows for the one or more identified paths.
10. The method according to claim 2, wherein deriving the path entropy for each of the plurality of candidate paths further comprises:
deriving the path entropy for each of the plurality of candidate paths, wherein the path entropy for each of the plurality of candidate paths is derived by measuring a cumulative PHB of the plurality of classes for each of the plurality of candidate paths, and wherein candidate paths having higher path entropies are preferred over candidate paths having lower path entropies.
11. The method according to claim 2, wherein the PHBs of the plurality of candidate paths for the plurality of classes is defined as:
PHB (ci)=B*Ci*Wi, wherein PHB (ci) is the PHB of the ith class of service/application, B is a maximum percent (%) reserved link bandwidth for the ith class of service/application, Ci is a cost of the path for the ith class of service/application to utilize the path, and Wi is an administrative controlled preferred weight for the ith class of service/application, the administrative controlled preferred weight is a predefined path preference for the ith class of service/application.
12. A computer-implemented optimizer for selecting a path through a network of nodes from a source device to a destination device, said computer-implemented optimizer comprising:
a memory on which is stored machine readable instructions comprising code to:
identify PHBs of a plurality of candidate paths through the network of nodes from the source device to the destination device;
derive a path entropy for each of the plurality of candidate paths through the network of nodes between the source device and the destination device based upon the PHBs of the plurality of candidate paths; and
select one of the plurality of candidate paths to communicate data from the source device to the destination device based on the derived path entropies of the plurality of candidate paths; and
a processor to implement the machine readable instructions.
13. The computer-implemented optimizer according to claim 12, wherein the machine readable instructions further comprise code to identify the PHBs of the plurality of candidate paths for a plurality of classes, wherein each of the plurality of classes is a different class of service/application associated with a data flow, and wherein each of the plurality of candidate paths is associated with a maximum path entropy and a used path entropy, wherein the maximum path entropy is the highest path entropy attainable by a particular candidate path for each of the plurality of classes and the used path entropy is a currently used path entropy of the particular path for each of the plurality of classes.
14. The computer-implemented optimizer according to claim 13, wherein the machine readable instructions further comprise code to, for each of the plurality of candidate paths, identify a ratio of the used path entropy and the maximum path entropy, to determine if the identified ratio exceeds a preset threshold, and to start an optimization process to optimize the path through the network of nodes from the source device to the destination device based on one or more constraints of the network in response to the identified ratio exceeding the preset threshold.
15. The computer-implemented optimizer according to claim 13, wherein the machine readable instructions further comprise code to construct a trunk optimization table listing the maximum path entropy, the used path entropy, and one or more flow control preferences for each of the plurality of candidate paths of the plurality of classes, to update the trunk optimization table based on one or more constraints of the network, to determine the plurality of candidate paths based on the updated trunk optimization table, and to select one of the plurality of candidate paths among the plurality of candidate paths based on a resource reservation protocol-traffic engineering (RSVP-TE), wherein the RSVP-TE provides a connection oriented predicted service over the network.
16. The computer-implemented optimizer according to claim 13, wherein the PHB of the plurality of candidate paths for the plurality of classes is defined as:
PHB (ci)=B*Ci*Wi, wherein PHB (ci) is the PHB of the ith class of service, B is a maximum percent (%) reserved link bandwidth for the ith class of service, Ci is a cost of the path for the ith class of service to utilize the path, and Wi is an administrative controlled preferred weight for the ith class of service, the administrative controlled preferred weight is a predefined path preference for the ith class of service.
17. A non-transitory computer readable storage medium on which is embedded a set of machine readable instructions that when executed by a processor implements a method of selecting a path through a network of nodes from a source device to a destination device, said set of machine readable instructions comprising code to:
identify per hop behaviors (PHBs) of a plurality of candidate paths through the network of nodes from the source device to the destination device for a plurality of classes, wherein each of the plurality of classes is a class of service for differentiating a plurality of data flows;
derive a path entropy for each of the plurality of classes for each of the plurality of candidate paths through the network of nodes between the source device and the destination device based upon the PHBs of the plurality of candidate paths, wherein the path entropy for each of the plurality of candidate paths is derived by measuring a cumulative PHB of the plurality of classes for each of the plurality of candidate paths, and wherein each of the plurality of candidate paths is associated with a maximum path entropy and a used path entropy, wherein the maximum path entropy is the highest path entropy attainable by a particular candidate path for each of the plurality of classes and the used path entropy is a currently used path entropy of the particular path; and
select one of the plurality of candidate paths to communicate data from the source device to the destination device based on the path entropies of the plurality of candidate paths.
18. The non-transitory computer readable storage medium according to claim 17, wherein the set of machine-readable instructions further comprises code to, for each of the plurality of candidate paths:
identify a ratio of the used path entropy and the maximum path entropy;
determine whether the identified ratio exceeds a preset threshold; and
start an optimization process to optimize the path through the network of nodes from the source device to the destination device based on one or more constraints of the network in response to the identified ratio exceeding the preset threshold.
19. The non-transitory computer readable storage medium according to claim 18, wherein the set of machine-readable instructions further comprises code to:
construct a trunk optimization table listing the maximum path entropy, the used path entropy, and one or more flow control preferences for each of a plurality of candidate paths of the plurality of classes;
determine the plurality of candidate paths from the trunk optimization table;
prioritize each of the plurality of candidate paths in the trunk optimization table based on the identified ratio;
update the trunk optimization table based on the one or more constraints of the network;
determine the plurality of candidate paths based on the updated trunk optimization table; and
select one of the plurality of candidate paths among the plurality of candidate paths based on a resource reservation protocol-traffic engineering (RSVP-TE), wherein the RSVP-TE provides a connection oriented predicted service over the network.
20. The non-transitory computer readable storage medium according to claim 17, wherein the PHB of the plurality of candidate paths for the plurality of classes is defined as:
PHB (ci)=B*Ci*Wi, wherein PHB (ci) is the PHB of the ith class of service, B is a maximum percent (%) reserved link bandwidth for the ith class of service, Ci is a cost of the path for the ith class of service to utilize the path, and Wi is an administrative controlled preferred weight for the ith class of service, the administrative controlled preferred weight is a predefined path preference for the ith class of service.
US12/638,794 2009-12-15 2009-12-15 Selecting a path through a network Expired - Fee Related US8259736B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/638,794 US8259736B2 (en) 2009-12-15 2009-12-15 Selecting a path through a network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/638,794 US8259736B2 (en) 2009-12-15 2009-12-15 Selecting a path through a network

Publications (2)

Publication Number Publication Date
US20110142056A1 US20110142056A1 (en) 2011-06-16
US8259736B2 true US8259736B2 (en) 2012-09-04

Family

ID=44142843

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/638,794 Expired - Fee Related US8259736B2 (en) 2009-12-15 2009-12-15 Selecting a path through a network

Country Status (1)

Country Link
US (1) US8259736B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220141126A1 (en) * 2018-02-15 2022-05-05 128 Technology, Inc. Service related routing method and apparatus

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8780754B2 (en) * 2011-08-17 2014-07-15 Telefonaktiebolaget L M Ericsson (Publ) Method and controlling network node in a radio access network
WO2014040628A1 (en) * 2012-09-13 2014-03-20 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for node realignment in a telecommunications network
US9794379B2 (en) 2013-04-26 2017-10-17 Cisco Technology, Inc. High-efficiency service chaining with agentless service nodes
US10417025B2 (en) 2014-11-18 2019-09-17 Cisco Technology, Inc. System and method to chain distributed applications in a network environment
US9660909B2 (en) 2014-12-11 2017-05-23 Cisco Technology, Inc. Network service header metadata for load balancing
USRE48131E1 (en) 2014-12-11 2020-07-28 Cisco Technology, Inc. Metadata augmentation in a service function chain
US9521066B2 (en) * 2015-02-02 2016-12-13 Vss Monitoring, Inc. vStack enhancements for path calculations
US10511517B2 (en) * 2015-11-25 2019-12-17 Ciena Corporation Path computation in multi-layer networks
US10187306B2 (en) 2016-03-24 2019-01-22 Cisco Technology, Inc. System and method for improved service chaining
US10931793B2 (en) 2016-04-26 2021-02-23 Cisco Technology, Inc. System and method for automated rendering of service chaining
US10419550B2 (en) 2016-07-06 2019-09-17 Cisco Technology, Inc. Automatic service function validation in a virtual network environment
US10218616B2 (en) 2016-07-21 2019-02-26 Cisco Technology, Inc. Link selection for communication with a service function cluster
US10320664B2 (en) 2016-07-21 2019-06-11 Cisco Technology, Inc. Cloud overlay for operations administration and management
US10225270B2 (en) 2016-08-02 2019-03-05 Cisco Technology, Inc. Steering of cloned traffic in a service function chain
US10218593B2 (en) 2016-08-23 2019-02-26 Cisco Technology, Inc. Identifying sources of packet drops in a service function chain environment
US20180062991A1 (en) * 2016-08-30 2018-03-01 Cisco Technology, Inc. Deterministic controller-based path query
US10225187B2 (en) 2017-03-22 2019-03-05 Cisco Technology, Inc. System and method for providing a bit indexed service chain
US10884807B2 (en) 2017-04-12 2021-01-05 Cisco Technology, Inc. Serverless computing and task scheduling
US10257033B2 (en) 2017-04-12 2019-04-09 Cisco Technology, Inc. Virtualized network functions and service chaining in serverless computing infrastructure
US10333855B2 (en) 2017-04-19 2019-06-25 Cisco Technology, Inc. Latency reduction in service function paths
US10554689B2 (en) 2017-04-28 2020-02-04 Cisco Technology, Inc. Secure communication session resumption in a service function chain
US10735275B2 (en) 2017-06-16 2020-08-04 Cisco Technology, Inc. Releasing and retaining resources for use in a NFV environment
US10798187B2 (en) 2017-06-19 2020-10-06 Cisco Technology, Inc. Secure service chaining
US10397271B2 (en) 2017-07-11 2019-08-27 Cisco Technology, Inc. Distributed denial of service mitigation for web conferencing
US10673698B2 (en) 2017-07-21 2020-06-02 Cisco Technology, Inc. Service function chain optimization using live testing
US11063856B2 (en) 2017-08-24 2021-07-13 Cisco Technology, Inc. Virtual network function monitoring in a network function virtualization deployment
US10791065B2 (en) 2017-09-19 2020-09-29 Cisco Technology, Inc. Systems and methods for providing container attributes as part of OAM techniques
US11018981B2 (en) 2017-10-13 2021-05-25 Cisco Technology, Inc. System and method for replication container performance and policy validation using real time network traffic
US10541893B2 (en) 2017-10-25 2020-01-21 Cisco Technology, Inc. System and method for obtaining micro-service telemetry data
US10666612B2 (en) 2018-06-06 2020-05-26 Cisco Technology, Inc. Service chains for inter-cloud traffic
US11442703B2 (en) * 2020-09-22 2022-09-13 Cisco Technology, Inc. Domain-specific language for serverless network functions
US11625230B2 (en) 2020-09-22 2023-04-11 Cisco Technology, Inc. Identifying execution environments for deploying network functions
CN113556285B (en) * 2021-07-21 2022-08-23 中国联合网络通信集团有限公司 Data transmission method and device
CN117278466B (en) * 2023-09-14 2024-08-20 清华大学 Candidate path selection method for fault-tolerant traffic engineering scene

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fortz et al. Traffic Engineering With Traditional IP Routing Protocols, IEEE Communications Magazine, Oct. 2002, vol. 40, No. 10, pp. 110-131.
Ismail et al. Traffic Engineering: Simulation Model and Real Network Environment Over Single and Multiple Links, ISSN 1450-216X vol. 25 No. 1, 2009 pp. 54-67.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220141126A1 (en) * 2018-02-15 2022-05-05 128 Technology, Inc. Service related routing method and apparatus
US11652739B2 (en) * 2018-02-15 2023-05-16 128 Technology, Inc. Service related routing method and apparatus

Also Published As

Publication number Publication date
US20110142056A1 (en) 2011-06-16

Similar Documents

Publication Publication Date Title
US8259736B2 (en) Selecting a path through a network
US9325626B2 (en) Method and apparatus to reduce cumulative effect of dynamic metric advertisement in smart grid/sensor networks
US20210367835A1 (en) Method and apparatus for optimizing a software defined network configuration
US7187652B2 (en) Multi-constraint routing system and method
US8565117B2 (en) Systems and methods for network routing
US6925061B2 (en) Multi-constraint routing system and method
US10554578B2 (en) Quality of service management in a network
US9178767B2 (en) Intelligent traffic quota management in split-architecture networks
US7929440B2 (en) Systems and methods for capacity planning using classified traffic
GB2539992A (en) Quality of service management in a network
US10091785B2 (en) System and method for managing wireless frequency usage
Fidler et al. A parameter based admission control for differentiated services networks
US20130148668A1 (en) Intelligent traffic quota management
CN113014484B (en) Network route planning method and system based on BP neural network ant colony algorithm
US20170331722A1 (en) Calculation of a lowest cost path
CN112615780B (en) Method and device for determining alternative path of data flow in SDN network
Soorki et al. Label switched protocol routing with guaranteed bandwidth and end to end path delay in MPLS networks
JP2009130934A (en) Method for routing and balancing in communication network
EP3585013B1 (en) Data transmission method and apparatus
CN102487352B (en) Service distributing method and device
JP4410799B2 (en) Method for providing multi-channel message to destination electronic device, connection arrangement apparatus and program
US7830791B2 (en) Method and system for routing network communications
Ahmad et al. Preemption-aware instantaneous request call routing for networks with book-ahead reservation
CN114938328A (en) Path determining method, network element and computer readable storage medium
US20120063362A1 (en) Method and apparatus for computing paths to destinations in networks having link constraints

Legal Events

Date Code Title Description
AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MANOJ, KUMAR JAIN;REEL/FRAME:023700/0948

Effective date: 20091211

ZAAA Notice of allowance and fees due

Free format text: ORIGINAL CODE: NOA

ZAAB Notice of allowance mailed

Free format text: ORIGINAL CODE: MN/=.

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001

Effective date: 20151027

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20240904