US20090300195A1 - Methods and apparatus for network traffic distribution based on random number values - Google Patents
Methods and apparatus for network traffic distribution based on random number values Download PDFInfo
- Publication number
- US20090300195A1 US20090300195A1 US12/129,766 US12976608A US2009300195A1 US 20090300195 A1 US20090300195 A1 US 20090300195A1 US 12976608 A US12976608 A US 12976608A US 2009300195 A1 US2009300195 A1 US 2009300195A1
- Authority
- US
- United States
- Prior art keywords
- session
- random number
- request
- network
- network resource
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5009—Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
Definitions
- Embodiments relate generally to traffic distribution within a network, and, in particular, to methods and apparatus for network traffic distribution based on random number values.
- a network routing device can be configured to route incoming network traffic to one or more target network resources based on a variety of known network resource selection algorithms such as round robin algorithms, water fall algorithms, and/or percentage utilization algorithms. These known network resource selection algorithms can be defined based on, for example, operational, financial, and/or administrative objectives associated with one or more of the target network resources.
- a method includes receiving a routing distribution profile associated with a set of network resources disposed between a source endpoint and a destination endpoint.
- the set of network resources is within a session over Internet Protocol (SoIP) network.
- SoIP Internet Protocol
- a distribution function is defined based on the routing distribution profile and based on a range of random number values. The distribution function is used to route via a network resource from the set of network resources a request to establish a session between the source endpoint and the destination endpoint.
- FIG. 1 is a schematic diagram that illustrates a routing module of a session exchange device configured to route a session request over a session over Internet Protocol (SoIP) network from a source endpoint to a destination endpoint based on a random number value, according to an embodiment.
- SoIP Internet Protocol
- FIG. 2A is a table that illustrates a routing distribution profile associated with a set of network resources, according to an embodiment.
- FIG. 2B is a schematic diagram that illustrates ranges of number values that can be used by a session exchange device to route a session request to at least one network resource referenced in FIG. 2A , according to an embodiment
- FIG. 3 is a schematic diagram that illustrates an example of a routing engine of a session exchange device configured to route a session request based on a random number value.
- FIG. 4 is a graph that illustrates an example of a distribution function that can be used to route a session request to a network resource.
- FIG. 5 is a flowchart that illustrates a method for defining and using a distribution function, according to an embodiment.
- FIG. 6 is a flowchart that illustrates a method for routing a session request based on a distribution function and based on a random number value, according to an embodiment.
- a session exchange device within a session over Internet Protocol (SoIP) network can be configured to route a session request (or a portion of a session request) from a source endpoint to a destination endpoint based on a random number value.
- the session exchange device can be configured to route the session request via a network resource selected from a set of network resources based on a random number value.
- the session exchange device can be configured to route the session request in accordance with a utilization target value (e.g., in accordance with a utilization target value over a specified period of time and/or within specified statistical limits) associated with the network resource based on the random number value.
- the utilization target value can be from a set of utilization target values associated with the set of network resources.
- the utilization target values can define a routing distribution profile (also can be referred to as a distribution profile or a target distribution profile).
- the session exchange device can be configured to route a session request based on a relationship defined using a routing distribution profile and a ranges of number values.
- the relationship can be defined so that the session exchange device can route the session request independent of historical utilization-related data (also can be referred to as historical utilization data) associated with the network resource.
- the historical utilization-related data can include real-time (e.g., recent, current) utilization measurement value(s) and/or past utilization measurement value(s).
- the historical utilization-related data can also be state information, for example, indicating whether or not a network resource is available.
- a utilization measurement value (also can be referred to as utilization) can, in some embodiments, represent the proportion of a network resource in use for an activity, such as responding to a session request, during a specified past period of time.
- the relationship which can be a linear relationship or a non-linear relationship, can be defined based on, for example, a calibration method.
- the relationship used by a session exchange device to route a session request can be based on a variety of parameter values that can be, for example, associated with any layer of the open systems interconnection (OSI) model (e.g., session layer (layer-5 of the OSI model and above), media-layer (layer-3 of the OSI model)).
- the parameter value(s) can be associated with the session request.
- One or more of the parameter values can vary independent of the utilization (e.g., measured utilization or utilization measurement value) of one or more network resources from the set of network resources.
- routing based on one or more random number values can be referred to as routing based on a random number value selection algorithm.
- FIG. 1 is a schematic diagram that illustrates a routing engine 112 of a session exchange device 110 configured to route a session request over a SoIP network 180 from a source endpoint 120 to a destination endpoint 160 based on a random number value, according to an embodiment.
- the routing engine 112 is configured to use the random number value to determine through which network resource(s) from a set of network resources 170 the session request should be routed to the destination endpoint 160 .
- the selected network resource can process (e.g., respond to, deny) the session request.
- the set of network resources 170 include network resources 1 to N (i.e., network resource 1 , network resource 2 , . . . network resources).
- the set of network resources 170 is disposed between the session exchange device 110 and the destination endpoint 160 .
- the routing engine 112 can be configured to produce a random number value in response to the session request being received at the session exchange device 110 from the source endpoint 120 .
- the routing engine 112 can be configured to route the session request to, for example, one of the network resources from the set of network resources 170 when the random number value satisfies one or more conditions.
- the condition(s) can be defined based on a set of utilization target values not only associated with the set of network resources 170 but also defining a routing distribution profile.
- the session request can be routed to network resource 1 when the random number value falls within a range of number values defined based on a target utilization value associated with network resource 1 .
- the routing engine 112 can be configured to route the session request based on a distribution function defined based on the routing distribution profile associated the set of network resources 170 .
- the routing engine 112 can be configured to route the session request based on a second random number value.
- the session request can be routed based on re-execution of a random number value selection algorithm.
- the session request can be routed to the same network resource or a different network resource from the set of network resources 170 after re-execution of the random number value selection algorithm.
- the routing engine 112 can be configured to route the session request based on a different network resource selection algorithm (e.g., a round robin selection algorithm). In some embodiments, if a session request is denied by a network resource selected from the set of network resources 170 based on a random number value, the routing engine 112 can be configured to abandon further processing of the session request.
- the type of policy and/or the priority of the policy applied upon denial of a session request can be defined by, for example, a network administrator.
- the routing engine 112 can be a software-based module (e.g., a set of instructions executable at a processor, a software application) and/or a hardware-based module (e.g., a processor, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA)). In some embodiments, the routing engine 112 can be associated with one or more memory components (not shown) and/or one or more processing components (not shown).
- a software-based module e.g., a set of instructions executable at a processor, a software application
- a hardware-based module e.g., a processor, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA)
- the routing engine 112 can be associated with one or more memory components (not shown) and/or one or more processing components (not shown).
- the session request can be a request to establish a session between the source endpoint 120 and the destination endpoint 160 .
- the session can be established so that, for example, a signal (e.g., a media signal) associated with the session can be transmitted between the source endpoint 120 and the destination endpoint 160 .
- the signal can be, for example, a stream of packets (e.g., Ethernet packets) encoded with voice content, video content, and/or data content.
- the signal can be encoded as a digital signal and/or as an analog signal (e.g., some portions of the signal can be digital while other portions of the signal can be analog).
- the signal can be defined based on, for example, a media-layer protocol.
- the session request can be defined in accordance with a session control protocol such as session initiation protocol (SIP).
- the session request can be referred to as a signaling request and can be an in-band request and/or an out-of-band request (e.g., some portions of the session request can be in-band while other portions of the session request can be out-of-band).
- the session request can be defined at the source endpoint 120 in response to, for example, an interaction of a user with the source endpoint 120 .
- the session request can be translated into a different session control protocol at the session exchange device 110 before being forwarded to, for example, network resource 2 .
- each network resource from the set of network resources 170 , and/or the destination endpoint 160 can be, for example, a router, a public switched telephone network (PSTN), a broadband network that can provide network access to broadband consumers, an enterprise network, an H.323 network, a SIP softswitch network, a SIP network, an individual phone/computer terminal and/or an access point (e.g., another session exchange device) to another SoIP network (not shown).
- PSTN public switched telephone network
- H.323 network a SIP softswitch network
- SIP network e.g., another session exchange device
- the network resources 170 can be controlled by a carrier (e.g., a local exchange carrier, a network operator, a wireless communication carrier) that provides, for example, telecommunications services (e.g., telephony services, data communications services) via the network resources 170 .
- a carrier e.g., a local exchange carrier, a network operator, a wireless communication carrier
- telecommunications services e.g., telephony services, data communications services
- one or more network resources from the set of network resources 170 can be controlled by one or more entities that are different than the entity associated with (e.g., controlling) the session exchange device 110 .
- each network resource from the set of network resources 170 can be configured with substantially equivalent capability to handle a session request routed based on a random number value.
- the SoIP network 180 can be a collection of one or more SoIP networks, can be associated with a separate SoIP network (not shown), and/or can have more than one wired and/or wireless segment.
- the SoIP network 180 can be, for example, a voice over Internet Protocol (VoIP) network, a video over Internet Protocol network, and/or a media over Internet Protocol (MoIP) network.
- VoIP voice over Internet Protocol
- MoIP media over Internet Protocol
- the session exchange device 110 can function as a multi-protocol session exchange device and can be configured to function as an interface device between the source endpoint 120 and the network resources 170 .
- the session exchange device 110 can be a session-aware device.
- the session exchange device 110 can function as a session border controller (SBC) and/or can be associated with a session border controller (not shown).
- SBC session border controller
- Such an SBC can be configured to establish, control, and monitor sessions (also can be referred to as connections) between one or more endpoints such as the source endpoint 120 , the network resources 170 , and/or the destination endpoint 160 based on information such as, for example, session-layer information (e.g., layer-5 and above of the OSI model).
- the SBC can be configured to communicate with a SBC-network controller (not shown) that is, for example, a centralized management component that can be configured to control, configure, and/or coordinate one or more portions of the SoIP network 180 .
- FIG. 2A is a table 200 that illustrates a routing distribution profile associated with a set of network resources 220 , according to an embodiment.
- the set of network resources 220 includes network resource 1 , network resource 2 , network resource 3 , and network resource 4 .
- Each network resource from the set of network resources 220 is associated with a target utilization value 210 .
- network resource 1 is associated with a target utilization value of 25% (shown in column 210 ) and network resource 3 is associated with a target utilization value of 40% (shown in column 210 ).
- the target utilization values 210 can define (or represent) a desirable distribution profile (e.g., a desirable allocation) of network-related traffic, such as session requests, between network resources within the set of network resources 220 .
- a desirable distribution profile e.g., a desirable allocation
- the target utilization value of 25% associated with network resource 3 is an indicator that 25% of specified network-related traffic (e.g., session requests) should be routed via network resource 3 .
- the target utilization values 210 shown in FIG. 2A define a non-uniform distribution profile because at least one of the target utilization values 210 is different than the other target utilization values 210 .
- the target utilization values 210 in this embodiment define a completely non-uniform distribution profile because each of the target utilization values 210 are different from one another.
- the target utilization values 210 can be defined by an entity associated with the set of network resources 220 (e.g., an entity controlling the set of network resources 220 ). In some embodiments, the target utilization values 210 can be defined at an entity separate from a session exchange device. In some embodiments, the target utilization values 210 can be defined based on financial considerations. For example, a target utilization value 210 associated with, for example, network resource 2 can be defined based on a desirable profit margin associated with network-related traffic routed through network resource 2 as compared with network resource 1 . In some embodiments, each of the target utilization values 210 can represent, for example, a maximum proportion of network-related traffic that can be distributed to a particular network resource from the set of network resources 220 .
- the target utilization values 210 can be associated with a particular type of network traffic.
- the target utilization values 210 can be associated with only session requests from a particular set of source endpoints, or associated with only a particular type of session request (e.g., a session request defined based on a particular protocol).
- the target utilization values 210 can be global values that can be used by, for example, multiple session exchange devices in making routing decisions.
- FIG. 2B is a schematic diagram that illustrates ranges of number values that can be used by a session exchange device to route a session request to at least one network resource referenced in FIG. 2A , according to an embodiment.
- each range of number values-range 260 , range 262 , range 264 , and range 266 —from a domain of number values 250 is associated with a network resource from the network resources referenced in FIG. 2A .
- range 260 is associated with network resource 1
- range 264 is associated with network resource 3 .
- the number value ranges 260 , 262 , 264 , and 266 can be referred to as random number value ranges.
- the domain of number values 250 can be referred to as a domain of random number values.
- the session exchange device can produce a random number value from within the domain of number values 250 .
- the session exchange device can then route the session request based on the random number value falling within one of the ranges of number values 260 , 262 , 264 , and/or 266 . For example, if the random number value were to fall within range 262 , the session exchange device could route the session request to network resource 2 . Said differently, the session request can be routed to network resource 2 because the condition associated with network resource 2 has been satisfied based on the random number value.
- the ranges of number values 260 , 262 , 264 , and 266 can be scaled relative to one another so that each of the network resources will have a desirable probability of being selected by the session exchange device for processing of a session request based on the random number value.
- the ranges of number values 260 , 262 , 264 , and 266 can be defined in proportion to one another based on a desirable routing distribution profile. For example, in this embodiment, the number value ranges 260 , 262 , and 264 , and 266 are defined based on the target utilization values 210 shown in FIG. 2A .
- number value range 260 which is associated with network resource 1 , includes a percentage of number values from the domain 250 that corresponds with the target utilization value of 25%, which is associated with network resource 1 as shown in column 210 of FIG. 2A . Accordingly, in this embodiment, network resource 1 has a 25% probability of being selected to process the session request based on a randomly produced number value from the domain of number values 250 .
- Session requests can be routed to one or more of the network resources 220 (referenced in FIG. 2A and FIG. 2B ) based on random number values and the number value ranges 260 , 262 , 264 , and 266 shown in FIG. 2B without using utilization-related data (e.g., historical utilization-related data, current utilization-related data).
- utilization-related data e.g., historical utilization-related data, current utilization-related data.
- the routing can be accomplished without computing a utilization value (e.g., a current utilization value, past utilization value, a resource consumption value) based on utilization-related data.
- Utilization-related data can be, for example, data indicating the number of session requests processed at a particular network resource over a specified period of time. Accordingly, the routing by the session exchange device can also be performed independent of network traffic patterns. In other words, the routing can be performed regardless of network traffic volume and/or regularity/irregularity of network traffic.
- a distribution policy also can be referred to as a network traffic distribution policy or as a utilization policy
- distribution function defined based on the relationship between the routing distribution profile and the ranges of number value values 260 , 262 , 264 , and 266
- a distribution policy based on random number values can be referred to as a random number (RN) distribution policy. More details related to distribution functions are discussed in connection with FIG. 4 .
- the number value ranges can be stored in and/or accessed from a database.
- the number value ranges 260 , 262 , 264 , and 266 can be defined to produce mutually exclusive routing. In other words, the number value ranges 260 , 262 , 264 , and 266 are defined so that they do not overlap. In some embodiments, more than one number value range can be associated with a single network resource. For example, in some embodiments, number value range 260 and number value range 264 can be associated with network resource 1 .
- one or more number value ranges can be modified based on one or more changes to a distribution profile (also can be referred to as a modified distribution profile), such as that shown in FIG. 2A (e.g., addition of a network resource or change in target utilization values).
- a distribution profile also can be referred to as a modified distribution profile
- the modified distribution profile which is used for future network traffic distribution, can be changed in response to, for example, a change in financial objectives and/or a change in administrative objectives associated with one or more network resources.
- the modified distribution profile can be defined at an entity separate from a session exchange device.
- the modified distribution profile can be defined in an off-line process separate (e.g., separate in space and/or time) from functions performed by the session exchange device and/or without feedback (e.g., feedback based on historical utilization-related data) from the session exchange device. Accordingly, the modified distribution profile can be received at a session exchange device after the modified distribution profile has been defined elsewhere. The number value ranges associated with the modified distribution profile and used for network traffic distribution can then be defined at, for example, the session exchange device in a calibration process.
- one or more number value ranges can be modified dynamically in response to one or more changes to an associated distribution profile. For example, one or more number value ranges can be modified in response to a network resource being unavailable during a future period of time (e.g., temporarily unavailable due to a network outage). In some embodiments, a network resource may be temporarily unavailable due to scheduled maintenance of the network resource.
- FIG. 3 is a schematic diagram that illustrates an example of a routing engine 320 of a session exchange device 350 configured to route a session request based on a random number value.
- the routing engine 320 includes a random number generator 322 , a routing module 328 , and a routing policy database 326 .
- the routing engine 320 is configured to route the session request to a network resource from a set of network resources 370 based on an RN distribution policy 324 included in the routing policy database 326 .
- the set of network resources 370 include network resources 1 to N.
- the random number generator 322 is configured to produce a random number value within a number value domain associated with the RN distribution policy 324 .
- the random number generator 322 can be a random number generator based on a physical phenomenon (e.g., white noise, radioactive decay, thermal noise) or a computationally-based random number (e.g., a pseudo-random number generator, a pseudo-random number generator with a relatively high correlation rate).
- a computationally-based random number generator can be configured to produce a sequence of number values sufficiently random to achieve the desired target distribution profile (e.g., achieve the desired target distribution profile within specified time constraints and/or statistical limits) based on the network traffic volume received at the session exchange device 350 .
- the random number generator 322 can be a linear congruential generator, a lagged Fibonacci generator, a linear feedback shift register, and/or a generalized feedback shift register.
- a sequence of number values may be stored in a memory (not shown) and used (e.g., accessed) by the routing engine 320 to make a routing determination.
- a number value from the sequence of number values may be selected by the routing engine 320 when making the routing determination.
- random number generator 322 may be excluded from the routing engine 320 .
- the number value can be selected in an ordered fashion (e.g., a serial fashion, a sequential fashion, a periodic fashion) and/or randomly.
- at least a portion of the sequence of number values may be produced by a random number generator.
- the sequence of number values may be defined to approximate a sequence of random number values produced by, for example, a random number generator such as random number generator 322 shown in FIG. 3 .
- the sequence of number values may be defined so that the routing engine 320 can distribute network traffic in accordance with (e.g., within specified statistical limits associated with) a target distribution profile.
- the sequence of number values e.g., a number of number values from the sequence, a range of the sequence of number values, etc.
- the routing module 328 is configured to modify session requests so that they are routed based on routing determinations made by the routing engine 320 .
- the routing module 328 can be configured to modify a portion of a session request (e.g., a layer-3 portion, a header associated with a session request) so that the session request is sent to a network resource selected from the set of network resources 370 based on the RN distribution policy 324 .
- the session request can be directed to one of the network resources 370 based on the modified portion of the session request.
- the routing policy database 326 includes additional routing policies 329 —policies 1 to N—in addition to the RN distribution policy 324 .
- the additional routing policies 329 can be, for example, routing policies based on parameter values.
- the parameter values can be different than utilization-related data and/or unrelated to the distribution profile.
- the parameter values can be media-layer parameter values and/or session-layer parameter values (e.g., an address value, a collective quality-of-service (QoS) parameter value, a day/time value, a day-of-the-week value).
- QoS quality-of-service
- the session-layer parameter value can be extracted from and/or determined/calculated based on, for example, the session request, a different session-control-protocol message associated with the session, and/or one or more parameter values that are not session-layer parameter values (e.g., media-layer parameter values).
- the routing engine 320 can use the additional routing policies 329 to route session requests received at the session exchange device 350 .
- the routing module 328 can route a session request based on a combination of the RN distribution policy 324 and an additional routing policy 329 .
- the routing module 328 can determine that a session request should be routed to a first network resource based on the RN distribution policy 324 , and can determine that the session request should be routed to a second network resource based on an additional policy (e.g., routing policy 1 ) from the additional routing policies 329 .
- the routing module 328 can route the session request based on whether a routing determination based on the RN distribution policy 324 takes priority over a routing determination based on the additional policies 329 .
- the RN distribution policy 324 can be based on parameter values such as session-layer parameter values.
- an RN distribution policy can be (or can be based on) a distribution function that is not only a function of a random number value, but also a function of a session-layer parameter value.
- a routing determination can be made based on a distribution function modified based on a condition associated with a session-layer parameter value.
- the routing module 328 can determine using a distribution function, that a session request should be routed to a first network resource based on a random number value and a session-layer parameter value even though the session request would have been routed to a second network resource based on the random number value alone. More details related to routing based on a distribution function and parameter values are set forth in connection with FIG. 4 .
- the routing engine 320 (e.g., the routing module 328 of the routing engine 320 ) can be configured to select one of several RN distribution policies from a library of RN distribution policies based on a specified parameter value.
- the routing module 328 can be configured to make a routing determination based on an RN distribution policy selected from a library of RN distribution policies.
- the RN distribution policy can be selected in response to a session-layer parameter value satisfying a threshold condition.
- an RN distribution policy can be selected from a library of RN distribution policies in response to an address value being equal to a specified address value within a condition.
- a specified RN distribution policy can be selected in response to an indicator that a network resource from the set of network resources 370 is unavailable.
- one or more portions of an RN distribution policy can be defined based on a default value(s), for example, if a random number value is not generated and/or if a parameter value cannot be determined. In some embodiments, more than one random number value can be used to produce a different random number value used in an RN distribution policy.
- FIG. 4 is a graph that illustrates an example of a distribution function F 1 ( x ) that can be used to route a session request to a network resource.
- the distribution function F 1 ( x ) is a function of a random number value, and can be used to determine whether to route a session request to either network resource A, network resource B, or network resource C.
- the distribution function F 1 ( x ) is a non-linear function.
- a distribution value (shown on the y-axis) can be calculated based on a random number value (shown on the x-axis) using the distribution function F 1 ( x ).
- a session request (or a portion of a session request) can be routed to one of the network resources A, B, or C based on whether the calculated distribution value falls within the limits 410 associated with each network resource A, B, or C.
- the session request can be routed to network resource B because the condition associated with network resource B has been satisfied.
- a distribution value of H can be calculated using random number value P based on the distribution function F 1 ( x ).
- the random number value can be produced and the distribution value can be calculated based on the random number value in response to a session request being received at a session exchange device.
- the distribution value of H can trigger the session exchange device to route the session request to network resource B because H falls within the limits 410 associated with network resource B.
- the inflections in the distribution function F 1 ( x ) can be defined based on coefficients and/or variables within the distribution function F 1 ( x ).
- the coefficients and/or variables can be defined based on a range or domain of random number values produced by a random number generator and/or the limits 410 associated with the network resources.
- a distribution function can be defined as a function of a random number value and one or more parameter values.
- portions of the distribution function can be defined based on default values.
- the distribution function F 1 ( x ) can be changed to distribution function F 2 ( x ) (dashed line) based on a parameter value (e.g., a session-layer parameter value) associated with the session request.
- the parameter value e.g., a QoS value
- the parameter value can be used as, for example, a variable or as a coefficient that modifies the shape of the distribution function from F 1 ( x ) to F 2 ( x ).
- distribution function F 1 ( x ) and distribution F 2 ( x ) can both be included in a library of distribution functions.
- Distribution function F 2 ( x ), rather than distribution function F 1 ( x ), can be selected by a routing engine based on a parameter value (e.g., a day/time value), and then used to make a routing determination.
- distribution value G can be calculated using distribution function F 2 ( x ) based on random number value P. Accordingly, a session request can be routed by a session exchange device to network resource C based on distribution value G.
- an entity that owns/controls network resources A, B, and C may want network traffic distributed according to distribution function F 1 ( x ) on certain days/times of the week and based on distribution function F 2 ( x ) on other days/times of the week.
- the network traffic may be redistributed according to distribution function F 1 ( x ) rather than distribution function F 2 ( x ) to realize larger profit margins for the entity during specified days/times of the week by increasing the volume of traffic through a particular network resource.
- a change from F 1 ( x ) to F 2 ( x ) may increase traffic distributed to network resource C, which may be a higher profit margin network resource.
- FIG. 5 is a flowchart that illustrates a method for defining and using a distribution function, according to an embodiment.
- the defining of the distribution function e.g., the portions of the method related to the defining of the distribution function
- a calibration can be referred to as a calibration.
- a numeric range of random number values produced by a random number generator is defined at 500 .
- the numeric range of random number values can be an entire domain of random number values or a subset of a domain of random number values such as a random number value range.
- the numeric range of random number values can correspond to those that can be produced by a random number generator.
- a distribution function is defined based on the numeric range of random number values and based on target percentage utilization values associated with network resources at 510 .
- the distribution function can be a non-linear distribution function such as that shown in FIG. 4 , or a linear distribution function defined, for example, based on the relationship described in connection with FIGS. 2A and 2B .
- the target percentage utilization values can define a non-uniform distribution profile.
- the target percentage utilization values can be received from an entity separate from the session exchange device. Each target percentage utilization value can be associated with a network resource from a finite set of network resources.
- the distribution function can be modified based on a parameter value (e.g., a session layer parameter value and/or a layer-3 parameter value) associated with a session request at 520 .
- a parameter value e.g., a session layer parameter value and/or a layer-3 parameter value
- the distribution function can be changed from a linear distribution function to a non-linear distribution function based on the parameter value.
- FIG. 6 is a flowchart that illustrates a method for routing a session request based on a distribution function and based on a random number value, according to an embodiment.
- a request to establish at least a portion of a session e.g., an egress portion of the session
- the session request can be received from one or more source endpoints.
- a random number value is generated using a random number generation module at 610 .
- the random number value can be generated in response to the session request being received.
- a distribution value is calculated based on a distribution function and based on the random number value at 620 .
- the distribution value can be calculated in response to the random number value being generated.
- the session request is routed based on the distribution value and/or based on a separate policy at 630 .
- the session request can be routed based on a modification to, for example, a header portion associated with the session request.
- Some embodiments relate to a computer storage product with a computer-readable medium (also can be referred to as a processor-readable medium) having instructions or computer code thereon for performing various computer-implemented operations.
- the media and computer code also can be referred to as code
- Examples of computer-readable media include, but are not limited to: magnetic storage media such as hard disks, floppy disks, and magnetic tape; optical storage media such as Compact Disc/Digital Video Discs (CD/DVDs), Compact Disc-Read Only Memories (CD-ROMs), and holographic devices; magneto-optical storage media such as optical disks; carrier wave signals; and hardware devices that are specially configured to store and execute program code, such as ASICs, Programmable Logic Devices (PLDs), and Read-Only Memory (ROM) and Random-Access Memory (RAM) devices.
- magnetic storage media such as hard disks, floppy disks, and magnetic tape
- optical storage media such as Compact Disc/Digital Video Discs (CD/DVDs), Compact Disc-Read Only Memories (CD-ROMs), and holographic devices
- magneto-optical storage media such as optical disks
- carrier wave signals and hardware devices that are specially configured to store and execute program code, such as ASICs, Programmable Logic Devices (PLDs),
- Examples of computer code include, but are not limited to, micro-code or micro-instructions, machine instructions, such as produced by a compiler, and files containing higher-level instructions that are executed by a computer using an interpreter.
- machine instructions such as produced by a compiler
- files containing higher-level instructions that are executed by a computer using an interpreter For example, an embodiments may be implemented using Java, C++, or other object-oriented programming language and development tools.
- Additional examples of computer code include, but are not limited to, control signals, encrypted code, and compressed code.
Abstract
Description
- Embodiments relate generally to traffic distribution within a network, and, in particular, to methods and apparatus for network traffic distribution based on random number values.
- A network routing device can be configured to route incoming network traffic to one or more target network resources based on a variety of known network resource selection algorithms such as round robin algorithms, water fall algorithms, and/or percentage utilization algorithms. These known network resource selection algorithms can be defined based on, for example, operational, financial, and/or administrative objectives associated with one or more of the target network resources.
- These known network resource selection algorithms, however, have one or more disadvantages. For example, some known percentage utilization algorithms can consume substantial computational and/or memory resources. They require processing of large volumes of historical data and/or continual polling of network resources to determine current and/or historical utilization. Despite advances in hardware/software processing capabilities, some of these known selection algorithms may be difficult to adapt to scalable networking systems. Some known network resource selection algorithms provide reasonable results in only predictable, even traffic flow environments, but not in uneven/dynamic traffic environments. Accordingly, methods and apparatus are needed to address the shortfalls of known network resource selection algorithms and to provide other new and innovative features.
- In one embodiment, a method includes receiving a routing distribution profile associated with a set of network resources disposed between a source endpoint and a destination endpoint. The set of network resources is within a session over Internet Protocol (SoIP) network. A distribution function is defined based on the routing distribution profile and based on a range of random number values. The distribution function is used to route via a network resource from the set of network resources a request to establish a session between the source endpoint and the destination endpoint.
-
FIG. 1 is a schematic diagram that illustrates a routing module of a session exchange device configured to route a session request over a session over Internet Protocol (SoIP) network from a source endpoint to a destination endpoint based on a random number value, according to an embodiment. -
FIG. 2A is a table that illustrates a routing distribution profile associated with a set of network resources, according to an embodiment. -
FIG. 2B is a schematic diagram that illustrates ranges of number values that can be used by a session exchange device to route a session request to at least one network resource referenced inFIG. 2A , according to an embodiment -
FIG. 3 is a schematic diagram that illustrates an example of a routing engine of a session exchange device configured to route a session request based on a random number value. -
FIG. 4 is a graph that illustrates an example of a distribution function that can be used to route a session request to a network resource. -
FIG. 5 is a flowchart that illustrates a method for defining and using a distribution function, according to an embodiment. -
FIG. 6 is a flowchart that illustrates a method for routing a session request based on a distribution function and based on a random number value, according to an embodiment. - A session exchange device within a session over Internet Protocol (SoIP) network can be configured to route a session request (or a portion of a session request) from a source endpoint to a destination endpoint based on a random number value. Specifically, the session exchange device can be configured to route the session request via a network resource selected from a set of network resources based on a random number value. In addition, the session exchange device can be configured to route the session request in accordance with a utilization target value (e.g., in accordance with a utilization target value over a specified period of time and/or within specified statistical limits) associated with the network resource based on the random number value. The utilization target value can be from a set of utilization target values associated with the set of network resources. The utilization target values can define a routing distribution profile (also can be referred to as a distribution profile or a target distribution profile).
- In some embodiments, the session exchange device can be configured to route a session request based on a relationship defined using a routing distribution profile and a ranges of number values. The relationship can be defined so that the session exchange device can route the session request independent of historical utilization-related data (also can be referred to as historical utilization data) associated with the network resource. The historical utilization-related data can include real-time (e.g., recent, current) utilization measurement value(s) and/or past utilization measurement value(s). The historical utilization-related data can also be state information, for example, indicating whether or not a network resource is available. A utilization measurement value (also can be referred to as utilization) can, in some embodiments, represent the proportion of a network resource in use for an activity, such as responding to a session request, during a specified past period of time. In some embodiments, the relationship, which can be a linear relationship or a non-linear relationship, can be defined based on, for example, a calibration method.
- In some embodiments, the relationship used by a session exchange device to route a session request can be based on a variety of parameter values that can be, for example, associated with any layer of the open systems interconnection (OSI) model (e.g., session layer (layer-5 of the OSI model and above), media-layer (layer-3 of the OSI model)). In some embodiments, the parameter value(s) can be associated with the session request. One or more of the parameter values can vary independent of the utilization (e.g., measured utilization or utilization measurement value) of one or more network resources from the set of network resources. In some embodiments, routing based on one or more random number values can be referred to as routing based on a random number value selection algorithm.
-
FIG. 1 is a schematic diagram that illustrates arouting engine 112 of asession exchange device 110 configured to route a session request over aSoIP network 180 from asource endpoint 120 to adestination endpoint 160 based on a random number value, according to an embodiment. Specifically, therouting engine 112 is configured to use the random number value to determine through which network resource(s) from a set ofnetwork resources 170 the session request should be routed to thedestination endpoint 160. After the session request has been sent to the selected network resource from the set ofnetwork resources 170, the selected network resource can process (e.g., respond to, deny) the session request. The set ofnetwork resources 170 includenetwork resources 1 to N (i.e., network resource1, network resource2, . . . network resources). As shown inFIG. 1 , the set ofnetwork resources 170 is disposed between thesession exchange device 110 and thedestination endpoint 160. - The
routing engine 112 can be configured to produce a random number value in response to the session request being received at thesession exchange device 110 from thesource endpoint 120. Therouting engine 112 can be configured to route the session request to, for example, one of the network resources from the set ofnetwork resources 170 when the random number value satisfies one or more conditions. The condition(s) can be defined based on a set of utilization target values not only associated with the set ofnetwork resources 170 but also defining a routing distribution profile. - For example, the session request can be routed to network resource1 when the random number value falls within a range of number values defined based on a target utilization value associated with network resource1. In some embodiments, the
routing engine 112 can be configured to route the session request based on a distribution function defined based on the routing distribution profile associated the set ofnetwork resources 170. - In some embodiments, if a network resource from the set of
network resources 170 denies a session request that has been routed to the network resource based on a first random number value, therouting engine 112 can be configured to route the session request based on a second random number value. In other words, the session request can be routed based on re-execution of a random number value selection algorithm. In some embodiments, the session request can be routed to the same network resource or a different network resource from the set ofnetwork resources 170 after re-execution of the random number value selection algorithm. - In some embodiments, if a network resource from the set of
network resources 170 denies a session request that has been routed to the network resource based on a random number value, therouting engine 112 can be configured to route the session request based on a different network resource selection algorithm (e.g., a round robin selection algorithm). In some embodiments, if a session request is denied by a network resource selected from the set ofnetwork resources 170 based on a random number value, therouting engine 112 can be configured to abandon further processing of the session request. In some embodiments, the type of policy and/or the priority of the policy applied upon denial of a session request can be defined by, for example, a network administrator. - The
routing engine 112 can be a software-based module (e.g., a set of instructions executable at a processor, a software application) and/or a hardware-based module (e.g., a processor, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA)). In some embodiments, therouting engine 112 can be associated with one or more memory components (not shown) and/or one or more processing components (not shown). - The session request can be a request to establish a session between the
source endpoint 120 and thedestination endpoint 160. The session can be established so that, for example, a signal (e.g., a media signal) associated with the session can be transmitted between thesource endpoint 120 and thedestination endpoint 160. The signal can be, for example, a stream of packets (e.g., Ethernet packets) encoded with voice content, video content, and/or data content. In some embodiments, the signal can be encoded as a digital signal and/or as an analog signal (e.g., some portions of the signal can be digital while other portions of the signal can be analog). The signal can be defined based on, for example, a media-layer protocol. - In some embodiments, the session request can be defined in accordance with a session control protocol such as session initiation protocol (SIP). In some embodiments, the session request can be referred to as a signaling request and can be an in-band request and/or an out-of-band request (e.g., some portions of the session request can be in-band while other portions of the session request can be out-of-band). The session request can be defined at the
source endpoint 120 in response to, for example, an interaction of a user with thesource endpoint 120. In some embodiments, the session request can be translated into a different session control protocol at thesession exchange device 110 before being forwarded to, for example, network resource2. - The
source endpoint 120, each network resource from the set ofnetwork resources 170, and/or thedestination endpoint 160 can be, for example, a router, a public switched telephone network (PSTN), a broadband network that can provide network access to broadband consumers, an enterprise network, an H.323 network, a SIP softswitch network, a SIP network, an individual phone/computer terminal and/or an access point (e.g., another session exchange device) to another SoIP network (not shown). In some embodiments, thenetwork resources 170 can be controlled by a carrier (e.g., a local exchange carrier, a network operator, a wireless communication carrier) that provides, for example, telecommunications services (e.g., telephony services, data communications services) via thenetwork resources 170. In some embodiments, one or more network resources from the set ofnetwork resources 170 can be controlled by one or more entities that are different than the entity associated with (e.g., controlling) thesession exchange device 110. In some embodiments, each network resource from the set ofnetwork resources 170 can be configured with substantially equivalent capability to handle a session request routed based on a random number value. - Although shown as a
single SoIP network 180 in this embodiment, theSoIP network 180 can be a collection of one or more SoIP networks, can be associated with a separate SoIP network (not shown), and/or can have more than one wired and/or wireless segment. TheSoIP network 180 can be, for example, a voice over Internet Protocol (VoIP) network, a video over Internet Protocol network, and/or a media over Internet Protocol (MoIP) network. - The
session exchange device 110 can function as a multi-protocol session exchange device and can be configured to function as an interface device between thesource endpoint 120 and thenetwork resources 170. In some embodiments, thesession exchange device 110 can be a session-aware device. In some embodiments, thesession exchange device 110 can function as a session border controller (SBC) and/or can be associated with a session border controller (not shown). Such an SBC can be configured to establish, control, and monitor sessions (also can be referred to as connections) between one or more endpoints such as thesource endpoint 120, thenetwork resources 170, and/or thedestination endpoint 160 based on information such as, for example, session-layer information (e.g., layer-5 and above of the OSI model). The SBC can be configured to communicate with a SBC-network controller (not shown) that is, for example, a centralized management component that can be configured to control, configure, and/or coordinate one or more portions of theSoIP network 180. -
FIG. 2A is a table 200 that illustrates a routing distribution profile associated with a set of network resources 220, according to an embodiment. As shown inFIG. 2A , the set of network resources 220 includes network resource1, network resource2, network resource3, and network resource4. Each network resource from the set of network resources 220 is associated with atarget utilization value 210. For example, network resource1 is associated with a target utilization value of 25% (shown in column 210) and network resource3 is associated with a target utilization value of 40% (shown in column 210). - Collectively, the
target utilization values 210 can define (or represent) a desirable distribution profile (e.g., a desirable allocation) of network-related traffic, such as session requests, between network resources within the set of network resources 220. For example, the target utilization value of 25% associated with network resource3 is an indicator that 25% of specified network-related traffic (e.g., session requests) should be routed via network resource3. Thetarget utilization values 210 shown inFIG. 2A define a non-uniform distribution profile because at least one of thetarget utilization values 210 is different than the other target utilization values 210. In fact, thetarget utilization values 210 in this embodiment define a completely non-uniform distribution profile because each of thetarget utilization values 210 are different from one another. - In some embodiments, the
target utilization values 210 can be defined by an entity associated with the set of network resources 220 (e.g., an entity controlling the set of network resources 220). In some embodiments, thetarget utilization values 210 can be defined at an entity separate from a session exchange device. In some embodiments, thetarget utilization values 210 can be defined based on financial considerations. For example, atarget utilization value 210 associated with, for example, network resource2 can be defined based on a desirable profit margin associated with network-related traffic routed through network resource2 as compared with network resource1. In some embodiments, each of thetarget utilization values 210 can represent, for example, a maximum proportion of network-related traffic that can be distributed to a particular network resource from the set of network resources 220. - In some embodiments, the
target utilization values 210 can be associated with a particular type of network traffic. For example, thetarget utilization values 210 can be associated with only session requests from a particular set of source endpoints, or associated with only a particular type of session request (e.g., a session request defined based on a particular protocol). In some embodiments, thetarget utilization values 210 can be global values that can be used by, for example, multiple session exchange devices in making routing decisions. -
FIG. 2B is a schematic diagram that illustrates ranges of number values that can be used by a session exchange device to route a session request to at least one network resource referenced inFIG. 2A , according to an embodiment. As shown inFIG. 2B , each range of number values-range 260,range 262,range 264, and range 266—from a domain of number values 250 is associated with a network resource from the network resources referenced inFIG. 2A . For example,range 260 is associated with network resource1 andrange 264 is associated with network resource3. In some embodiments, the number value ranges 260, 262, 264, and 266 can be referred to as random number value ranges. In some embodiments, the domain of number values 250 can be referred to as a domain of random number values. - In response to receipt of a session request, the session exchange device can produce a random number value from within the domain of number values 250. The session exchange device can then route the session request based on the random number value falling within one of the ranges of number values 260, 262, 264, and/or 266. For example, if the random number value were to fall within
range 262, the session exchange device could route the session request to network resource2. Said differently, the session request can be routed to network resource2 because the condition associated with network resource2 has been satisfied based on the random number value. - The ranges of number values 260, 262, 264, and 266, can be scaled relative to one another so that each of the network resources will have a desirable probability of being selected by the session exchange device for processing of a session request based on the random number value. The ranges of number values 260, 262, 264, and 266 can be defined in proportion to one another based on a desirable routing distribution profile. For example, in this embodiment, the number value ranges 260, 262, and 264, and 266 are defined based on the
target utilization values 210 shown inFIG. 2A . For example,number value range 260, which is associated with network resource1, includes a percentage of number values from thedomain 250 that corresponds with the target utilization value of 25%, which is associated with network resource1 as shown incolumn 210 ofFIG. 2A . Accordingly, in this embodiment, network resource1 has a 25% probability of being selected to process the session request based on a randomly produced number value from the domain of number values 250. - Session requests can be routed to one or more of the network resources 220 (referenced in
FIG. 2A andFIG. 2B ) based on random number values and the number value ranges 260, 262, 264, and 266 shown inFIG. 2B without using utilization-related data (e.g., historical utilization-related data, current utilization-related data). In other words, the routing can be accomplished without computing a utilization value (e.g., a current utilization value, past utilization value, a resource consumption value) based on utilization-related data. Utilization-related data can be, for example, data indicating the number of session requests processed at a particular network resource over a specified period of time. Accordingly, the routing by the session exchange device can also be performed independent of network traffic patterns. In other words, the routing can be performed regardless of network traffic volume and/or regularity/irregularity of network traffic. - In some embodiments, a distribution policy (also can be referred to as a network traffic distribution policy or as a utilization policy) or distribution function defined based on the relationship between the routing distribution profile and the ranges of number value values 260, 262, 264, and 266 can be used by the session exchange device to route session requests. A distribution policy based on random number values, such as that described in connection with
FIGS. 2A and 2B , can be referred to as a random number (RN) distribution policy. More details related to distribution functions are discussed in connection withFIG. 4 . In some embodiments, the number value ranges can be stored in and/or accessed from a database. - In this embodiment, the number value ranges 260, 262, 264, and 266 can be defined to produce mutually exclusive routing. In other words, the number value ranges 260, 262, 264, and 266 are defined so that they do not overlap. In some embodiments, more than one number value range can be associated with a single network resource. For example, in some embodiments,
number value range 260 andnumber value range 264 can be associated with network resource1. - In some embodiments, one or more number value ranges, such as those shown in
FIG. 2B , for example, can be modified based on one or more changes to a distribution profile (also can be referred to as a modified distribution profile), such as that shown inFIG. 2A (e.g., addition of a network resource or change in target utilization values). In some embodiments, the modified distribution profile, which is used for future network traffic distribution, can be changed in response to, for example, a change in financial objectives and/or a change in administrative objectives associated with one or more network resources. The modified distribution profile can be defined at an entity separate from a session exchange device. In some embodiments, the modified distribution profile can be defined in an off-line process separate (e.g., separate in space and/or time) from functions performed by the session exchange device and/or without feedback (e.g., feedback based on historical utilization-related data) from the session exchange device. Accordingly, the modified distribution profile can be received at a session exchange device after the modified distribution profile has been defined elsewhere. The number value ranges associated with the modified distribution profile and used for network traffic distribution can then be defined at, for example, the session exchange device in a calibration process. - In some embodiments, one or more number value ranges can be modified dynamically in response to one or more changes to an associated distribution profile. For example, one or more number value ranges can be modified in response to a network resource being unavailable during a future period of time (e.g., temporarily unavailable due to a network outage). In some embodiments, a network resource may be temporarily unavailable due to scheduled maintenance of the network resource.
-
FIG. 3 is a schematic diagram that illustrates an example of arouting engine 320 of asession exchange device 350 configured to route a session request based on a random number value. As shown inFIG. 3 , therouting engine 320 includes arandom number generator 322, arouting module 328, and arouting policy database 326. Therouting engine 320 is configured to route the session request to a network resource from a set ofnetwork resources 370 based on anRN distribution policy 324 included in therouting policy database 326. The set ofnetwork resources 370 includenetwork resources 1 to N. - The
random number generator 322 is configured to produce a random number value within a number value domain associated with theRN distribution policy 324. In some embodiments, therandom number generator 322 can be a random number generator based on a physical phenomenon (e.g., white noise, radioactive decay, thermal noise) or a computationally-based random number (e.g., a pseudo-random number generator, a pseudo-random number generator with a relatively high correlation rate). For example, a computationally-based random number generator can be configured to produce a sequence of number values sufficiently random to achieve the desired target distribution profile (e.g., achieve the desired target distribution profile within specified time constraints and/or statistical limits) based on the network traffic volume received at thesession exchange device 350. In some embodiments, therandom number generator 322 can be a linear congruential generator, a lagged Fibonacci generator, a linear feedback shift register, and/or a generalized feedback shift register. - In some embodiments, a sequence of number values may be stored in a memory (not shown) and used (e.g., accessed) by the
routing engine 320 to make a routing determination. A number value from the sequence of number values may be selected by therouting engine 320 when making the routing determination. In such an embodiment,random number generator 322 may be excluded from therouting engine 320. The number value can be selected in an ordered fashion (e.g., a serial fashion, a sequential fashion, a periodic fashion) and/or randomly. In some embodiments, at least a portion of the sequence of number values may be produced by a random number generator. In some embodiments, at least a portion of the sequence of number values may be defined to approximate a sequence of random number values produced by, for example, a random number generator such asrandom number generator 322 shown inFIG. 3 . In some embodiments, the sequence of number values may be defined so that therouting engine 320 can distribute network traffic in accordance with (e.g., within specified statistical limits associated with) a target distribution profile. The sequence of number values (e.g., a number of number values from the sequence, a range of the sequence of number values, etc.) can be defined based on a statistical calculation. - The
routing module 328 is configured to modify session requests so that they are routed based on routing determinations made by therouting engine 320. In some embodiments, therouting module 328 can be configured to modify a portion of a session request (e.g., a layer-3 portion, a header associated with a session request) so that the session request is sent to a network resource selected from the set ofnetwork resources 370 based on theRN distribution policy 324. In other words, the session request can be directed to one of thenetwork resources 370 based on the modified portion of the session request. - As shown in
FIG. 3 , therouting policy database 326 includesadditional routing policies 329—policies 1 to N—in addition to theRN distribution policy 324. Theadditional routing policies 329 can be, for example, routing policies based on parameter values. The parameter values can be different than utilization-related data and/or unrelated to the distribution profile. For example, the parameter values can be media-layer parameter values and/or session-layer parameter values (e.g., an address value, a collective quality-of-service (QoS) parameter value, a day/time value, a day-of-the-week value). In some embodiments, the session-layer parameter value can be extracted from and/or determined/calculated based on, for example, the session request, a different session-control-protocol message associated with the session, and/or one or more parameter values that are not session-layer parameter values (e.g., media-layer parameter values). - In some embodiments, the
routing engine 320 can use theadditional routing policies 329 to route session requests received at thesession exchange device 350. In some embodiments, therouting module 328 can route a session request based on a combination of theRN distribution policy 324 and anadditional routing policy 329. For example, therouting module 328 can determine that a session request should be routed to a first network resource based on theRN distribution policy 324, and can determine that the session request should be routed to a second network resource based on an additional policy (e.g., routing policy1) from theadditional routing policies 329. Therouting module 328 can route the session request based on whether a routing determination based on theRN distribution policy 324 takes priority over a routing determination based on theadditional policies 329. - In some embodiments, the
RN distribution policy 324 can be based on parameter values such as session-layer parameter values. For example, an RN distribution policy can be (or can be based on) a distribution function that is not only a function of a random number value, but also a function of a session-layer parameter value. In some embodiments, a routing determination can be made based on a distribution function modified based on a condition associated with a session-layer parameter value. For example, therouting module 328 can determine using a distribution function, that a session request should be routed to a first network resource based on a random number value and a session-layer parameter value even though the session request would have been routed to a second network resource based on the random number value alone. More details related to routing based on a distribution function and parameter values are set forth in connection withFIG. 4 . - Although not shown, in some embodiments, the routing engine 320 (e.g., the
routing module 328 of the routing engine 320) can be configured to select one of several RN distribution policies from a library of RN distribution policies based on a specified parameter value. For example, therouting module 328 can be configured to make a routing determination based on an RN distribution policy selected from a library of RN distribution policies. The RN distribution policy can be selected in response to a session-layer parameter value satisfying a threshold condition. For example, an RN distribution policy can be selected from a library of RN distribution policies in response to an address value being equal to a specified address value within a condition. In some embodiments, a specified RN distribution policy can be selected in response to an indicator that a network resource from the set ofnetwork resources 370 is unavailable. - In some embodiments, one or more portions of an RN distribution policy can be defined based on a default value(s), for example, if a random number value is not generated and/or if a parameter value cannot be determined. In some embodiments, more than one random number value can be used to produce a different random number value used in an RN distribution policy.
-
FIG. 4 is a graph that illustrates an example of a distribution function F1(x) that can be used to route a session request to a network resource. The distribution function F1(x) is a function of a random number value, and can be used to determine whether to route a session request to either network resource A, network resource B, or network resource C. As shown inFIG. 4 , the distribution function F1(x) is a non-linear function. A distribution value (shown on the y-axis) can be calculated based on a random number value (shown on the x-axis) using the distribution function F1(x). A session request (or a portion of a session request) can be routed to one of the network resources A, B, or C based on whether the calculated distribution value falls within thelimits 410 associated with each network resource A, B, or C. In other words, the session request can be routed to network resource B because the condition associated with network resource B has been satisfied. - For example, as shown in
FIG. 4 , a distribution value of H can be calculated using random number value P based on the distribution function F1(x). The random number value can be produced and the distribution value can be calculated based on the random number value in response to a session request being received at a session exchange device. Also as shown inFIG. 4 , the distribution value of H can trigger the session exchange device to route the session request to network resource B because H falls within thelimits 410 associated with network resource B. - In some embodiments, the inflections in the distribution function F1(x) can be defined based on coefficients and/or variables within the distribution function F1(x). The coefficients and/or variables can be defined based on a range or domain of random number values produced by a random number generator and/or the
limits 410 associated with the network resources. In some embodiments, a distribution function can be defined as a function of a random number value and one or more parameter values. In some embodiments, portions of the distribution function can be defined based on default values. - In some embodiments, the distribution function F1(x) can be changed to distribution function F2(x) (dashed line) based on a parameter value (e.g., a session-layer parameter value) associated with the session request. In some embodiments, the parameter value (e.g., a QoS value) can be used as, for example, a variable or as a coefficient that modifies the shape of the distribution function from F1(x) to F2(x).
- In some embodiments, distribution function F1(x) and distribution F2(x) can both be included in a library of distribution functions. Distribution function F2(x), rather than distribution function F1(x), can be selected by a routing engine based on a parameter value (e.g., a day/time value), and then used to make a routing determination. As shown in
FIG. 4 , distribution value G can be calculated using distribution function F2(x) based on random number value P. Accordingly, a session request can be routed by a session exchange device to network resource C based on distribution value G. - For example, an entity that owns/controls network resources A, B, and C, may want network traffic distributed according to distribution function F1(x) on certain days/times of the week and based on distribution function F2(x) on other days/times of the week. The network traffic may be redistributed according to distribution function F1(x) rather than distribution function F2(x) to realize larger profit margins for the entity during specified days/times of the week by increasing the volume of traffic through a particular network resource. For example, a change from F1(x) to F2(x) may increase traffic distributed to network resource C, which may be a higher profit margin network resource.
-
FIG. 5 is a flowchart that illustrates a method for defining and using a distribution function, according to an embodiment. In some embodiments, the defining of the distribution function (e.g., the portions of the method related to the defining of the distribution function) can be referred to as a calibration. - As shown in
FIG. 5 , a numeric range of random number values produced by a random number generator is defined at 500. The numeric range of random number values can be an entire domain of random number values or a subset of a domain of random number values such as a random number value range. The numeric range of random number values can correspond to those that can be produced by a random number generator. - A distribution function is defined based on the numeric range of random number values and based on target percentage utilization values associated with network resources at 510. The distribution function can be a non-linear distribution function such as that shown in
FIG. 4 , or a linear distribution function defined, for example, based on the relationship described in connection withFIGS. 2A and 2B . In some embodiments, the target percentage utilization values can define a non-uniform distribution profile. In some embodiments, the target percentage utilization values can be received from an entity separate from the session exchange device. Each target percentage utilization value can be associated with a network resource from a finite set of network resources. - Optionally, the distribution function can be modified based on a parameter value (e.g., a session layer parameter value and/or a layer-3 parameter value) associated with a session request at 520. For example, in some embodiments, the distribution function can be changed from a linear distribution function to a non-linear distribution function based on the parameter value.
-
FIG. 6 is a flowchart that illustrates a method for routing a session request based on a distribution function and based on a random number value, according to an embodiment. As shown inFIG. 6 , a request to establish at least a portion of a session (e.g., an egress portion of the session) between a source endpoint and a destination endpoint is received at a session exchange device at 600. The session request can be received from one or more source endpoints. - A random number value is generated using a random number generation module at 610. The random number value can be generated in response to the session request being received. A distribution value is calculated based on a distribution function and based on the random number value at 620. The distribution value can be calculated in response to the random number value being generated.
- The session request is routed based on the distribution value and/or based on a separate policy at 630. In some embodiments, the session request can be routed based on a modification to, for example, a header portion associated with the session request.
- Some embodiments relate to a computer storage product with a computer-readable medium (also can be referred to as a processor-readable medium) having instructions or computer code thereon for performing various computer-implemented operations. The media and computer code (also can be referred to as code) may be those designed and constructed for the specific purpose or purposes. Examples of computer-readable media include, but are not limited to: magnetic storage media such as hard disks, floppy disks, and magnetic tape; optical storage media such as Compact Disc/Digital Video Discs (CD/DVDs), Compact Disc-Read Only Memories (CD-ROMs), and holographic devices; magneto-optical storage media such as optical disks; carrier wave signals; and hardware devices that are specially configured to store and execute program code, such as ASICs, Programmable Logic Devices (PLDs), and Read-Only Memory (ROM) and Random-Access Memory (RAM) devices. Examples of computer code include, but are not limited to, micro-code or micro-instructions, machine instructions, such as produced by a compiler, and files containing higher-level instructions that are executed by a computer using an interpreter. For example, an embodiments may be implemented using Java, C++, or other object-oriented programming language and development tools. Additional examples of computer code include, but are not limited to, control signals, encrypted code, and compressed code.
- In conclusion, among other things, methods and apparatus for network traffic distribution based on random number values are described. While various embodiments have been described above, it should be understood that they have been presented by way of example only, and various changes in form and details may be made. Any portion of the apparatus and/or methods described herein may be combined in any combination, except mutually exclusive combinations. For example, multiple session exchange devices can each be configured to route session request to a single set of network resources based on random number values.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/129,766 US9237086B2 (en) | 2008-05-30 | 2008-05-30 | Methods and apparatus for network traffic distribution based on random number values |
PCT/US2009/045840 WO2009146449A2 (en) | 2008-05-30 | 2009-06-01 | Methods and apparatus for network traffic distribution based on random number values |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/129,766 US9237086B2 (en) | 2008-05-30 | 2008-05-30 | Methods and apparatus for network traffic distribution based on random number values |
Publications (2)
Publication Number | Publication Date |
---|---|
US20090300195A1 true US20090300195A1 (en) | 2009-12-03 |
US9237086B2 US9237086B2 (en) | 2016-01-12 |
Family
ID=41377889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/129,766 Active 2029-12-06 US9237086B2 (en) | 2008-05-30 | 2008-05-30 | Methods and apparatus for network traffic distribution based on random number values |
Country Status (2)
Country | Link |
---|---|
US (1) | US9237086B2 (en) |
WO (1) | WO2009146449A2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140092760A1 (en) * | 2012-09-28 | 2014-04-03 | Qualcomm Incorporated | Randomization procedure for assigning interference measurement resources in wireless communication |
US20170099162A1 (en) * | 2015-10-02 | 2017-04-06 | Hiroyuki Kanda | Transmission management system and relay device selecting method |
KR101828618B1 (en) * | 2010-03-22 | 2018-02-12 | 오팡가 네트웍스, 인크. | Aligning media content delivery sessions with historical network usage |
US10262285B2 (en) * | 2017-01-19 | 2019-04-16 | Bank Of America Corporation | Correlating resource utilization requirements based on utilization of affiliated resources |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10419891B2 (en) * | 2015-05-14 | 2019-09-17 | Twilio, Inc. | System and method for communicating through multiple endpoints |
CN112737941B (en) * | 2020-12-21 | 2022-05-24 | 北京信而泰科技股份有限公司 | Network flow scheduling method, device and computer readable medium |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430729A (en) * | 1994-04-04 | 1995-07-04 | Motorola, Inc. | Method and apparatus for adaptive directed route randomization and distribution in a richly connected communication network |
US6141410A (en) * | 1995-04-10 | 2000-10-31 | Nokia Telecommunications Oy | Routing traffic in a node of a telecommunication network |
US6173322B1 (en) * | 1997-06-05 | 2001-01-09 | Silicon Graphics, Inc. | Network request distribution based on static rules and dynamic performance data |
US6182642B1 (en) * | 1998-11-16 | 2001-02-06 | Unisia Jecs Corporation | Leak detection of emission control system |
US6285748B1 (en) * | 1997-09-25 | 2001-09-04 | At&T Corporation | Network traffic controller |
US6314293B1 (en) * | 2000-01-27 | 2001-11-06 | Verizon Laboratories Inc. | Probabilistic use of wireless reserve channels for admission control |
US6389448B1 (en) * | 1999-12-06 | 2002-05-14 | Warp Solutions, Inc. | System and method for load balancing |
US20020163887A1 (en) * | 1999-06-18 | 2002-11-07 | Nokia Corporation | Method for measurement-based connection admission control (MBAC) in a packet data network |
US20040114569A1 (en) * | 2002-12-17 | 2004-06-17 | Naden James M. | Cummunication network route determination |
US20040210657A1 (en) * | 2003-04-15 | 2004-10-21 | Sathya Narayanan | Session endpoint management protocol |
US6816584B1 (en) * | 2000-09-11 | 2004-11-09 | Verizon Services Corp. | Routing a call through a telecommunications network |
US20050265283A1 (en) * | 2004-05-12 | 2005-12-01 | Intel Corporation | Ping-pong avoidance load balancing techniques and structures for wireless communication |
US6980521B1 (en) * | 2000-11-29 | 2005-12-27 | Cisco Technology, Inc. | Method and apparatus for per session load balancing with improved load sharing in a packet switched network |
US7002973B2 (en) * | 2000-12-11 | 2006-02-21 | Acme Packet Inc. | System and method for assisting in controlling real-time transport protocol flow through multiple networks via use of a cluster of session routers |
US7028092B2 (en) * | 2000-12-11 | 2006-04-11 | Acme Packet, Inc. | System and method for assisting in controlling real-time transport protocol flow through multiple networks via media flow routing |
US7151781B2 (en) * | 2002-07-19 | 2006-12-19 | Acme Packet, Inc. | System and method for providing session admission control |
US20070050761A1 (en) * | 2005-08-30 | 2007-03-01 | Microsoft Corporation | Distributed caching of files in a network |
US20070078986A1 (en) * | 2005-09-13 | 2007-04-05 | Cisco Technology, Inc. | Techniques for reducing session set-up for real-time communications over a network |
US7336613B2 (en) * | 2000-10-17 | 2008-02-26 | Avaya Technology Corp. | Method and apparatus for the assessment and optimization of network traffic |
US7349346B2 (en) * | 2002-10-31 | 2008-03-25 | Intel Corporation | Method and apparatus to model routing performance |
US20080101335A1 (en) * | 2006-10-27 | 2008-05-01 | Verizon Business Network Services Inc. | Load balancing session initiation protocol (sip) servers |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128642A (en) | 1997-07-22 | 2000-10-03 | At&T Corporation | Load balancing based on queue length, in a network of processor stations |
-
2008
- 2008-05-30 US US12/129,766 patent/US9237086B2/en active Active
-
2009
- 2009-06-01 WO PCT/US2009/045840 patent/WO2009146449A2/en active Application Filing
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430729A (en) * | 1994-04-04 | 1995-07-04 | Motorola, Inc. | Method and apparatus for adaptive directed route randomization and distribution in a richly connected communication network |
US6141410A (en) * | 1995-04-10 | 2000-10-31 | Nokia Telecommunications Oy | Routing traffic in a node of a telecommunication network |
US6173322B1 (en) * | 1997-06-05 | 2001-01-09 | Silicon Graphics, Inc. | Network request distribution based on static rules and dynamic performance data |
US6285748B1 (en) * | 1997-09-25 | 2001-09-04 | At&T Corporation | Network traffic controller |
US6182642B1 (en) * | 1998-11-16 | 2001-02-06 | Unisia Jecs Corporation | Leak detection of emission control system |
US20020163887A1 (en) * | 1999-06-18 | 2002-11-07 | Nokia Corporation | Method for measurement-based connection admission control (MBAC) in a packet data network |
US6389448B1 (en) * | 1999-12-06 | 2002-05-14 | Warp Solutions, Inc. | System and method for load balancing |
US6314293B1 (en) * | 2000-01-27 | 2001-11-06 | Verizon Laboratories Inc. | Probabilistic use of wireless reserve channels for admission control |
US6816584B1 (en) * | 2000-09-11 | 2004-11-09 | Verizon Services Corp. | Routing a call through a telecommunications network |
US7336613B2 (en) * | 2000-10-17 | 2008-02-26 | Avaya Technology Corp. | Method and apparatus for the assessment and optimization of network traffic |
US6980521B1 (en) * | 2000-11-29 | 2005-12-27 | Cisco Technology, Inc. | Method and apparatus for per session load balancing with improved load sharing in a packet switched network |
US7002973B2 (en) * | 2000-12-11 | 2006-02-21 | Acme Packet Inc. | System and method for assisting in controlling real-time transport protocol flow through multiple networks via use of a cluster of session routers |
US7028092B2 (en) * | 2000-12-11 | 2006-04-11 | Acme Packet, Inc. | System and method for assisting in controlling real-time transport protocol flow through multiple networks via media flow routing |
US7151781B2 (en) * | 2002-07-19 | 2006-12-19 | Acme Packet, Inc. | System and method for providing session admission control |
US7349346B2 (en) * | 2002-10-31 | 2008-03-25 | Intel Corporation | Method and apparatus to model routing performance |
US20040114569A1 (en) * | 2002-12-17 | 2004-06-17 | Naden James M. | Cummunication network route determination |
US20040210657A1 (en) * | 2003-04-15 | 2004-10-21 | Sathya Narayanan | Session endpoint management protocol |
US20050265283A1 (en) * | 2004-05-12 | 2005-12-01 | Intel Corporation | Ping-pong avoidance load balancing techniques and structures for wireless communication |
US20070050761A1 (en) * | 2005-08-30 | 2007-03-01 | Microsoft Corporation | Distributed caching of files in a network |
US20070078986A1 (en) * | 2005-09-13 | 2007-04-05 | Cisco Technology, Inc. | Techniques for reducing session set-up for real-time communications over a network |
US20080101335A1 (en) * | 2006-10-27 | 2008-05-01 | Verizon Business Network Services Inc. | Load balancing session initiation protocol (sip) servers |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101828618B1 (en) * | 2010-03-22 | 2018-02-12 | 오팡가 네트웍스, 인크. | Aligning media content delivery sessions with historical network usage |
US20140092760A1 (en) * | 2012-09-28 | 2014-04-03 | Qualcomm Incorporated | Randomization procedure for assigning interference measurement resources in wireless communication |
US9609537B2 (en) * | 2012-09-28 | 2017-03-28 | Qualcomm Incorporated | Randomization procedure for assigning interference measurement resources in wireless communication |
US20170164339A1 (en) * | 2012-09-28 | 2017-06-08 | Qualcomm Incorporated | Randomization procedure for assigning interference measurement resources in wireless communication |
US9936494B2 (en) * | 2012-09-28 | 2018-04-03 | Qualcomm Incorporated | Randomization procedure for assigning interference measurement resources in wireless communication |
US20170099162A1 (en) * | 2015-10-02 | 2017-04-06 | Hiroyuki Kanda | Transmission management system and relay device selecting method |
US10262285B2 (en) * | 2017-01-19 | 2019-04-16 | Bank Of America Corporation | Correlating resource utilization requirements based on utilization of affiliated resources |
US10423911B2 (en) | 2017-01-19 | 2019-09-24 | Bank Of America Corporation | System for platform activity gathering for achievement leveraging virtual visualization |
Also Published As
Publication number | Publication date |
---|---|
US9237086B2 (en) | 2016-01-12 |
WO2009146449A3 (en) | 2010-02-25 |
WO2009146449A2 (en) | 2009-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9237086B2 (en) | Methods and apparatus for network traffic distribution based on random number values | |
US6775701B1 (en) | Oversubscribing network resources | |
US9071619B2 (en) | Hierarchical closed-loop control of policy, goal, and resource allocation in bandwidth management using both service-specific and network monitor observations | |
US7626929B2 (en) | Methods and apparatus for predictive call admission control within a media over internet protocol network | |
US6862291B2 (en) | Method and system for quality of service provisioning for IP virtual private networks | |
US6594277B1 (en) | Dynamic-rate, differential class-based quality of service agent for internet protocol exchange systems | |
EP2118766B1 (en) | Methods and apparatus for implementing a pluggable policy module within a session over internet protocol network | |
JP5276589B2 (en) | A method for optimizing information transfer in telecommunications networks. | |
US20110044167A1 (en) | Auto adaptive quality of service architecture and associated method of provisioning customer premises traffic | |
US7861003B2 (en) | Adaptive feedback for session over internet protocol | |
EP1927217A1 (en) | Aggregated resource reservation for data flows | |
JP2012510766A (en) | Module for managing TR-069 objects and associated methods | |
US7831970B2 (en) | Method and apparatus for scheduling periodic tasks based on synthetic homogenization | |
US7606146B1 (en) | Method and apparatus for implementing a policy-based management system on a network device | |
Tuncer et al. | Flexible traffic splitting in OpenFlow networks | |
US7065042B1 (en) | Aggregating filters | |
Giuliari et al. | Colibri: a cooperative lightweight inter-domain bandwidth-reservation infrastructure | |
Zha et al. | Research on load balance of service capability interaction management | |
Li et al. | Quality of experience in ICN: Keep your low-bitrate close and high-bitrate closer | |
Reale et al. | Applying autonomy with bandwidth allocation models | |
US7721330B1 (en) | Utility computing firewall | |
US9276776B2 (en) | Methods and apparatus for bandwidth management within a media over internet protocol network based on a session description | |
Thompson et al. | Towards a performance management architecture for large-scale distributed systems using RINA | |
Li et al. | Quality of Experience from Cache Hierarchies: Keep your low-bitrate close, and high-bitrate closer | |
US20140195685A1 (en) | System and method for session control in converged networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NEXTPOINT NETWORKS, INC.,MARYLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DEVDHAR, RAKENDU;REEL/FRAME:021025/0256 Effective date: 20080527 Owner name: NEXTPOINT NETWORKS, INC., MARYLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DEVDHAR, RAKENDU;REEL/FRAME:021025/0256 Effective date: 20080527 |
|
AS | Assignment |
Owner name: NEXTPOINT NETWORKS, INC.,MARYLAND Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:COLUMBIA PARTNERS, L.L.C., AS AGENT AND INVESTMENT MANAGER;REEL/FRAME:021744/0677 Effective date: 20080917 Owner name: NEXTPOINT NETWORKS, INC., MARYLAND Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:COLUMBIA PARTNERS, L.L.C., AS AGENT AND INVESTMENT MANAGER;REEL/FRAME:021744/0677 Effective date: 20080917 |
|
AS | Assignment |
Owner name: GENBAND INC.,TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NEXTPOINT NETWORKS, INC.;REEL/FRAME:022716/0303 Effective date: 20090220 Owner name: GENBAND INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NEXTPOINT NETWORKS, INC.;REEL/FRAME:022716/0303 Effective date: 20090220 |
|
AS | Assignment |
Owner name: GENBAND US LLC,TEXAS Free format text: CHANGE OF NAME;ASSIGNOR:GENBAND INC.;REEL/FRAME:024468/0507 Effective date: 20100527 Owner name: GENBAND US LLC, TEXAS Free format text: CHANGE OF NAME;ASSIGNOR:GENBAND INC.;REEL/FRAME:024468/0507 Effective date: 20100527 |
|
AS | Assignment |
Owner name: ONE EQUITY PARTNERS III, L.P., AS COLLATERAL AGENT Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:GENBAND US LLC;REEL/FRAME:024555/0809 Effective date: 20100528 |
|
AS | Assignment |
Owner name: COMERICA BANK, MICHIGAN Free format text: SECURITY AGREEMENT;ASSIGNOR:GENBAND US LLC;REEL/FRAME:025333/0054 Effective date: 20101028 |
|
AS | Assignment |
Owner name: GENBAND US LLC, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:ONE EQUITY PARTNERS III, L.P., AS COLLATERAL AGENT;REEL/FRAME:031968/0955 Effective date: 20121219 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALIFORNIA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:GENBAND US LLC;REEL/FRAME:039269/0234 Effective date: 20160701 Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALI Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:GENBAND US LLC;REEL/FRAME:039269/0234 Effective date: 20160701 |
|
AS | Assignment |
Owner name: GENBAND US LLC, TEXAS Free format text: RELEASE AND REASSIGNMENT OF PATENTS;ASSIGNOR:COMERICA BANK, AS AGENT;REEL/FRAME:039280/0467 Effective date: 20160701 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT PATENT NO. 6381239 PREVIOUSLY RECORDED AT REEL: 039269 FRAME: 0234. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT;ASSIGNOR:GENBAND US LLC;REEL/FRAME:041422/0080 Effective date: 20160701 Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALI Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT NO. 6381239 PREVIOUSLY RECORDED AT REEL: 039269 FRAME: 0234. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT;ASSIGNOR:GENBAND US LLC;REEL/FRAME:041422/0080 Effective date: 20160701 Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALI Free format text: CORRECTIVE ASSIGNMENT TO CORRECT PATENT NO. 6381239 PREVIOUSLY RECORDED AT REEL: 039269 FRAME: 0234. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT;ASSIGNOR:GENBAND US LLC;REEL/FRAME:041422/0080 Effective date: 20160701 |
|
AS | Assignment |
Owner name: GENBAND US LLC, TEXAS Free format text: TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:044986/0303 Effective date: 20171221 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNORS:GENBAND US LLC;SONUS NETWORKS, INC.;REEL/FRAME:044978/0801 Effective date: 20171229 Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALI Free format text: SECURITY INTEREST;ASSIGNORS:GENBAND US LLC;SONUS NETWORKS, INC.;REEL/FRAME:044978/0801 Effective date: 20171229 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT, MASSACHUSETTS Free format text: SECURITY INTEREST;ASSIGNOR:RIBBON COMMUNICATIONS OPERATING COMPANY, INC.;REEL/FRAME:052076/0905 Effective date: 20200303 |
|
AS | Assignment |
Owner name: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.), MASSACHUSETTS Free format text: TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 044978/0801;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:058949/0497 Effective date: 20200303 |
|
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 |