Packet based video is one of the fastest growing internet applications. At a high level, video streaming services, as well as any other similar streaming service with real-time near-deterministic and timely delivery requirements, employing Internet protocol (IP) can be classified into two categories: video over IP networks and video over the Internet. In the case of video over IP networks, video is delivered using dedicated IP networks. The availability of dedicated network allows the actuation of various admission control and traffic prioritization policies at the routers and switches to provide higher priority to video and other real-time traffic and, thereby protecting the more stringent quality of service (QoS) requirements of video.
Video over the Internet, on the other hand, uses public Internet infrastructures to deliver streaming video. This is also referred to as video-over-the-top and is growing rapidly. However, video over the Internet is carried just like any other data that is carried via hypertext transfer protocol (HTTP) using transmission control protocol (TCP). As a result, an insufficient amount of bandwidth on various links may be available, thereby causing the QoS requirements of the video to not be met.
In one embodiment, the present disclosure teaches a method, computer readable medium and apparatus for calculating a capacity for high speed packet access data in a link in a communications network. In one embodiment, the method comprises initializing parameters associated with streaming data, long elastic data and short elastic data, determining, via a processor, a capacity value such that a quality of service metric is met for the streaming data, the long elastic data and the short elastic data and provisioning the link with the capacity value if the quality of service metric is met
The teaching of the present disclosure can be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which:
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures.
The present disclosure broadly discloses a method, computer readable medium and an apparatus for calculating a capacity for high speed packet access data in a link in a communications network. In one embodiment, the link of particular interest may be an access link that connects a wireless base station (e.g., in 3G or 4G wireless networks) to a radio access network (RAN), e.g., an luB link in 3G or an Slu link in LTE.
In one embodiment, the user endpoints 102 may be any type of user device, such as for example, a mobile telephone, a smart phone, a messaging device, a tablet computer, a laptop computer, an air card and the like. The user endpoint 102 may communicate wirelessly with elements of the communications network architecture 100.
In one embodiment, the base station 104 may be an eNodeB. In one embodiment, the RNC 106 provides features such as packet scheduling, radio resource control (RRC) and handover. In one embodiment, the AS 112 may include a processor and memory as described in
The communications network architecture 100 may also include additional hardware or network components that are not illustrated depending on the type of network. For example, if the communications network is a UMTS network, the communications network architecture 100 may also include a serving general packet radio services (GPRS) support node (SGSN), a gateway GPRS support node (GGSN) and the like. If the communications network is an LTE network, the communications network architecture 100 may also include mobile management entity (MME), a serving gateway (SGW), a home subscriber server (HSS), a policy and charging rules function (PCRF), a packet data network (PDN) gateway (PGW) and the like. In other words,
In one embodiment, data flows from the user endpoint device 102 via various links in the communications network architecture 100 to send or receive data to and from various destinations or sources via the Internet 108. For example,
It is important for service providers today to accurately engineer the links, e.g., the link 110, in the communications network architecture 100 to have sufficient, yet optimal, capacity to handle the traffic flowing through each link. For example, various types of data may have quality of service (QoS) requirements that must be met based upon contractual agreements with the subscriber.
A second portion 202 of the link 110 may include high speed packet access (HSPA) data 206 (or any other broadband data) that uses transmission control protocol (TCP). HSPA data 206 may include, e.g., web browsing data, flow oriented and elastic data, rate adaptable data, finite access bandwidth data and the like. Previously, dimensioning models used for HSPA data 206 (and other similar wideband data) lumped all the data as a single type of data, i.e., elastic data.
Elastic data may be defined as a data type that is bit conserving (i.e., it sends all of the data), but where the time for transmission may change depending on the available bandwidth. In other words, there is no time conservation for elastic data and the transmission duration can change.
However, previous dimensioning models for HSPA data 206 that lumped all of the data as a single type of elastic data are no longer accurate for the second portion 202 of the link 110 carrying the HSPA data 206, in its entirety. Currently, streaming data (e.g., video over the Internet) is becoming a substantial portion of the HSPA data traffic that flows through the link 110. As discussed above, HSPA streaming data is not the same as the streaming data such as the conversational data 210 or the stream (R99) data 208 discussed above. In addition, the HSPA streaming data should not be confused with streaming data that is transmitted via dedicated IP networks. Rather, the streaming data that is part of the HSPA data 206 is transmitted via TCP.
In one embodiment, streaming data may be defined as time conserving, but not bit conserving. For example, if there is congestion, bits may be dropped (or coding rate reduced at the server) and a downgraded quality of the streaming data may be transmitted. In other words, the duration of the streaming data does not change. For example, if a video is five minutes long, the duration of the transmission will be five minutes.
In addition to streaming video, the present disclosure also pertains to an elastic data traffic class (i.e., the non-stream portion of the HSPA data 206) that competes against streaming video for bandwidth at various network resources. At a finer granularity, the elastic data sessions are in turn comprised of long elastic sessions (e.g., large file transfer sessions and the like) and short elastic sessions (e.g., email sessions, web surfing sessions and the like) that employ TCP. In the remainder of this disclosure, the former may be abbreviated as long elastic data and the latter as short elastic data.
Notably, streaming data, long elastic data and short elastic data have unique behavioral attributes and different performance criteria. Therefore, the previously used dimensioning techniques to calculate a required capacity for the link 110 may no longer be accurate.
In one embodiment, the present disclosure provides a new dimensioning technique to calculate a required capacity for the second portion 202 of the link 110 that takes into consideration the different types of HSPA data 206 (e.g., streaming data, long elastic data and short elastic data). In one embodiment, the new dimensioning technique may be applied as part of a process that can be performed by the AS 112 or a general purpose computer as disclosed in
The method 300 begins at step 302 and proceeds to step 304. At step 304, the method 300 initializes parameters associated with streaming data, long elastic data and short elastic data. The specific parameters are discussed below with reference to
At step 306, the method 300 determines, via a processor, a capacity value such that a QoS metric is met for the streaming data, the long elastic data and the short elastic data. In one embodiment, the determining step may be an iterative process. For example, one of the initial parameters may be an initial capacity value. Based upon the initial capacity value, it may be determined if the QoS metric is met for the streaming data, the long elastic data and the short elastic data. If not, the initial capacity value may be revised higher and the determining step may be repeated until the QoS metric is met.
At step 308, the method 300 provisions the link with the capacity value if the quality of service metric is met. In other words, the capacity value is the appropriate allocation that meets the quality of service metrics. The method 300 ends at step 310.
The method 400 begins at step 402 where the method 400 is initialized with various input parameters. In one embodiment, the input parameters may include an aggregate busy hour data traffic intensity for the streaming data (Ks), an aggregate busy hour data traffic intensity for the long elastic data (Kel), an aggregate busy hour data traffic intensity for the short elastic data (Kes), a peak rate of the streaming data (Qs), a packet loss probability for the elastic data (e.g., the long elastic data and the short elastic data) (PLR), a round trip delay time for the elastic data (e.g., the long elastic data and the short elastic data) (RTT), a maximum transmission control protocol segment size (MSS) and a representative file size for the short elastic data (FS).
In one embodiment, the Qs is dictated by the application drain rate of the streaming data. In other words, Qs is a known fixed value based upon documented attributes of the streaming applications.
At step 404, the method 400 enters the input parameters from step 402 into the new multi-class capacity dimensioning algorithm. At step 406, the method 400 determines a capacity value (C) that is used to engineer the capacity of a link, e.g., the link 110. In one embodiment, the method 400 may be executed based upon one or more different bandwidth sharing profiles 408 among contending applications. Thus, depending on the sharing profile that is used, the computed outcome for C may vary between profiles.
In one embodiment, two different types of sharing profiles may be used. A first profile applies an even splitting of capacity among active sessions. For example, in a two dimensional model of xs stream sessions and xe elastic sessions, there may be no distinction among the long and short elastic sessions. In one embodiment, the first profile may be represented as shown below in Equation (1):
where γs represents a share of the capacity assigned to each of the xs streaming data sessions and γe represents a share of the capacity assigned to each of the xe elastic data sessions.
For a scenario with more than two classes (e.g., a 3-class scenario comprised of streaming data, long elastic data and short elastic data), the share of bandwidth captured by each active session belonging to class i, γi(x), is given by Equation (2):
with the convention that the result of any summation where the upper index is less than the lower index equals zero.
A second profile applies a peak rate proportional bandwidth sharing profile. For example in a two dimensional model of xs stream sessions and xe elastic sessions, the second profile may be represented as shown below in Equations (3) and (4):
where αs represents a normalized peak rate to pipe capacity for the streaming data and αe represents a normalized peak rate to pipe capacity for the elastic data.
The αs and the αe may be calculated by Equations (5) and (6):
where Qs represents the peak rate of the streaming data, Qe represents the peak rate of the elastic data and C represents the target capacity of the link, which is being evaluated for QoS compliance in the current instance of the dimensioning process. The value of Qs is determined based upon the type of streaming data, as discussed above.
The value of Qe may be calculated depending on the type of elastic data. For example, a peak rate of the long elastic data Qel and a peak rate of the short elastic data Qes may be calculated. The values for Qel and Qes may be calculated by considering the behavior of the long elastic and short elastic data under different PLR and RTT. In one embodiment, Equations (7) and (8) below can be used:
where the variables, FS, MSS, RTT and PLR are known input parameters, as discussed above.
As a result, using the Qel and the Qes, the αe may be further categorized into the normalized peak rate for the long elastic data αel and the normalized peak rate for the short elastic data αes. The values for αel and αes are provided below by Equations (9) and (10):
For a scenario with more than two classes (e.g., a 3-class scenario comprised of streaming data, long elastic data and short elastic data), the share of bandwidth captured by each active session belonging to class i, γi(x), is given by Equation (11):
The method 500 begins at step 502 and proceeds to step 504. At step 504 an initial lower bound on the capacity, C, is set and included in the input parameter list 516. In addition, at step 504, the method 500 sets a variable QoSmet=false.
The method 500 then proceeds to step 506, where the input parameters from block 516 and a bandwidth sharing profile from block 518 are fed into a queuing model block 506. In one embodiment, the input parameters may include, C, Ks, Kel, Kes, Qs, PLR, RTT, MSS and FS. In one embodiment, the profile may be one of a plurality of different types of sharing profiles. For example, two possible sharing profiles may be an equal sharing profile or a proportional sharing profile. The equations for the two types of sharing profiles are provided by Equations (1)-(4) and (11) above.
At a high level, the queuing model block 506 determines the computational priority ordering of the streaming data, the long elastic data and the short elastic data, and sets the bounds of a three dimensional state transition diagram. It should be noted that if the long elastic data and the short elastic data are lumped together as a single elastic data class, the state transition diagram may be simplified into a two dimensional state transition diagram.
Attempting to solve the steady state probabilities of the three dimensional state transition diagram and then attempting to estimate from the probabilities performance metrics applicable to each type of data traffic (e.g., the streaming data, the long elastic data and the short elastic data) can be a daunting task. For example, solving the steady state probabilities of the three dimensional state transition diagram would require solving a system of linear equations in K3 variables, having a complexity of approximately K6.
As a result, in one embodiment the queuing model block 506 attempts to perform conservative bounding of the state transition diagrams for various performance metrics, for example, sub-par customer time fraction (SCTF) for the streaming data and a sub-par customer data fraction (SCDF) for the elastic data. In one embodiment, the SCDF may be further divided into a long elastic data sub-par customer data fraction (SCDFel) and a short elastic data sub-par customer data fraction (SCDFes). Additionally, the SCTF can be mapped to an objective streaming video quality metric, such as for example, the probability of stall or the Peak Signal to Noise Ratio (PSNR). These performance metrics are discussed in further detail below.
For simplicity, the illustrative examples and equations below are provided for a two-dimensional state transition diagram. However, the equations may easily be modified for the three-dimensional state transition diagram (or any arbitrary N-dimensional state transition diagram). For example, expressions with “e” may be substituted with “(el+es)”. The conservative bounding may be determined by calculating a pessimistic weight function {hacek over (Ψ)}(xs,xe) for each state (xs,xe). The technique involves following a so-called heaviest weight path along the edges of the state space (e.g., a square for 2-D and a cube for 3-D). Some of the theoretical underpinnings for performing this technique may be found in a document entitled “On Performance Bounds for the Integration of Elastic and Adaptive Streaming Flows,” T. Bonald and A. Proutiere, SIGMETRICS/Performance '04, June 2004, New York, which is incorporated by reference in its entirety. Alternatively, an optimistic weight function {circumflex over (Ψ)}(xs,xe) for each state (xs,xe) that follows the lightest weight path along the edges of the state space may also be used to arrive at optimistic estimates for the performance metrics.
In one embodiment, the pessimistic weight function {hacek over (Ψ)}(xs,xe) and the optimistic weight function {circumflex over (Ψ)}(xs,xe) may be calculated by first ordering the classes of sessions. For a given state of a system (x1, x2), denote the departure rate of class i sessions (i=1,2) by φi(x1,x2), i=1, 2.
To exemplify the notion of departure rates in a two-class system comprised of stream (x1) an elastic (x2), if the average duration of each streaming session is denoted by 1/μs (wherein μs represents an inverse of the streaming session duration), then the total rate at which stream sessions are departing the system when there are x1 active stream sessions equals φ1(x1,x2)=x1μs. Note in particular that φ1(x1,x2) is independent of the number of elastic sessions x2. This is reflective of the fact that stream sessions are time conserving as described earlier and last for fixed durations, independent of the congestion levels (while they are non-bit conserving). Now, suppose the average duration of an elastic session, if the entire capacity of the link were to be at its disposal, is denoted by 1/μe (wherein μe represents an inverse of the elastic session duration). Then the rate at which elastic sessions are departing the system when there are x1 stream sessions and x2 elastic sessions would be equal to φ2(x1,x2)=x2μe×γe(x1,x2), where γe(x1,x2) is the profile-dependent bandwidth share available to each elastic session given by Equations 1-4 and Equation 11. The fact that φ2(x1,x2) depends on both the stream and elastic occupancies (i.e., x1 and x2) ensues from the fact that, unlike stream traffic, elastic traffic is bit conserving but not time conserving. In other words, the duration of an elastic session stretches or shrinks depending on the congestion level, till the last bit is successfully transmitted.
Apart from the above definitions for the average stream session duration 1/μs and elastic session duration subject to full capacity availability 1/μe(1/μel for long elastic and 1/μes for short elastic in a 3-class model), we also define the mean stream session arrival rate λs and elastic session arrival rate λe (λel for long elastic and λes for short elastic in a 3-class model). In terms of these parameters, we define the normalized stream session Erlangs ρs=λs/μs and the normalized elastic session erlangs ρe=λe/μe (ρel=λe1/μel for long elastic and ρes=λes/μes for short elastic in a 3-class model). While the ρ parameters are necessary for the computational sequence to be described, estimates for the arrival rates λ and average inverse durations μ are typically not available. However, as shown later, the ρ parameters are alternately calculated in terms of the known aggregate busy hour traffic intensities or volumes {Ks,Kel,Kes} and peak rates {Qs,Qel,Qes}.
With the concept of departure rates well defined, let the classes be ordered such that:
Given the ordered classes, the pessimistic and optimistic weight functions are given by Equations (13) and (14) below:
wherein λ's, as defined earlier, represent mean session arrival rates and {hacek over (Ψ)}(0,0)={circumflex over (Ψ)}(0,0)=1. As discussed above, the φ terms in the denominators of the above equations contain μ terms, which divide into corresponding λ terms in the numerator such that these equations can be restated in terms of terms of ρ terms. While λ's and μ's are typically unavailable, the ρ terms can be calculated alternately from traffic volumes and peak rates as shown later, thus facilitating the computational steps to be described.
Over the remainder of this description, the infinite state-space {(0,0) . . . (∞,∞)} is approximated by a finite state-space {(0,0) . . . (K,K)}, with K being chosen so as to achieve an acceptable degree of numerical accuracy. Similarly, in the context of a 3-dimensional model, the infinite state-space {(0,0,0) . . . (∞,∞,∞)} will be approximated by the finite state-space {(0,0,0) . . . (K,K,K)}.
Note that Equation (13) may be expressed in the following efficient recursive format:
Based on the recursive variant Equation (13A), the following algorithmic sequence may be followed to exhaustively compute the weight functions {{hacek over (Ψ)}(0,0) . . . {hacek over (Ψ)}(K,K)} for all the system states {[0,0] . . . [K,K]}:
As may be appreciated, Equation (14) for the optimistic bound can also be expressed in an analogous recursive format with the associated efficient implementation. The recursive formats and associated efficient implementations may be used in the algorithmic descriptions to be given.
In one embodiment, given the pessimistic weight function above in Equation (13), the pessimistic steady state distribution, {hacek over (π)}, for each state, x, may be computed by Equation (15) below:
{hacek over (π)}(xs,xe)={hacek over (π)}(0,0){hacek over (Ψ)}(xs,xe), where {hacek over (π)}(0,0)=1/Σ(x
Using the calculated pessimistic bounds, the conservative (pessimistic) bounds of the performance metrics SCTF and SCDF can be calculated using Equations (16) and (17) below:
where ET represents a customer stipulated data throughput rate acceptability threshold for each elastic session (e.g., 800 kilobytes per second (Kbps)), SST represents a customer stipulated data throughput rate acceptability threshold for each stream session (e.g., 800 Kbps) and γe(xs,xe) is defined by Equation (4) above. In the 3-dimensional model, it should be noted that the ET would have two distinct components, ELT and EST, for long elastic data throughput rate acceptability threshold and short elastic data throughput rate acceptability threshold, respectively, where appropriate.
It should be noted that any of the equations above for two classes may be generalized to an arbitrary number of classes. For example, any of the equations may be generalized for three classes to be applied specifically to a system having the streaming data, the long elastic data and the short elastic data as distinct components.
The method 500 then proceeds to a performance estimation block 508. Based upon the bounds calculated above, the performance metrics such as SCTF, SCDFel and SCDFes, may be calculated via equations, such as Equations (16) and (17) above.
The method 500 then proceeds to step 510, where the performance metrics are compared against a target value for each of the performance metrics. For example, there may be a predefined SCTF target value (TGTSCTF), a predefined long elastic SCDF target value (TGTSCDFlong) and a predefined short elastic SCDF target value (TGTSCDFshort). In one embodiment, the TGTSCTF, TGTSCDFlong and TGTSCDFshort may be configurable values. For example, the TGTSCTF may be set to 0.1%, the TGTSCDFlong may be set to 10% and the TGTSCDFshort may be set to 1%. The numerical values are only provided as examples and should not be considered limiting. If the each one of the performance metrics, SCTF, SCDFel and SCDFes, calculated in step 508 are less than or equal to their respective target values, TGTSCTF, TGTSCDFlong and TGTSCDFshort, then the variable QoSmet is set to “true”.
At step 512, the method 500 determines whether the QoSmet variable is true or false. If the variable QoSmet is false, then the method 500 proceeds to step 514, where the value of C is updated in the input parameter list 516. In other words, at step 514 the method 500 determined that the initial value of C was not a sufficient amount of capacity for the QoS to be met for each of the different types of traffic depending on the type of sharing profile that was used to perform the calculations. As a result, another iteration of the calculations must be performed with the intent of converging to the optimal value for C.
In one embodiment, the search for optimum capacity, C, is effectuated by linearly increasing the value of C, as shown in
With the bounds available, the performance evaluation algorithm is run for a capacity, C, equal to the mid-point between the upper and lower bounds (i.e., 30,000 Kbps, for the example quoted). If the metrics are satisfied at the mid-point, then the mid-point becomes a new upper bound and the lower bound is maintained at its previous value. Otherwise the mid-point becomes a new lower bound and the upper bound is maintained at its previous value. Now the procedure is repeated using the new pair of lower and upper bounds. The ensuing recursion is continued till the upper and lower bounds are within an acceptable margin of error, at which point the value of the upper bound is output as the optimal capacity C. As may be appreciated, this version of the search outer loop of the algorithm implementation involves a logarithmic number of steps, and would converge significantly faster than a linear implementation, shown for illustrative purposes in
From step 514, the method re-submits the input parameters with the updated value of C back into the queuing model block 506 and the method is repeated until QoSmet=true at step 512. At step 512, if the variable QoSmet=true, then the method 500 proceeds to step 520. At step 520, the method outputs C as the engineered capacity and the method 500 ends.
The method 600 starts at step 602 and proceeds to 604. At step 604, the method 600 receives the input parameters from block 516 as illustrated in
Once the various normalized values are calculated, the method 600 proceeds to step 606 where a γ matrix computation is performed. As discussed above, γ represents a capacity assigned to a particular session. The γ matrix provides a matrix that describes the per-session capacity assigned to each of the particular types of sessions γi(x), under the exhaustive set of states of the system {x} (the system state being defined by a vector of the number of active sessions belonging to the distinct classes under consideration). It should be noted that the values of the γ matrix entries would depend on the particular bandwidth sharing profile specified.
The method 600 then proceeds to step 608, wherein the highest algorithmic priority, index value of 1, is assigned to the streaming data, s. It should be noted that this assignment does not imply any kind of traffic prioritization in the physical world. For example, absolute traffic-dependent priorities are feasible only in dedicated private networks, and not in the HTTP/TCP public internet scenario. Rather, the above assignment has meaning only in an algorithmic sense, and is a consequence of the ordering implied by Equation (12), in light of the property described above, whereby the departure rates of stream sessions are independent of congestion and hence independent of the number of active elastic sessions, while the departure rates of elastic sessions (long, as well as short) do depend on congestion, hence on the occupancy levels of all classes.
At step 610, the method 600 then determines which bandwidth sharing profile was applied. For example, referring back to
However, if the proportional bandwidth sharing profile was selected, then the method 600 proceeds to step 614. At step 614, the method 600 maps indices 2 and 3 to the long elastic data and the short elastic data according to the mathematical expression “Map indices 2, 3 ε {el,es}:α2≧α3.” In other words, under the proportional bandwidth sharing profile, the indices for the two elastic sub-classes are assigned in the order of decreasing peak rates, which is the appropriate ordering to satisfy Equation (12) in this context.
At step 616, the method 600 initializes each state variable xi, for i=1-3, to 0 and the initial weight associated with state [0 0 0], π[0,0,0], to 1. Mathematically, this is expressed as shown in step 616 and below in Equation (21):
x1=x2=x3=0; π[0,0,0]=norm=1; Eq. (21)
The method 600 then proceeds to step 618 where the main loop is performed. In one embodiment, the main loop calculates the steady state probabilities for each state within the bounds of the pessimistic weight function or optimistic weight function, as discussed earlier. The details of the main loop are described further below with reference to
At step 620, the method 600 remaps the steady state distribution, π, in accordance with the original ordering of the streaming data, the long elastic data and the short elastic data. The method 600 then proceeds to step 622, where the method 600 exits at step 622 back to the performance estimation block 508, illustrated in
Map indices 1, 2, 3 ε{s,el,es}:α1≦α2≦α3; x1=x2=x3=0; Eq. (22)
The method 700 then proceeds to step 706, where the method 700 determines which bandwidth sharing profile was selected. Again, referring back to
The method 700 then proceeds through each state of the state transition diagram until the bandwidth share for each state is calculated in the γ matrix as shown by steps 712, 714, 716, 718 and 720. Again, as mentioned earlier, K, is the maximum occupancy level of each class considered (i.e., the approximation of the infinite state-space by a finite one). In other words, steps 712-720 represent mathematically steps for ensuring that all the states are visited. In this case, for example, in the order [0,0,0], [1,0,0], . . . [K,0,0], [0,1,0], . . . [0,0,K], . . . [K,K,K].
Once the γ matrix is computed, the method 700 proceeds to step 722 where the bandwidth shares for each index are remapped to the traffic classes. For example, the γ1 may be mapped to γs, the γ2 may be mapped to γel and the γ3 may be mapped to γes(if α1≦α2≦α3). The method 700 ends at 724 and returns to step 606 of
The method 800 starts at step 802 and then proceeds to step 804. At step 804, the method 800 sets x3=1 and starts calculating the steady state probabilities via the heaviest weight path. The method 800 proceeds to step 806.
Step 806 along with the loop test in step 808 executes Equation (13A) in conjunction with the associated efficient implementation, for the highest index 3. In particular, {hacek over (Ψ)}[0,0,1] through {hacek over (Ψ)}[0,0,K] are computed in the first pass.
Next, x2 is incremented to 1 in step 810, determines if x1 is less than K at step 812 and the method 800 proceeds to step 816 where {hacek over (Ψ)}[0,1,0] is computed via the logic of Equation (13A).
Next, x3 is reset to 1 in step 804 and the algorithm returns to step 806 to compute {hacek over (Ψ)}[0,1,1] through {hacek over (Ψ)}[0,1,K] . This circuit involving steps 806, 808, 810, 812, 818 and 804 continues until {hacek over (Ψ)}[0,0,1] through {hacek over (Ψ)}[0,K,K] are generated.
At this point, the method 800 proceeds to step 814 and increments x1 to 1. At step 816 if the test passes (i.e., x1<K is yes), the method 800 proceeds to step 820 where {hacek over (Ψ)}[1,0,0] is computed. The distinctions between the departure rates (φ's) for stream and elastic as described above, may be noted by comparing the calculation in step 820 (for stream) against that in step 806 or 818 (for elastic classes). The method 800 proceeds to step 822 where the variable norm is computed and x2 is reset to 0. It should be noted that the variable norm may be continually updated upon computation of the weight for each and every state in steps 806, 818, 822 and 822.
Next the method 800 proceeds to step 804 where x3 is reset to 1, following which {hacek over (Ψ)}[1,0,1] is computed in step 806, The circuit involving steps 806, 808, 810, 812, 818 and 804 is invoked a second time until {hacek over (Ψ)}[1,0,1] through {hacek over (Ψ)}[1,K,K] are generated.
At this point, method 800 again proceeds to step 814 to increment x1. It may thus be appreciated that the macro circuit involving steps 806, 808, 810, 812, 814, 816, 818, 804, 820 and 822 eventually generates all of {hacek over (Ψ)}[0,0,1] through {hacek over (Ψ)}[K,K,K], at which point the test fails in step 816 (i.e. x1<K is no) bringing method 800 to step 824. As may be noticed, the value of the normalization variable norm at this point equals the sum of the weight function values for all the system states (the infinite state-space being approximated as K3 finite states). In step 824, the weight function value for each state is divided by norm to convert to the corresponding state probability. The method 800 then proceeds to step 826 where the method 800 ends and returns to step 618 of
It is again noted that in a different embodiment, the optimistic probability bounds may be computed instead of the pessimistic bounds simply by reversing the order of the indices. For example, by using x1 in place of x3 in steps 804, 806 and 808 and x3 in the place of x1 in steps 814, 816 and 820, the computation sequence can be changed to generate the optimistic weight functions {{circumflex over (Ψ)}[0,0,0] . . . {circumflex over (Ψ)}[K,K,K]} instead of the pessimistic weight functions as is being accomplished in
The method 900 then proceeds to step 906. The method 900 at step 906 calculates the parameters SCTFdenom, SCTF numer, SCDFdenom[el], SCDFnumer[el], SCDFdenom[es] and SCDFnumer[es] for each state. For example, the calculation is defined by Equations (16) and (17) described above. Step 906 illustrates another way of expressing what is shown in Equations (16) and (17) described above. It should be noted that the mathematical expression “A+=B” is shorthand representation for the mathematical expression “A=A+B”.
The method 900 proceeds through each state as shown by steps 908, 910, 912, 914 and 916 until the final values of the parameters SCTFdenom, SCTF numer, SCDFdenom[el], SCDFnumer[el], SCDFdenom[es] and SCDFnumer[es] are calculated. In other words, steps 908-916 represent mathematically steps for ensuring that all the states are visited. In this case, for example, in the order [0,0,0], [1,0,0], . . . [K,0,0], [0,1,0], . . . [0,0,K], . . . [K,K,K].
At step 918, the values of the performance metric parameters SCTF, SCDFel and SCDFes are calculated using the final values of the parameters SCTFdenom, SCTF numer, SCDFdenom[el], SCDFnumer[el], SCDFdenom[es] and SCDFnumer[es]. The method 900 proceeds to step 920 where the values of SCTF, SCDFel and SCDFes are outputted to step 510 of
It should be noted that although not explicitly specified, one or more steps of the methods described herein may include a storing, displaying and/or outputting step as required for a particular application. In other words, any data, records, fields, and/or intermediate results discussed in the methods can be stored, displayed, and/or outputted to another device as required for a particular application. Furthermore, steps or blocks in
It should be noted that the present disclosure can be implemented in software and/or in a combination of software and hardware, e.g., using application specific integrated circuits (ASIC), a general purpose computer or any other hardware equivalents. In one embodiment, the present module or process 1005 for calculating a capacity for high speed packet access data in a link in a communications network can be loaded into memory 1004 and executed by processor 1002 to implement the functions as discussed above. As such, the present method 1005 for calculating a capacity for high speed packet access data in a link in a communications network (including associated data structures) of the present disclosure can be stored on a non-transitory (tangible or physical) computer readable storage medium, e.g., RAM memory, magnetic or optical drive or diskette and the like.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
6266322 | Berger et al. | Jul 2001 | B1 |
6788646 | Fodor et al. | Sep 2004 | B1 |
6795399 | Benmohamed et al. | Sep 2004 | B1 |
7076552 | Mandato | Jul 2006 | B2 |
7225267 | Key et al. | May 2007 | B2 |
7746806 | Racz et al. | Jun 2010 | B2 |
7796514 | Noriega | Sep 2010 | B2 |
7864802 | Dehkordi et al. | Jan 2011 | B1 |
7944839 | Siris | May 2011 | B2 |
8014280 | Zhang et al. | Sep 2011 | B2 |
8179800 | Gunduzhan | May 2012 | B1 |
8280994 | Blouin et al. | Oct 2012 | B2 |
8289851 | Lakshman et al. | Oct 2012 | B2 |
8300575 | Willars | Oct 2012 | B2 |
8406129 | Belanger et al. | Mar 2013 | B2 |
20030069963 | Jayant et al. | Apr 2003 | A1 |
20040010592 | Carver et al. | Jan 2004 | A1 |
20070104100 | Davey et al. | May 2007 | A1 |
20100153555 | Majmundar et al. | Jun 2010 | A1 |
20100269044 | Ivanyi et al. | Oct 2010 | A1 |
20110149761 | Belanger et al. | Jun 2011 | A1 |
20120281536 | Gell et al. | Nov 2012 | A1 |
20120327779 | Gell et al. | Dec 2012 | A1 |
Entry |
---|
T. Bonald et al. “On Performance Bounds for the Integration of Elastic and Adaptive Streaming Flows,” SIGMETRICS/Performance '04, Jun. 12-16, 2004, New York, NY, consists of 11 unnumbered pages. |
U.S. Appl. No. 12/655,236, filed Dec. 23, 2009, “Technique for Determining Transport Capacity Required to Achieve Controllable Worst Case Throughput,” pp. 1-15. |
Number | Date | Country | |
---|---|---|---|
20120151078 A1 | Jun 2012 | US |